From d5f5bb429615f0aaa2f63d98205a036fc064acd2 Mon Sep 17 00:00:00 2001 From: Jaap Joris Vens Date: Wed, 19 Feb 2020 22:24:01 +0100 Subject: [PATCH] Change default fields. This breaks existing migrations. Deal with it. --- cms/migrations/0001_initial.py | 3 +-- cms/models.py | 3 +-- cms/templates/cms/editlink.html | 7 ------- cms/views.py | 11 +++++++++-- example/app/migrations/0001_initial.py | 3 +-- example/app/models.py | 2 +- 6 files changed, 13 insertions(+), 16 deletions(-) delete mode 100644 cms/templates/cms/editlink.html diff --git a/cms/migrations/0001_initial.py b/cms/migrations/0001_initial.py index 9fb712c..d6079c4 100644 --- a/cms/migrations/0001_initial.py +++ b/cms/migrations/0001_initial.py @@ -45,8 +45,7 @@ class Migration(migrations.Migration): ('content', models.TextField(blank=True, verbose_name='content')), ('image', models.ImageField(blank=True, upload_to='', verbose_name='image')), ('video', embed_video.fields.EmbedVideoField(blank=True, help_text='Paste a YouTube, Vimeo, or SoundCloud link', verbose_name='video')), - ('button_text', cms.models.VarCharField(blank=True, verbose_name='button text')), - ('button_link', cms.models.VarCharField(blank=True, verbose_name='button link')), + ('href', cms.models.VarCharField(blank=True, verbose_name='button link')), ('page', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='sections', to=settings.CMS_PAGE_MODEL, verbose_name='page')), ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_cms.section_set+', to='contenttypes.ContentType')), ], diff --git a/cms/models.py b/cms/models.py index 7ad37c7..ee74439 100644 --- a/cms/models.py +++ b/cms/models.py @@ -92,8 +92,7 @@ class BaseSection(Numbered, PolymorphicModel): content = models.TextField(_('content'), blank=True) image = models.ImageField(_('image'), blank=True) video = EmbedVideoField(_('video'), blank=True, help_text=_('Paste a YouTube, Vimeo, or SoundCloud link')) - button_text = VarCharField(_('button text'), blank=True) - button_link = VarCharField(_('button link'), blank=True) + href = VarCharField(_('link'), blank=True) def number_with_respect_to(self): return self.page.sections.all() diff --git a/cms/templates/cms/editlink.html b/cms/templates/cms/editlink.html deleted file mode 100644 index 0753ce9..0000000 --- a/cms/templates/cms/editlink.html +++ /dev/null @@ -1,7 +0,0 @@ -{% load i18n %} - -{% if request.user.is_staff %} -
- {% trans 'edit this section' %} -
-{% endif %} diff --git a/cms/views.py b/cms/views.py index 19e2e2e..ebeee4e 100644 --- a/cms/views.py +++ b/cms/views.py @@ -185,8 +185,15 @@ class EditPage(UserPassesTestMixin, edit.ModelFormMixin, base.TemplateResponseMi page = form.save() formset = SectionFormSet(request.POST, request.FILES, instance=page) if formset.is_valid(): - formset.save() - return HttpResponseRedirect(page.get_absolute_url()) + if formset.save(): + if page.slug and not page.sections.exists(): # anymore + page.delete() + return HttpResponseRedirect('/') + return HttpResponseRedirect(page.get_absolute_url()) + else: + # TODO: show sensible error + formset.errors.append([{}, {'title': ['You have to add sections']}]) + formset = SectionFormSet(request.POST, request.FILES) return self.render_to_response(self.get_context_data(form=form, formset=formset)) class CreatePage(EditPage): diff --git a/example/app/migrations/0001_initial.py b/example/app/migrations/0001_initial.py index 53fe120..c1d6ca3 100644 --- a/example/app/migrations/0001_initial.py +++ b/example/app/migrations/0001_initial.py @@ -43,8 +43,7 @@ class Migration(migrations.Migration): ('content', models.TextField(blank=True, verbose_name='content')), ('image', models.ImageField(blank=True, upload_to='', verbose_name='image')), ('video', embed_video.fields.EmbedVideoField(blank=True, help_text='Paste a YouTube, Vimeo, or SoundCloud link', verbose_name='video')), - ('button_text', cms.models.VarCharField(blank=True, verbose_name='button text')), - ('button_link', cms.models.VarCharField(blank=True, verbose_name='button link')), + ('href', cms.models.VarCharField(blank=True, verbose_name='button link')), ('page', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='sections', to=settings.CMS_PAGE_MODEL, verbose_name='page')), ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.section_set+', to='contenttypes.ContentType')), ], diff --git a/example/app/models.py b/example/app/models.py index 9fb4d97..485a68d 100644 --- a/example/app/models.py +++ b/example/app/models.py @@ -11,7 +11,7 @@ class Page(BasePage): class Section(BaseSection): '''Add custom fields here. Already existing fields: type, position, - title, content, image, video, button_text, button_link + title, content, image, video, href '''