From ffd5cb318e8b4ca08c71066c280f582928e115c9 Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 12 Oct 2020 15:37:20 +0000 Subject: [PATCH] update 'convert event in fetmeeting' --- fet2020/posts/admin.py | 53 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/fet2020/posts/admin.py b/fet2020/posts/admin.py index 638194b4..33417518 100644 --- a/fet2020/posts/admin.py +++ b/fet2020/posts/admin.py @@ -1,19 +1,57 @@ -# import django.contrib.auth.admin -# import django.contrib.auth.models -import taggit.admin - -from django.contrib import admin, auth +from django.contrib import admin, auth, messages +from django.utils.translation import gettext_lazy as _ from .models import Post, Event, News, FetMeeting from .forms import MyPostForm, MyEventForm, MyNewsForm, MyFetMeetingForm +from documents.api import createPadifNotExists + +import taggit.admin admin.site.unregister(auth.models.User) admin.site.unregister(auth.models.Group) admin.site.unregister(taggit.models.Tag) -def make_fetmeeting(modeladmin, request, queryset): - queryset.update(post_type='F') +def make_fetmeeting(self, request, queryset): + qs = self.get_queryset(request).filter(id=request.POST['_selected_action']).first() + + failed = False + agenda_key = None + protocol_key = None + + try: + agenda_key = createPadifNotExists(qs.slug + "-agenda") + except Exception as e: + self.message_user( + request, + _('Das Agenda konnte nicht erstellt werden. Error: %s') % str(e), + messages.ERROR, + ) + failed = True + + try: + protocol_key = createPadifNotExists(qs.slug + "-protocol") + except Exception as e: + self.message_user( + request, + _('Das Protokoll konnte nicht erstellt werden. Error: %s') % str(e), + messages.ERROR, + ) + failed = True + + if not failed: + queryset.update( + post_type='F', + has_agenda=True, + has_protocol=True, + agenda_key=agenda_key, + protocol_key=protocol_key, + ) + self.message_user( + request, + _('Das Event %s wurde erfolgreich in eine FET Sitzung konvertiert.') % (qs.title), + messages.SUCCESS, + ) make_fetmeeting.short_description = "In eine Fachschaftssitzung konvertieren" @@ -82,6 +120,7 @@ class MyFetMeetingAdmin(MyEventAdmin): model = FetMeeting list_filter = [] list_display = ['title', 'slug', 'event_start', 'public_date'] + actions = [] admin.site.register(FetMeeting, MyFetMeetingAdmin)