diff --git a/FusionIIIT/applications/academic_procedures/migrations/0007_auto_20250203_1619.py b/FusionIIIT/applications/academic_procedures/migrations/0007_auto_20250203_1619.py new file mode 100644 index 000000000..cb479a10b --- /dev/null +++ b/FusionIIIT/applications/academic_procedures/migrations/0007_auto_20250203_1619.py @@ -0,0 +1,22 @@ +# Generated by Django 3.1.5 on 2025-02-03 16:19 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('academic_information', '0001_initial'), + ('academic_procedures', '0006_auto_20250114_0326'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='finalregistration', + unique_together={('course_id', 'student_id', 'semester_id', 'registration_type')}, + ), + migrations.AlterUniqueTogether( + name='initialregistration', + unique_together={('course_id', 'student_id', 'semester_id', 'registration_type')}, + ), + ] diff --git a/FusionIIIT/applications/academic_procedures/models.py b/FusionIIIT/applications/academic_procedures/models.py index d3e40a576..69db834f0 100644 --- a/FusionIIIT/applications/academic_procedures/models.py +++ b/FusionIIIT/applications/academic_procedures/models.py @@ -617,6 +617,7 @@ class InitialRegistration(models.Model): class Meta: db_table = 'InitialRegistration' + unique_together = ('course_id', 'student_id', 'semester_id', 'registration_type') class FinalRegistration(models.Model): ''' @@ -652,6 +653,7 @@ class FinalRegistration(models.Model): class Meta: db_table = 'FinalRegistration' + unique_together = ('course_id', 'student_id', 'semester_id', 'registration_type') class CourseRequested(models.Model): diff --git a/FusionIIIT/applications/academic_procedures/views.py b/FusionIIIT/applications/academic_procedures/views.py index 5d77a07fd..826c2c4bc 100644 --- a/FusionIIIT/applications/academic_procedures/views.py +++ b/FusionIIIT/applications/academic_procedures/views.py @@ -1725,10 +1725,11 @@ def allot_courses(request): try: - InitialRegistration.objects.bulk_create(pre_registrations) - StudentRegistrationChecks.objects.bulk_create(student_checks) - FinalRegistration.objects.bulk_create(final_registrations) - course_registration.objects.bulk_create(course_registrations) + with transaction.atomic(): + InitialRegistration.objects.bulk_create(pre_registrations) + StudentRegistrationChecks.objects.bulk_create(student_checks) + FinalRegistration.objects.bulk_create(final_registrations) + course_registration.objects.bulk_create(course_registrations) messages.success(request, 'Successfully uploaded!') return HttpResponseRedirect('/academic-procedures/main') # return HttpResponse("Success") @@ -1737,6 +1738,7 @@ def allot_courses(request): return HttpResponseRedirect('/academic-procedures/main') # return HttpResponse("Success") except Exception as e: + print(e) messages.error(request, 'Error: Query does not match. Please check if all the data input is in the correct format.') return HttpResponseRedirect('/academic-procedures/main') # return HttpResponseRedirect(request.META.get('HTTP_REFERER'))