def post(self, request, subject_id):
     subject = Subject.objects.get(id=subject_id)
     is_hod = is_user_hod(request, subject)
     staff_list = {}
     for department in Department.objects.all():
         staff_list[department.name] = [x.user for
                                        x in department.profile_set.all()
                                        if is_user_hod_or_teacher(x)]
     try:
         if is_hod:
             form = AssignOrRemoveStaffForm(request.POST)
             if form.is_valid():
                 for staff_id in form.cleaned_data['staffselect']:
                     staff = User.objects.get(id=staff_id)
                     subject.staff.add(staff)
             else:
                 self.error = 'Something went wrong.'
                 self.status = 500
                 raise
         else:
             self.error = 'You are not an HOD'
             self.status = 403
     except:
         return render(request, self.template,
                       {
                           'is_hod': is_hod,
                           'staff_list': staff_list,
                           'subject': subject,
                           'error': self.error
                       }, status=self.status)
     return HttpResponseRedirect('/subject/' + subject_id)
    def get(self, request, subject_id):
        RESOURCE_TYPES = {
            'presentation': 'Presentation',
            'paper_publication': 'Paper Publication',
            'subject_note': 'Subject Note',
            'project_thesis': 'Project Thesis',
            'seminar_report': 'Seminar Report',
            'university_question_paper': 'Previous University Question Paper'
        }

        try:
            subject = Subject.objects.get(id=subject_id)
            resource_list = {}
            for resource in subject.resource_set.all():
                restype = RESOURCE_TYPES[resource.category]
                if restype not in resource_list:
                    resource_list[restype] = []
                resource_list[restype].append(resource)
            number_of_categories = len(resource_list) * -1
            subscription_status = True
            is_hod = False
            has_staff = False
            is_staff = False
            subject_staff_list = subject.staff.all()
            if subject_staff_list:
                has_staff = True
            if request.user.is_authenticated():
                user = request.user
                if subject not in user.subscribedsubjects.all():
                    subscription_status = False
                is_hod = is_user_hod(request, subject)
                is_staff = is_user_hod_or_teacher(request, subject)
            return render(request, 'subject_resource_list.html',
                          {
                              'subject': subject,
                              'resource_list': resource_list,
                              'subscription_status': subscription_status,
                              'is_hod': is_hod,
                              'is_staff': is_staff,
                              'has_staff': has_staff,
                              'subject_staff_list': subject_staff_list,
                              'number_of_categories': number_of_categories
                          })
        except ObjectDoesNotExist, e:
            print e
            self.error = 'The subject you requested does not exist.'
            self.status = 404
            return render(request, 'error.html',
                          {
                              'error': self.error
                          }, status=self.status)
Beispiel #3
0
 def get(self, request):
     if request.user.is_authenticated():
         user = request.user
         subject_list = []
         if is_user_hod_or_teacher(request):
             subject_list = user.teachingsubjects.all()
         else:
             subject_list = user.subscribedsubjects.all()
         return render(request, 'profile.html',
                       {
                           'user': user,
                           'subject_list': subject_list})
     else:
         return render(request, 'home.html')
 def get(self, request, subject_id):
     subject = Subject.objects.get(id=subject_id)
     if not is_user_hod_or_teacher(request, subject):
         self.error = 'You are not authorized to visit this page.'
         self.status = 403
         self.template = 'error.html'
         return render(request, self.template,
                       {
                           'error': self.error
                       }, status=self.status)
     else:
         return render(request, 'viewquestionpapers.html',
                       {'subject': subject,
                        'user': request.user})
 def get(self, request, subject_id):
     subject = Subject.objects.get(id=subject_id)
     is_hod = is_user_hod(request, subject)
     staff_list = {}
     for department in Department.objects.all():
         staff_list[department.name] = [x.user for
                                        x in department.profile_set.all()
                                        if is_user_hod_or_teacher(x)]
     return render(request, self.template,
                   {
                       'is_hod': is_hod,
                       'staff_list': staff_list,
                       'subject': subject
                   })
Beispiel #6
0
 def get(self, request, username):
     if is_user_current_user(request, username):
         user = request.user
         if is_user_hod_or_teacher(request):
             self.subject_list = user.teachingsubjects.all()
         else:
             self.subject_list = user.subscribedsubjects.all()
         if not self.subject_list:
             self.error = 'You are not subscribed to any subjects'
             self.status = 404
     else:
         self.error = 'You are not logged in or not allowed to access \
                 this page.'
         self.status = 404
     return render(request, 'my_subjects.html',
                   {
                       'subject_list': self.subject_list,
                       'error': self.error
                   }, status=self.status)
Beispiel #7
0
 def get(self, request, username):
     try:
         user = User.objects.get(username=username)
         print user.profile.status
         subject_list = []
         if user:
             if is_user_hod_or_teacher(request):
                 subject_list = user.teachingsubjects.all()
             else:
                 subject_list = user.subscribedsubjects.all()
         return render(request, 'profile.html',
                       {
                           'user': user,
                           'subject_list': subject_list})
     except Exception as e:
         print(e)
         return render(request, 'error.html',
                       {
                           'error': 'The requested user not found.'
                       }, status=404)
 def get(self, request, subject_id, exam_id):
     subject = Subject.objects.get(id=subject_id)
     if not is_user_hod_or_teacher(request, subject):
         self.error = 'You are not authorized to visit this page.'
         self.status = 403
         self.template = 'error.html'
         return render(request, self.template,
                       {
                           'error': self.error
                       }, status=self.status)
     exam = Exam.objects.get(id=exam_id)
     if exam.subject != subject:
         self.error = 'No such exam for this subject found.'
         self.status = 404
         self.template = 'error.html'
         return render(request, self.template,
                       {
                           'error': self.error
                       }, status=self.status)
     return render(request, 'viewaquestionpaper.html',
                   {'subject': subject,
                    'exam': exam,
                    'user': request.user})