diff --git a/contracts/migrations/0049_alter_contract_options.py b/contracts/migrations/0049_alter_contract_options.py new file mode 100644 index 0000000000000000000000000000000000000000..30756a5fc0610aa8db4290e09422d11a1988444a --- /dev/null +++ b/contracts/migrations/0049_alter_contract_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.4 on 2023-04-17 05:16 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('contracts', '0048_alter_contractapproval_options_and_more'), + ] + + operations = [ + migrations.AlterModelOptions( + name='contract', + options={'permissions': [('approve', 'Schválit / zrušit schválení'), ('view_confidential', 'Zobrazit tajné informace'), ('edit_when_approved', 'Upravit schválené'), ('delete_when_approved', 'Odstranit schválené'), ('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí'), ('can_edit_contract_settings', 'Can edit Smlouva settings')], 'verbose_name': 'Smlouva', 'verbose_name_plural': 'Smlouvy'}, + ), + ] diff --git a/contracts/models.py b/contracts/models.py index 32bfbb8724523272cb35499b2c54d3b2f77a1165..5638b133a45aa99e80cb34507f24872ebcf59873 100644 --- a/contracts/models.py +++ b/contracts/models.py @@ -16,6 +16,8 @@ from markdownx.models import MarkdownxField from shared.models import NameStrMixin from users.models import User +from . import settings as app_settings + class SubdomainValidatedURLField(models.URLField): validators = [ @@ -780,6 +782,10 @@ class Contract(NameStrMixin, models.Model): return super().save(*args, **kwargs) + # Settings + + settings = app_settings.ContractSettings("Nastavení") + class Meta: app_label = "contracts" diff --git a/contracts/settings.py b/contracts/settings.py new file mode 100644 index 0000000000000000000000000000000000000000..45f7a6718bd6fdd73915d9f822f5c6ea69ea195e --- /dev/null +++ b/contracts/settings.py @@ -0,0 +1,11 @@ +import dbsettings + +from django import forms + + +class ContractSettings(dbsettings.Group): + motd = dbsettings.StringValue( + "Informace na indexové stránce", + help_text="Poporuje formátování skrze Markdown.", + widget=forms.Textarea, + ) diff --git a/contracts/templates/contracts/index.html b/contracts/templates/contracts/index.html index a28a22f69addd07d7d797c01f4dbeb484a5b80f8..12f78afd11f6c2b264f2f0322cc5f7f9f4499098 100644 --- a/contracts/templates/contracts/index.html +++ b/contracts/templates/contracts/index.html @@ -1,17 +1,9 @@ {% extends "shared/includes/base.html" %} +{% load markdownify %} {% block content %} <div class="prose max-w-none mb-6 md:mb-10"> - <p> - Registr smluv České pirátské strany slouží k evidenci i transparentnímu - informování o smlouvách uzavřených Pirátskou stranou s dalšími subjekty.<br> - Nahrávání smluv se řídí <a - href="https://wiki.pirati.cz/ao/pravidla/registr" - target="_blank" - >předpisem Pirátů</a>. V případě dotazů nás kontaktujte na e-mail <a - href="mailto:archiv@pirati.cz" - >archiv@pirati.cz</a>. - </p> + {{ settings.motd|markdownify|safe }} </div> <hr class="mb-6 md:mb-10"> diff --git a/contracts/views.py b/contracts/views.py index 9641776f61b5a385ab54846e314798d57e33fd76..a28fecd98e692a03fb8c94b3dcf29039fab597e9 100644 --- a/contracts/views.py +++ b/contracts/views.py @@ -91,6 +91,7 @@ def index(request): "description": "", "page": page, "paginator": paginator, + "settings": Contract.settings, }, ) diff --git a/registry/settings/base.py b/registry/settings/base.py index e7836e0a3548271e308361830c8dcd10c87c2ca2..15f0ca7001cdb133c88efd3666e6fdba61f893ea 100644 --- a/registry/settings/base.py +++ b/registry/settings/base.py @@ -53,6 +53,7 @@ INSTALLED_APPS = [ "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", + "dbsettings", "nested_admin", "rangefilter", "guardian", @@ -215,6 +216,11 @@ ADMIN_ORDERING = { } +# DBsettings + +DBSETTINGS_VALUE_LENGTH = 65536 + + # ClamAV CLAMD_USE_TCP = True diff --git a/registry/urls.py b/registry/urls.py index dd62a4fefa07e62634762bf82825688545108c47..0105484d769d37b542516ef9d94a9fd7357db62e 100644 --- a/registry/urls.py +++ b/registry/urls.py @@ -29,4 +29,5 @@ urlpatterns = [ path("oidc/", include("oidc.urls")), path("media/", include("media_server.urls")), path("admin/", admin.site.urls), + path("settings/", include("dbsettings.urls")), ] + pirates_urlpatterns diff --git a/requirements/base.txt b/requirements/base.txt index f931f52a504dec75479cd054b502dcd6284b62ab..a1283e8149633aef51fc6123449f7a5137098f55 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,6 +4,7 @@ django-admin-index==2.0.2 django-admin-interface==0.24.2 django-admin-rangefilter==0.9.0 django-database-url==1.0.3 +django-dbsettings==1.3.0 django-downloadview==2.3.0 django-nested-admin==4.0.2 django-ordered-model==3.7.1