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 @@ + +
+
+ +
+
+ +
+ +
+ Examination Module +
+
+
+
+
+ + + + + + {% 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 @@

Health Center Module

Leave Module

+

Counselling cell Module

@@ -121,6 +122,9 @@

Hostel Module

File Tracking

+ +

Examination

+
diff --git a/FusionIIIT/templates/examination/announcement.html b/FusionIIIT/templates/examination/announcement.html new file mode 100644 index 000000000..a15d1acf1 --- /dev/null +++ b/FusionIIIT/templates/examination/announcement.html @@ -0,0 +1,134 @@ +{% extends 'examination/base.html' %} +{% block sidetabmenu %} + +{% endblock %} + +{% block content %} + +

Announcement

+
+ +{% comment %} Combined {% endcomment %} +
+ +{% comment %} First Row {% endcomment %} +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ + +{% comment %} Second Row {% endcomment %} + +
+ +
+
+ +
+ +
+ + + + + + + + + +
+ + + + + + + +
+ +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/examination/base.html b/FusionIIIT/templates/examination/base.html new file mode 100644 index 000000000..02caa8ef8 --- /dev/null +++ b/FusionIIIT/templates/examination/base.html @@ -0,0 +1,83 @@ +{% extends 'globals/base.html' %} +{% load static %} + +{% block title %} + examination +{% endblock %} + +{% block css %} + + +{% endblock %} + +{% block body %} + {% block navBar %} + {% include 'dashboard/navbar.html' %} + {% endblock %} + +
+ + {% comment %}The left-margin segment!{% endcomment %} +
+ + {% comment %}The left-rail segment starts here!{% endcomment %} +
+ + {% comment %}The user image card starts here!{% endcomment %} + {% block usercard %} + {% include 'globals/usercard.html' %} + {% endblock %} + {% comment %}The user image card ends here!{% endcomment %} + +
+ + {% comment %}The Tab-Menu starts here!{% endcomment %} + {% block sidetabmenu %} + {% endblock %} + {% comment %}The Tab-Menu ends here!{% endcomment %} +
+ + {% comment %} + The left-rail segment ends here! + {% endcomment %} + + {% comment %} + The central-rail segment starts here! + {% endcomment %} + +
+ + {% block content %} + {% endblock %} + +
+ {% comment %}The central-rail segment ends here!{% endcomment %} + + {% comment %}The right-rail segment starts here!{% endcomment %} +
+
+ {% comment %} + TODO: the right rail! + {% endcomment %} + {% block rightcontent %} + {% endblock %} + +
+
+ {% comment %}The right-rail segment ends here!{% endcomment %} + + {% comment %}The right-margin segment!{% endcomment %} +
+ +
+ {% comment %}The grid ends here!{% endcomment %} +{% endblock %} + +{% block javascript %} + + + +{% endblock %} + + + diff --git a/FusionIIIT/templates/examination/examination.html b/FusionIIIT/templates/examination/examination.html new file mode 100644 index 000000000..f2ab2a438 --- /dev/null +++ b/FusionIIIT/templates/examination/examination.html @@ -0,0 +1,21 @@ +{% extends 'examination/base.html' %} +{% block sidetabmenu %} + +{% endblock %} diff --git a/FusionIIIT/templates/examination/notReady_publish.html b/FusionIIIT/templates/examination/notReady_publish.html new file mode 100644 index 000000000..9af2dd9bc --- /dev/null +++ b/FusionIIIT/templates/examination/notReady_publish.html @@ -0,0 +1,150 @@ +{% extends 'examination/base.html' %} +{% block sidetabmenu %} + +{% endblock %} + +{% block content %} + +

Publish Result

+
+ +{% comment %} Combined {% endcomment %} +
+ +{% comment %} First Row {% endcomment %} +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ + +{% comment %} Second Row {% endcomment %} + +
+ +
+
+ +
+ +
+ + + +
+ +
+ + + +{% comment %} Warning {% endcomment %} + +
+ +

Course Grades are not yet verified

+

Please verify all courses

+
+ +
+ + + + + +
+ + + + + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/examination/publish.html b/FusionIIIT/templates/examination/publish.html new file mode 100644 index 000000000..cf0ae053c --- /dev/null +++ b/FusionIIIT/templates/examination/publish.html @@ -0,0 +1,134 @@ +{% extends 'examination/base.html' %} +{% block sidetabmenu %} + +{% endblock %} + +{% block content %} + +

Publish Result

+
+ +{% comment %} Combined {% endcomment %} +
+ +{% comment %} First Row {% endcomment %} +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ + +{% comment %} Second Row {% endcomment %} + +
+ +
+
+ +
+ +
+ + + + + + + + + +
+ + + + + + + +
+ +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/examination/submit.html b/FusionIIIT/templates/examination/submit.html new file mode 100644 index 000000000..6cf48adf8 --- /dev/null +++ b/FusionIIIT/templates/examination/submit.html @@ -0,0 +1,134 @@ +{% extends 'examination/base.html' %} +{% block sidetabmenu %} + +{% endblock %} + +{% block content %} + +

Submit Result

+
+ +{% comment %} Combined {% endcomment %} +
+ +{% comment %} First Row {% endcomment %} +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ + +{% comment %} Second Row {% endcomment %} + +
+ +
+
+ +
+ +
+ + + + + + + + + +
+ + + + + + + +
+ +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/examination/verify.html b/FusionIIIT/templates/examination/verify.html new file mode 100644 index 000000000..3aec12b1e --- /dev/null +++ b/FusionIIIT/templates/examination/verify.html @@ -0,0 +1,146 @@ +{% extends 'examination/base.html' %} +{% block sidetabmenu %} + + + + + + + + +{% endblock %} + + + +{% block content %} + + +
+
+ Verify Courses +
+
+ + +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+ +
+
+
+ +
+ +
+ + + + +
+ + + + + +{% endblock %} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 4cc3a0a30..f30bb509a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ amqp==5.0.2 -arabic-reshaper==2.1.1 +# arabic-reshaper==2.1.1 asgiref==3.3.1 attrs==20.3.0 beautifulsoup4==4.9.3