@@ -288,6 +288,10 @@ def add_course(request):
288288 current_year = datetime .datetime .now ().year
289289 session , semester_type = generate_current_session (current_year , student .curr_semester_no )
290290
291+ old_course_reg = course_registration .objects .filter (
292+ student_id = student ,
293+ course_id = course
294+ ).order_by ('-working_year' , '-semester_id__semester_no' ).first ()
291295
292296 existing_request = CourseAddRequest .objects .filter (
293297 student = student ,
@@ -310,6 +314,7 @@ def add_course(request):
310314 course_slot = slot ,
311315 academic_year = session ,
312316 semester_type = semester_type ,
317+ old_course_registration = old_course_reg ,
313318 status = 'Pending'
314319 )
315320 except Exception as create_error :
@@ -1264,6 +1269,10 @@ def verify_course(request):
12641269 year = today .year
12651270 semflag = 1 if today .month >= 7 else 2
12661271 yearr = f"{ year } -{ year + 1 } "
1272+ if today .month >= 7 :
1273+ current_semester_type = "Odd Semester"
1274+ else :
1275+ current_semester_type = "Even Semester"
12671276
12681277 return Response ({
12691278 "details" : details ,
@@ -1272,6 +1281,10 @@ def verify_course(request):
12721281 "semester_list" : semester_list ,
12731282 "courseslot_list" : courseslot_list ,
12741283 "date" : {"year" : yearr , "semflag" : semflag },
1284+ "current_semester" : {
1285+ "semester_no" : student .curr_semester_no ,
1286+ "semester_type" : current_semester_type
1287+ }
12751288 })
12761289
12771290
@@ -3335,7 +3348,7 @@ def student_registrations_for_drop(request):
33353348 eligibility_resp = get_add_drop_replace_registration_eligibility (timezone .now ().date (), student .curr_semester_no , datetime .datetime .now ().year )
33363349 if isinstance (eligibility_resp , JsonResponse ):
33373350 return eligibility_resp
3338- regs = course_registration .objects .filter (student_id = student , semester_id__semester_no = student .curr_semester_no )
3351+ regs = course_registration .objects .filter (student_id = student , semester_id__semester_no = student .curr_semester_no ). order_by ( 'course_slot_id__name' )
33393352 out = []
33403353 for reg in regs :
33413354 out .append ({
@@ -3883,6 +3896,13 @@ def approve_add_requests(request):
38833896 registration_type = registration_type
38843897 )
38853898 reg .save ()
3899+
3900+ if add_request .old_course_registration :
3901+ course_replacement .objects .create (
3902+ old_course_registration = add_request .old_course_registration ,
3903+ new_course_registration = reg
3904+ )
3905+ logger .info (f"Created course_replacement for request { req_id } : { add_request .old_course_registration .id } -> { reg .id } " )
38863906
38873907 add_request .status = "Approved"
38883908 add_request .processed_at = timezone .now ()
0 commit comments