Skip to content
Snippets Groups Projects
Commit 3db7dc17 authored by Benjamin Hättasch's avatar Benjamin Hättasch Committed by Nadja Geisler
Browse files

Introduce flag to control which AKs are included in wiki export

Add flag (default value true)
Use for wiki export
Add migration, translation & test
This implements #178
parent 0c6399d0
No related branches found
No related tags found
No related merge requests found
......@@ -377,6 +377,7 @@
"notes": "",
"interest": -1,
"interest_counter": 0,
"include_in_export": false,
"event": 2,
"owners": [
1
......
......@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-30 01:57+0100\n"
"POT-Creation-Date: 2022-12-27 00:33+0100\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"
......@@ -25,11 +25,11 @@ msgstr "Status"
msgid "Toggle plan visibility"
msgstr "Plansichtbarkeit ändern"
#: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:485
#: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:491
msgid "Publish plan"
msgstr "Plan veröffentlichen"
#: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:495
#: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:501
msgid "Unpublish plan"
msgstr "Plan verbergen"
......@@ -53,11 +53,11 @@ msgstr "In Wiki-Syntax exportieren"
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:236 AKModel/views.py:465
#: AKModel/admin.py:236 AKModel/views.py:471
msgid "Reset interest in AKs"
msgstr "Interesse an AKs zurücksetzen"
#: AKModel/admin.py:241 AKModel/views.py:475
#: AKModel/admin.py:241 AKModel/views.py:481
msgid "Reset AKs' interest counters"
msgstr "Interessenszähler der AKs zurücksetzen"
......@@ -65,15 +65,15 @@ msgstr "Interessenszähler der AKs zurücksetzen"
msgid "AK Details"
msgstr "AK-Details"
#: AKModel/admin.py:384 AKModel/views.py:435
#: AKModel/admin.py:384 AKModel/views.py:441
msgid "Mark Constraint Violations as manually resolved"
msgstr "Markiere Constraintverletzungen als manuell behoben"
#: AKModel/admin.py:389 AKModel/views.py:445
#: AKModel/admin.py:389 AKModel/views.py:451
msgid "Set Constraint Violations to level \"violation\""
msgstr "Constraintverletzungen auf Level \"Violation\" setzen"
#: AKModel/admin.py:394 AKModel/views.py:455
#: AKModel/admin.py:394 AKModel/views.py:461
msgid "Set Constraint Violations to level \"warning\""
msgstr "Constraintverletzungen auf Level \"Warning\" setzen"
......@@ -103,15 +103,15 @@ msgstr "Bitte Verfügbarkeiten eintragen!"
#: AKModel/availability/models.py:38 AKModel/models.py:56 AKModel/models.py:128
#: AKModel/models.py:183 AKModel/models.py:202 AKModel/models.py:234
#: AKModel/models.py:288 AKModel/models.py:354 AKModel/models.py:387
#: AKModel/models.py:458 AKModel/models.py:499 AKModel/models.py:664
#: AKModel/models.py:288 AKModel/models.py:357 AKModel/models.py:390
#: AKModel/models.py:461 AKModel/models.py:502 AKModel/models.py:667
msgid "Event"
msgstr "Event"
#: AKModel/availability/models.py:39 AKModel/models.py:129
#: AKModel/models.py:184 AKModel/models.py:203 AKModel/models.py:235
#: AKModel/models.py:289 AKModel/models.py:355 AKModel/models.py:388
#: AKModel/models.py:459 AKModel/models.py:500 AKModel/models.py:665
#: AKModel/models.py:289 AKModel/models.py:358 AKModel/models.py:391
#: AKModel/models.py:462 AKModel/models.py:503 AKModel/models.py:668
msgid "Associated event"
msgstr "Zugehöriges Event"
......@@ -123,8 +123,8 @@ msgstr "Person"
msgid "Person whose availability this is"
msgstr "Person deren Verfügbarkeit hier abgebildet wird"
#: AKModel/availability/models.py:56 AKModel/models.py:358
#: AKModel/models.py:377 AKModel/models.py:508
#: AKModel/availability/models.py:56 AKModel/models.py:361
#: AKModel/models.py:380 AKModel/models.py:511
msgid "Room"
msgstr "Raum"
......@@ -132,8 +132,8 @@ msgstr "Raum"
msgid "Room whose availability this is"
msgstr "Raum dessen Verfügbarkeit hier abgebildet wird"
#: AKModel/availability/models.py:65 AKModel/models.py:294
#: AKModel/models.py:376 AKModel/models.py:453
#: AKModel/availability/models.py:65 AKModel/models.py:297
#: AKModel/models.py:379 AKModel/models.py:456
msgid "AK"
msgstr "AK"
......@@ -142,7 +142,7 @@ msgid "AK whose availability this is"
msgstr "Verfügbarkeiten"
#: AKModel/availability/models.py:74 AKModel/models.py:187
#: AKModel/models.py:514
#: AKModel/models.py:517
msgid "AK Category"
msgstr "AK-Kategorie"
......@@ -208,7 +208,7 @@ msgstr ""
"fürWünsche markieren, z.B. um während der Präsentation auf einem Touchscreen "
"ausgefüllt zu werden?"
#: AKModel/forms.py:113 AKModel/models.py:658
#: AKModel/forms.py:113 AKModel/models.py:661
msgid "Default Slots"
msgstr "Standardslots"
......@@ -223,8 +223,8 @@ msgid ""
"Delimiter: Semicolon"
msgstr ""
"Raumdetails im CSV-Format eingeben. Benötigte Spalte ist \"name\", optionale "
"Spalten sind \"location\", \"capacity\", und \"url\" for Online-/Hybridräume"
"Trennzeichen: Semikolon"
"Spalten sind \"location\", \"capacity\", und \"url\" for Online-/"
"HybridräumeTrennzeichen: Semikolon"
#: AKModel/forms.py:136
msgid "CSV must contain a name column"
......@@ -232,7 +232,7 @@ msgstr "CSV muss eine name-Spalte enthalten"
#: AKModel/models.py:18 AKModel/models.py:175 AKModel/models.py:199
#: AKModel/models.py:218 AKModel/models.py:232 AKModel/models.py:250
#: AKModel/models.py:346
#: AKModel/models.py:349
msgid "Name"
msgstr "Name"
......@@ -266,7 +266,7 @@ msgstr "Zeitzone"
msgid "Time Zone where this event takes place in"
msgstr "Zeitzone in der das Event stattfindet"
#: AKModel/models.py:27 AKModel/views.py:246
#: AKModel/models.py:27 AKModel/views.py:251
msgid "Start"
msgstr "Start"
......@@ -406,7 +406,7 @@ msgstr "Internet Link"
msgid "Link to Homepage"
msgstr "Link zu Homepage oder Webseite"
#: AKModel/models.py:132 AKModel/models.py:507
#: AKModel/models.py:132 AKModel/models.py:510
msgid "AK Owner"
msgstr "AK-Leitung"
......@@ -478,7 +478,7 @@ msgstr "AK-Tags"
msgid "Name of the Requirement"
msgstr "Name der Anforderung"
#: AKModel/models.py:238 AKModel/models.py:511
#: AKModel/models.py:238 AKModel/models.py:514
msgid "AK Requirement"
msgstr "AK-Anforderung"
......@@ -617,263 +617,271 @@ msgstr "Interessenszähler"
msgid "People who have indicated interest online"
msgstr "Anzahl Personen, die online Interesse bekundet haben"
#: AKModel/models.py:295 AKModel/models.py:502
#: AKModel/models.py:291
msgid "Export?"
msgstr "Export?"
#: AKModel/models.py:292
msgid "Include AK in wiki export?"
msgstr "AK bei Wiki-Export berücksichtigen?"
#: AKModel/models.py:298 AKModel/models.py:505
#: AKModel/templates/admin/AKModel/status.html:57
#: AKModel/templates/admin/AKModel/status.html:64 AKModel/views.py:364
#: AKModel/templates/admin/AKModel/status.html:64 AKModel/views.py:369
msgid "AKs"
msgstr "AKs"
#: AKModel/models.py:346
#: AKModel/models.py:349
msgid "Name or number of the room"
msgstr "Name oder Nummer des Raums"
#: AKModel/models.py:347
#: AKModel/models.py:350
msgid "Location"
msgstr "Ort"
#: AKModel/models.py:348
#: AKModel/models.py:351
msgid "Name or number of the location"
msgstr "Name oder Nummer des Ortes"
#: AKModel/models.py:349
#: AKModel/models.py:352
msgid "Capacity"
msgstr "Kapazität"
#: AKModel/models.py:350
#: AKModel/models.py:353
msgid "Maximum number of people (-1 for unlimited)."
msgstr "Maximale Personenzahl (-1 wenn unbeschränkt)."
#: AKModel/models.py:351
#: AKModel/models.py:354
msgid "Properties"
msgstr "Eigenschaften"
#: AKModel/models.py:352
#: AKModel/models.py:355
msgid "AK requirements fulfilled by the room"
msgstr "AK-Anforderungen, die dieser Raum erfüllt"
#: AKModel/models.py:359 AKModel/templates/admin/AKModel/status.html:40
#: AKModel/models.py:362 AKModel/templates/admin/AKModel/status.html:40
msgid "Rooms"
msgstr "Räume"
#: AKModel/models.py:376
#: AKModel/models.py:379
msgid "AK being mapped"
msgstr "AK, der zugeordnet wird"
#: AKModel/models.py:378
#: AKModel/models.py:381
msgid "Room the AK will take place in"
msgstr "Raum in dem der AK stattfindet"
#: AKModel/models.py:379 AKModel/models.py:661
#: AKModel/models.py:382 AKModel/models.py:664
msgid "Slot Begin"
msgstr "Beginn des Slots"
#: AKModel/models.py:379 AKModel/models.py:661
#: AKModel/models.py:382 AKModel/models.py:664
msgid "Time and date the slot begins"
msgstr "Zeit und Datum zu der der AK beginnt"
#: AKModel/models.py:381
#: AKModel/models.py:384
msgid "Duration"
msgstr "Dauer"
#: AKModel/models.py:382
#: AKModel/models.py:385
msgid "Length in hours"
msgstr "Länge in Stunden"
#: AKModel/models.py:384
#: AKModel/models.py:387
msgid "Scheduling fixed"
msgstr "Planung fix"
#: AKModel/models.py:385
#: AKModel/models.py:388
msgid "Length and time of this AK should not be changed"
msgstr "Dauer und Zeit dieses AKs sollten nicht verändert werden"
#: AKModel/models.py:390
#: AKModel/models.py:393
msgid "Last update"
msgstr "Letzte Aktualisierung"
#: AKModel/models.py:393
#: AKModel/models.py:396
msgid "AK Slot"
msgstr "AK-Slot"
#: AKModel/models.py:394 AKModel/models.py:504
#: AKModel/models.py:397 AKModel/models.py:507
msgid "AK Slots"
msgstr "AK-Slot"
#: AKModel/models.py:416 AKModel/models.py:425
#: AKModel/models.py:419 AKModel/models.py:428
msgid "Not scheduled yet"
msgstr "Noch nicht geplant"
#: AKModel/models.py:454
#: AKModel/models.py:457
msgid "AK this message belongs to"
msgstr "AK zu dem die Nachricht gehört"
#: AKModel/models.py:455
#: AKModel/models.py:458
msgid "Message text"
msgstr "Nachrichtentext"
#: AKModel/models.py:456
#: AKModel/models.py:459
msgid "Message to the organizers. This is not publicly visible."
msgstr ""
"Nachricht an die Organisator*innen. Diese ist nicht öffentlich sichtbar."
#: AKModel/models.py:462
#: AKModel/models.py:465
msgid "AK Orga Message"
msgstr "AK-Organachricht"
#: AKModel/models.py:463
#: AKModel/models.py:466
msgid "AK Orga Messages"
msgstr "AK-Organachrichten"
#: AKModel/models.py:472
#: AKModel/models.py:475
msgid "Constraint Violation"
msgstr "Constraintverletzung"
#: AKModel/models.py:473 AKModel/templates/admin/AKModel/status.html:87
#: AKModel/models.py:476 AKModel/templates/admin/AKModel/status.html:87
msgid "Constraint Violations"
msgstr "Constraintverletzungen"
#: AKModel/models.py:477
#: AKModel/models.py:480
msgid "Owner has two parallel slots"
msgstr "Leitung hat zwei Slots parallel"
#: AKModel/models.py:478
#: AKModel/models.py:481
msgid "AK Slot was scheduled outside the AK's availabilities"
msgstr "AK Slot wurde außerhalb der Verfügbarkeit des AKs platziert"
#: AKModel/models.py:479
#: AKModel/models.py:482
msgid "Room has two AK slots scheduled at the same time"
msgstr "Raum hat zwei AK Slots gleichzeitig"
#: AKModel/models.py:480
#: AKModel/models.py:483
msgid "Room does not satisfy the requirement of the scheduled AK"
msgstr "Room erfüllt die Anforderungen des platzierten AKs nicht"
#: AKModel/models.py:481
#: AKModel/models.py:484
msgid "AK Slot is scheduled at the same time as an AK listed as a conflict"
msgstr ""
"AK Slot wurde wurde zur gleichen Zeit wie ein Konflikt des AKs platziert"
#: AKModel/models.py:482
#: AKModel/models.py:485
msgid "AK Slot is scheduled before an AK listed as a prerequisite"
msgstr "AK Slot wurde vor einem als Voraussetzung gelisteten AK platziert"
#: AKModel/models.py:484
#: AKModel/models.py:487
msgid ""
"AK Slot for AK with intention to submit a resolution is scheduled after "
"resolution deadline"
msgstr ""
"AK Slot eines AKs mit Resoabsicht wurde nach der Resodeadline platziert"
#: AKModel/models.py:485
#: AKModel/models.py:488
msgid "AK Slot in a category is outside that categories availabilities"
msgstr "AK Slot wurde außerhalb der Verfügbarkeiten seiner Kategorie"
#: AKModel/models.py:486
#: AKModel/models.py:489
msgid "Two AK Slots for the same AK scheduled at the same time"
msgstr "Zwei AK Slots eines AKs wurden zur selben Zeit platziert"
#: AKModel/models.py:487
#: AKModel/models.py:490
msgid "Room does not have enough space for interest in scheduled AK Slot"
msgstr "Room hat nicht genug Platz für das Interesse am geplanten AK-Slot"
#: AKModel/models.py:488
#: AKModel/models.py:491
msgid "AK Slot is scheduled outside the event's availabilities"
msgstr "AK Slot wurde außerhalb der Verfügbarkeit des Events platziert"
#: AKModel/models.py:491
#: AKModel/models.py:494
msgid "Warning"
msgstr "Warnung"
#: AKModel/models.py:492
#: AKModel/models.py:495
msgid "Violation"
msgstr "Verletzung"
#: AKModel/models.py:494
#: AKModel/models.py:497
msgid "Type"
msgstr "Art"
#: AKModel/models.py:495
#: AKModel/models.py:498
msgid "Type of violation, i.e. what kind of constraint was violated"
msgstr "Art der Verletzung, gibt an welche Art Constraint verletzt wurde"
#: AKModel/models.py:496
#: AKModel/models.py:499
msgid "Level"
msgstr "Level"
#: AKModel/models.py:497
#: AKModel/models.py:500
msgid "Severity level of the violation"
msgstr "Schweregrad der Verletzung"
#: AKModel/models.py:503
#: AKModel/models.py:506
msgid "AK(s) belonging to this constraint"
msgstr "AK(s), die zu diesem Constraint gehören"
#: AKModel/models.py:505
#: AKModel/models.py:508
msgid "AK Slot(s) belonging to this constraint"
msgstr "AK Slot(s), die zu diesem Constraint gehören"
#: AKModel/models.py:507
#: AKModel/models.py:510
msgid "AK Owner belonging to this constraint"
msgstr "AK Leitung(en), die zu diesem Constraint gehören"
#: AKModel/models.py:509
#: AKModel/models.py:512
msgid "Room belonging to this constraint"
msgstr "Raum, der zu diesem Constraint gehört"
#: AKModel/models.py:512
#: AKModel/models.py:515
msgid "AK Requirement belonging to this constraint"
msgstr "AK Anforderung, die zu diesem Constraint gehört"
#: AKModel/models.py:514
#: AKModel/models.py:517
msgid "AK Category belonging to this constraint"
msgstr "AK Kategorie, di zu diesem Constraint gehört"
#: AKModel/models.py:516
#: AKModel/models.py:519
msgid "Comment"
msgstr "Kommentar"
#: AKModel/models.py:516
#: AKModel/models.py:519
msgid "Comment or further details for this violation"
msgstr "Kommentar oder weitere Details zu dieser Vereletzung"
#: AKModel/models.py:519
#: AKModel/models.py:522
msgid "Timestamp"
msgstr "Timestamp"
#: AKModel/models.py:519
#: AKModel/models.py:522
msgid "Time of creation"
msgstr "Zeitpunkt der ERstellung"
#: AKModel/models.py:520
#: AKModel/models.py:523
msgid "Manually Resolved"
msgstr "Manuell behoben"
#: AKModel/models.py:521
#: AKModel/models.py:524
msgid "Mark this violation manually as resolved"
msgstr "Markiere diese Verletzung manuell als behoben"
#: AKModel/models.py:548
#: AKModel/models.py:551
#: AKModel/templates/admin/AKModel/requirements_overview.html:27
msgid "Details"
msgstr "Details"
#: AKModel/models.py:657
#: AKModel/models.py:660
msgid "Default Slot"
msgstr "Standardslot"
#: AKModel/models.py:662
#: AKModel/models.py:665
msgid "Slot End"
msgstr "Ende des Slots"
#: AKModel/models.py:662
#: AKModel/models.py:665
msgid "Time and date the slot ends"
msgstr "Zeit und Datum zu der der Slot endet"
#: AKModel/models.py:667
#: AKModel/models.py:670
msgid "Primary categories"
msgstr "Primäre Kategorien"
#: AKModel/models.py:668
#: AKModel/models.py:671
msgid "Categories that should be assigned to this slot primarily"
msgstr "Kategorieren, die diesem Slot primär zugewiesen werden sollen"
......@@ -924,7 +932,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?"
#: AKModel/templates/admin/AKModel/event_wizard/activate.html:27
#: AKModel/views.py:251
#: AKModel/views.py:256
msgid "Finish"
msgstr "Abschluss"
......@@ -1017,7 +1025,7 @@ msgstr "Bisher keine Räume"
msgid "Add Room"
msgstr "Raum hinzufügen"
#: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:582
#: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:588
msgid "Import Rooms from CSV"
msgstr "Räume aus CSV importieren"
......@@ -1046,7 +1054,7 @@ msgstr "AKs, die besondere Aufmerksamkeit benötigen"
msgid "Enter Interest"
msgstr "Interesse erfassen"
#: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:507
#: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:513
msgid "Edit Default Slots"
msgstr "Standardslots bearbeiten"
......@@ -1062,7 +1070,7 @@ msgstr "AKs als CSV exportieren"
msgid "Export AKs for Wiki"
msgstr "AKs im Wiki-Format exportieren"
#: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:334
#: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:339
msgid "Export AK Slides"
msgstr "AK-Folien exportieren"
......@@ -1115,162 +1123,162 @@ msgstr "Login"
msgid "Register"
msgstr "Registrieren"
#: AKModel/views.py:152
#: AKModel/views.py:154
msgid "Event Status"
msgstr "Eventstatus"
#: AKModel/views.py:165
#: AKModel/views.py:167
msgid "Requirements for Event"
msgstr "Anforderungen für das Event"
#: AKModel/views.py:179
#: AKModel/views.py:181
msgid "AK CSV Export"
msgstr "AK-CSV-Export"
#: AKModel/views.py:193
#: AKModel/views.py:195
msgid "AK Wiki Export"
msgstr "AK-Wiki-Export"
#: AKModel/views.py:201 AKModel/views.py:350
#: AKModel/views.py:206 AKModel/views.py:355
msgid "Wishes"
msgstr "Wünsche"
#: AKModel/views.py:222
#: AKModel/views.py:227
msgid "Delete AK Orga Messages"
msgstr "AK-Organachrichten löschen"
#: AKModel/views.py:237
#: AKModel/views.py:242
msgid "AK Orga Messages successfully deleted"
msgstr "AK-Organachrichten erfolgreich gelöscht"
#: AKModel/views.py:247
#: AKModel/views.py:252
msgid "Settings"
msgstr "Einstellungen"
#: AKModel/views.py:248
#: AKModel/views.py:253
msgid "Event created, Prepare Import"
msgstr "Event angelegt, Import vorbereiten"
#: AKModel/views.py:249
#: AKModel/views.py:254
msgid "Import categories & requirements"
msgstr "Kategorien & Anforderungen kopieren"
#: AKModel/views.py:250
#: AKModel/views.py:255
msgid "Activate?"
msgstr "Aktivieren?"
#: AKModel/views.py:309
#: AKModel/views.py:314
#, python-format
msgid "Copied '%(obj)s'"
msgstr "'%(obj)s' kopiert"
#: AKModel/views.py:312
#: AKModel/views.py:317
#, python-format
msgid "Could not copy '%(obj)s' (%(error)s)"
msgstr "'%(obj)s' konnte nicht kopiert werden (%(error)s)"
#: AKModel/views.py:345
#: AKModel/views.py:350
msgid "Symbols"
msgstr "Symbole"
#: AKModel/views.py:346
#: AKModel/views.py:351
msgid "Who?"
msgstr "Wer?"
#: AKModel/views.py:347
#: AKModel/views.py:352
msgid "Duration(s)"
msgstr "Dauer(n)"
#: AKModel/views.py:348
#: AKModel/views.py:353
msgid "Reso intention?"
msgstr "Resolutionsabsicht?"
#: AKModel/views.py:349
#: AKModel/views.py:354
msgid "Category (for Wishes)"
msgstr "Kategorie (für Wünsche)"
#: AKModel/views.py:437
#: AKModel/views.py:443
msgid "The following Constraint Violations will be marked as manually resolved"
msgstr ""
"Die folgenden Constraintverletzungen werden als manuell behoben markiert."
#: AKModel/views.py:438
#: AKModel/views.py:444
msgid "Constraint Violations marked as resolved"
msgstr "Constraintverletzungen als manuell behoben markiert"
#: AKModel/views.py:447
#: AKModel/views.py:453
msgid "The following Constraint Violations will be set to level 'violation'"
msgstr ""
"Die folgenden Constraintverletzungen werden auf das Level \"Violation\" "
"gesetzt."
#: AKModel/views.py:448
#: AKModel/views.py:454
msgid "Constraint Violations set to level 'violation'"
msgstr "Constraintverletzungen auf Level \"Violation\" gesetzt"
#: AKModel/views.py:457
#: AKModel/views.py:463
msgid "The following Constraint Violations will be set to level 'warning'"
msgstr ""
"Die folgenden Constraintverletzungen werden auf das Level 'warning' gesetzt."
#: AKModel/views.py:458
#: AKModel/views.py:464
msgid "Constraint Violations set to level 'warning'"
msgstr "Constraintverletzungen auf Level \"Warning\" gesetzt"
#: AKModel/views.py:467
#: AKModel/views.py:473
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:"
#: AKModel/views.py:468
#: AKModel/views.py:474
msgid "Reset of interest in AKs successful."
msgstr "Interesse an AKs erfolgreich zurückgesetzt."
#: AKModel/views.py:477
#: AKModel/views.py:483
msgid "Interest counter of the following AKs will be set to 0:"
msgstr "Interessensbekundungszähler der folgenden AKs wird auf 0 gesetzt:"
#: AKModel/views.py:478
#: AKModel/views.py:484
msgid "AKs' interest counters set back to 0."
msgstr "Interessenszähler der AKs zurückgesetzt"
#: AKModel/views.py:487
#: AKModel/views.py:493
msgid "Publish the plan(s) of:"
msgstr "Den Plan/die Pläne veröffentlichen von:"
#: AKModel/views.py:488
#: AKModel/views.py:494
msgid "Plan published"
msgstr "Plan veröffentlicht"
#: AKModel/views.py:497
#: AKModel/views.py:503
msgid "Unpublish the plan(s) of:"
msgstr "Den Plan/die Pläne verbergen von:"
#: AKModel/views.py:498
#: AKModel/views.py:504
msgid "Plan unpublished"
msgstr "Plan verborgen"
#: AKModel/views.py:544
#: AKModel/views.py:550
#, python-brace-format
msgid "Could not update slot {id} since it does not belong to {event}"
msgstr ""
"Konnte Slot {id} nicht bearbeiten, da er nicht zum Event {event} gehört"
#: AKModel/views.py:574
#: AKModel/views.py:580
#, python-brace-format
msgid "Updated {u} slot(s). created {c} new slot(s) and deleted {d} slot(s)"
msgstr ""
"{u} Slot(s) aktualisiert, {c} Slot(s) hinzugefügt und {d} Slot(s) gelöscht"
#: AKModel/views.py:611
#: AKModel/views.py:624
#, python-brace-format
msgid "Could not import room {name}: {e}"
msgstr "Konnte Raum {name} nicht importieren: {e}"
#: AKModel/views.py:615
#: AKModel/views.py:628
#, python-brace-format
msgid "Imported {count} room(s)"
msgstr "{count} Raum/Räume importiert"
#: AKModel/views.py:617
#: AKModel/views.py:630
msgid "No rooms imported"
msgstr "Keine Räume importiert"
# Generated by Django 3.2.16 on 2022-12-26 22:38
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('AKModel', '0054_default_slots'),
]
operations = [
migrations.AddField(
model_name='ak',
name='include_in_export',
field=models.BooleanField(default=True, help_text='Include AK in wiki export?', verbose_name='Export?'),
),
]
......@@ -92,10 +92,10 @@ class Event(models.Model):
for category in categories:
ak_list = []
for ak in category.ak_set.all():
if ak.wish:
ak_wishes.append(ak)
else:
if filter(ak):
if filter(ak):
if ak.wish:
ak_wishes.append(ak)
else:
ak_list.append(ak)
if not hide_empty_categories or len(ak_list) > 0:
categories_with_aks.append((category, ak_list))
......@@ -288,7 +288,10 @@ class AK(models.Model):
event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'),
help_text=_('Associated event'))
history = HistoricalRecords(excluded_fields=['interest_counter'])
include_in_export = models.BooleanField(default=True, verbose_name=_('Export?'),
help_text=_("Include AK in wiki export?"))
history = HistoricalRecords(excluded_fields=['interest_counter', 'include_in_export'])
class Meta:
verbose_name = _('AK')
......
......@@ -110,3 +110,20 @@ class ModelViewTests(BasicViewTests, TestCase):
view_name_with_prefix, url = self._name_and_url((f'admin:AKModel_{model[1]}_change', {'object_id': m.pk}))
response = self.client.get(url)
self.assertEqual(response.status_code, 200, msg=f"Edit form for model {model[1]} ({url}) broken")
def test_wiki_export(self):
self.client.force_login(self.admin_user)
export_url = reverse_lazy(f"admin:ak_wiki_export", kwargs={'slug': 'kif42'})
response = self.client.get(export_url)
self.assertEqual(response.status_code, 200, "Export not working at all")
export_count = 0
for category, aks in response.context["categories_with_aks"]:
for ak in aks:
self.assertEqual(ak.include_in_export, True, f"AK with export flag set to False (pk={ak.pk}) included in export")
self.assertNotEqual(ak.pk, 1, "AK known to be excluded from export (PK 1) included in export")
export_count += 1
self.assertEqual(export_count, AK.objects.filter(event_id=2, include_in_export=True).count(),
"Wiki export contained the wrong number of AKs")
......@@ -197,7 +197,10 @@ class AKWikiExportView(AdminViewMixin, DetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
categories_with_aks, ak_wishes = context["event"].get_categories_with_aks(wishes_seperately=True)
categories_with_aks, ak_wishes = context["event"].get_categories_with_aks(
wishes_seperately=True,
filter=lambda ak: ak.include_in_export
)
context["categories_with_aks"] = [(category.name, ak_list) for category, ak_list in categories_with_aks]
context["categories_with_aks"].append((_("Wishes"), ak_wishes))
......
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