From baa1ffe89086bae523a02f27caadc8631f488083 Mon Sep 17 00:00:00 2001 From: Ross Date: Sat, 17 Feb 2024 23:44:56 +0000 Subject: [PATCH] . --- generic/views.py | 2 +- longs/forms.py | 2 +- longs/migrations/0019_seriesdetail.py | 30 +++++++++++++++++++ longs/migrations/0020_alter_long_series.py | 22 ++++++++++++++ ...ename_rapid_examquestiondetail_question.py | 18 +++++++++++ longs/models.py | 13 ++++++-- longs/templates/longs/exam_overview.html | 4 +-- 7 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 longs/migrations/0019_seriesdetail.py create mode 100644 longs/migrations/0020_alter_long_series.py create mode 100644 longs/migrations/0021_rename_rapid_examquestiondetail_question.py diff --git a/generic/views.py b/generic/views.py index 8e404b92..d795a9ae 100644 --- a/generic/views.py +++ b/generic/views.py @@ -1232,7 +1232,7 @@ class ExamViews(View, LoginRequiredMixin): ) case "longs": question_detail = LongsExamQuestionDetail.objects.get( - long=question, exam=exam) + question=question, exam=exam) case "physics": question_detail = PhysicsExamQuestionDetail.objects.get( question=question, exam=exam diff --git a/longs/forms.py b/longs/forms.py index 0ddd2442..83dc05d5 100755 --- a/longs/forms.py +++ b/longs/forms.py @@ -275,7 +275,7 @@ class CaseSeriesForm(ModelForm): model = LongSeries.long.through #fields = [ modality ] #exclude = [] - fields = ["longseries", "sort_value"] + fields = ["longseries", "sort_order"] diff --git a/longs/migrations/0019_seriesdetail.py b/longs/migrations/0019_seriesdetail.py new file mode 100644 index 00000000..a8ede2fb --- /dev/null +++ b/longs/migrations/0019_seriesdetail.py @@ -0,0 +1,30 @@ +# Generated by Django 4.1.4 on 2024-02-17 23:21 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('longs', '0018_alter_exam_exam_questions'), + ] + + operations = [ + migrations.CreateModel( + name='SeriesDetail', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(default=1000)), + ('long', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='longs.long')), + ('longseries', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='longs.longseries')), + ], + options={ + 'ordering': ('sort_order',), + }, + ), + migrations.RunSQL( + """INSERT INTO longs_seriesdetail + SELECT * FROM longs_long_series;""" + ), + ] diff --git a/longs/migrations/0020_alter_long_series.py b/longs/migrations/0020_alter_long_series.py new file mode 100644 index 00000000..5851fbec --- /dev/null +++ b/longs/migrations/0020_alter_long_series.py @@ -0,0 +1,22 @@ +# Generated by Django 4.1.4 on 2024-02-17 23:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('longs', '0019_seriesdetail'), + ] + + operations = [ + migrations.RemoveField( + model_name='long', + name='series', + ), + migrations.AddField( + model_name='long', + name='series', + field=models.ManyToManyField(related_name='long', through='longs.SeriesDetail', to='longs.longseries'), + ), + ] diff --git a/longs/migrations/0021_rename_rapid_examquestiondetail_question.py b/longs/migrations/0021_rename_rapid_examquestiondetail_question.py new file mode 100644 index 00000000..2a06ee4d --- /dev/null +++ b/longs/migrations/0021_rename_rapid_examquestiondetail_question.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.4 on 2024-02-17 23:34 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('longs', '0020_alter_long_series'), + ] + + operations = [ + migrations.RenameField( + model_name='examquestiondetail', + old_name='rapid', + new_name='question', + ), + ] diff --git a/longs/models.py b/longs/models.py index 5e06a81c..f7cb73d7 100644 --- a/longs/models.py +++ b/longs/models.py @@ -129,7 +129,8 @@ class Long(QuestionBase): default=1, help_text="Auto incrementing json creation number" ) - series = SortedManyToManyField("LongSeries", related_name="long") + #series = SortedManyToManyField("LongSeries", related_name="long") + series = models.ManyToManyField("LongSeries", through="SeriesDetail", related_name="long") # question_file = models.FileField(upload_to=question_file_directory_path, blank=True, null=True) @@ -348,6 +349,14 @@ class LongSeriesImage(SeriesImageBase): "LongSeries", related_name="images", on_delete=models.CASCADE, null=True ) +class SeriesDetail(models.Model): + sort_order = models.IntegerField(default=1000) + long = models.ForeignKey(Long, on_delete=models.CASCADE) + longseries = models.ForeignKey("LongSeries", on_delete=models.CASCADE) + + + class Meta: + ordering = ("sort_order",) @reversion.register class LongSeries(SeriesBase): @@ -413,7 +422,7 @@ class ExamQuestionDetail(models.Model): sort_order = models.IntegerField(default=1000) exam = models.ForeignKey("Exam", on_delete=models.CASCADE) - rapid = models.ForeignKey(Long, on_delete=models.CASCADE) + question = models.ForeignKey(Long, on_delete=models.CASCADE) class Meta: ordering = ("sort_order",) diff --git a/longs/templates/longs/exam_overview.html b/longs/templates/longs/exam_overview.html index def87be2..03998bff 100644 --- a/longs/templates/longs/exam_overview.html +++ b/longs/templates/longs/exam_overview.html @@ -28,10 +28,10 @@ - {% for series in question.series.all %} + {% for seriesdetail in question.seriesdetail_set.all %}
Series {{forloop.counter }}:
- {{series.get_block}} + {{seriesdetail.longseries.get_block}}
{% empty %} No series