示例#1
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#2
0
文件: views.py 项目: progrmoiz/Saiki
    def get_queryset(self):
        student = get_current_student(self.request)

        queryset = super(AssignmentDetailView, self).get_queryset()
        queryset = queryset.filter()

        return queryset
示例#3
0
文件: views.py 项目: progrmoiz/Saiki
    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()
示例#4
0
文件: views.py 项目: progrmoiz/Saiki
    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)
示例#5
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#6
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#7
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#8
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#9
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#10
0
文件: views.py 项目: progrmoiz/Saiki
    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)
示例#11
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#12
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#13
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#14
0
文件: views.py 项目: progrmoiz/Saiki
    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)
示例#15
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#16
0
文件: views.py 项目: progrmoiz/Saiki
    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)
示例#17
0
文件: views.py 项目: progrmoiz/Saiki
    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()
示例#18
0
文件: views.py 项目: progrmoiz/Saiki
    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)
示例#19
0
文件: views.py 项目: progrmoiz/Saiki
    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
示例#20
0
文件: views.py 项目: progrmoiz/Saiki
    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