From db1357fa24f5cb28ea2940e467d743b738e67231 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Mon, 1 May 2023 16:21:30 +0200 Subject: [PATCH 1/2] Disable inline panels to prevent unintended deletions --- server/books/models/module.py | 40 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/server/books/models/module.py b/server/books/models/module.py index 91a8c8fa..8c413d0a 100644 --- a/server/books/models/module.py +++ b/server/books/models/module.py @@ -38,26 +38,26 @@ class Module(StrictHierarchyPage): FieldPanel("hero_source"), FieldPanel("teaser"), FieldPanel("intro"), - InlinePanel( - "assignments", - label=_("Assignment"), - classname="collapsed", - heading=_("linked assignments"), - help_text=_( - "These %s are automatically linked, they are shown here only to provide an overview. Please don't change anything here." - ) - % _("assignments"), - ), - InlinePanel( - "surveys", - heading=_("linked surveys"), - label=_("Survey"), - classname="collapsed", - help_text=_( - "These %s are automatically linked, they are shown here only to provide an overview. Please don't change anything here." - ) - % _("surveys"), - ), + # InlinePanel( + # "assignments", + # label=_("Assignment"), + # classname="collapsed", + # heading=_("linked assignments"), + # help_text=_( + # "These %s are automatically linked, they are shown here only to provide an overview. Please don't change anything here." + # ) + # % _("assignments"), + # ), + # InlinePanel( + # "surveys", + # heading=_("linked surveys"), + # label=_("Survey"), + # classname="collapsed", + # help_text=_( + # "These %s are automatically linked, they are shown here only to provide an overview. Please don't change anything here." + # ) + # % _("surveys"), + # ), ] edit_handler = TabbedInterface( From 10d5a281ebb07045d193a4de531b5cc8b10e5535 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Thu, 4 May 2023 14:30:05 +0200 Subject: [PATCH 2/2] Change ParentalKey relation back to old ForeignKey to prevent deletion --- .../0018_alter_assignment_module.py | 20 +++++++++++++++++++ server/assignments/models.py | 2 +- .../migrations/0008_alter_survey_module.py | 20 +++++++++++++++++++ server/surveys/models.py | 2 +- 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 server/assignments/migrations/0018_alter_assignment_module.py create mode 100644 server/surveys/migrations/0008_alter_survey_module.py diff --git a/server/assignments/migrations/0018_alter_assignment_module.py b/server/assignments/migrations/0018_alter_assignment_module.py new file mode 100644 index 00000000..81f96254 --- /dev/null +++ b/server/assignments/migrations/0018_alter_assignment_module.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.16 on 2023-05-04 12:14 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('books', '0042_alter_contentblock_contents'), + ('assignments', '0017_alter_assignment_module'), + ] + + operations = [ + migrations.AlterField( + model_name='assignment', + name='module', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='assignments', to='books.module'), + ), + ] diff --git a/server/assignments/models.py b/server/assignments/models.py index 96452da9..4196afea 100644 --- a/server/assignments/models.py +++ b/server/assignments/models.py @@ -21,7 +21,7 @@ class Assignment(index.Indexed, TimeStampedModel): owner = models.ForeignKey( get_user_model(), on_delete=models.PROTECT, null=True, blank=True ) # probably don't want to delete all assignments if a user gets deleted - module = ParentalKey( + module = models.ForeignKey( "books.Module", related_name="assignments", on_delete=models.PROTECT ) user_created = models.BooleanField(default=False) diff --git a/server/surveys/migrations/0008_alter_survey_module.py b/server/surveys/migrations/0008_alter_survey_module.py new file mode 100644 index 00000000..9ca04cc6 --- /dev/null +++ b/server/surveys/migrations/0008_alter_survey_module.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.16 on 2023-05-04 12:14 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('books', '0042_alter_contentblock_contents'), + ('surveys', '0007_alter_survey_module'), + ] + + operations = [ + migrations.AlterField( + model_name='survey', + name='module', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='surveys', to='books.module'), + ), + ] diff --git a/server/surveys/models.py b/server/surveys/models.py index 2c226cff..fe66dd7e 100644 --- a/server/surveys/models.py +++ b/server/surveys/models.py @@ -9,7 +9,7 @@ from modelcluster.fields import ParentalKey @register_snippet class Survey(models.Model, index.Indexed): title = models.CharField(max_length=255) - module = ParentalKey( + module = models.ForeignKey( "books.Module", related_name="surveys", on_delete=models.PROTECT,