def get_context_data(self, **kwargs): context = super(AssignmentDetailView, self).get_context_data(**kwargs) student = get_current_student(self.request) teacher = get_current_teacher(self.request) context['is_assignment_page'] = 'active' context['meta'] = self.get_object().as_meta(self.request) if student: # context['student'] = self.student context['form'] = AssignmentSubmissionForm slug = self.kwargs['slug'] context['work_files'] = AssignmentWorkFile.objects.filter( assignment_work__assignment__slug=slug, assignment_work__student=student) context['materials'] = AssignmentFile.objects.filter( assignment__slug=slug) # print(context['work_files']) # print(slug) object = self.get_object() context['work'] = self.asgmt_work context['turned'] = self.asgmt_work.submitted elif teacher: context['students'] = Student.objects.filter( assignmentwork__submitted=True, assignmentwork__assignment=self.object) return context
def get_queryset(self): student = get_current_student(self.request) queryset = super(AssignmentDetailView, self).get_queryset() queryset = queryset.filter() return queryset
def get(self, request, *args, **kwargs): is_teacher = request.user.is_teacher is_student = request.user.is_student stream_slug = self.kwargs['slug'] try: course_offering = course.models.CourseOffering.objects.filter( slug=stream_slug)[:1].get() except course.models.CourseOffering.DoesNotExist: course_offering = None if is_student: student = get_current_student(self.request) if not student.user.has_perm('view_courseoffering', course_offering): return HttpResponseForbidden() return super().get(self, request, *args, **kwargs) elif is_teacher: teacher = get_current_teacher(self.request) if not teacher.user.has_perm('view_courseoffering', course_offering): return HttpResponseForbidden() return super().get(self, request, *args, **kwargs) else: return HttpResponseForbidden()
def dispatch(self, request, *args, **kwargs): student = get_current_student(self.request) if student.is_graduated: return redirect('result:select_term') else: return super(ResultListView, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs): context = super(ResultListView, self).get_context_data(**kwargs) meta = Meta(title=get_site_title('Results')) context['is_result_page'] = 'active' context['meta'] = meta context['student'] = get_current_student(self.request) context['semester_grades'] = self.semester_grade context['cgpa'] = self.cgpa return context
def get_context_data(self, **kwargs): context = super(ViewMyGrades, self).get_context_data(**kwargs) meta = Meta(title=get_site_title('Select Term')) context['is_result_page'] = 'active' context['meta'] = meta context['student'] = get_current_student(self.request) context['semester_grades'] = self.semester_grades context['term'] = self.term return context
def get_queryset(self): student = get_current_student(self.request) teacher = get_current_teacher(self.request) queryset = super(CourseListView, self).get_queryset() if student: queryset = queryset.filter(courseenrollment__student=student, courseenrollment__is_hidden=False) elif teacher: queryset = queryset.filter(teacher=teacher, archive=False) return queryset
def get_queryset(self): student = get_current_student(self.request) if not student.is_graduated: try: self.term = Term.objects.all()[:1].get() except Term.DoesNotExist: self.term = None self.cgpa = student.get_cgpa() self.semester_grades = student.get_semester_grades() queryset = super(ViewMyGrades, self).get_queryset() queryset = queryset return queryset
def get_context_data(self, **kwargs): context = super(AssignmentListView, self).get_context_data(**kwargs) student = get_current_student(self.request) teacher = get_current_teacher(self.request) course_slug = self.kwargs.get('slug') context['is_assignment_page'] = 'active' try: course_offering = course.models.CourseOffering.objects.filter( slug=course_slug)[:1].get() except course.models.CourseOffering.DoesNotExist: course_offering = None context['course'] = course_offering title = 'Assignments' if (course_offering): title = f'Assignment - { course_offering.course.code }' meta = Meta(title=get_site_title(title)) context['meta'] = meta if student: if not course_slug: context[ 'assignments_submitted'] = AssignmentWork.objects.filter( assignment__course_offering__courseenrollment__is_hidden =False, assignment__course_offering__courseenrollment__student= student, student=student, submitted=True).order_by('-submit_date') else: context[ 'assignments_submitted'] = AssignmentWork.objects.filter( student=student, submitted=True, assignment__course_offering=course_offering) elif teacher: if not course_slug: context[ 'courses'] = course.models.CourseOffering.objects.filter( teacher=teacher, archive=False) return context
def post(self, request, *args, **kwargs): turn = request.POST.get('turn') if not request.user.is_authenticated: return HttpResponseForbidden() # self.object = self.get_object() # form = self.get_form() self.student = get_current_student(self.request) self.object = self.get_object() print("POST OBJECT", self.object) slug = self.kwargs['slug'] print(args) print(kwargs) # context['work_files'] = AssignmentWorkFile.objects.filter(assignment_work__assignment__slug=slug, assignment_work__student=context['student']) print("POST slug", slug) self.asgmt_work, _created = AssignmentWork.objects.get_or_create( assignment=self.object, student=self.student) print("POST self.asgmt_work", self.asgmt_work) if turn == "True": self.asgmt_work.submitted = True self.asgmt_work.submit_date = datetime.now() self.asgmt_work.save() elif turn == "False": self.asgmt_work.submitted = False self.asgmt_work.save() form = self.form_class(request.POST, request.FILES) if form.is_valid(): print("valid") instance = form.save(commit=False) print("FORM", form) print("HELLO2", self.asgmt_work) instance.assignment_work = self.asgmt_work print("HELLO", instance.assignment_work) instance.save() return self.form_valid(form) else: print("invalid") return self.form_invalid(form)
def get_queryset(self): student = get_current_student(self.request) try: term = Term.objects.filter(pk=self.kwargs['pk'])[:1].get() except Term.DoesNotExist: term = None queryset = super(SelectedTerm, self).get_queryset() queryset = queryset.filter( course_enrollment__student=student, course_enrollment__course_offered__term=term) self.semester_grade = self.semester_grade.filter(student=student, term=term) self.cgpa = student.get_cgpa(self.semester_grade[:1].get()) return queryset
def get_context_data(self, **kwargs): context = super(CourseListView, self).get_context_data(**kwargs) student = get_current_student(self.request) teacher = get_current_teacher(self.request) meta = Meta(title=get_site_title('Courses')) context['random'] = str(uuid4())[:8] context['is_course_page'] = 'active' context['meta'] = meta if student: context['hidden_courses'] = CourseOffering.objects.filter( courseenrollment__student=student, courseenrollment__is_hidden=True) elif teacher: context['archives'] = CourseOffering.objects.filter( teacher=teacher, archive=True) return context
def get_queryset(self): student = get_current_student(self.request) try: term = Term.objects.all()[:1].get() except Term.DoesNotExist: term = None # hterm is None here so get the latest self.cgpa = student.get_cgpa() queryset = super(ResultListView, self).get_queryset() queryset = queryset.filter( course_enrollment__student=student, course_enrollment__course_offered__term=term) self.semester_grade = self.semester_grade.filter(student=student, term=term) return queryset
def post(self, request, *args, **kwargs): is_teacher = request.user.is_teacher is_student = request.user.is_student stream_slug = self.kwargs['slug'] try: course_offering = course.models.CourseOffering.objects.filter( slug=stream_slug)[:1].get() except course.models.CourseOffering.DoesNotExist: course_offering = None if not (is_student or is_teacher): return HttpResponseForbidden() if is_student: student = get_current_student(self.request) if not student.user.has_perm('view_courseoffering', course_offering): return HttpResponseForbidden() elif is_teacher: teacher = get_current_teacher(self.request) if not teacher.user.has_perm('view_courseoffering', course_offering): return HttpResponseForbidden() form = self.form_class(request.POST) if form.is_valid(): obj = Post() obj.body = form.cleaned_data['body'] obj.stream = course_offering obj.allow_comments = True obj.user = request.user obj.save() return redirect(obj) else: print('invalid') return redirect('course:stream:index', slug=stream_slug)
def get_context_data(self, **kwargs): context = super(SelectedTerm, self).get_context_data(**kwargs) try: term = Term.objects.filter(pk=self.kwargs['pk'])[:1].get() except Term.DoesNotExist: term = None title = f'Result - {term}' if not term: title = 'Result' meta = Meta(title=get_site_title(title)) context['is_result_page'] = 'active' context['meta'] = meta context['student'] = get_current_student(self.request) context['semester_grade'] = self.semester_grade[:1].get() context['cgpa'] = self.cgpa return context
def post(self, request, *args, **kwargs): is_teacher = request.user.is_teacher is_student = request.user.is_student if not (is_student or is_teacher): return HttpResponseForbidden() obj = self.get_object() if is_student: student = get_current_student(self.request) if not student.user.has_perm('delete_post', obj): return HttpResponseForbidden() elif is_teacher: teacher = get_current_teacher(self.request) if not teacher.user.has_perm('delete_post', obj): return HttpResponseForbidden() return super().post(self, request, *args, **kwargs)
def get(self, request, *args, **kwargs): is_teacher = request.user.is_teacher is_student = request.user.is_student obj = self.get_object() if is_student: student = get_current_student(self.request) if not student.user.has_perm('view_courseoffering', obj): return HttpResponseForbidden() return redirect('course:stream:index', slug=obj.slug) elif is_teacher: teacher = get_current_teacher(self.request) if not teacher.user.has_perm('view_courseoffering', obj): return HttpResponseForbidden() return redirect('course:stream:index', slug=obj.slug) else: return HttpResponseForbidden()
def get(self, request, *args, **kwargs): is_teacher = request.user.is_teacher is_student = request.user.is_student obj = self.get_object() if is_student: student = get_current_student(self.request) if not student.user.has_perm('view_assignment', obj): return HttpResponseForbidden() self.asgmt_work, _created = AssignmentWork.objects.get_or_create( assignment=obj, student=student) elif is_teacher: teacher = get_current_teacher(self.request) if not teacher.user.has_perm('view_assignment', obj): return HttpResponseForbidden() else: return HttpResponseForbidden() return super().get(self, request, *args, **kwargs)
def get_context_data(self, **kwargs): context = super(AssignmentAssignPointView, self).get_context_data(**kwargs) student = get_current_student(self.request) teacher = get_current_teacher(self.request) slug = self.kwargs['slug'] username = self.kwargs['username'] context['is_assignment_page'] = 'active' context['meta'] = self.get_object().as_meta(self.request) context['submission'] = AssignmentWorkFile.objects.filter( assignment_work__assignment__slug=slug, assignment_work__student__user__username=username) context['materials'] = AssignmentFile.objects.filter( assignment__slug=slug) context['student_'] = Student.objects.filter( user__username=username)[0] context['assignment_work'] = AssignmentWork.objects.filter( assignment__slug=slug, student__user__username=username)[0] context['form'] = self.form_class() context['form']['points'].initial = context['assignment_work'].points return context
def get_queryset(self): student = get_current_student(self.request) teacher = get_current_teacher(self.request) course_slug = self.kwargs.get('slug') queryset = super(AssignmentListView, self).get_queryset() try: course_offering = course.models.CourseOffering.objects.filter( slug=course_slug)[:1].get() except course.models.CourseOffering.DoesNotExist: course_offering = None if student: if not course_slug: queryset = queryset.filter( course_offering__courseenrollment__is_hidden=False, course_offering__courseenrollment__student=student ).exclude(assignmentwork__student=student, assignmentwork__submitted=True).order_by('deadline') else: queryset = queryset.filter( course_offering=course_offering, course_offering__courseenrollment__student=student ).exclude(assignmentwork__student=student, assignmentwork__submitted=True) elif teacher: if not course_slug: queryset = queryset.filter(course_offering__teacher=teacher, course_offering__archive=False) else: queryset = queryset.filter(course_offering__teacher=teacher, course_offering__archive=False, course_offering=course_offering) return queryset