From 60d8e6508353d9babae6dc63148f441e374914ac Mon Sep 17 00:00:00 2001 From: Vikrant Kumar Date: Mon, 5 Oct 2026 17:31:08 +0530 Subject: [PATCH] Let a discipline run two curricula in the same batch year Batch uniqueness was only on (name, discipline, year), so a second curriculum track under the same discipline (e.g. Physics and Maths under Natural Sciences) couldn't get its own batch for that year. Add curriculum to the unique key. --- .../0057_batch_unique_with_curriculum.py | 17 +++++++++++++++++ .../applications/programme_curriculum/models.py | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 FusionIIIT/applications/programme_curriculum/migrations/0057_batch_unique_with_curriculum.py diff --git a/FusionIIIT/applications/programme_curriculum/migrations/0057_batch_unique_with_curriculum.py b/FusionIIIT/applications/programme_curriculum/migrations/0057_batch_unique_with_curriculum.py new file mode 100644 index 000000000..481c1ebd2 --- /dev/null +++ b/FusionIIIT/applications/programme_curriculum/migrations/0057_batch_unique_with_curriculum.py @@ -0,0 +1,17 @@ +# Generated by Django 3.1.5 on 2026-10-05 16:05 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('programme_curriculum', '0056_student_joining_date'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='batch', + unique_together={('name', 'discipline', 'year', 'curriculum')}, + ), + ] diff --git a/FusionIIIT/applications/programme_curriculum/models.py b/FusionIIIT/applications/programme_curriculum/models.py index 56f5f7990..21e4f7991 100644 --- a/FusionIIIT/applications/programme_curriculum/models.py +++ b/FusionIIIT/applications/programme_curriculum/models.py @@ -312,7 +312,7 @@ class Batch(models.Model): total_seats = models.PositiveIntegerField(default=60, null=False, blank=False) class Meta: - unique_together = ('name', 'discipline', 'year',) + unique_together = ('name', 'discipline', 'year', 'curriculum',) def __str__(self): return str(self.name) + " " + str(self.discipline.acronym) + " " + str(self.year)