Skip to content
Snippets Groups Projects
Commit a1fbe248 authored by Nadja Geisler's avatar Nadja Geisler :sunny:
Browse files

Merge branch 'feature-wizard-buttons' into 'main'

Extend new event wizard to cover cloning of dashboard buttons, too

Closes #183

See merge request !154
parents 205684a3 ebe2677c
No related branches found
No related tags found
1 merge request!154Extend new event wizard to cover cloning of dashboard buttons, too
Pipeline #128852 passed
...@@ -69,6 +69,17 @@ class NewEventWizardImportForm(forms.Form): ...@@ -69,6 +69,17 @@ class NewEventWizardImportForm(forms.Form):
self.fields["import_requirements"].queryset = self.fields["import_requirements"].queryset.filter( self.fields["import_requirements"].queryset = self.fields["import_requirements"].queryset.filter(
event=self.initial["import_event"]) event=self.initial["import_event"])
from django.apps import apps
if apps.is_installed("AKDashboard"):
from AKDashboard.models import DashboardButton
self.fields["import_buttons"] = forms.ModelMultipleChoiceField(
queryset=DashboardButton.objects.filter(event=self.initial["import_event"]),
widget=forms.CheckboxSelectMultiple,
label=_("Copy dashboard buttons"),
required=False,
)
class NewEventWizardActivateForm(forms.ModelForm): class NewEventWizardActivateForm(forms.ModelForm):
class Meta: class Meta:
......
...@@ -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-12-28 01:03+0100\n" "POT-Creation-Date: 2023-01-01 19:22+0100\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"
...@@ -25,11 +25,11 @@ msgstr "Status" ...@@ -25,11 +25,11 @@ msgstr "Status"
msgid "Toggle plan visibility" msgid "Toggle plan visibility"
msgstr "Plansichtbarkeit ändern" msgstr "Plansichtbarkeit ändern"
#: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:491 #: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:496
msgid "Publish plan" msgid "Publish plan"
msgstr "Plan veröffentlichen" msgstr "Plan veröffentlichen"
#: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:501 #: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:506
msgid "Unpublish plan" msgid "Unpublish plan"
msgstr "Plan verbergen" msgstr "Plan verbergen"
...@@ -53,11 +53,11 @@ msgstr "In Wiki-Syntax exportieren" ...@@ -53,11 +53,11 @@ msgstr "In Wiki-Syntax exportieren"
msgid "Cannot export AKs from more than one event at the same time." msgid "Cannot export AKs from more than one event at the same time."
msgstr "Kann nicht AKs von mehreren Events zur selben Zeit exportieren." msgstr "Kann nicht AKs von mehreren Events zur selben Zeit exportieren."
#: AKModel/admin.py:236 AKModel/views.py:471 #: AKModel/admin.py:236 AKModel/views.py:476
msgid "Reset interest in AKs" msgid "Reset interest in AKs"
msgstr "Interesse an AKs zurücksetzen" msgstr "Interesse an AKs zurücksetzen"
#: AKModel/admin.py:241 AKModel/views.py:481 #: AKModel/admin.py:241 AKModel/views.py:486
msgid "Reset AKs' interest counters" msgid "Reset AKs' interest counters"
msgstr "Interessenszähler der AKs zurücksetzen" msgstr "Interessenszähler der AKs zurücksetzen"
...@@ -65,15 +65,15 @@ msgstr "Interessenszähler der AKs zurücksetzen" ...@@ -65,15 +65,15 @@ msgstr "Interessenszähler der AKs zurücksetzen"
msgid "AK Details" msgid "AK Details"
msgstr "AK-Details" msgstr "AK-Details"
#: AKModel/admin.py:384 AKModel/views.py:441 #: AKModel/admin.py:384 AKModel/views.py:446
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:389 AKModel/views.py:451 #: AKModel/admin.py:389 AKModel/views.py:456
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:394 AKModel/views.py:461 #: AKModel/admin.py:394 AKModel/views.py:466
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"
...@@ -155,52 +155,56 @@ msgstr "AK-Kategorie, deren Verfügbarkeit hier abgebildet wird" ...@@ -155,52 +155,56 @@ msgstr "AK-Kategorie, deren Verfügbarkeit hier abgebildet wird"
msgid "Availabilities" msgid "Availabilities"
msgstr "Verfügbarkeiten" msgstr "Verfügbarkeiten"
#: AKModel/forms.py:42 #: AKModel/forms.py:43
msgid "Copy ak requirements and ak categories of existing event" msgid "Copy ak requirements and ak categories of existing event"
msgstr "AK-Anforderungen und AK-Kategorien eines existierenden Events kopieren" msgstr "AK-Anforderungen und AK-Kategorien eines existierenden Events kopieren"
#: AKModel/forms.py:43 #: AKModel/forms.py:44
msgid "You can choose what to copy in the next step" msgid "You can choose what to copy in the next step"
msgstr "" msgstr ""
"Im nächsten Schritt kann ausgewählt werden, was genau kopiert werden soll" "Im nächsten Schritt kann ausgewählt werden, was genau kopiert werden soll"
#: AKModel/forms.py:51 #: AKModel/forms.py:52
msgid "Copy ak categories" msgid "Copy ak categories"
msgstr "AK-Kategorien kopieren" msgstr "AK-Kategorien kopieren"
#: AKModel/forms.py:58 #: AKModel/forms.py:59
msgid "Copy ak requirements" msgid "Copy ak requirements"
msgstr "AK-Anforderungen kopieren" msgstr "AK-Anforderungen kopieren"
#: AKModel/forms.py:92 #: AKModel/forms.py:78
msgid "Copy dashboard buttons"
msgstr "Dashboard-Buttons kopieren"
#: AKModel/forms.py:102
msgid "# next AKs" msgid "# next AKs"
msgstr "# nächste AKs" msgstr "# nächste AKs"
#: AKModel/forms.py:93 #: AKModel/forms.py:103
msgid "How many next AKs should be shown on a slide?" msgid "How many next AKs should be shown on a slide?"
msgstr "Wie viele nächste AKs sollen auf einer Folie angezeigt werden?" msgstr "Wie viele nächste AKs sollen auf einer Folie angezeigt werden?"
#: AKModel/forms.py:96 #: AKModel/forms.py:106
msgid "Presentation only?" msgid "Presentation only?"
msgstr "Nur Vorstellung?" msgstr "Nur Vorstellung?"
#: AKModel/forms.py:98 AKModel/forms.py:105 #: AKModel/forms.py:108 AKModel/forms.py:115
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
#: AKModel/forms.py:98 AKModel/forms.py:105 #: AKModel/forms.py:108 AKModel/forms.py:115
msgid "No" msgid "No"
msgstr "Nein" msgstr "Nein"
#: AKModel/forms.py:100 #: AKModel/forms.py:110
msgid "Restrict AKs to those that asked for chance to be presented?" msgid "Restrict AKs to those that asked for chance to be presented?"
msgstr "AKs auf solche, die um eine Vorstellung gebeten haben, einschränken?" msgstr "AKs auf solche, die um eine Vorstellung gebeten haben, einschränken?"
#: AKModel/forms.py:103 #: AKModel/forms.py:113
msgid "Space for notes in wishes?" msgid "Space for notes in wishes?"
msgstr "Platz für Notizen bei den Wünschen?" msgstr "Platz für Notizen bei den Wünschen?"
#: AKModel/forms.py:107 #: AKModel/forms.py:117
msgid "" msgid ""
"Create symbols indicating space to note down owners and timeslots for " "Create symbols indicating space to note down owners and timeslots for "
"wishes, e.g., to be filled out on a touch screen while presenting?" "wishes, e.g., to be filled out on a touch screen while presenting?"
...@@ -209,11 +213,11 @@ msgstr "" ...@@ -209,11 +213,11 @@ msgstr ""
"fürWünsche markieren, z.B. um während der Präsentation auf einem Touchscreen " "fürWünsche markieren, z.B. um während der Präsentation auf einem Touchscreen "
"ausgefüllt zu werden?" "ausgefüllt zu werden?"
#: AKModel/forms.py:113 AKModel/models.py:661 #: AKModel/forms.py:123 AKModel/models.py:661
msgid "Default Slots" msgid "Default Slots"
msgstr "Standardslots" msgstr "Standardslots"
#: AKModel/forms.py:115 #: AKModel/forms.py:125
msgid "" msgid ""
"Click and drag to add default slots, double-click to delete. Or use the " "Click and drag to add default slots, double-click to delete. Or use the "
"start and end inputs to add entries to the calendar view." "start and end inputs to add entries to the calendar view."
...@@ -222,11 +226,11 @@ msgstr "" ...@@ -222,11 +226,11 @@ msgstr ""
"Einträge zu löschen. Oder Start- und End-Eingabe verwenden, um der " "Einträge zu löschen. Oder Start- und End-Eingabe verwenden, um der "
"Kalenderansicht neue Einträge hinzuzufügen." "Kalenderansicht neue Einträge hinzuzufügen."
#: AKModel/forms.py:125 #: AKModel/forms.py:135
msgid "New rooms" msgid "New rooms"
msgstr "Neue Räume" msgstr "Neue Räume"
#: AKModel/forms.py:126 #: AKModel/forms.py:136
msgid "" msgid ""
"Enter room details in CSV format. Required colum is \"name\", optional " "Enter room details in CSV format. Required colum is \"name\", optional "
"colums are \"location\", \"capacity\", and \"url\" for online/hybrid rooms. " "colums are \"location\", \"capacity\", and \"url\" for online/hybrid rooms. "
...@@ -236,7 +240,7 @@ msgstr "" ...@@ -236,7 +240,7 @@ msgstr ""
"Spalten sind \"location\", \"capacity\", und \"url\" for Online-/" "Spalten sind \"location\", \"capacity\", und \"url\" for Online-/"
"HybridräumeTrennzeichen: Semikolon" "HybridräumeTrennzeichen: Semikolon"
#: AKModel/forms.py:137 #: AKModel/forms.py:147
msgid "CSV must contain a name column" msgid "CSV must contain a name column"
msgstr "CSV muss eine name-Spalte enthalten" msgstr "CSV muss eine name-Spalte enthalten"
...@@ -276,7 +280,7 @@ msgstr "Zeitzone" ...@@ -276,7 +280,7 @@ msgstr "Zeitzone"
msgid "Time Zone where this event takes place in" msgid "Time Zone where this event takes place in"
msgstr "Zeitzone in der das Event stattfindet" msgstr "Zeitzone in der das Event stattfindet"
#: AKModel/models.py:27 AKModel/views.py:251 #: AKModel/models.py:27 AKModel/views.py:252
msgid "Start" msgid "Start"
msgstr "Start" msgstr "Start"
...@@ -637,7 +641,7 @@ msgstr "AK bei Wiki-Export berücksichtigen?" ...@@ -637,7 +641,7 @@ msgstr "AK bei Wiki-Export berücksichtigen?"
#: AKModel/models.py:298 AKModel/models.py:505 #: AKModel/models.py:298 AKModel/models.py:505
#: AKModel/templates/admin/AKModel/status.html:57 #: AKModel/templates/admin/AKModel/status.html:57
#: AKModel/templates/admin/AKModel/status.html:64 AKModel/views.py:369 #: AKModel/templates/admin/AKModel/status.html:64 AKModel/views.py:374
msgid "AKs" msgid "AKs"
msgstr "AKs" msgstr "AKs"
...@@ -942,7 +946,7 @@ msgid "Successfully imported.<br><br>Do you want to activate your event now?" ...@@ -942,7 +946,7 @@ msgid "Successfully imported.<br><br>Do you want to activate your event now?"
msgstr "Erfolgreich importiert.<br><br>Soll das Event jetzt aktiviert werden?" msgstr "Erfolgreich importiert.<br><br>Soll das Event jetzt aktiviert werden?"
#: AKModel/templates/admin/AKModel/event_wizard/activate.html:27 #: AKModel/templates/admin/AKModel/event_wizard/activate.html:27
#: AKModel/views.py:256 #: AKModel/views.py:257
msgid "Finish" msgid "Finish"
msgstr "Abschluss" msgstr "Abschluss"
...@@ -1035,7 +1039,7 @@ msgstr "Bisher keine Räume" ...@@ -1035,7 +1039,7 @@ msgstr "Bisher keine Räume"
msgid "Add Room" msgid "Add Room"
msgstr "Raum hinzufügen" msgstr "Raum hinzufügen"
#: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:588 #: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:593
msgid "Import Rooms from CSV" msgid "Import Rooms from CSV"
msgstr "Räume aus CSV importieren" msgstr "Räume aus CSV importieren"
...@@ -1064,7 +1068,7 @@ msgstr "AKs, die besondere Aufmerksamkeit benötigen" ...@@ -1064,7 +1068,7 @@ msgstr "AKs, die besondere Aufmerksamkeit benötigen"
msgid "Enter Interest" msgid "Enter Interest"
msgstr "Interesse erfassen" msgstr "Interesse erfassen"
#: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:513 #: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:518
msgid "Edit Default Slots" msgid "Edit Default Slots"
msgstr "Standardslots bearbeiten" msgstr "Standardslots bearbeiten"
...@@ -1080,7 +1084,7 @@ msgstr "AKs als CSV exportieren" ...@@ -1080,7 +1084,7 @@ msgstr "AKs als CSV exportieren"
msgid "Export AKs for Wiki" msgid "Export AKs for Wiki"
msgstr "AKs im Wiki-Format exportieren" msgstr "AKs im Wiki-Format exportieren"
#: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:339 #: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:344
msgid "Export AK Slides" msgid "Export AK Slides"
msgstr "AK-Folien exportieren" msgstr "AK-Folien exportieren"
...@@ -1133,162 +1137,162 @@ msgstr "Login" ...@@ -1133,162 +1137,162 @@ msgstr "Login"
msgid "Register" msgid "Register"
msgstr "Registrieren" msgstr "Registrieren"
#: AKModel/views.py:154 #: AKModel/views.py:155
msgid "Event Status" msgid "Event Status"
msgstr "Eventstatus" msgstr "Eventstatus"
#: AKModel/views.py:167 #: AKModel/views.py:168
msgid "Requirements for Event" msgid "Requirements for Event"
msgstr "Anforderungen für das Event" msgstr "Anforderungen für das Event"
#: AKModel/views.py:181 #: AKModel/views.py:182
msgid "AK CSV Export" msgid "AK CSV Export"
msgstr "AK-CSV-Export" msgstr "AK-CSV-Export"
#: AKModel/views.py:195 #: AKModel/views.py:196
msgid "AK Wiki Export" msgid "AK Wiki Export"
msgstr "AK-Wiki-Export" msgstr "AK-Wiki-Export"
#: AKModel/views.py:206 AKModel/views.py:355 #: AKModel/views.py:207 AKModel/views.py:360
msgid "Wishes" msgid "Wishes"
msgstr "Wünsche" msgstr "Wünsche"
#: AKModel/views.py:227 #: AKModel/views.py:228
msgid "Delete AK Orga Messages" msgid "Delete AK Orga Messages"
msgstr "AK-Organachrichten löschen" msgstr "AK-Organachrichten löschen"
#: AKModel/views.py:242 #: AKModel/views.py:243
msgid "AK Orga Messages successfully deleted" msgid "AK Orga Messages successfully deleted"
msgstr "AK-Organachrichten erfolgreich gelöscht" msgstr "AK-Organachrichten erfolgreich gelöscht"
#: AKModel/views.py:252 #: AKModel/views.py:253
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: AKModel/views.py:253 #: AKModel/views.py:254
msgid "Event created, Prepare Import" msgid "Event created, Prepare Import"
msgstr "Event angelegt, Import vorbereiten" msgstr "Event angelegt, Import vorbereiten"
#: AKModel/views.py:254 #: AKModel/views.py:255
msgid "Import categories & requirements" msgid "Import categories & requirements"
msgstr "Kategorien & Anforderungen kopieren" msgstr "Kategorien & Anforderungen kopieren"
#: AKModel/views.py:255 #: AKModel/views.py:256
msgid "Activate?" msgid "Activate?"
msgstr "Aktivieren?" msgstr "Aktivieren?"
#: AKModel/views.py:314 #: AKModel/views.py:319
#, python-format #, python-format
msgid "Copied '%(obj)s'" msgid "Copied '%(obj)s'"
msgstr "'%(obj)s' kopiert" msgstr "'%(obj)s' kopiert"
#: AKModel/views.py:317 #: AKModel/views.py:322
#, python-format #, python-format
msgid "Could not copy '%(obj)s' (%(error)s)" msgid "Could not copy '%(obj)s' (%(error)s)"
msgstr "'%(obj)s' konnte nicht kopiert werden (%(error)s)" msgstr "'%(obj)s' konnte nicht kopiert werden (%(error)s)"
#: AKModel/views.py:350 #: AKModel/views.py:355
msgid "Symbols" msgid "Symbols"
msgstr "Symbole" msgstr "Symbole"
#: AKModel/views.py:351 #: AKModel/views.py:356
msgid "Who?" msgid "Who?"
msgstr "Wer?" msgstr "Wer?"
#: AKModel/views.py:352 #: AKModel/views.py:357
msgid "Duration(s)" msgid "Duration(s)"
msgstr "Dauer(n)" msgstr "Dauer(n)"
#: AKModel/views.py:353 #: AKModel/views.py:358
msgid "Reso intention?" msgid "Reso intention?"
msgstr "Resolutionsabsicht?" msgstr "Resolutionsabsicht?"
#: AKModel/views.py:354 #: AKModel/views.py:359
msgid "Category (for Wishes)" msgid "Category (for Wishes)"
msgstr "Kategorie (für Wünsche)" msgstr "Kategorie (für Wünsche)"
#: AKModel/views.py:443 #: AKModel/views.py:448
msgid "The following Constraint Violations will be marked as manually resolved" msgid "The following Constraint Violations will be marked as manually resolved"
msgstr "" msgstr ""
"Die folgenden Constraintverletzungen werden als manuell behoben markiert." "Die folgenden Constraintverletzungen werden als manuell behoben markiert."
#: AKModel/views.py:444 #: AKModel/views.py:449
msgid "Constraint Violations marked as resolved" msgid "Constraint Violations marked as resolved"
msgstr "Constraintverletzungen als manuell behoben markiert" msgstr "Constraintverletzungen als manuell behoben markiert"
#: AKModel/views.py:453 #: AKModel/views.py:458
msgid "The following Constraint Violations will be set to level 'violation'" msgid "The following Constraint Violations will be set to level 'violation'"
msgstr "" msgstr ""
"Die folgenden Constraintverletzungen werden auf das Level \"Violation\" " "Die folgenden Constraintverletzungen werden auf das Level \"Violation\" "
"gesetzt." "gesetzt."
#: AKModel/views.py:454 #: AKModel/views.py:459
msgid "Constraint Violations set to level 'violation'" msgid "Constraint Violations set to level 'violation'"
msgstr "Constraintverletzungen auf Level \"Violation\" gesetzt" msgstr "Constraintverletzungen auf Level \"Violation\" gesetzt"
#: AKModel/views.py:463 #: AKModel/views.py:468
msgid "The following Constraint Violations will be set to level 'warning'" msgid "The following Constraint Violations will be set to level 'warning'"
msgstr "" msgstr ""
"Die folgenden Constraintverletzungen werden auf das Level 'warning' gesetzt." "Die folgenden Constraintverletzungen werden auf das Level 'warning' gesetzt."
#: AKModel/views.py:464 #: AKModel/views.py:469
msgid "Constraint Violations set to level 'warning'" msgid "Constraint Violations set to level 'warning'"
msgstr "Constraintverletzungen auf Level \"Warning\" gesetzt" msgstr "Constraintverletzungen auf Level \"Warning\" gesetzt"
#: AKModel/views.py:473 #: AKModel/views.py:478
msgid "Interest of the following AKs will be set to not filled (-1):" msgid "Interest of the following AKs will be set to not filled (-1):"
msgstr "Interesse an den folgenden AKs wird auf nicht ausgefüllt (-1) gesetzt:" msgstr "Interesse an den folgenden AKs wird auf nicht ausgefüllt (-1) gesetzt:"
#: AKModel/views.py:474 #: AKModel/views.py:479
msgid "Reset of interest in AKs successful." msgid "Reset of interest in AKs successful."
msgstr "Interesse an AKs erfolgreich zurückgesetzt." msgstr "Interesse an AKs erfolgreich zurückgesetzt."
#: AKModel/views.py:483 #: AKModel/views.py:488
msgid "Interest counter of the following AKs will be set to 0:" msgid "Interest counter of the following AKs will be set to 0:"
msgstr "Interessensbekundungszähler der folgenden AKs wird auf 0 gesetzt:" msgstr "Interessensbekundungszähler der folgenden AKs wird auf 0 gesetzt:"
#: AKModel/views.py:484 #: AKModel/views.py:489
msgid "AKs' interest counters set back to 0." msgid "AKs' interest counters set back to 0."
msgstr "Interessenszähler der AKs zurückgesetzt" msgstr "Interessenszähler der AKs zurückgesetzt"
#: AKModel/views.py:493 #: AKModel/views.py:498
msgid "Publish the plan(s) of:" msgid "Publish the plan(s) of:"
msgstr "Den Plan/die Pläne veröffentlichen von:" msgstr "Den Plan/die Pläne veröffentlichen von:"
#: AKModel/views.py:494 #: AKModel/views.py:499
msgid "Plan published" msgid "Plan published"
msgstr "Plan veröffentlicht" msgstr "Plan veröffentlicht"
#: AKModel/views.py:503 #: AKModel/views.py:508
msgid "Unpublish the plan(s) of:" msgid "Unpublish the plan(s) of:"
msgstr "Den Plan/die Pläne verbergen von:" msgstr "Den Plan/die Pläne verbergen von:"
#: AKModel/views.py:504 #: AKModel/views.py:509
msgid "Plan unpublished" msgid "Plan unpublished"
msgstr "Plan verborgen" msgstr "Plan verborgen"
#: AKModel/views.py:550 #: AKModel/views.py:555
#, python-brace-format #, python-brace-format
msgid "Could not update slot {id} since it does not belong to {event}" msgid "Could not update slot {id} since it does not belong to {event}"
msgstr "" msgstr ""
"Konnte Slot {id} nicht bearbeiten, da er nicht zum Event {event} gehört" "Konnte Slot {id} nicht bearbeiten, da er nicht zum Event {event} gehört"
#: AKModel/views.py:580 #: AKModel/views.py:585
#, python-brace-format #, python-brace-format
msgid "Updated {u} slot(s). created {c} new slot(s) and deleted {d} slot(s)" msgid "Updated {u} slot(s). created {c} new slot(s) and deleted {d} slot(s)"
msgstr "" msgstr ""
"{u} Slot(s) aktualisiert, {c} Slot(s) hinzugefügt und {d} Slot(s) gelöscht" "{u} Slot(s) aktualisiert, {c} Slot(s) hinzugefügt und {d} Slot(s) gelöscht"
#: AKModel/views.py:624 #: AKModel/views.py:628
#, python-brace-format #, python-brace-format
msgid "Could not import room {name}: {e}" msgid "Could not import room {name}: {e}"
msgstr "Konnte Raum {name} nicht importieren: {e}" msgstr "Konnte Raum {name} nicht importieren: {e}"
#: AKModel/views.py:628 #: AKModel/views.py:632
#, python-brace-format #, python-brace-format
msgid "Imported {count} room(s)" msgid "Imported {count} room(s)"
msgstr "{count} Raum/Räume importiert" msgstr "{count} Raum/Räume importiert"
#: AKModel/views.py:630 #: AKModel/views.py:634
msgid "No rooms imported" msgid "No rooms imported"
msgstr "Keine Räume importiert" msgstr "Keine Räume importiert"
...@@ -7,6 +7,7 @@ from abc import ABC, abstractmethod ...@@ -7,6 +7,7 @@ from abc import ABC, abstractmethod
from itertools import zip_longest from itertools import zip_longest
import django.db import django.db
from django.apps import apps
from django.contrib import admin, messages from django.contrib import admin, messages
from django.db.models.functions import Now from django.db.models.functions import Now
from django.shortcuts import get_object_or_404, redirect from django.shortcuts import get_object_or_404, redirect
...@@ -304,7 +305,11 @@ class NewEventWizardImportView(EventSlugMixin, WizardViewMixin, FormView): ...@@ -304,7 +305,11 @@ class NewEventWizardImportView(EventSlugMixin, WizardViewMixin, FormView):
return initial return initial
def form_valid(self, form): def form_valid(self, form):
for import_type in ["import_categories", "import_requirements"]: import_types = ["import_categories", "import_requirements"]
if apps.is_installed("AKDashboard"):
import_types.append("import_buttons")
for import_type in import_types:
for import_obj in form.cleaned_data.get(import_type): for import_obj in form.cleaned_data.get(import_type):
# clone existing entry # clone existing entry
try: try:
...@@ -591,7 +596,6 @@ class RoomBatchCreationView(EventSlugMixin, IntermediateAdminView): ...@@ -591,7 +596,6 @@ class RoomBatchCreationView(EventSlugMixin, IntermediateAdminView):
return reverse_lazy('admin:event_status', kwargs={'slug': self.event.slug}) return reverse_lazy('admin:event_status', kwargs={'slug': self.event.slug})
def form_valid(self, form): def form_valid(self, form):
from django.apps import apps
virtual_rooms_support = False virtual_rooms_support = False
created_count = 0 created_count = 0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment