diff --git a/ram/consist/migrations/0006_md_to_html.py b/ram/consist/migrations/0006_md_to_html.py index e2beeee..dd4d902 100644 --- a/ram/consist/migrations/0006_md_to_html.py +++ b/ram/consist/migrations/0006_md_to_html.py @@ -6,11 +6,11 @@ from django.db import migrations def md_to_html(apps, schema_editor): fields = { - 'Consist': ['notes'], + "Consist": ["notes"], } for m in fields.items(): - model = apps.get_model('consist', m[0]) + model = apps.get_model("consist", m[0]) for row in model.objects.all(): for field in m[1]: diff --git a/ram/portal/admin.py b/ram/portal/admin.py index ef8097e..ee7f63a 100644 --- a/ram/portal/admin.py +++ b/ram/portal/admin.py @@ -9,7 +9,8 @@ admin.site.register(SiteConfiguration, SingletonModelAdmin) @admin.register(Flatpage) class FlatpageAdmin(admin.ModelAdmin): readonly_fields = ("path", "creation_time", "updated_time") - list_display = ("name", "path") + list_display = ("name", "path", "published", "get_link") + list_filter = ("published",) search_fields = ("name",) fieldsets = ( @@ -20,7 +21,7 @@ class FlatpageAdmin(admin.ModelAdmin): "name", "path", "content", - "draft", + "published", ) }, ), diff --git a/ram/portal/migrations/0012_md_to_html.py b/ram/portal/migrations/0012_md_to_html.py index d1f9120..81edd85 100644 --- a/ram/portal/migrations/0012_md_to_html.py +++ b/ram/portal/migrations/0012_md_to_html.py @@ -6,12 +6,12 @@ from django.db import migrations def md_to_html(apps, schema_editor): fields = { - 'SiteConfiguration': ['about', 'footer', 'footer_extended'], - 'Flatpage': ['content'] + "SiteConfiguration": ["about", "footer", "footer_extended"], + "Flatpage": ["content"] } for m in fields.items(): - model = apps.get_model('portal', m[0]) + model = apps.get_model("portal", m[0]) for row in model.objects.all(): for field in m[1]: diff --git a/ram/portal/migrations/0013_remove_flatpage_draft_flatpage_published.py b/ram/portal/migrations/0013_remove_flatpage_draft_flatpage_published.py new file mode 100644 index 0000000..3894141 --- /dev/null +++ b/ram/portal/migrations/0013_remove_flatpage_draft_flatpage_published.py @@ -0,0 +1,42 @@ +# Generated by Django 4.1 on 2022-08-25 10:18 + +from django.db import migrations, models + + +def reverse_bool(apps, schema_editor): + model = apps.get_model("portal", "Flatpage") + + for row in model.objects.all(): + row.published = not row.draft + row.save(update_fields=["published"]) + + +def reverse_bool_back(apps, schema_editor): + model = apps.get_model("portal", "Flatpage") + + for row in model.objects.all(): + row.draft = not row.published + row.save(update_fields=["draft"]) + + +class Migration(migrations.Migration): + + dependencies = [ + ("portal", "0012_md_to_html"), + ] + + operations = [ + migrations.AddField( + model_name="flatpage", + name="published", + field=models.BooleanField(default=False), + ), + migrations.RunPython( + reverse_bool, + reverse_code=reverse_bool_back + ), + migrations.RemoveField( + model_name="flatpage", + name="draft", + ), + ] diff --git a/ram/portal/models.py b/ram/portal/models.py index bdb706c..94d16e9 100644 --- a/ram/portal/models.py +++ b/ram/portal/models.py @@ -2,6 +2,7 @@ import django from django.db import models from django.urls import reverse from django.dispatch.dispatcher import receiver +from django.utils.safestring import mark_safe from solo.models import SingletonModel from ckeditor.fields import RichTextField @@ -51,7 +52,7 @@ class SiteConfiguration(SingletonModel): class Flatpage(models.Model): name = models.CharField(max_length=256, unique=True) path = models.CharField(max_length=256, unique=True) - draft = models.BooleanField(default=True) + published = models.BooleanField(default=False) content = RichTextUploadingField() creation_time = models.DateTimeField(auto_now_add=True) updated_time = models.DateTimeField(auto_now=True) @@ -62,6 +63,14 @@ class Flatpage(models.Model): def get_absolute_url(self): return reverse("flatpage", kwargs={"flatpage": self.path}) + def get_link(self): + if self.published: + return mark_safe( + 'Link'.format( + self.get_absolute_url() + ) + ) + @receiver(models.signals.pre_save, sender=Flatpage) def tag_pre_save(sender, instance, **kwargs): diff --git a/ram/portal/templates/base.html b/ram/portal/templates/base.html index ff00600..c5ccca5 100644 --- a/ram/portal/templates/base.html +++ b/ram/portal/templates/base.html @@ -73,7 +73,7 @@ {% show_menu %} - {% include 'includes/search.html' %} + {% include 'includes/search.html' %} diff --git a/ram/portal/templates/flatpage_menu.html b/ram/portal/templates/flatpage_menu.html index 095db24..d40ea82 100644 --- a/ram/portal/templates/flatpage_menu.html +++ b/ram/portal/templates/flatpage_menu.html @@ -3,10 +3,10 @@ More ... - {% for m in menu %}
{% endfor %} + {% endif %} diff --git a/ram/portal/templates/includes/login.html b/ram/portal/templates/includes/login.html index 7a289d3..ffcb850 100644 --- a/ram/portal/templates/includes/login.html +++ b/ram/portal/templates/includes/login.html @@ -7,6 +7,7 @@