diff --git a/attendance/models.py b/attendance/models.py index 34f5e27..e86dd76 100644 --- a/attendance/models.py +++ b/attendance/models.py @@ -41,6 +41,6 @@ class Period(models.Model): return f'{self.clocked_in}: {self.student.user.first_name} {self.student.user.last_name}' def save(self, *args, **kwargs): - if isinstance(self.clocked_out, datetime): + if self.clocked_out != None: self.duration = self.clocked_out - self.clocked_in super(Period, self).save(*args, **kwargs) diff --git a/attendance/views.py b/attendance/views.py index f1848cd..70104cb 100644 --- a/attendance/views.py +++ b/attendance/views.py @@ -31,9 +31,10 @@ class AttendanceOverview(LoginRequiredMixin, TemplateView): context['student_list'] = Student.objects.filter(department=self.request.user.instructor.department) context['period_list'] = Period.objects.order_by('-clocked_in') elif hasattr(self.request.user, 'student'): + student = self.request.user.student # sum all duration fields for student periods_duration_sum = Period.objects.filter( - student = self.request.user.student + student = student ).filter( clocked_in__year=timezone.now().year ).filter( @@ -46,14 +47,15 @@ class AttendanceOverview(LoginRequiredMixin, TemplateView): hours = round((periods_duration_sum['total_duration'].total_seconds() / 3600), 2) context['period_list'] = Period.objects.filter( - student=self.request.user.student + student=student ).filter( clocked_in__year=timezone.now().year ).filter( clocked_in__month=timezone.now().month ).order_by('-clocked_in') context['period_total'] = hours - context['current_period'] = Period.objects.get(pk=self.request.user.student.current_period_id) + if student.current_period_id != None: + context['current_period'] = Period.objects.get(pk=student.current_period_id) return context class AttendanceUpdateView(LoginRequiredMixin, FormView):