Beispiel #1
0
def upload_record(request):
    error_message = ""
    if request.method == "POST":
        excel_file = request.FILES.get("file")

        academic_year = request.POST.get("academic_year")
        form = request.POST.get("form")
        semester = request.POST.get("semester")
        subject_name = request.POST.get("subject_name")

        # Parameters to the redirect function
        options = {
            "academic_year": academic_year,
            "form": form,
            "semester": semester,
            "subject_name": subject_name,
        }

        file_extention = str(excel_file).split(".")[-1]
        if (file_extention == "xls") or file_extention == "xlsx":
            if add_record(request, excel_file):
                # User uploaded file
                uploadedfile = UploadedFile(name=excel_file.name,
                                            file=excel_file,
                                            user=request.user)
                uploadedfile.save()
                return redirect_handler(request, "staff:preview_added_records",
                                        options)
                # return redirect()
        else:
            request.session[
                "error_message"] = "Only excel files are acceptable!"
    return redirect("staff:preview_added_records")
Beispiel #2
0
def actions(request):
    if request.method == "POST":
        failed_ids = request.POST.getlist("failed_ids")
        action = request.POST.get("action")
        print(action)
        if action == "resend":
            return redirect_handler(request, "sms:resend_sms",
                                    {"failed_ids": failed_ids})

        elif action == "delete":
            failedsms = FailedSMS.objects.filter(id__in=failed_ids)
            context = {"failedsms": failedsms}
            return render(request, "sms/confirm_delete.html", context)

    else:
        return redirect("sms:index")
Beispiel #3
0
    def get(self, request):
        if not request.user.is_authenticated:
            return redirect_handler(request, "student:login", {"next":request.META.get("PATH_INFO")})   

        class_id       = request.GET.get("class_id")
        student_class = StudentClass.objects.filter(student_class_id=class_id).first()
        if student_class:
            student_transcript = {}
            student_forms = {}
            student_semesters = {}
            students = Student.objects.filter(student_class=student_class)
            if students:
                for student in students:
                    records = Record.objects.filter(student=student).order_by("-date")
                    semesters   = records.values("semester").order_by("semester").distinct()
                    
                    forms  = []
                    for item in records:
                        if not item.record_class.form in forms:
                            forms.append(item.record_class.form)
                    student_transcript.update({student:records})
                    student_forms.update({student:forms})
                    student_semesters.update({student:semesters})

            context = {
                "student_transcript":student_transcript,
                "student_forms":student_forms,
                "student_semesters":student_semesters,
                "request":request,
            }
        else:
            context = {
                "error_message": f"Class with id '{class_id}' not found",
            }

        pdf = render_to_pdf('pdf/class_transcript.html', context)
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "%s.pdf" % ("Reports")
            content = "inline; filename='%s'" % (filename)
            download = request.GET.get("download")
            if download:
                content = "attachment; filename='%s'" % (filename)
            response['Content-Disposition'] = content
            return response
        return HttpResponse("Not found")
Beispiel #4
0
    def get(self, request, student_class_id, academic_year, semester):        
        if request.user.is_authenticated:
            if request.user_type == "student":
                return redirect_handler(request, "accounts:login", {"next":request.META.get("PATH_INFO")})
        else:
            return redirect_handler(request, "accounts:login", {"next":request.META.get("PATH_INFO")})
                
        academic_year       = "/".join(academic_year.split("-"))
        semester            = " ".join(semester.split("-")).title()
        student_class       = get_object_or_404(StudentClass, student_class_id=student_class_id)

        students = Student.objects.filter(student_class=student_class)
        student_teacher_remarks = {}
        student_house_master_remarks = {}
        student_core_records = {}
        student_elective_records= {}

        for student in students:
            teacher_remarks = ClassTeacherRemarks.objects.filter(student = student, 
                                                    semester=semester, 
                                                    academic_year=academic_year, 
                                                    ).first()
            student_teacher_remarks.update({student:teacher_remarks})

            house_master_remarks = HouseMasterRemarks.objects.filter(student = student,
                                                    semester=semester, 
                                                    academic_year=academic_year).first()

            student_house_master_remarks.update({student:house_master_remarks})

            elective_records = Record.objects.filter(semester=semester,
                                                    academic_year = academic_year,
                                                    student = student,
                                                    subject__is_elective = True,
                                                )
            student_elective_records.update({student:elective_records})
            
            core_records = Record.objects.filter(semester=semester,
                                                academic_year = academic_year,
                                                student = student,
                                                subject__is_elective = False,
                                            )
            student_core_records.update({student:core_records})

        context = {
            "students":students,
            "academic_year":academic_year,
            "semester":semester,
            "student_teacher_remarks": student_teacher_remarks,
            "student_house_master_remarks": student_house_master_remarks,
            "student_core_records": student_core_records,
            "student_elective_records": student_elective_records,
            "school": School.objects.all().first(),
            "class":student_class,
            "current_time":datetime.datetime.now()
        }

        pdf = render_to_pdf('pdf/class_report_pdf.html', context)
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "%s.pdf" % ("Reports")
            content = "inline; filename='%s'" % (filename)
            download = request.GET.get("download")
            if download:
                content = "attachment; filename='%s'" % (filename)
            response['Content-Disposition'] = content
            return response
        return HttpResponse("Not found")
Beispiel #5
0
    def get(self, request, academic_year, semester, student_id):
        if not request.user.is_authenticated:
            return redirect_handler(request, "student:login", {"next":request.META.get("PATH_INFO")})   

        academic_year       = "/".join(academic_year.split("-"))
        student_id          = "/".join(student_id.split("-"))
        semester            = " ".join(semester.split("-")).title()
        
        # Authenticating logged in student
        student = Student.objects.filter(student_id=student_id).first()
        if student:
            if request.user_type == "student":
                if not request.user.student.student_id == student_id:
                    return redirect_handler(request, "student:login", {"next":request.META.get("PATH_INFO")})   


            teacher_remarks = ClassTeacherRemarks.objects.filter(student__student_id=student_id, 
                                                    semester=semester, 
                                                    academic_year=academic_year, 
                                                    ).first()

            house_master_remarks = HouseMasterRemarks.objects.filter(student__student_id=student_id, 
                                                    semester=semester, 
                                                    academic_year=academic_year).first()
                                                
            elective_records = Record.objects.filter(semester=semester,
                                                     academic_year = academic_year,
                                                     student__student_id = student_id,
                                                     subject__is_elective = True,
                                                )
            
            core_records = Record.objects.filter(semester=semester,
                                                academic_year = academic_year,
                                                student__student_id=student_id, 
                                                subject__is_elective = False,
                                            )
            
            # Getting class of record
            record = elective_records.first() or core_records.first()
            student_class = record.record_class
            print(student_class)

            context = {
                "academic_year": academic_year,
                "semester": semester,
                "elective_records": elective_records,
                "core_records": core_records,
                "teacher_remarks": teacher_remarks, 
                "house_master_remarks": house_master_remarks,
                "school": School.objects.all().first(),
                "student" : student,
                "student_class" : student_class,
                "current_time":datetime.datetime.now()
            }
        else:
            context = {
                "error_message":f"Student with id '{student_id}' not found",
            }
        pdf = render_to_pdf('pdf/report_pdf.html', context)
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "%s.pdf" % ("Reports")
            content = "inline; filename='%s'" % (filename)
            download = request.GET.get("download")
            if download:
                content = "attachment; filename='%s'" % (filename)
            response['Content-Disposition'] = content
            return response
        return HttpResponse("Not found")