From d2955be8e8fd707317ba4dbe9e008f78e3ae9fe6 Mon Sep 17 00:00:00 2001 From: Moses Date: Sun, 7 Jun 2020 10:54:00 +0000 Subject: [PATCH] Adds Event form with start,end,place required --- fet2020/posts/admin.py | 16 ++++++---------- fet2020/posts/forms.py | 22 +++++++++++++++++++--- fet2020/posts/models.py | 7 ++++--- 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/fet2020/posts/admin.py b/fet2020/posts/admin.py index e3a32bc4..8df326fa 100644 --- a/fet2020/posts/admin.py +++ b/fet2020/posts/admin.py @@ -1,11 +1,13 @@ from django.contrib import admin from .models import Post, Event, Category + # Register your models here. -from .forms import MyPostForm +from .forms import MyPostForm, MyEventForm class MyCategoryAdmin(admin.ModelAdmin): model = Category admin.site.register(Category,MyCategoryAdmin) + class MyPostAdmin(admin.ModelAdmin): form = MyPostForm model = Post @@ -15,7 +17,6 @@ class MyPostAdmin(admin.ModelAdmin): obj.author = request.user super().save_model(request, obj, form, change) - class Media: css = { "all": [ @@ -29,13 +30,8 @@ class MyPostAdmin(admin.ModelAdmin): admin.site.register(Post,MyPostAdmin) -class MyEventAdmin(admin.ModelAdmin): - form = MyPostForm +class MyEventAdmin(MyPostAdmin): + form = MyEventForm model = Event - list_filter=['is_event'] - list_display=['title','subtitle','slug','public_date'] - def save_model(self, request, obj, form, change): - obj.author = request.user - super().save_model(request, obj, form, change) -admin.site.register(Event,MyEventAdmin) +admin.site.register(Event,MyEventAdmin) \ No newline at end of file diff --git a/fet2020/posts/forms.py b/fet2020/posts/forms.py index e7e90b54..0421ebcf 100644 --- a/fet2020/posts/forms.py +++ b/fet2020/posts/forms.py @@ -1,7 +1,7 @@ from django import forms from ckeditor_uploader.widgets import CKEditorUploadingWidget -from .models import Post +from .models import Post, Event class MyPostForm(forms.ModelForm): class Meta: @@ -12,6 +12,22 @@ class MyPostForm(forms.ModelForm): class Media: js = ( - 'js/auto_slug.js', # automatic slag completion ajax - 'js/tag_completion.js', + 'js/auto_slug.js', # automatic slag completion via ajax + 'js/tag_completion.js', # to get a list for tag autocompletion via ajax ) + +class MyEventForm(MyPostForm): + class Meta: + model = Event + fields = ['title','subtitle','tags', 'image','body', + 'event_start','event_end', 'event_place','slug','author'] + + widgets = {'body': CKEditorUploadingWidget(config_name='default')} + + 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 = True + self.fields['event_place'].required = True + diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index bcea0523..34d06c95 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -113,11 +113,12 @@ class PostSerializer(serializers.HyperlinkedModelSerializer): model = Post fields = ['slug','title','subtitle', 'body','url','public_date', 'legacy_id','image', 'event_start','event_end','is_fetsitzung'] - - - class Event(Post): class Meta: proxy=True objects=EventManager() + def save(self, *args, **kwargs): + self.is_event=True + + super().save(*args, **kwargs)