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
Branches
No related tags found
1 merge request!133Add new functionality to backend
......@@ -196,7 +196,14 @@ class AKAdmin(SimpleHistoryAdmin):
@action(description=_("Export to wiki syntax"))
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):
if db_field.name == 'event':
......
......@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\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/created_prepare_import.html:48
#: AKModel/templates/admin/AKModel/event_wizard/finish.html:21
......@@ -21,38 +21,42 @@ msgstr ""
msgid "Status"
msgstr "Status"
#: AKModel/admin.py:70
#: AKModel/admin.py:69
msgid "Publish plan"
msgstr "Plan veröffentlichen"
#: AKModel/admin.py:73
#: AKModel/admin.py:72
msgid "Plan published"
msgstr "Plan veröffentlicht"
#: AKModel/admin.py:75
#: AKModel/admin.py:74
msgid "Unpublish plan"
msgstr "Plan verbergen"
#: AKModel/admin.py:78
#: AKModel/admin.py:77
msgid "Plan unpublished"
msgstr "Plan verborgen"
#: AKModel/admin.py:147
#: AKModel/admin.py:146
msgid "Wish"
msgstr "AK-Wunsch"
#: AKModel/admin.py:153
#: AKModel/admin.py:152
msgid "Is wish"
msgstr "Ist ein Wunsch"
#: AKModel/admin.py:154
#: AKModel/admin.py:153
msgid "Is not a wish"
msgstr "Ist kein Wunsch"
#: AKModel/admin.py:200
#: AKModel/admin.py:197
msgid "Export to wiki syntax"
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
msgid "Reset interest in AKs"
msgstr "Interesse an AKs zurücksetzen"
......@@ -61,19 +65,19 @@ msgstr "Interesse an AKs zurücksetzen"
msgid "Reset AKs' interest counters"
msgstr "Interessenszähler der AKs zurücksetzen"
#: AKModel/admin.py:312
#: AKModel/admin.py:309
msgid "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"
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\""
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\""
msgstr "Constraintverletzungen auf Level \"Warning\" setzen"
......
......@@ -73,7 +73,7 @@ class Event(models.Model):
event = Event.objects.order_by('start').filter(start__gt=datetime.now()).first()
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
......@@ -97,7 +97,8 @@ class Event(models.Model):
else:
if filter(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
else:
for category in categories:
......@@ -105,7 +106,8 @@ class Event(models.Model):
for ak in category.ak_set.all():
if filter(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
def get_unscheduled_wish_slots(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment