Add total_time to tasks, and archive flag

This commit is contained in:
2012-10-19 23:18:11 +01:00
parent 2dca6210af
commit 829eac4767
2 changed files with 20 additions and 3 deletions

View File

@@ -14,8 +14,16 @@ class Task(models.Model):
user = models.ForeignKey(User, related_name='tasks')
name = models.CharField('Task Name', max_length=200, blank=False)
archived = models.BooleanField('Archived?', default=False)
created = models.DateTimeField('Created Date/Time', auto_now_add=True)
@property
def total_time(self):
entries = self.entries.filter(type=TimeEntry.TYPE_ON).count()
if entries:
return entries * 15
return 0
def __unicode__(self):
if self.name:
return self.name
@@ -51,5 +59,5 @@ class TimeEntry(models.Model):
return 0
def __unicode__(self):
return u'%s - %s %s' % (self.task.name, self.date,
return u'%s - %s %s' % (self.task.name, self.date,
self.get_segment_time())

View File

@@ -1,9 +1,10 @@
from __future__ import with_statement
from django.test import TestCase
from django.db import IntegrityError
from django.utils.timezone import now
from django.contrib.auth.models import User
from .models import Task
from .models import Task, TimeEntry
class TaskTest(TestCase):
@@ -21,12 +22,20 @@ class TaskTest(TestCase):
with self.assertRaises(IntegrityError):
Task.objects.create(name='Bad Test')
def testTotalTime(self):
self.assertEqual(self.task.total_time, 0)
entry = TimeEntry.objects.create(task=self.task, type=TimeEntry.TYPE_ON, date=now(), segment=10)
self.assertEqual(self.task.total_time, 15)
entry2 = TimeEntry.objects.create(task=self.task, type=TimeEntry.TYPE_OFF, date=now(), segment=11)
self.assertEqual(self.task.total_time, 15)
entry3 = TimeEntry.objects.create(task=self.task, type=TimeEntry.TYPE_ON, date=now(), segment=12)
self.assertEqual(self.task.total_time, 30)
class TaskDetailViewTest(TestCase):
def setUp(self):
self.user, created = User.objects.get_or_create(username='TestUser')
self.task = Task.objects.create(user=self.user, name="Test Task 2")
self.task = Task.objects.create(user=self.user, name="Test Task 2")
def testBasicResponse(self):
resp = self.client.get('/task/%d/' % self.task.pk)