From b8656b1e91c77d29b29c53c75c7e2c9af166644d Mon Sep 17 00:00:00 2001 From: Ross Date: Sat, 17 Feb 2024 21:56:54 +0000 Subject: [PATCH] migrate atlas series from sortedm2m --- atlas/migrations/0040_seriesdetail.py | 26 +++++++++++++++++++++ atlas/migrations/0041_auto_20240217_2142.py | 17 ++++++++++++++ atlas/migrations/0042_alter_case_series.py | 22 +++++++++++++++++ atlas/models.py | 20 ++++++++-------- 4 files changed, 75 insertions(+), 10 deletions(-) create mode 100644 atlas/migrations/0040_seriesdetail.py create mode 100644 atlas/migrations/0041_auto_20240217_2142.py create mode 100644 atlas/migrations/0042_alter_case_series.py diff --git a/atlas/migrations/0040_seriesdetail.py b/atlas/migrations/0040_seriesdetail.py new file mode 100644 index 00000000..50f6f7f5 --- /dev/null +++ b/atlas/migrations/0040_seriesdetail.py @@ -0,0 +1,26 @@ +# Generated by Django 4.1.4 on 2024-02-17 21:23 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('atlas', '0039_alter_casecollection_collection_type'), + ] + + operations = [ + migrations.CreateModel( + name='SeriesDetail', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(default=1000)), + ('case', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.case')), + ('series', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='atlas.series')), + ], + options={ + 'ordering': ('sort_order',), + }, + ), + ] diff --git a/atlas/migrations/0041_auto_20240217_2142.py b/atlas/migrations/0041_auto_20240217_2142.py new file mode 100644 index 00000000..f9b03de4 --- /dev/null +++ b/atlas/migrations/0041_auto_20240217_2142.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.4 on 2024-02-17 21:42 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('atlas', '0040_seriesdetail'), + ] + + operations = [ + migrations.RunSQL( + """INSERT INTO atlas_seriesdetail + SELECT * FROM atlas_case_series;""" + ) + ] diff --git a/atlas/migrations/0042_alter_case_series.py b/atlas/migrations/0042_alter_case_series.py new file mode 100644 index 00000000..c892a2dd --- /dev/null +++ b/atlas/migrations/0042_alter_case_series.py @@ -0,0 +1,22 @@ +# Generated by Django 4.1.4 on 2024-02-17 21:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('atlas', '0041_auto_20240217_2142'), + ] + + operations = [ + migrations.RemoveField( + model_name='case', + name='series', + ), + migrations.AddField( + model_name='case', + name='series', + field=models.ManyToManyField(related_name='case', through='atlas.SeriesDetail', to='atlas.series'), + ), + ] diff --git a/atlas/models.py b/atlas/models.py index a1597fc4..19fc7242 100644 --- a/atlas/models.py +++ b/atlas/models.py @@ -354,8 +354,8 @@ class Case(models.Model, AuthorMixin): help_text="If a case should be freely available to browse", default=True ) - series = SortedManyToManyField("Series", related_name="case") - #series = models.ManyToManyField("Series", through="SeriesDetail", related_name="case") + #series = SortedManyToManyField("Series", related_name="case") + series = models.ManyToManyField("Series", through="SeriesDetail", related_name="case") notes = GenericRelation(QuestionNote) @@ -869,14 +869,14 @@ class CaseCollection(ExamOrCollectionGenericBase): } -#class SeriesDetail(models.Model): -# case = models.ForeignKey(Case, on_delete=models.CASCADE) -# series = models.ForeignKey(Series, on_delete=models.CASCADE) -# -# sort_order = models.IntegerField(default=1000) -# -# class Meta: -# ordering = ("sort_order",) +class SeriesDetail(models.Model): + case = models.ForeignKey(Case, on_delete=models.CASCADE) + series = models.ForeignKey(Series, on_delete=models.CASCADE) + + sort_order = models.IntegerField(default=1000) + + class Meta: + ordering = ("sort_order",) class CaseDetail(models.Model): case = models.ForeignKey(Case, on_delete=models.CASCADE)