2021-01-28 18:12:42 -07:00

51 lines
2.0 KiB
Python

from django.shortcuts import render, reverse
from django.urls import reverse_lazy
from django.views.generic.base import TemplateView
from django.views.generic.edit import FormView, CreateView, UpdateView, DeleteView
from django.views.generic.detail import DetailView
from django.views.generic.list import ListView
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
from django.contrib.auth.models import User
from accounts.models import Instructor, Student
from .models import Period
# EXAMPLE PERMISSION MIXIN
# class MyView(PermissionRequiredMixin, View):
# permission_required = 'polls.add_choice'
# # Or multiple of permissions:
# permission_required = ('polls.view_choice', 'polls.change_choice')
class AttendanceOverview(LoginRequiredMixin, TemplateView):
template_name = 'attendance/attendance_overview.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['user'] = User.objects.get(pk=self.request.user.id)
if hasattr(self.request.user, 'instructor'):
context['students'] = Student.objects.filter(department=self.request.user.instructor.department)
context['period_list'] = Period.objects.all()
return context
class AttendanceCreateView(LoginRequiredMixin, CreateView):
model = Period
fields = ['email', 'password']
template_name = 'attendance/attendance_form.html'
class AttendanceDetailView(LoginRequiredMixin, DetailView):
model = Period
template_name = 'attendance/attendance_detail.html'
class AttendanceUpdateView(LoginRequiredMixin, UpdateView):
model = Period
fields = ['username', 'email']
template_name = 'attendance/attendance_form.html'
def get_success_url(self):
pk = self.kwargs["pk"]
return reverse('attendance-detail', kwargs={'pk': pk})
class AttendanceDeleteView(LoginRequiredMixin, DeleteView):
model = Period
success_url = reverse_lazy('account-overview')