Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
817f981
gad-3 : week-2 : changed api functions (#1069)
ujjawallele13 Feb 16, 2023
1e34c96
Checked the sidebar after acad-admin login and fixed the (#1113)
EyeOfHorus158 Feb 16, 2023
ba91cf0
Merge branch 'main' into test-temp
akshatnema Feb 18, 2023
15e59b1
Merge branch 'test-temp' into gad-3
akshatnema Feb 18, 2023
faf49c6
Merge branch 'test-temp' into ac-1
akshatnema Feb 18, 2023
7597de4
Merge branch 'main' into gad-3
akshatnema Mar 4, 2023
c326956
gad-3 : workers would be assigned by Section Incharge instead of Care…
ujjawallele13 Mar 5, 2023
4d7e4bb
gad-3: Week7 : fixed the notification and re-assign worker button iss…
ujjawallele13 Mar 13, 2023
4abf495
auto-restart docker (#1147)
Aksh-Bansal-dev Mar 14, 2023
0cc61d2
Merge branch 'main' into gad-3
akshatnema Mar 15, 2023
e856260
Merge branch 'main' into ac-1
akshatnema Mar 15, 2023
d747e3f
Merge branch 'main' into ac-1
akshatnema Mar 15, 2023
6db87c4
Merge branch 'main' into gad-3
akshatnema Mar 15, 2023
1a78289
Merge branch 'main' into ac-1
akshatnema Mar 18, 2023
c91ec0c
Merge branch 'main' into gad-3
akshatnema Mar 18, 2023
5ab8fa2
Merge branch 'main' into ac-1
akshatnema Mar 19, 2023
4821144
Merge branch 'main' into gad-3
akshatnema Mar 19, 2023
c2e2e8e
Merge branch 'test-temp' into os-2
akshatnema Mar 20, 2023
54bf66d
OS -2 : Week 4 : Addition of important personal information during bo…
Apc010101 Mar 20, 2023
1b6f34b
gad-3 : week-8 : db migrations after adding Section Incharge (#1173)
ujjawallele13 Mar 21, 2023
71a5cd0
Merge branch 'main' into ac-1
akshatnema Mar 23, 2023
ecc0619
Merge branch 'main' into gad-3
akshatnema Mar 23, 2023
7f0341a
Merge branch 'main' into os-2
akshatnema Mar 23, 2023
439399b
gad-3 : week8 : remove wrong dependency to globals. (#1178)
ujjawallele13 Mar 24, 2023
394e0e3
Merge branch 'main' into ac-1
akshatnema Mar 26, 2023
2b007db
Merge branch 'main' into gad-3
akshatnema Mar 26, 2023
a2b8539
Merge branch 'main' into os-2
akshatnema Mar 26, 2023
c1359b7
Added pylint (#1302)
hardiksharma11 Mar 11, 2024
ed210c1
Revert "Added pylint (#1302)" (#1324)
ChaudharyRaman Mar 11, 2024
6de59f0
changes in programme_cuuriculam,adding version to models (#1330)
anudeeps0306 Mar 12, 2024
0c2392c
AC-1 : Add functionality to add and update courses (#1300)
Ravichendraa Mar 17, 2024
01bf0c9
Gad 5 (#1341)
abhi87374 Mar 18, 2024
1db64d7
Os 2 (#1346)
prem-charan Mar 19, 2024
48bf988
Revert "Os 2" (#1352)
prajjwalkapoor Mar 19, 2024
8fee0c6
Os 2 (#1353)
prem-charan Mar 19, 2024
6625f30
OS-1 | VH Module (#1334)
prajjwalkapoor Mar 19, 2024
ef28e8c
Merge pull request #1360 from abhi87374/os-2
Shivkant-Chauhan Mar 19, 2024
d6caf93
AC-1 Updated according to dashboard (#1355)
Ravichendraa Mar 20, 2024
eddb6b0
Sa 2 (#1362)
abhi87374 Mar 20, 2024
56e4770
Gad 4 - FTS
prajjwalkapoor Mar 20, 2024
8b0b349
Added pylint (#1302)
hardiksharma11 Mar 11, 2024
f11d2be
Revert "Added pylint (#1302)" (#1324)
ChaudharyRaman Mar 11, 2024
c6dc7f4
changes in programme_cuuriculam,adding version to models (#1330)
anudeeps0306 Mar 12, 2024
c9ca4a0
Merge branch 'ac-1' into staging
prajjwalkapoor Mar 20, 2024
16523a7
Ac 1 Request to merge in staging again. (#1373)
Kushagra-Yadav Mar 20, 2024
31c7b6e
Revert "Ac 1 Request to merge in staging again. (#1373)" (#1376)
abhi87374 Mar 20, 2024
d4547f4
Ac-1 updated model.py (#1372) (#1378)
abhi87374 Mar 20, 2024
9cdae29
merging Ac 5 into staging (#1379)
abhi87374 Mar 20, 2024
5824465
modified academic_info_models
prabhatsuman Mar 20, 2024
b75a84d
removed migrations
prabhatsuman Mar 21, 2024
870e597
removed migration folders
prabhatsuman Mar 21, 2024
f22f6e2
Merge branch 'staging2' of github.com:prabhatsuman/Fusion into staging5
prabhatsuman Mar 21, 2024
05290c0
added migrationns
prabhatsuman Mar 21, 2024
37e0ad6
Update development.py
prabhatsuman Mar 21, 2024
07c1047
Update requirements.txt
prabhatsuman Mar 21, 2024
1b4c7d3
Gad 3 (#1383)
nidhibarapatre Mar 21, 2024
195f71a
Ac 2 merging to staging (#1384)
abhi87374 Mar 21, 2024
125aed6
Merge branch 'FusionIIIT:main' into staging6
prabhatsuman Mar 21, 2024
4bf1be8
Staging6 (#1385)
prabhatsuman Mar 21, 2024
b395f7b
corrected faculty profile error
prabhatsuman Mar 21, 2024
036fce8
Merge branch 'staging6' of github.com:prabhatsuman/Fusion into staging6
prabhatsuman Mar 21, 2024
b2028f9
correct faculty profile error
prabhatsuman Mar 21, 2024
05c2afd
corrected user profile
prabhatsuman Mar 21, 2024
824a15c
Faculty Profile errors resolved (#1388)
prabhatsuman Mar 21, 2024
920dcce
Gad-3 : fixed minor issues (#1389)
nidhibarapatre Mar 26, 2024
fc063bc
Gad 3 complaint (#1390)
nidhibarapatre Apr 2, 2024
aae2c18
Gad 3 complaint (#1391)
nidhibarapatre Apr 2, 2024
994a569
merged staging into gad-3
abhi87374 Apr 2, 2024
3c5af53
Merge branch 'staging' into gad-3
abhi87374 Apr 2, 2024
0b4ad88
merge Gad 3 into staging (#1392)
abhi87374 Apr 2, 2024
ad5386b
migrations removed
prabhatsuman Apr 4, 2024
1990420
Merge branch 'staging7' into staging6
prabhatsuman Apr 4, 2024
e3eea54
Merge branch 'staging6-2' of github.com:prabhatsuman/Fusion into stag…
prabhatsuman Apr 4, 2024
918ccbf
added phc corrections
prabhatsuman Apr 7, 2024
643a4fa
prescribe issue resolved in PHC
prabhatsuman Apr 8, 2024
6088734
phc issue resolved
prabhatsuman Apr 10, 2024
ec66276
Merge branch 'Gad-3' into staging-new
prabhatsuman Apr 10, 2024
b93e92d
complaint management issue solved
prabhatsuman Apr 10, 2024
51183a2
Merge pull request #1407 from prabhatsuman/staging-new
Ykumar1415 Apr 10, 2024
b74458b
changes in gitignore , bugs and issues fixed
Divyanshu-iiitdmj Apr 10, 2024
5253873
merging sa-4(Pcell) into latest_staging (#1417)
abhi87374 Apr 10, 2024
c128c16
Pcell (#1423)
abhi87374 Apr 11, 2024
2df23d6
corrected requirement txt version
abhi87374 Apr 11, 2024
79cf97b
mess update merge (#1421) (#1427)
abhi87374 Apr 11, 2024
578e9b2
Update booking-request-action-modal.html
abhi87374 Apr 11, 2024
1217f45
corrected files
Divyanshu-iiitdmj Apr 11, 2024
2c266eb
before merging latest staging
Divyanshu-iiitdmj Apr 11, 2024
18cd91d
solved issues after merge in latest_staging
Divyanshu-iiitdmj Apr 11, 2024
242eae0
updated migrations
Divyanshu-iiitdmj Apr 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,4 @@ node_modules/
FusionIIIT/static/
package-lock.json

docker-entrypoint.sh


FusionIIIT/applications/eis/migrations/

postgres_data

# sample files from media/Adminstrator
!media/Administrator/academic_procedures/sample_courses_allotment.xls
!media/Administrator/academic_procedures/sample_student_profile.xlsx
11 changes: 6 additions & 5 deletions FusionIIIT/Fusion/settings/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.humanize',

'django_crontab',
'corsheaders',

'applications.eis',
Expand Down Expand Up @@ -171,7 +171,7 @@
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, '..', 'templates/'),],
'DIRS': [os.path.join(BASE_DIR, '..', 'templates'),],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
Expand Down Expand Up @@ -256,9 +256,9 @@

# os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static/')
STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'media/')
MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'media')
MEDIA_URL = '/media/'

ACCOUNT_USERNAME_REQUIRED = False
Expand All @@ -279,5 +279,6 @@
YOUTUBE_DATA_API_KEY = 'api_key'



CORS_ORIGIN_ALLOW_ALL = True
ALLOW_PASS_RESET = True
ALLOW_PASS_RESET = True
12 changes: 11 additions & 1 deletion FusionIIIT/Fusion/settings/development.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from Fusion.settings.common import *

DEBUG = True

TEMPLATE_DEBUG = True
SECRET_KEY = '=&w9due426k@l^ju1=s1)fj1rnpf0ok8xvjwx+62_nc-f12-8('

ALLOWED_HOSTS = ['*']
Expand All @@ -16,9 +16,11 @@
}
}


REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
Expand Down Expand Up @@ -53,3 +55,11 @@
DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS': False,
}

CRONJOBS = [
# the below job will update the bill at every minute can be used for testing
# ('* * * * *', 'applications.central_mess.tasks.generate_bill'),

#the below job which we need to add in production server, to update the mess bill of student everyday at 10 pm in night
('0 22 * * *', 'applications.central_mess.tasks.generate_bill'),
]
4 changes: 2 additions & 2 deletions FusionIIIT/applications/academic_information/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ class Student(models.Model):
batch_id = models.ForeignKey(Batch, null=True, blank=True, on_delete=models.CASCADE)
cpi = models.FloatField(default=0)
category = models.CharField(max_length=10, choices=Constants.CATEGORY, null=False)
father_name = models.CharField(max_length=40, default='')
mother_name = models.CharField(max_length=40, default='')
father_name = models.CharField(max_length=40, default='',null=True)
mother_name = models.CharField(max_length=40, default='',null=True)
hall_no = models.IntegerField(default=0)
room_no = models.CharField(max_length=10, blank=True, null=True)
specialization = models.CharField(max_length=40,choices=Constants.MTechSpecialization, null=True, default='')
Expand Down
2 changes: 1 addition & 1 deletion FusionIIIT/applications/academic_procedures/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,5 +72,5 @@
url(r'^acad_person/add_course_to_slot/' , views.add_course_to_slot , name = 'add_course_to_slot'),
url(r'^acad_person/replaceSwayam/', views.replaceSwayam, name='replaceSwayam'),
url(r'^acad_person/swayam_replace/', views.swayam_replace, name='swayam_replace'),

url(r'^register_backlog_course/' , views.register_backlog_course , name = 'register_backlog_course')
]
93 changes: 64 additions & 29 deletions FusionIIIT/applications/academic_procedures/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,17 @@ def main(request):
def academic_procedures(request):

current_user = get_object_or_404(User, username=request.user.username)

#extra info details , user id used as main id
user_details = ExtraInfo.objects.select_related('user','department').get(user = request.user)

des = HoldsDesignation.objects.all().select_related().filter(user = request.user).first()
# des = HoldsDesignation.objects.all().select_related().filter(user = request.user).first()

if str(des.designation) == "student":
if request.session.get('currentDesignationSelected') == "student":
obj = Student.objects.select_related('id','id__user','id__department').get(id = user_details.id)
return HttpResponseRedirect('/academic-procedures/stu/')
# return HttpResponseRedirect('/logout/')
elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" :
elif request.session.get('currentDesignationSelected') == "faculty" or request.session.get('currentDesignationSelected') == "Associate Professor" or request.session.get('currentDesignationSelected') == "Professor" or request.session.get('currentDesignationSelected') == "Assistant Professor" :
return HttpResponseRedirect('/academic-procedures/fac/')
# return HttpResponseRedirect('/logout/')

Expand All @@ -107,7 +107,7 @@ def academic_procedures(request):

})
else:
return HttpResponse('person not found')
return HttpResponseRedirect('/dashboard/')
#
#
#
Expand All @@ -118,19 +118,20 @@ def academic_procedures(request):
def academic_procedures_faculty(request):

current_user = get_object_or_404(User, username=request.user.username)

if request.session.get('currentDesignationSelected') != 'faculty':
return HttpResponseRedirect('/dashboard/')
#extra info details , user id used as main id
user_details = ExtraInfo.objects.select_related('user','department').get(user = request.user)
des = HoldsDesignation.objects.all().select_related().filter(user = request.user).first()
fac_id = user_details
fac_name = user_details.user.first_name + " " + user_details.user.last_name
if str(des.designation) == "student":
return HttpResponseRedirect('/academic-procedures/main/')
# if str(des.designation) == "student":
# return HttpResponseRedirect('/academic-procedures/main/')

elif str(request.user) == "acadadmin":
return HttpResponseRedirect('/academic-procedures/main/')
# elif str(request.user) == "acadadmin":
# return HttpResponseRedirect('/academic-procedures/main/')

elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor":
if request.session.get('currentDesignationSelected') == "faculty" or str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor":

object_faculty = Faculty.objects.select_related('id','id__user','id__department').get(id = user_details.pk)

Expand Down Expand Up @@ -216,7 +217,8 @@ def account(request):
def academic_procedures_student(request):

current_user = get_object_or_404(User, username=request.user.username)

# if global_var != "student":
# return HttpResponse("Student has no record")
user_details = ExtraInfo.objects.select_related('user','department').get(id = request.user)
des = HoldsDesignation.objects.all().select_related().filter(user = request.user).first()

Expand Down Expand Up @@ -474,16 +476,23 @@ def academic_procedures_student(request):
cur_spi='Sem results not available' # To be fetched from db if result uploaded

backlogCourseList = []
auto_backlog_courses = list(SemesterMarks.objects.filter(student_id = obj , grade = 'F'))
auto_backlog_courses_list = []
for i in auto_backlog_courses:
if not i.curr_id.courseslots.filter(type__contains="Optional").exists():
auto_backlog_courses_list.append([i.curr_id.name, i.curr_id.code, i.curr_id.version, i.curr_id.credit , i.grade])

backlogCourses = backlog_course.objects.select_related('course_id' , 'student_id' , 'semester_id' ).filter(student_id=obj)
for i in backlogCourses:
summer_course = "Yes" if i.is_summer_course else "No"
course_details = i.course_id.course_details if i.course_id.course_details else "N/A"

backlogCourseList.append([i.course_id.course_name, course_details , i.semester_id.semester_no , summer_course])

Mess_bill = Monthly_bill.objects.filter(student_id = obj)
Mess_pay = Payments.objects.filter(student_id = obj)

# Mess_bill = Monthly_bill.objects.filter(student_id = obj)
# Mess_pay = Payments.objects.filter(student_id = obj)
Mess_bill = []
Mess_pay = []
# Branch Change Form save
if request.method=='POST':
if True:
Expand All @@ -495,7 +504,7 @@ def academic_procedures_student(request):
return render(
request, '../templates/academic_procedures/academic.html',
{'details': details,
# 'calendar': calendar,
# 'calendar': calendar,
'currently_registered': currently_registered_course,
'pre_registered_course' : pre_registered_courses,
'pre_registered_course_show' : pre_registered_course_show,
Expand Down Expand Up @@ -555,6 +564,7 @@ def academic_procedures_student(request):
'tot_d':tot_d,
'attendence':attendence,
'backlogCourseList' : backlogCourseList,
'auto_backlog_courses_list' : auto_backlog_courses_list,
'BranchChangeForm': BranchChangeForm(),
'BranchFlag':branchchange_flag,
'assistantship_flag' : student_status,
Expand Down Expand Up @@ -1905,6 +1915,8 @@ def get_add_course_options(branch_courses, current_register, batch):
for c in current_register:
slots.append(c[0])
for courseslot in branch_courses:
if courseslot.type == "Swayam":
continue
max_limit = courseslot.max_registration_limit
if courseslot not in slots:
lis = []
Expand Down Expand Up @@ -2616,7 +2628,7 @@ def auto_verify_registration(request):
sem_id = Semester.objects.get(curriculum = curr_id, semester_no = sem_no)
with transaction.atomic():
academicadmin = get_object_or_404(User, username = "acadadmin")
FinalRegistration.objects.filter(student_id = student_id, verified = False, semester_id = sem_id).delete()
# FinalRegistration.objects.filter(student_id = student_id, verified = False, semester_id = sem_id).delete()
StudentRegistrationChecks.objects.filter(student_id = student_id, semester_id = sem_id).update(final_registration_flag = False)
FeePayments.objects.filter(student_id = student_id, semester_id = sem_id).delete()
academics_module_notif(academicadmin, student_id.id.user, 'Registration Declined - '+reject_reason)
Expand Down Expand Up @@ -4008,17 +4020,6 @@ def swayam_replace(request):

swayam_semester_id_value = request.POST['swayam_semester_id']
swayam_semester_id_value_array = [int(semester_str) for semester_str in swayam_semester_id_value.split(',')[:-1]]
# print(swayam_semester_id_value_array)
# print(swayam_semester_id_value)

# from your_app.models import Student
# Retrieve the Student object based on the student ID
# student_id = '20BCS074'
# student_model = Student.objects.get(id=user_value)
#print(student)
# course_id_model = Course.objects.get()
# Create the course_registration object with the Student object
# course_registration.objects.create(student_id=student, ...)



Expand Down Expand Up @@ -4059,4 +4060,38 @@ def swayam_replace(request):
messages.error(request, f"Error in Registration: {error_message}")
return HttpResponseRedirect('/academic-procedures/main')
else:
return HttpResponseRedirect('/academic-procedures/main')
return HttpResponseRedirect('/academic-procedures/main')

def register_backlog_course(request):
if request.method == 'POST':
try:
current_user = request.user
current_user = ExtraInfo.objects.all().filter(user=request.user).first()
current_user = Student.objects.all().filter(id=current_user.id).first()
sem_id = Semester.objects.filter(id = request.POST.get('semester')).first()
course_id = Courses.objects.get(code = request.POST.get('courseCode') , version = request.POST.get('Version'))
course_slots = course_id.courseslots.all()
course_slot_id = ''
if course_slots:
course_slot_id = CourseSlot.objects.filter(id = course_slots[0].id).first()
if (sem_id.semester_no - course_slot_id.semester.semester_no)%2 != 0 :
return JsonResponse({'message':'Wait for Next Semester !'}, status=200)
# print('_____________________________________________________________________________________________' , course_id ,current_user , course_slot_id , sem_id)
try:
if course_registration.objects.filter(course_id=course_id, student_id=current_user , semester_id = sem_id).count() == 0:
p = course_registration(
course_id=course_id,
student_id=current_user,
course_slot_id=course_slot_id,
semester_id=sem_id
)
p.save()
return JsonResponse({'message': 'Successfully Registered Backlog course' }, status=200)
else:
return JsonResponse({'message': 'Already Registered Backlog course' }, status=200)
except Exception as e:
print(str(e))
return JsonResponse({'message': 'Error Registering course ' + str(e)}, status=500)
except Exception as e:
print(str(e))
return JsonResponse({'message': 'Adding Backlog Failed ' +str(e)}, status=500)
Loading