Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,6 @@ package-lock.json


.DS_Store
**/generated.pdf

.ruff_cache/
14 changes: 14 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.9
hooks:
- id: ruff
args: [ --fix ]
- id: ruff-format
18 changes: 15 additions & 3 deletions FusionIIIT/Fusion/middleware/custom_middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver
from applications.globals.models import (ExtraInfo, Feedback, HoldsDesignation,
Issue, IssueImage, DepartmentInfo)
Issue, IssueImage, DepartmentInfo,ModuleAccess)
from django.shortcuts import get_object_or_404, redirect, render

def user_logged_in_middleware(get_response):
Expand Down Expand Up @@ -35,7 +35,19 @@ def user_logged_in_handler(sender, user, request, **kwargs):
print(i)

request.session['currentDesignationSelected'] = designation[0]
request.session['allDesignations'] = designation
request.session['allDesignations'] = designation
first_designation = designation[0]
module_access = ModuleAccess.objects.filter(designation=first_designation).first()

if module_access:
access_rights = {}

field_names = [field.name for field in ModuleAccess._meta.get_fields() if field.name not in ['id', 'designation']]

for field_name in field_names:
access_rights[field_name] = getattr(module_access, field_name)

request.session['moduleAccessRights'] = access_rights
print("logged iN")

# Set the flag in the session to indicate that the function has bee+n executed
Expand All @@ -47,4 +59,4 @@ def middleware(request):
response = get_response(request)
return response

return middleware
return middleware
11 changes: 8 additions & 3 deletions FusionIIIT/Fusion/settings/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
# email of sender

EMAIL_HOST_USER = '[email protected]'
# EMAIL_HOST_PASSWORD = 'password'

EMAIL_PORT = 587
ACCOUNT_EMAIL_REQUIRED = True
Expand Down Expand Up @@ -79,8 +80,8 @@


# CELERY STUFF
# CELERY_BROKER_URL = 'redis://localhost:6379'
# CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
Expand Down Expand Up @@ -128,6 +129,7 @@
'applications.ps1',
'applications.programme_curriculum',
'applications.placement_cell',
'applications.otheracademic',
'applications.recruitment',
'applications.scholarships',
'applications.visitor_hostel',
Expand Down Expand Up @@ -279,7 +281,10 @@
DATA_UPLOAD_MAX_NUMBER_FIELDS = 10240
YOUTUBE_DATA_API_KEY = 'api_key'

CORS_ALLOWED_ORIGINS = [
"http://localhost:5173", # Add your frontend origin here
]

CORS_ALLOW_CREDENTIALS = True

CORS_ORIGIN_ALLOW_ALL = True
ALLOW_PASS_RESET = True
6 changes: 6 additions & 0 deletions FusionIIIT/Fusion/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
from django.contrib import admin
from django.contrib.auth import views as auth_views

from django.views.static import serve


urlpatterns = [
url(r'^', include('applications.globals.urls')),
Expand All @@ -37,6 +39,8 @@
url(r'^__debug__/', include(debug_toolbar.urls)),
url(r'^research_procedures/', include('applications.research_procedures.urls')),
url(r'^accounts/', include('allauth.urls')),

# url(r'^api/iwdModuleV2/', include('applications.iwdModuleV2.api.urls')),


url(r'^eis/', include('applications.eis.urls')),
Expand All @@ -61,4 +65,6 @@
url(r'^hr2/', include('applications.hr2.urls')),
url(r'^recruitment/', include('applications.recruitment.urls')),
url(r'^examination/', include('applications.examination.urls')),
url(r'^otheracademic/', include('applications.otheracademic.urls')),
url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT},),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
3 changes: 2 additions & 1 deletion FusionIIIT/applications/academic_information/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@

# url(r'^meeting',views.meeting_api,name='meeting-get-api'),

# url(r'^calendar',views.calendar_api,name='calendar-get-api'),
url(r'^calendar',views.ListCalendarView.as_view(),name='calendar-get-api'),
url(r'^update-calendar',views.update_calendar,name='calendar-update-api'),

# url(r'^holiday',views.holiday_api,name='holiday-get-api'),

Expand Down
22 changes: 21 additions & 1 deletion FusionIIIT/applications/academic_information/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from applications.globals.models import User,ExtraInfo
from applications.academic_information.models import Student, Course, Curriculum, Curriculum_Instructor, Student_attendance, Meeting, Calendar, Holiday, Grades, Spi, Timetable, Exam_timetable
from . import serializers
from rest_framework.generics import ListCreateAPIView

@api_view(['GET'])
@permission_classes([IsAuthenticated])
Expand Down Expand Up @@ -82,7 +83,26 @@ def calendar_api(request):
'calendar' :calendar_serialized,
}
return Response(data=resp,status=status.HTTP_200_OK)


class ListCalendarView(ListCreateAPIView):
permission_classes = [IsAuthenticated]
authentication_classes=[TokenAuthentication]
serializer_class = serializers.CalendarSerializers
queryset = Calendar.objects.all()

@api_view(['PUT'])
@permission_classes([IsAuthenticated])
@authentication_classes([TokenAuthentication])
def update_calendar(request):
if request.method == "PUT":
id = request.data.get("id")
instance = Calendar.objects.get(pk = id)
instance.from_date = request.data.get("from_date")
instance.to_date = request.data.get("to_date")
instance.description = request.data.get("description")
instance.save()

return Response({"message": "Updated successfully!"})

@api_view(['GET'])
@permission_classes([IsAuthenticated])
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 3.1.5 on 2024-04-15 23:58
# Generated by Django 3.1.5 on 2024-07-16 15:44

from django.db import migrations, models
import django.db.models.deletion
Expand All @@ -9,8 +9,8 @@ class Migration(migrations.Migration):
initial = True

dependencies = [
('globals', '0001_initial'),
('programme_curriculum', '0001_initial'),
('globals', '0001_initial'),
]

operations = [
Expand Down
31 changes: 21 additions & 10 deletions FusionIIIT/applications/academic_information/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

from applications.academic_procedures.views import acad_proced_global_context , get_sem_courses
from applications.programme_curriculum.models import Batch

from django.db.models import Q


@login_required
Expand Down Expand Up @@ -845,6 +845,8 @@ def generatexlsheet(request):
# print(request.POST)
try:
batch = request.POST['batch']#batch hai year wala (2020 , 21)
if batch == "":
batch = datetime.datetime.now().year
course_id = int(request.POST['course']) # id of course in integer
course = course = Courses.objects.get(id=course_id)

Expand All @@ -858,17 +860,26 @@ def generatexlsheet(request):
obj=""

registered_courses = []
for i in obj:
if i.student_id.batch_id.year == int(batch):
registered_courses.append(i)
registered_courses = course_registration.objects.filter(
Q(working_year=int(batch)) &
Q(course_id=course) &
Q(student_id__finalregistration__verified=True)
)

# for i in obj:
# if i.student_id.batch_id.year == int(batch):
# registered_courses.append(i)
ans = []
student_ids = set()
for i in registered_courses:
k = []
k.append(i.student_id.id.id)
k.append(i.student_id.id.user.first_name)
k.append(i.student_id.id.user.last_name)
k.append(i.student_id.id.department)
ans.append(k)
if i.student_id.id.id not in student_ids:
student_ids.add(i.student_id.id.id )
k = []
k.append(i.student_id.id.id)
k.append(i.student_id.id.user.first_name)
k.append(i.student_id.id.user.last_name)
k.append(i.student_id.id.department)
ans.append(k)
ans.sort()
output = BytesIO()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@

from applications.academic_procedures.models import (ThesisTopicProcess, InitialRegistrations,InitialRegistration,
FinalRegistration, FinalRegistrations, SemesterMarks,
BranchChange , StudentRegistrationChecks, Semester, backlog_course , CourseSlot , FeePayments , Course, course_registration)
BranchChange , StudentRegistrationChecks, Semester, backlog_course , CourseSlot , FeePayments , course_registration)

from applications.programme_curriculum.models import Course

from applications.academic_information.api.serializers import (CurriculumInstructorSerializer,
CurriculumSerializer , CourseSerializer , StudentSerializers )
Expand Down Expand Up @@ -73,7 +75,10 @@ class Meta:
model = CourseSlot
fields = ('__all__')


class CourseSerializer(serializers.ModelSerializer):

class Meta:
model = Course
fields = ('__all__')
fields = ['id','code','name','credit']

1 change: 1 addition & 0 deletions FusionIIIT/applications/academic_procedures/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

url(r'^acad/view_registrations' , views.acad_view_reigstrations , name='acad_view_registrations'),
url(r'^acad/verify_registration' , views.verify_registration , name='verify_registration'),
url(r'^acad/verify_course' , views.verify_course , name='verify_course'),
url(r'^acad/get_course_list' , views.get_course_list , name = 'get_course_list' ),
url(r'^acad/get_all_courses' , views.get_all_courses , name = 'get_all_courses' ),
url(r'^acad/gen_roll_list' , views.gen_roll_list , name = 'gen_roll_list' ),
Expand Down
Loading