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
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"})
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
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})
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"})
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