def test_single_assignment_projection(self):
     # 2 weeks, 60 hours
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=2) - datetime.timedelta(days=1)
     ca = self._assign(start, end, hours=60)
     run_projection()
     self.assertEqual(60, ca.blocks.aggregate(s=Sum('hours'))['s'])
 def test_single_assignment_projection(self):
     # 2 weeks, 60 hours
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=2) - datetime.timedelta(days=1)
     ca = self._assign(start, end, hours=60)
     run_projection()
     self.assertEqual(60, ca.blocks.aggregate(s=Sum('hours'))['s'])
 def test_this_weeks_hours(self):
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=2) - datetime.timedelta(days=1)
     ca = self._assign(start, end, hours=60)
     run_projection()
     self.log_time(ca, start=start, delta=(10, 0))
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         self.ps.user)
     self.assertEquals(assignments.count(), 1)
     assignment = assignments[0]
     self.assertEquals(assignment.hours_worked, 10)
     self.assertEquals(assignment.hours_left, assignment.hours - 10)
 def test_this_weeks_hours(self):
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=2) - datetime.timedelta(days=1)
     ca = self._assign(start, end, hours=60)
     run_projection()
     self.log_time(ca, start=start, delta=(10, 0))
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         self.ps.user)
     self.assertEquals(assignments.count(), 1)
     assignment = assignments[0]
     self.assertEquals(assignment.hours_worked, 10)
     self.assertEquals(assignment.hours_left, assignment.hours - 10)
 def test_min_hours_per_week_weighted(self):
     """
     Test minimum hours/week with weighting based on assignment end date
     """
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=1)
     ca1 = self._assign(start, end, hours=40)
     ca2 = self._assign(start, end + datetime.timedelta(days=1), hours=40)
     ca1.min_hours_per_week = 30
     ca1.save()
     ca2.min_hours_per_week = 30
     ca2.save()
     run_projection()
     projection = ca1.blocks.filter(date=start).aggregate(s=Sum('hours'))
     self.assertEqual(30, projection['s'])
     projection = ca2.blocks.filter(date=start).aggregate(s=Sum('hours'))
     self.assertEqual(10, projection['s'])
 def test_min_hours_per_week_weighted(self):
     """
     Test minimum hours/week with weighting based on assignment end date
     """
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=1)
     ca1 = self._assign(start, end, hours=40)
     ca2 = self._assign(start, end + datetime.timedelta(days=1), hours=40)
     ca1.min_hours_per_week = 30
     ca1.save()
     ca2.min_hours_per_week = 30
     ca2.save()
     run_projection()
     projection = ca1.blocks.filter(date=start).aggregate(s=Sum('hours'))
     self.assertEqual(30, projection['s'])
     projection = ca2.blocks.filter(date=start).aggregate(s=Sum('hours'))
     self.assertEqual(10, projection['s'])
 def test_this_weeks_allocations(self):
     # 2 weeks, 60 hours
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=2) - datetime.timedelta(days=1)
     ca = self._assign(start, end, hours=20)
     person = User.objects.create_user('test2', '*****@*****.**', 'abc')
     ps = self.create_person_schedule(data={'user': person})
     run_projection()
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         self.ps.user)
     self.assertEquals(assignments.count(), 1)
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         person)
     self.assertEquals(assignments.count(), 0)
     ca_2 = self._assign(start, end, hours=30)
     run_projection()
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         self.ps.user)
     self.assertEquals(assignments.count(), 2)
 def test_this_weeks_allocations(self):
     # 2 weeks, 60 hours
     start = utils.get_week_start()
     end = start + datetime.timedelta(weeks=2) - datetime.timedelta(days=1)
     ca = self._assign(start, end, hours=20)
     person = User.objects.create_user('test2', '*****@*****.**', 'abc')
     ps = self.create_person_schedule(data={'user': person})
     run_projection()
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         self.ps.user)
     self.assertEquals(assignments.count(), 1)
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         person)
     self.assertEquals(assignments.count(), 0)
     ca_2 = self._assign(start, end, hours=30)
     run_projection()
     assignments = timepiece.AssignmentAllocation.objects.during_this_week(
         self.ps.user)
     self.assertEquals(assignments.count(), 2)
Example #9
0
 def delete_model(self, request, obj):
     obj.delete()
     run_projection()
Example #10
0
 def save_model(self, request, obj, form, change):
     obj.save()
     run_projection()
Example #11
0
 def delete_model(self, request, obj):
     obj.delete()
     run_projection()
Example #12
0
 def save_model(self, request, obj, form, change):
     obj.save()
     run_projection()