From 371ecda4cc6c6bb4fb7348157a593d40b7ffa568 Mon Sep 17 00:00:00 2001 From: gw3000 Date: Thu, 20 Jul 2023 20:18:11 +0200 Subject: [PATCH] ckeditor added and single bird help --- app/bird/admin.py | 2 +- app/bird/models.py | 5 +++-- app/bird/templates/bird/bird_help.html | 12 ++++++++---- app/bird/templates/bird/bird_help_single.html | 10 ++++++++++ app/bird/urls.py | 2 ++ app/bird/views.py | 9 ++++++++- app/requirements.txt | 3 ++- 7 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 app/bird/templates/bird/bird_help_single.html diff --git a/app/bird/admin.py b/app/bird/admin.py index 15d9d37..f62e0ed 100644 --- a/app/bird/admin.py +++ b/app/bird/admin.py @@ -18,7 +18,7 @@ class FallenBirdAdmin(admin.ModelAdmin): @admin.register(Bird) class BirdAdmin(admin.ModelAdmin): - list_display = ["name", "description"] + list_display = ["name"] @admin.register(BirdStatus) diff --git a/app/bird/models.py b/app/bird/models.py index 603ec7a..20d1670 100644 --- a/app/bird/models.py +++ b/app/bird/models.py @@ -2,6 +2,7 @@ from datetime import date from uuid import uuid4 from aviary.models import Aviary +from ckeditor.fields import RichTextField from django.conf import settings from django.db import models from django.utils.translation import gettext_lazy as _ @@ -59,9 +60,9 @@ class FallenBird(models.Model): class Bird(models.Model): - id = models.UUIDField(primary_key=True, default=uuid4, editable=False) + id = models.BigAutoField(primary_key=True) name = models.CharField(max_length=256, unique=True, verbose_name=_("Bezeichnung")) - description = models.CharField(max_length=4096, verbose_name=_("Hilfetext")) + description = RichTextField(blank=True, null=True) class Meta: verbose_name = _("Vogel") diff --git a/app/bird/templates/bird/bird_help.html b/app/bird/templates/bird/bird_help.html index 7ca87ca..ea6565f 100644 --- a/app/bird/templates/bird/bird_help.html +++ b/app/bird/templates/bird/bird_help.html @@ -4,10 +4,14 @@

Hilfesammlung

- {% for bird in birds %} -

{{ bird.name }}

-

{{ bird.description }}

- {% endfor %} +
{% endblock content %} \ No newline at end of file diff --git a/app/bird/templates/bird/bird_help_single.html b/app/bird/templates/bird/bird_help_single.html new file mode 100644 index 0000000..0032898 --- /dev/null +++ b/app/bird/templates/bird/bird_help_single.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} +{% load static %} +{% block content %} +
+
+

{{ bird.name }}

+

{{ bird.description|safe }}

+
+
+{% endblock content %} \ No newline at end of file diff --git a/app/bird/urls.py b/app/bird/urls.py index 0385f7c..98b9443 100644 --- a/app/bird/urls.py +++ b/app/bird/urls.py @@ -5,6 +5,7 @@ from .views import ( bird_create, bird_delete, bird_help, + bird_help_single, bird_inactive, bird_recover, bird_recover_all, @@ -17,6 +18,7 @@ urlpatterns = [ path("create/", bird_create, name="bird_create"), path("delete/", bird_delete, name="bird_delete"), path("help/", bird_help, name="bird_help"), + path("help/", bird_help_single, name="bird_help_single"), path("recover/", bird_recover, name="bird_recover"), path("recover/all", bird_recover_all, name="bird_recover_all"), path("/", bird_single, name="bird_single"), diff --git a/app/bird/views.py b/app/bird/views.py index 6b90b56..08776da 100644 --- a/app/bird/views.py +++ b/app/bird/views.py @@ -36,11 +36,18 @@ def bird_create(request): @login_required(login_url="account_login") def bird_help(request): - birds = Bird.objects.all() + birds = Bird.objects.all().order_by("name") context = {"birds": birds} return render(request, "bird/bird_help.html", context) +@login_required(login_url="account_login") +def bird_help_single(request, id): + bird = Bird.objects.all().get(id=id) + context = {"bird": bird} + return render(request, "bird/bird_help_single.html", context) + + @login_required(login_url="account_login") def bird_all(request): birds = FallenBird.objects.filter(Q(status="1") | Q(status="2")).annotate( diff --git a/app/requirements.txt b/app/requirements.txt index e4ff48b..4716028 100644 --- a/app/requirements.txt +++ b/app/requirements.txt @@ -3,6 +3,7 @@ crispy-bootstrap5>=0.6 django-allauth>=0.50 django-bootstrap-datepicker-plus>=4.0 django-bootstrap-modal-forms>=2 +django-ckeditor>=6.6 django-crispy-forms>=1 django-environ==0.9.0 django-environ>=0.9 @@ -10,4 +11,4 @@ django-jazzmin>=2.6.0 gunicorn>=20.1 names>=0.3.0 psycopg2-binary>=2.9 -whitenoise>=6.5 +whitenoise>=6.5 \ No newline at end of file