From d166e10b05422b9e7031b73c6f91008735604a61 Mon Sep 17 00:00:00 2001 From: Jaap Joris Vens Date: Tue, 31 Dec 2019 13:05:12 +0100 Subject: [PATCH] First draft of version 2.0.0 Oh boy! This is a big one. Two new dependencies: swapper and django-polymorphic will now allow any project that uses cms to elegantly extend the default Section model with custom fields and custom subclasses. This is still a work in progress. --- cms/admin.py | 22 +------ cms/forms.py | 33 +++++++--- cms/migrations/0001_initial.py | 15 +++-- ...l_homepage.py => 0002_initial_homepage.py} | 2 +- cms/migrations/0002_title.py | 15 ----- cms/migrations/0003_subsection.py | 32 ---------- cms/models.py | 36 +++-------- cms/static/cms/cms.scss | 2 - cms/static/cms/cms.scss.css | 4 +- cms/static/cms/cms.scss.css.map | 2 +- cms/templates/cms/base.html | 2 +- cms/templates/cms/page.html | 3 +- .../{normal.html => imagesection.html} | 0 cms/templates/cms/sections/textsection.html | 1 + cms/urls.py | 3 +- cms/views.py | 51 ++------------- examples/app/__init__.py | 1 + examples/app/admin.py | 7 ++ examples/app/apps.py | 4 ++ examples/app/migrations/0001_initial.py | 64 +++++++++++++++++++ examples/app/migrations/__init__.py | 0 examples/app/models.py | 18 ++++++ examples/app/static/app/main1.scss | 47 ++++++++++++++ examples/app/static/app/main1.scss.css | 33 ++++++++++ examples/app/static/app/main1.scss.css.map | 9 +++ examples/app/templates/base.html | 13 ++++ examples/project/settings.py | 11 ++-- requirements.txt | 2 + setup.py | 2 +- 29 files changed, 264 insertions(+), 170 deletions(-) rename cms/migrations/{0004_initial_homepage.py => 0002_initial_homepage.py} (91%) delete mode 100644 cms/migrations/0002_title.py delete mode 100644 cms/migrations/0003_subsection.py rename cms/templates/cms/sections/{normal.html => imagesection.html} (100%) create mode 100644 cms/templates/cms/sections/textsection.html create mode 100644 examples/app/__init__.py create mode 100644 examples/app/admin.py create mode 100644 examples/app/apps.py create mode 100644 examples/app/migrations/0001_initial.py create mode 100644 examples/app/migrations/__init__.py create mode 100644 examples/app/models.py create mode 100644 examples/app/static/app/main1.scss create mode 100644 examples/app/static/app/main1.scss.css create mode 100644 examples/app/static/app/main1.scss.css.map create mode 100644 examples/app/templates/base.html diff --git a/cms/admin.py b/cms/admin.py index 5286419..3e727cb 100644 --- a/cms/admin.py +++ b/cms/admin.py @@ -2,36 +2,18 @@ from django.contrib import admin from django.utils.text import Truncator from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ -from .models import Page, Section, SubSection, Config - -class InlineSectionAdmin(admin.StackedInline): - model = Section - extra = 0 - -class InlineSubSectionAdmin(admin.StackedInline): - model = SubSection - extra = 0 +from .models import Page, Config @admin.register(Page) class PageAdmin(admin.ModelAdmin): prepopulated_fields = {'slug': ('title',)} - inlines = [InlineSectionAdmin] -@admin.register(Section) -class SectionAdmin(admin.ModelAdmin): - inlines = [InlineSubSectionAdmin] +class BaseSectionAdmin(admin.ModelAdmin): list_filter = [ ('page', admin.RelatedOnlyFieldListFilter), ] list_display = ['__str__', 'get_type_display'] -@admin.register(SubSection) -class SubSectionAdmin(admin.ModelAdmin): - list_filter = [ - ('section', admin.RelatedOnlyFieldListFilter), - ('section__page', admin.RelatedOnlyFieldListFilter), - ] - @admin.register(Config) class ConfigAdmin(admin.ModelAdmin): list_display = ['__str__', 'get_content'] diff --git a/cms/forms.py b/cms/forms.py index ad6d4cd..43e7beb 100644 --- a/cms/forms.py +++ b/cms/forms.py @@ -1,5 +1,9 @@ from django import forms -from .models import Page, Section, SubSection +from django.contrib.contenttypes.models import ContentType +from .models import Page + +import swapper +Section = swapper.load_model('cms', 'Section') class PageForm(forms.ModelForm): class Meta: @@ -7,14 +11,25 @@ class PageForm(forms.ModelForm): fields = '__all__' class SectionForm(forms.ModelForm): + def save(self): + section = super().save() + app_label = section._meta.app_label + model = section.type + + # Explanation: we'll get the content type of the model that + # the user supplied when filling in this form, and save it's + # id to the 'polymorphic_ctype_id' field. This way, the next + # time the object is requested from the database, + # django-polymorphic will automatically convert it to the + # correct subclass. Brilliant! + section.polymorphic_ctype = ContentType.objects.get( + app_label=section._meta.app_label, + model=section.type.lower(), + ) + + section.save() + return section + class Meta: model = Section exclude = ['page'] - -class SubSectionForm(forms.ModelForm): - class Meta: - model = SubSection - exclude = ['section'] - -SectionFormSet = forms.inlineformset_factory(Page, Section, exclude='__all__', extra=0) -SubSectionFormSet = forms.inlineformset_factory(Section, SubSection, exclude='__all__', extra=0) diff --git a/cms/migrations/0001_initial.py b/cms/migrations/0001_initial.py index 2ac8e61..02cc9f4 100644 --- a/cms/migrations/0001_initial.py +++ b/cms/migrations/0001_initial.py @@ -1,13 +1,17 @@ +# Generated by Django 3.0.1 on 2019-12-31 11:15 + import ckeditor.fields from django.db import migrations, models import django.db.models.deletion import embed_video.fields + class Migration(migrations.Migration): initial = True dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), ] operations = [ @@ -16,7 +20,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('parameter', models.PositiveIntegerField(choices=[(10, 'Footer')], unique=True)), - ('content', ckeditor.fields.RichTextField(blank=True, verbose_name='Inhoud')), + ('content', ckeditor.fields.RichTextField(blank=True, verbose_name='content')), ], options={ 'verbose_name': 'configuration parameter', @@ -44,20 +48,19 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('position', models.PositiveIntegerField(blank=True, verbose_name='position')), - ('title', models.CharField(max_length=255, verbose_name='title')), + ('title', models.CharField(blank=True, max_length=255, verbose_name='title')), ('type', models.CharField(choices=[('normal', 'Normaal')], default='normal', max_length=16, verbose_name='section type')), - ('color', models.PositiveIntegerField(choices=[(1, 'Licht'), (2, 'Donker')], default=1, verbose_name='color')), + ('color', models.PositiveIntegerField(choices=[(1, 'Wit')], default=1, verbose_name='color')), ('content', ckeditor.fields.RichTextField(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', models.CharField(blank=True, max_length=255, verbose_name='button text')), ('button_link', models.CharField(blank=True, max_length=255, verbose_name='button link')), ('page', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='sections', to='cms.Page', 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')), ], options={ - 'verbose_name': 'section', - 'verbose_name_plural': 'sections', - 'ordering': ['position'], + 'swappable': 'CMS_SECTION_MODEL', }, ), ] diff --git a/cms/migrations/0004_initial_homepage.py b/cms/migrations/0002_initial_homepage.py similarity index 91% rename from cms/migrations/0004_initial_homepage.py rename to cms/migrations/0002_initial_homepage.py index d0794ca..a1c57e6 100644 --- a/cms/migrations/0004_initial_homepage.py +++ b/cms/migrations/0002_initial_homepage.py @@ -8,7 +8,7 @@ def add_homepage(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('cms', '0003_subsection'), + ('cms', '0001_initial'), ] operations = [ diff --git a/cms/migrations/0002_title.py b/cms/migrations/0002_title.py deleted file mode 100644 index e7b58d1..0000000 --- a/cms/migrations/0002_title.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.db import migrations, models - -class Migration(migrations.Migration): - - dependencies = [ - ('cms', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='section', - name='title', - field=models.CharField(blank=True, max_length=255, verbose_name='title'), - ), - ] diff --git a/cms/migrations/0003_subsection.py b/cms/migrations/0003_subsection.py deleted file mode 100644 index c914f1c..0000000 --- a/cms/migrations/0003_subsection.py +++ /dev/null @@ -1,32 +0,0 @@ -import ckeditor.fields -import cms.models -from django.db import migrations, models -import django.db.models.deletion - -class Migration(migrations.Migration): - - dependencies = [ - ('cms', '0002_title'), - ] - - operations = [ - migrations.CreateModel( - name='SubSection', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('position', models.PositiveIntegerField(blank=True, verbose_name='position')), - ('title', models.CharField(blank=True, max_length=255, verbose_name='title')), - ('color', models.PositiveIntegerField(choices=[(1, 'Licht'), (2, 'Donker')], default=1, verbose_name='color')), - ('content', ckeditor.fields.RichTextField(blank=True, verbose_name='content')), - ('image', models.ImageField(blank=True, upload_to='', verbose_name='image')), - ('button_text', cms.models.VarCharField(blank=True, verbose_name='button text')), - ('button_link', cms.models.VarCharField(blank=True, verbose_name='button link')), - ('section', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='subsections', to='cms.Section', verbose_name='section')), - ], - options={ - 'verbose_name': 'subsection', - 'verbose_name_plural': 'subsections', - 'ordering': ['position'], - }, - ), - ] diff --git a/cms/models.py b/cms/models.py index 2f3e20c..bca0d00 100644 --- a/cms/models.py +++ b/cms/models.py @@ -1,3 +1,4 @@ +import swapper from django.db import models from django.urls import reverse from django.conf import settings @@ -5,6 +6,7 @@ from django.forms import TextInput from django.utils.translation import gettext_lazy as _ from ckeditor.fields import RichTextField from embed_video.fields import EmbedVideoField +from polymorphic.models import PolymorphicModel from numberedmodel.models import NumberedModel @@ -36,11 +38,12 @@ class Page(NumberedModel): verbose_name_plural = _('Pages') ordering = ['position'] -class Section(NumberedModel): +choices = settings.SECTION_TYPES +class BaseSection(NumberedModel, PolymorphicModel): page = models.ForeignKey(Page, verbose_name=_('page'), related_name='sections', on_delete=models.PROTECT) position = models.PositiveIntegerField(_('position'), blank=True) title = models.CharField(_('title'), max_length=255, blank=True) - type = models.CharField(_('section type'), max_length=16, default=settings.SECTION_TYPES[0][0], choices=settings.SECTION_TYPES) + type = models.CharField(_('section type'), max_length=16, default=choices[0][0], choices=choices) color = models.PositiveIntegerField(_('color'), default=1, choices=settings.SECTION_COLORS) content = RichTextField(_('content'), blank=True) @@ -61,36 +64,15 @@ class Section(NumberedModel): return self.title class Meta: + abstract = True verbose_name = _('section') verbose_name_plural = _('sections') ordering = ['position'] + #app_label = 'cms' -class SubSection(NumberedModel): - section = models.ForeignKey(Section, verbose_name=_('section'), related_name='subsections', on_delete=models.CASCADE) - position = models.PositiveIntegerField(_('position'), blank=True) - title = models.CharField(_('title'), max_length=255, blank=True) - color = models.PositiveIntegerField(_('color'), default=1, choices=settings.SECTION_COLORS) - - content = RichTextField(_('content'), blank=True) - image = models.ImageField(_('image'), blank=True) - button_text = VarCharField(_('button text'), blank=True) - button_link = VarCharField(_('button link'), blank=True) - - def number_with_respect_to(self): - return self.section.subsections.all() - - def __str__(self): - if not self.pk: - return str(_('New subsection')) - elif not self.title: - return str(_('Untitled')) - else: - return self.title - +class Section(BaseSection): class Meta: - verbose_name = _('subsection') - verbose_name_plural = _('subsections') - ordering = ['position'] + swappable = swapper.swappable_setting('cms', 'Section') class Config(models.Model): TYPES = [ diff --git a/cms/static/cms/cms.scss b/cms/static/cms/cms.scss index c522fed..e75a78e 100644 --- a/cms/static/cms/cms.scss +++ b/cms/static/cms/cms.scss @@ -188,8 +188,6 @@ div.edit a, div.edit button, a.edit{ display: inline; background: none; cursor: pointer; - margin: 0; - padding: 0; &:before { content: '[ '; diff --git a/cms/static/cms/cms.scss.css b/cms/static/cms/cms.scss.css index 96205d5..3a52e49 100644 --- a/cms/static/cms/cms.scss.css +++ b/cms/static/cms/cms.scss.css @@ -140,9 +140,7 @@ div.edit a, div.edit button, a.edit { border: none; display: inline; background: none; - cursor: pointer; - margin: 0; - padding: 0; } + cursor: pointer; } div.edit a:before, div.edit button:before, a.edit:before { content: '[ '; } div.edit a:after, div.edit button:after, a.edit:after { diff --git a/cms/static/cms/cms.scss.css.map b/cms/static/cms/cms.scss.css.map index 72e2236..83db091 100644 --- a/cms/static/cms/cms.scss.css.map +++ b/cms/static/cms/cms.scss.css.map @@ -5,5 +5,5 @@ "cms.scss" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/cms/templates/cms/base.html b/cms/templates/cms/base.html index 989e5f1..8852fbe 100644 --- a/cms/templates/cms/base.html +++ b/cms/templates/cms/base.html @@ -27,7 +27,7 @@ {% if pages %}