예제 #1
0
    def get_context_data(self, **kwargs):
        context  =  super(IndexPage, self).get_context_data(**kwargs)

        # Check are kept based on the type login.
        if hf.student_check(self.request.user):
            IndexPage.template_name  =  'student/student_index.html'
        elif hf.hod_check(self.request.user):
            IndexPage.template_name  =  'instructor/hod_index.html'
        elif hf.instructor_check(self.request.user):
            # Sending the file list to instructor and
            # display file name and reseaon of file which are rejected.
            user_obj  =  get_object_or_404(get_user_model(), email  =  self.request.user)
            context['instructor_file_list']  =  TempFile.objects.filter(
            instructor__user  =  user_obj)
            IndexPage.template_name  =  'instructor/instructor_index.html'
        elif hf.registrar_check(self.request.user):
            IndexPage.template_name  =  'registrar/index.html'
        elif hf.dean_check(self.request.user):
            IndexPage.template_name  =  'dean/index.html'
        else:
            IndexPage.template_name = 'error.html'
            context['error_message']  =  "You have not login. Please login to proceed further"
            logout(self.request)

        return context
예제 #2
0
def rejected_marks_file(request):
    if request.method == 'POST':
        file_name  =  request.POST.get('get_file_name')
        try:
            tt  =  TempFile.objects.get(file_name  =  file_name,file_rejected  =  False)
            root_file  =  os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
            file_dir  =  os.path.join(root_file,'media',str(tt.file_path))
            rejected_file_name  =  hf.random_name()+"_"+str(file_name)
            rejected_dir  =  os.path.join(root_file,'media','rejected',rejected_file_name)
            os.rename(file_dir,rejected_dir)
            if(hf.registrar_check(request.user)):
                tt.file_status = "File Rejected by Registrar"
            elif(hf.hod_check(request.user)):
                tt.file_status = "File Rejected by HOD"
            elif(hf.dean_check(request.user)):
                tt.file_status = "File Rejected by Dean"
            tt.file_rejected  =  True
            tt.file_path  =  os.path.join('rejected',file_name)
            tt.save()
            return redirect('view_file_upload')
        except Exception as e:
            print(e)
            return render(request,'error.html',{'error_message':"File is alredy exists in approved folder"})
    else:
        logout(request)
        return render(request,'error.html',{'error_message':"You are trying to access unoffical things"})
예제 #3
0
    def get_context_data(self, **kwargs):
        context  =  super(View_Uploaded_File, self).get_context_data(**kwargs)
        # print(self.request.user)
        d_name  =  Department.objects.filter(instructor__user  =  self.request.user).values('Department_name')

        try:
            TempFile.objects.filter(file_name = '').delete()
        except Exception as e:
            # print(e)
            pass

        if hf.instructor_check(self.request.user) and hf.hod_check(self.request.user):
            context['upload_file_list']  =  TempFile.objects.filter(instructor__instructor_department =
                            (Department.objects.get(Department_name  =  str(
                                d_name[0]['Department_name'])
                                ))).order_by('-created')

            context['department_name']  = str(d_name[0]['Department_name'])

            context['reject_reason_form'] = View_Uploaded_File.reject_reason_form

            View_Uploaded_File.template_name = 'instructor/hod_view_file.html'
            # print(str(self.request.user)+" (HOD) viewed uploaded file")

        elif hf.instructor_check(self.request.user):
            # print("In instructor only")
            user_obj  =  get_object_or_404(get_user_model(), email  =  self.request.user)
            context['upload_file_list'] = TempFile.objects.filter(instructor__user =  user_obj).order_by('-created')
            # print(TempFile.objects.filter(instructor__user =  user_obj))
            context['department_name']  = str(d_name[0]['Department_name'])
            View_Uploaded_File.template_name = 'instructor/instructor_view_uploaded_file.html'
            # print(str(self.request.user) +" (Instructor) viewed uploaded file")

        elif hf.registrar_check(self.request.user):
            print("Only registrar")
            context['upload_file_list'] = TempFile.objects.all().order_by('-created')
            # .order_by('file_time_stamp'.desc()).
            # print(TempFile.objects.all())

            context['reject_reason_form'] = View_Uploaded_File.reject_reason_form

            View_Uploaded_File.template_name = 'registrar/registrar_view_file.html'
            # print(str(self.request.user)+" (Registrar) viewed uploaded file")

        elif hf.dean_check(self.request.user):
            context['upload_file_list'] = TempFile.objects.all().order_by('-created')

            context['reject_reason_form'] = View_Uploaded_File.reject_reason_form

            View_Uploaded_File.template_name = 'dean/dean_view_file.html'
            # print(str(self.request.user)+" (Dean) viewed uploaded file")

        else:
            View_Uploaded_File.template_name = 'error.html'
            context['error_message']  =  "Your are not Authorized to login in. To access this page please login."
            logout(self.request)

        return context
예제 #4
0
def add_multiple_course(request):
    if request.method == 'POST':
        forms  =  form.RegistrarUploadFile(request.POST, request.FILES)
        if forms.is_valid():
            # request.POST.get()
            get_file  =  request.FILES['file']
            get_file_name  =  get_file.name

        if not(hf.hod_check(hod_obj)):
            return render(request,'error.html',{'error_message':"Only Hod can access this functionality."})

        if (get_file_name.endswith(".xlsx") or get_file_name.endswith(".xls")):
            course_upload  =  pd.read_excel(get_file,sheet_name  =  0,)
            return_message  =  hf.add_multiple_course_function(course_upload)
            return render(request,'instructor/course_message.html',{'message':return_message})
        else:
            return render(request,'error.html',{'error_message':"Please upload Excel sheet"})
    else:
        return render(request,'instructor/add_course.html',{'registrar_form': registrar_upload_form})
예제 #5
0
def reject_marks_reason(request):
    if request.method == 'POST':
        file_name  =  request.POST.get('get_file_name')
        file_reject_message  =  request.POST.get('reject_message')
        print(file_reject_message, "   ",type(file_reject_message))
        try:
            tt  =  TempFile.objects.get(pk  =  file_name)
            if(hf.registrar_check(request.user)):
                tt.file_status = "Registrar: "+file_reject_message
            elif(hf.hod_check(request.user)):
                tt.file_status = ("HOD: "+str(file_reject_message))
            elif(hf.dean_check(request.user)):
                tt.file_status = "Dean: "+file_reject_message
            tt.file_rejected_reason  =  True
            tt.save()
            return redirect('view_file_upload')
        except Exception as e:
            print(e)
            return render(request,'error.html',{'error_message':"File is alredy exists in approvedddd folder"})
    else:
        logout(request)
        return render(request,'error.html',{'error_message':"You are trying to access unoffical things"})
예제 #6
0
def template_download(request,fileName):

    if hf.registrar_check(request.user) :
        if fileName=='add_student_template':
            filePath = os.path.join('media','template',fileName+'.xlsx')
        else:
            error_message={'error_message':"File not found."}
            return render(request,'error.html',error_message)

    elif hf.hod_check(request.user):
        if fileName=='add_course_template' or fileName=='marks_template':
            filePath = os.path.join('media','template',fileName+'.xlsx')
        else:
            error_message={'error_message':"File not found."}
            return render(request,'error.html',error_message)

    elif hf.instructor_check(request.user):
        if fileName=='marks_template':
            filePath = os.path.join('media','template',fileName+'.xlsx')
        elif fileName=='add_course_template':
            error_message={'error_message':"You cannot access this file."}
            return render(request,'error.html',error_message)
        else:
            error_message={'error_message':"File not found."}
            return render(request,'error.html',error_message)

    else:
        error_message={'error_message':"You do not have access to download this files."}
        return render(request,'error.html',error_message)

    # print(filePath)
    if os.path.exists(filePath):
        with open(filePath, 'rb') as fh:
            response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel")
            response['Content-Disposition'] = 'inline; filename=' + os.path.basename(filePath)
            return response
    raise Http404