From 6485fae60abdb969b8a7256ee5e2900203666965 Mon Sep 17 00:00:00 2001 From: Sebastian Blom Date: Thu, 28 May 2026 20:08:55 +0200 Subject: [PATCH] django-version, pin unfold-version, admin-panel add button --- .../migrations/0010_alter_member_positions.py | 18 ++++ backend/config/settings.py | 2 +- backend/requirements.txt | 6 +- backend/templates/admin/change_list.html | 99 +++++++++++++++++++ .../templates/unfold/helpers/add_link.html | 18 ++++ 5 files changed, 139 insertions(+), 4 deletions(-) create mode 100644 backend/backend/migrations/0010_alter_member_positions.py create mode 100644 backend/templates/admin/change_list.html create mode 100644 backend/templates/unfold/helpers/add_link.html diff --git a/backend/backend/migrations/0010_alter_member_positions.py b/backend/backend/migrations/0010_alter_member_positions.py new file mode 100644 index 0000000..e3f1157 --- /dev/null +++ b/backend/backend/migrations/0010_alter_member_positions.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.5 on 2026-05-28 17:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('backend', '0009_add_email_verification_code'), + ] + + operations = [ + migrations.AlterField( + model_name='member', + name='positions', + field=models.ManyToManyField(related_name='members', through='backend.Appointment', through_fields=('member', 'position'), to='backend.position', verbose_name='Positions'), + ), + ] diff --git a/backend/config/settings.py b/backend/config/settings.py index 73c3153..41caa7b 100644 --- a/backend/config/settings.py +++ b/backend/config/settings.py @@ -101,7 +101,7 @@ TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", - "DIRS": [], + "DIRS": [BASE_DIR / "templates"], "APP_DIRS": True, "OPTIONS": { "context_processors": [ diff --git a/backend/requirements.txt b/backend/requirements.txt index ab2370f..121cb27 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,12 +1,12 @@ # async functionality -asgiref==3.6.0 +asgiref==3.11.1 # Websockets channels[daphne]==4.0.0 channels_redis==4.1.0 # Django -Django[argon2]==4.1.7 +Django[argon2]==6.0.5 django-cors-headers==3.14.0 django-filter==23.2 djangorestframework==3.14.0 @@ -20,7 +20,7 @@ setuptools<81.0.0 requests>=2.25.0 # Admin theme -django-unfold +django-unfold==0.94.0 django-apscheduler==0.6.2 apscheduler==3.10.1 diff --git a/backend/templates/admin/change_list.html b/backend/templates/admin/change_list.html new file mode 100644 index 0000000..94a76d2 --- /dev/null +++ b/backend/templates/admin/change_list.html @@ -0,0 +1,99 @@ +{% extends "admin/base_site.html" %} +{% load i18n admin_urls static admin_list unfold_list %} + +{% block extrastyle %} + {{ block.super }} + + + + {{ media.css }} + + {% if not actions_on_top and not actions_on_bottom %} + + {% endif %} +{% endblock %} + +{% block extrahead %} + {{ block.super }} + {{ media.js }} +{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-list{% endblock %} + +{% block coltype %}{% endblock %} + +{% block nav-global-side %}{% endblock %} + +{% block content %} +
+ {% if cl.formset and cl.formset.errors %} + {% include "unfold/helpers/messages/errornote.html" with errors=cl.formset.errors %} + + {{ cl.formset.non_form_errors }} + {% endif %} + +
+
+
+ {% block date_hierarchy %} + {% if cl.date_hierarchy %} + {% date_hierarchy cl %} + {% endif %} + {% endblock %} + + {% if cl.model_admin.list_before_template and not is_popup %} + {% include cl.model_admin.list_before_template %} + {% endif %} + + {% spaceless %} +
+ {% block search %} + {% search_form cl %} + {% endblock %} + + {% include "unfold/helpers/change_list_filter_horizontal.html" %} + +
+ {% block filters %} + {% include "unfold/helpers/change_list_filter_button.html" %} + {% endblock %} + + {% if has_add_permission %} + {% include "unfold/helpers/add_link.html" %} + {% endif %} +
+
+ {% endspaceless %} + +
+ {% csrf_token %} + + {% if cl.formset %} + {{ cl.formset.management_form }} + {% endif %} + + {% block result_list %} + {% include "unfold/helpers/change_list_actions.html" %} + + {% unfold_result_list cl %} + {% endblock %} +
+ + {% if cl.model_admin.list_after_template and not is_popup %} + {% include cl.model_admin.list_after_template %} + {% endif %} +
+ + {% include "unfold/helpers/change_list_filter_vertical.html" %} +
+
+
+{% endblock %} + +{% block footer %} + {% block pagination %} + {% include "unfold/helpers/pagination.html" %} + {% endblock %} +{% endblock %} diff --git a/backend/templates/unfold/helpers/add_link.html b/backend/templates/unfold/helpers/add_link.html new file mode 100644 index 0000000..15c010f --- /dev/null +++ b/backend/templates/unfold/helpers/add_link.html @@ -0,0 +1,18 @@ +{% load i18n admin_urls %} + +{% if cl %} + {% url cl.opts|admin_urlname:"add" as add_url %} + {% blocktranslate with name=cl.opts.verbose_name asvar title %}Add {{ name }}{% endblocktranslate %} +{% else %} + {% url opts|admin_urlname:"add" as add_url %} + {% blocktranslate with name=opts.verbose_name asvar title %}Add {{ name }}{% endblocktranslate %} +{% endif %} + +{% if add_url %} + {% if cl.model_admin.show_add_link or adminform.model_admin.show_add_link %} + + add + {% trans "Add" %} + + {% endif %} +{% endif %}