Guest User

Untitled

a guest
Jan 18th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. def get_queryset(self):
  2. entries = Entry.objects.filter(user=self.request.user).values(
  3. 'project__name'
  4. ).annotate(
  5. total_duration=Sum('duration'),
  6. billable_duration=Sum(
  7. Case(
  8. When(billable=True, then='duration'),
  9. output_field=DurationField(),
  10. )
  11. ),
  12. unbillable_duration=Sum(
  13. Case(
  14. When(billable=False, then='duration'),
  15. output_field=DurationField(),
  16. )
  17. )
  18. )
  19.  
  20. def get_context_data(self, **kwargs):
  21. context_data = super().get_context_data(**kwargs)
  22. qs = self.get_dated_queryset()
  23. context_data['total_duration'] = qs.aggregate(Sum('total_duration'))['total_duration__sum']
  24. context_data['billable_duration'] = qs.aggregate(Sum('billable_duration'))['billable_duration__sum']
  25. context_data['unbillable_duration'] = qs.aggregate(Sum('unbillable_duration'))['unbillable_duration__sum']
  26. return context_data
Add Comment
Please, Sign In to add comment