From e490980d3e66c8cc731fb4428bb6961db65b5e2c Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 6 Sep 2020 11:30:49 +0000 Subject: [PATCH] add labels and helptexts --- fet2020/posts/admin.py | 5 ++-- fet2020/posts/forms.py | 52 +++++++++++++++++++++++++++++++++++++++-- fet2020/posts/models.py | 12 +++++----- 3 files changed, 59 insertions(+), 10 deletions(-) diff --git a/fet2020/posts/admin.py b/fet2020/posts/admin.py index c964ad38..638194b4 100644 --- a/fet2020/posts/admin.py +++ b/fet2020/posts/admin.py @@ -23,7 +23,7 @@ class MyPostAdmin(admin.ModelAdmin): form = MyPostForm model = Post list_filter = ['is_pinned', 'is_hidden'] - list_display = ['title', 'subtitle', 'slug', 'public_date', 'is_pinned', 'is_hidden'] + list_display = ['title', 'slug', 'public_date', 'is_pinned', 'is_hidden'] ordering = ['is_hidden', '-public_date'] def add_view(self, request, form_url='', extra_context=None): @@ -60,7 +60,8 @@ class MyPostAdmin(admin.ModelAdmin): class MyEventAdmin(MyPostAdmin): form = MyEventForm model = Event - list_display = ['title', 'subtitle', 'slug', 'event_start', 'public_date', 'is_pinned'] + list_filter = ['is_pinned'] + list_display = ['title', 'slug', 'event_start', 'public_date', 'is_pinned'] ordering = ['-event_start'] actions = [make_fetmeeting] diff --git a/fet2020/posts/forms.py b/fet2020/posts/forms.py index 4db5b7fd..d96e06bb 100644 --- a/fet2020/posts/forms.py +++ b/fet2020/posts/forms.py @@ -1,5 +1,7 @@ -from ckeditor_uploader.widgets import CKEditorUploadingWidget from django import forms +from django.utils.translation import gettext_lazy as _ + +from ckeditor_uploader.widgets import CKEditorUploadingWidget from .models import Post, Event, News, FetMeeting @@ -25,6 +27,23 @@ class MyNewsForm(MyPostForm): 'title', 'subtitle', 'tags', 'image', 'body', 'slug', 'author', 'public_date', 'is_pinned', 'is_hidden', ] + labels = { + 'title': _('Titel des Posts'), + 'image': _('Hintergrundbild des Posts'), + 'body': _('Beschreibung des Posts'), + 'author': _('Autor'), + 'public_date': _('Veröffentlichung'), + 'is_pinned': _('Post anheften'), + 'is_hidden': _('Post verstecken'), + } + help_texts = { + 'is_pinned': _( + 'Dieser Post soll an die Startseite als erster Post angeheftet werden.' + ), + 'is_hidden': _( + 'Dieser Post soll im News Feed nicht auftauchen, z.B. Impressum.' + ), + } widgets = {'body': CKEditorUploadingWidget(config_name='default')} @@ -39,6 +58,22 @@ class MyEventForm(MyPostForm): 'title', 'subtitle', 'tags', 'image', 'body', 'event_start', 'event_end', 'event_place', 'slug', 'author', 'public_date', 'is_pinned', ] + labels = { + 'title': _('Titel des Events'), + 'image': _('Hintergrundbild des Posts'), + 'body': _('Beschreibung des Events'), + 'event_start': _('Start des Events'), + 'event_end': _('Ende des Events'), + 'event_place': _('Ort des Events'), + 'author': _('Autor'), + 'public_date': _('Veröffentlichung'), + 'is_pinned': _('Event anheften'), + } + help_texts = { + 'is_pinned': _( + 'Dieses Event soll an die Startseite als erster Post angeheftet werden.' + ), + } widgets = {'body': CKEditorUploadingWidget(config_name='default')} @@ -55,10 +90,23 @@ class MyEventForm(MyPostForm): class MyFetMeetingForm(MyEventForm): class Meta: model = FetMeeting - fields = ['event_start', 'event_end', 'tags', 'has_agenda'] + fields = ['event_start', 'event_end', 'tags', 'has_agenda', 'has_protocol'] + labels = { + 'event_start': _('Start der Sitzung'), + 'event_end': _('Ende der Sitzung'), + 'has_agenda': _('Agenda'), + 'has_protocol': _('Protokoll'), + } + help_texts = { + 'has_agenda': _('Agenda zur Sitzung hinzufügen.'), + 'has_protocol': _('Protokoll zur Sitzung hinzufügen.'), + } def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # to get the self.fields set self.fields['event_start'].required = True self.fields['event_end'].required = False + + self.fields['has_agenda'].initial = True + self.fields['has_protocol'].initial = True diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index 3d9b8450..f7012bfa 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -71,10 +71,10 @@ class Post(models.Model): post_type = models.CharField(max_length=1, choices=__choices, editable=False) # post is pinned at main page - is_pinned = models.BooleanField(default=False) + is_pinned = models.BooleanField(verbose_name="ANGEHEFTET", default=False) # post is hidden from newsfeed (e.g. about) - is_hidden = models.BooleanField(default=False) + is_hidden = models.BooleanField(verbose_name="UNSICHTBAR", default=False) # Zusatz Info wenn ein Event gepostet wird event_start = models.DateTimeField('Event Start', null=True, blank=True) @@ -138,7 +138,10 @@ class Post(models.Model): return reverse('posts.show', kwargs={"id": self.slug}) def save(self, *args, **kwargs): - "save the post with some defaults" + # save the post with some defaults + if not self.public_date: + self.public_date = timezone.now() + if (self.id is None) and (not self.slug): self.slug = slugify(self.public_date.date()) + "-" + slugify(self.title) @@ -252,9 +255,6 @@ class FetMeeting(Event): # TODO # self.image - self.has_protocol = True - self.has_agenda = True - # TODO # self.protocol_key # self.agenda_key