Fix issue where Student did'n have a period_id

This commit is contained in:
Nathan Chapman 2021-01-30 21:22:00 -07:00
parent 863f3c061e
commit cc311a9424
2 changed files with 6 additions and 4 deletions

View File

@ -41,6 +41,6 @@ class Period(models.Model):
return f'{self.clocked_in}: {self.student.user.first_name} {self.student.user.last_name}' return f'{self.clocked_in}: {self.student.user.first_name} {self.student.user.last_name}'
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if isinstance(self.clocked_out, datetime): if self.clocked_out != None:
self.duration = self.clocked_out - self.clocked_in self.duration = self.clocked_out - self.clocked_in
super(Period, self).save(*args, **kwargs) super(Period, self).save(*args, **kwargs)

View File

@ -31,9 +31,10 @@ class AttendanceOverview(LoginRequiredMixin, TemplateView):
context['student_list'] = Student.objects.filter(department=self.request.user.instructor.department) context['student_list'] = Student.objects.filter(department=self.request.user.instructor.department)
context['period_list'] = Period.objects.order_by('-clocked_in') context['period_list'] = Period.objects.order_by('-clocked_in')
elif hasattr(self.request.user, 'student'): elif hasattr(self.request.user, 'student'):
student = self.request.user.student
# sum all duration fields for student # sum all duration fields for student
periods_duration_sum = Period.objects.filter( periods_duration_sum = Period.objects.filter(
student = self.request.user.student student = student
).filter( ).filter(
clocked_in__year=timezone.now().year clocked_in__year=timezone.now().year
).filter( ).filter(
@ -46,14 +47,15 @@ class AttendanceOverview(LoginRequiredMixin, TemplateView):
hours = round((periods_duration_sum['total_duration'].total_seconds() / 3600), 2) hours = round((periods_duration_sum['total_duration'].total_seconds() / 3600), 2)
context['period_list'] = Period.objects.filter( context['period_list'] = Period.objects.filter(
student=self.request.user.student student=student
).filter( ).filter(
clocked_in__year=timezone.now().year clocked_in__year=timezone.now().year
).filter( ).filter(
clocked_in__month=timezone.now().month clocked_in__month=timezone.now().month
).order_by('-clocked_in') ).order_by('-clocked_in')
context['period_total'] = hours 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 return context
class AttendanceUpdateView(LoginRequiredMixin, FormView): class AttendanceUpdateView(LoginRequiredMixin, FormView):