Skip to content
Snippets Groups Projects
Commit 19e46342 authored by Benjamin Hättasch's avatar Benjamin Hättasch
Browse files

Fix admin action for wiki export

Looks like this was broken since the switch to individual boxes per category.
Fixed it and made it more robust (show error message when trying to export AKs from more than one event at the same time).
parent 165088c0
No related branches found
No related tags found
No related merge requests found
...@@ -196,7 +196,14 @@ class AKAdmin(SimpleHistoryAdmin): ...@@ -196,7 +196,14 @@ class AKAdmin(SimpleHistoryAdmin):
@action(description=_("Export to wiki syntax")) @action(description=_("Export to wiki syntax"))
def wiki_export(self, request, queryset): def wiki_export(self, request, queryset):
return render(request, 'admin/AKModel/wiki_export.html', context={"AKs": queryset}) # Only export when all AKs belong to the same event
if queryset.values("event").distinct().count() == 1:
event = queryset.first().event
pks = set(ak.pk for ak in queryset.all())
categories_with_aks = event.get_categories_with_aks(wishes_seperately=False, filter=lambda ak: ak.pk in pks,
hide_empty_categories=True)
return render(request, 'admin/AKModel/wiki_export.html', context={"categories_with_aks": categories_with_aks})
self.message_user(request, _("Cannot export AKs from more than one event at the same time."), messages.ERROR)
def formfield_for_foreignkey(self, db_field, request, **kwargs): def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event': if db_field.name == 'event':
......
...@@ -2,7 +2,7 @@ msgid "" ...@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-23 19:20+0000\n" "POT-Creation-Date: 2022-10-23 23:19+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -11,7 +11,7 @@ msgstr "" ...@@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: AKModel/admin.py:61 AKModel/admin.py:63 #: AKModel/admin.py:59 AKModel/admin.py:62
#: AKModel/templates/admin/AKModel/event_wizard/activate.html:32 #: AKModel/templates/admin/AKModel/event_wizard/activate.html:32
#: AKModel/templates/admin/AKModel/event_wizard/created_prepare_import.html:48 #: AKModel/templates/admin/AKModel/event_wizard/created_prepare_import.html:48
#: AKModel/templates/admin/AKModel/event_wizard/finish.html:21 #: AKModel/templates/admin/AKModel/event_wizard/finish.html:21
...@@ -21,38 +21,42 @@ msgstr "" ...@@ -21,38 +21,42 @@ msgstr ""
msgid "Status" msgid "Status"
msgstr "Status" msgstr "Status"
#: AKModel/admin.py:70 #: AKModel/admin.py:69
msgid "Publish plan" msgid "Publish plan"
msgstr "Plan veröffentlichen" msgstr "Plan veröffentlichen"
#: AKModel/admin.py:73 #: AKModel/admin.py:72
msgid "Plan published" msgid "Plan published"
msgstr "Plan veröffentlicht" msgstr "Plan veröffentlicht"
#: AKModel/admin.py:75 #: AKModel/admin.py:74
msgid "Unpublish plan" msgid "Unpublish plan"
msgstr "Plan verbergen" msgstr "Plan verbergen"
#: AKModel/admin.py:78 #: AKModel/admin.py:77
msgid "Plan unpublished" msgid "Plan unpublished"
msgstr "Plan verborgen" msgstr "Plan verborgen"
#: AKModel/admin.py:147 #: AKModel/admin.py:146
msgid "Wish" msgid "Wish"
msgstr "AK-Wunsch" msgstr "AK-Wunsch"
#: AKModel/admin.py:153 #: AKModel/admin.py:152
msgid "Is wish" msgid "Is wish"
msgstr "Ist ein Wunsch" msgstr "Ist ein Wunsch"
#: AKModel/admin.py:154 #: AKModel/admin.py:153
msgid "Is not a wish" msgid "Is not a wish"
msgstr "Ist kein Wunsch" msgstr "Ist kein Wunsch"
#: AKModel/admin.py:200 #: AKModel/admin.py:197
msgid "Export to wiki syntax" msgid "Export to wiki syntax"
msgstr "In Wiki-Syntax exportieren" msgstr "In Wiki-Syntax exportieren"
#: AKModel/admin.py:205
msgid "Cannot export AKs from more than one event at the same time."
msgstr "Kann nicht AKs von mehreren Events zur selben Zeit exportieren."
#: AKModel/admin.py:220 AKModel/views.py:442 #: AKModel/admin.py:220 AKModel/views.py:442
msgid "Reset interest in AKs" msgid "Reset interest in AKs"
msgstr "Interesse an AKs zurücksetzen" msgstr "Interesse an AKs zurücksetzen"
...@@ -61,19 +65,19 @@ msgstr "Interesse an AKs zurücksetzen" ...@@ -61,19 +65,19 @@ msgstr "Interesse an AKs zurücksetzen"
msgid "Reset AKs' interest counters" msgid "Reset AKs' interest counters"
msgstr "Interessenszähler der AKs zurücksetzen" msgstr "Interessenszähler der AKs zurücksetzen"
#: AKModel/admin.py:312 #: AKModel/admin.py:309
msgid "AK Details" msgid "AK Details"
msgstr "AK-Details" msgstr "AK-Details"
#: AKModel/admin.py:367 AKModel/views.py:412 #: AKModel/admin.py:366 AKModel/views.py:412
msgid "Mark Constraint Violations as manually resolved" msgid "Mark Constraint Violations as manually resolved"
msgstr "Markiere Constraintverletzungen als manuell behoben" msgstr "Markiere Constraintverletzungen als manuell behoben"
#: AKModel/admin.py:372 AKModel/views.py:422 #: AKModel/admin.py:371 AKModel/views.py:422
msgid "Set Constraint Violations to level \"violation\"" msgid "Set Constraint Violations to level \"violation\""
msgstr "Constraintverletzungen auf Level \"Violation\" setzen" msgstr "Constraintverletzungen auf Level \"Violation\" setzen"
#: AKModel/admin.py:377 AKModel/views.py:432 #: AKModel/admin.py:376 AKModel/views.py:432
msgid "Set Constraint Violations to level \"warning\"" msgid "Set Constraint Violations to level \"warning\""
msgstr "Constraintverletzungen auf Level \"Warning\" setzen" msgstr "Constraintverletzungen auf Level \"Warning\" setzen"
......
...@@ -73,7 +73,7 @@ class Event(models.Model): ...@@ -73,7 +73,7 @@ class Event(models.Model):
event = Event.objects.order_by('start').filter(start__gt=datetime.now()).first() event = Event.objects.order_by('start').filter(start__gt=datetime.now()).first()
return event return event
def get_categories_with_aks(self, wishes_seperately=False, filter=lambda ak: True): def get_categories_with_aks(self, wishes_seperately=False, filter=lambda ak: True, hide_empty_categories=False):
""" """
Get AKCategories as well as a list of AKs belonging to the category for this event Get AKCategories as well as a list of AKs belonging to the category for this event
...@@ -97,7 +97,8 @@ class Event(models.Model): ...@@ -97,7 +97,8 @@ class Event(models.Model):
else: else:
if filter(ak): if filter(ak):
ak_list.append(ak) ak_list.append(ak)
categories_with_aks.append((category, ak_list)) if not hide_empty_categories or len(ak_list) > 0:
categories_with_aks.append((category, ak_list))
return categories_with_aks, ak_wishes return categories_with_aks, ak_wishes
else: else:
for category in categories: for category in categories:
...@@ -105,7 +106,8 @@ class Event(models.Model): ...@@ -105,7 +106,8 @@ class Event(models.Model):
for ak in category.ak_set.all(): for ak in category.ak_set.all():
if filter(ak): if filter(ak):
ak_list.append(ak) ak_list.append(ak)
categories_with_aks.append((category, ak_list)) if not hide_empty_categories or len(ak_list) > 0:
categories_with_aks.append((category, ak_list))
return categories_with_aks return categories_with_aks
def get_unscheduled_wish_slots(self): def get_unscheduled_wish_slots(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment