From d7235c6fbab4081d40f04d5be7a25c61580e121d Mon Sep 17 00:00:00 2001 From: Chintalapalli Sai Ganesh <97212923+SaiGanesh837@users.noreply.github.com> Date: Wed, 14 Feb 2024 23:02:15 +0530 Subject: [PATCH] feat: basic frontend of Examination module * implemented authentication and sidenavbar * added announcement section --- FusionIIIT/Fusion/settings/common.py | 1 + FusionIIIT/Fusion/urls.py | 1 + .../applications/examination/__init__.py | 0 FusionIIIT/applications/examination/admin.py | 3 + FusionIIIT/applications/examination/apps.py | 5 + .../examination/migrations/__init__.py | 0 FusionIIIT/applications/examination/models.py | 3 + FusionIIIT/applications/examination/tests.py | 3 + FusionIIIT/applications/examination/urls.py | 16 ++ FusionIIIT/applications/examination/views.py | 51 ++++++ FusionIIIT/templates/ais/account.html | 1 - FusionIIIT/templates/dashboard/modules.html | 22 +++ .../templates/dashboard/sidenavbar.html | 4 + .../templates/examination/announcement.html | 134 ++++++++++++++++ FusionIIIT/templates/examination/base.html | 83 ++++++++++ .../templates/examination/examination.html | 21 +++ .../examination/notReady_publish.html | 150 ++++++++++++++++++ FusionIIIT/templates/examination/publish.html | 134 ++++++++++++++++ FusionIIIT/templates/examination/submit.html | 134 ++++++++++++++++ FusionIIIT/templates/examination/verify.html | 146 +++++++++++++++++ requirements.txt | 2 +- 21 files changed, 912 insertions(+), 2 deletions(-) create mode 100644 FusionIIIT/applications/examination/__init__.py create mode 100644 FusionIIIT/applications/examination/admin.py create mode 100644 FusionIIIT/applications/examination/apps.py create mode 100644 FusionIIIT/applications/examination/migrations/__init__.py create mode 100644 FusionIIIT/applications/examination/models.py create mode 100644 FusionIIIT/applications/examination/tests.py create mode 100644 FusionIIIT/applications/examination/urls.py create mode 100644 FusionIIIT/applications/examination/views.py create mode 100644 FusionIIIT/templates/examination/announcement.html create mode 100644 FusionIIIT/templates/examination/base.html create mode 100644 FusionIIIT/templates/examination/examination.html create mode 100644 FusionIIIT/templates/examination/notReady_publish.html create mode 100644 FusionIIIT/templates/examination/publish.html create mode 100644 FusionIIIT/templates/examination/submit.html create mode 100644 FusionIIIT/templates/examination/verify.html diff --git a/FusionIIIT/Fusion/settings/common.py b/FusionIIIT/Fusion/settings/common.py index b98ea6960..6c424c9c3 100644 --- a/FusionIIIT/Fusion/settings/common.py +++ b/FusionIIIT/Fusion/settings/common.py @@ -111,6 +111,7 @@ 'notification', 'notifications', 'applications.academic_procedures', + 'applications.examination', 'applications.academic_information', 'applications.leave', 'applications.library', diff --git a/FusionIIIT/Fusion/urls.py b/FusionIIIT/Fusion/urls.py index 837bf776a..fafbab944 100755 --- a/FusionIIIT/Fusion/urls.py +++ b/FusionIIIT/Fusion/urls.py @@ -60,4 +60,5 @@ url(r'^income-expenditure/', include('applications.income_expenditure.urls')), url(r'^hr2/', include('applications.hr2.urls')), url(r'^recruitment/', include('applications.recruitment.urls')), + url(r'^examination/', include('applications.examination.urls')), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/FusionIIIT/applications/examination/__init__.py b/FusionIIIT/applications/examination/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/examination/admin.py b/FusionIIIT/applications/examination/admin.py new file mode 100644 index 000000000..8c38f3f3d --- /dev/null +++ b/FusionIIIT/applications/examination/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/FusionIIIT/applications/examination/apps.py b/FusionIIIT/applications/examination/apps.py new file mode 100644 index 000000000..4ea19472a --- /dev/null +++ b/FusionIIIT/applications/examination/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ExaminationConfig(AppConfig): + name = 'examination' diff --git a/FusionIIIT/applications/examination/migrations/__init__.py b/FusionIIIT/applications/examination/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/examination/models.py b/FusionIIIT/applications/examination/models.py new file mode 100644 index 000000000..71a836239 --- /dev/null +++ b/FusionIIIT/applications/examination/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/FusionIIIT/applications/examination/tests.py b/FusionIIIT/applications/examination/tests.py new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ b/FusionIIIT/applications/examination/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/FusionIIIT/applications/examination/urls.py b/FusionIIIT/applications/examination/urls.py new file mode 100644 index 000000000..b1be1d168 --- /dev/null +++ b/FusionIIIT/applications/examination/urls.py @@ -0,0 +1,16 @@ + +from django.conf.urls import url +from django.urls import path, include +from . import views +from django.contrib import admin + +app_name = 'examination' + +urlpatterns = [ + path('',views.exam,name='exam'), + path('submit/',views.submit,name='submit'), + path('verify/',views.verify,name='verify'), + path('publish/',views.publish,name='publish'), + path('notReady_publish/',views.notReady_publish,name='notReady_publish'), + +] diff --git a/FusionIIIT/applications/examination/views.py b/FusionIIIT/applications/examination/views.py new file mode 100644 index 000000000..a10c726b0 --- /dev/null +++ b/FusionIIIT/applications/examination/views.py @@ -0,0 +1,51 @@ +from django.db.models.query_utils import Q +from django.http import request,HttpResponse +from django.shortcuts import get_object_or_404, render, HttpResponse,redirect +from django.http import HttpResponse, HttpResponseRedirect +import itertools +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from django.contrib.auth.models import User + +# from applications.academic_information.models import Student +from applications.globals.models import (DepartmentInfo, Designation, + ExtraInfo, Faculty, HoldsDesignation) + + +@login_required(login_url='/accounts/login') +def exam(request): + """ + This function is used to Differenciate acadadmin and all other user. + + @param: + request - contains metadata about the requested page + + @variables: + user_details - Gets the information about the logged in user. + des - Gets the designation about the looged in user. + """ + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" : + return HttpResponseRedirect('/examination/submit/') + elif str(request.user) == "acadadmin" : + return HttpResponseRedirect('/examination/submit/') + + return HttpResponseRedirect('/dashboard/') + +@login_required(login_url='/accounts/login') +def submit(request): + return render(request,'../templates/examination/submit.html' , {}) + +@login_required(login_url='/accounts/login') +def verify(request): + return render(request,'../templates/examination/verify.html' , {}) + +@login_required(login_url='/accounts/login') +def publish(request): + return render(request,'../templates/examination/publish.html' ,{}) + + +@login_required(login_url='/accounts/login') +def notReady_publish(request): + return render(request,'../templates/examination/notReady_publish.html',{}) \ No newline at end of file diff --git a/FusionIIIT/templates/ais/account.html b/FusionIIIT/templates/ais/account.html index 9f64e467f..15e92bad6 100644 --- a/FusionIIIT/templates/ais/account.html +++ b/FusionIIIT/templates/ais/account.html @@ -1,7 +1,6 @@ {% extends 'globals/base.html' %} {% load static %} - {% block title %} Academic Information System {% endblock %} diff --git a/FusionIIIT/templates/dashboard/modules.html b/FusionIIIT/templates/dashboard/modules.html index 73fc33d85..ab5e0c192 100755 --- a/FusionIIIT/templates/dashboard/modules.html +++ b/FusionIIIT/templates/dashboard/modules.html @@ -232,7 +232,29 @@ + +
+ + + + + + {% comment %} diff --git a/FusionIIIT/templates/dashboard/sidenavbar.html b/FusionIIIT/templates/dashboard/sidenavbar.html index 81cecbe94..6fbf3e921 100644 --- a/FusionIIIT/templates/dashboard/sidenavbar.html +++ b/FusionIIIT/templates/dashboard/sidenavbar.html @@ -99,6 +99,7 @@