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

Merge branch 'feature-export-flag' into 'main'

Introduce flag to control which AKs are included in wiki export

Closes #178

See merge request !148
parents 0c6399d0 3db7dc17
No related branches found
No related tags found
1 merge request!148Introduce flag to control which AKs are included in wiki export
Pipeline #128837 passed
...@@ -377,6 +377,7 @@ ...@@ -377,6 +377,7 @@
"notes": "", "notes": "",
"interest": -1, "interest": -1,
"interest_counter": 0, "interest_counter": 0,
"include_in_export": false,
"event": 2, "event": 2,
"owners": [ "owners": [
1 1
......
...@@ -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-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" "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:485 #: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:491
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:495 #: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:501
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:465 #: AKModel/admin.py:236 AKModel/views.py:471
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:475 #: AKModel/admin.py:241 AKModel/views.py:481
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:435 #: AKModel/admin.py:384 AKModel/views.py:441
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:445 #: AKModel/admin.py:389 AKModel/views.py:451
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:455 #: AKModel/admin.py:394 AKModel/views.py:461
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"
...@@ -103,15 +103,15 @@ msgstr "Bitte Verfügbarkeiten eintragen!" ...@@ -103,15 +103,15 @@ msgstr "Bitte Verfügbarkeiten eintragen!"
#: AKModel/availability/models.py:38 AKModel/models.py:56 AKModel/models.py:128 #: 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:183 AKModel/models.py:202 AKModel/models.py:234
#: AKModel/models.py:288 AKModel/models.py:354 AKModel/models.py:387 #: AKModel/models.py:288 AKModel/models.py:357 AKModel/models.py:390
#: AKModel/models.py:458 AKModel/models.py:499 AKModel/models.py:664 #: AKModel/models.py:461 AKModel/models.py:502 AKModel/models.py:667
msgid "Event" msgid "Event"
msgstr "Event" msgstr "Event"
#: AKModel/availability/models.py:39 AKModel/models.py:129 #: AKModel/availability/models.py:39 AKModel/models.py:129
#: AKModel/models.py:184 AKModel/models.py:203 AKModel/models.py:235 #: 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:289 AKModel/models.py:358 AKModel/models.py:391
#: AKModel/models.py:459 AKModel/models.py:500 AKModel/models.py:665 #: AKModel/models.py:462 AKModel/models.py:503 AKModel/models.py:668
msgid "Associated event" msgid "Associated event"
msgstr "Zugehöriges Event" msgstr "Zugehöriges Event"
...@@ -123,8 +123,8 @@ msgstr "Person" ...@@ -123,8 +123,8 @@ msgstr "Person"
msgid "Person whose availability this is" msgid "Person whose availability this is"
msgstr "Person deren Verfügbarkeit hier abgebildet wird" msgstr "Person deren Verfügbarkeit hier abgebildet wird"
#: AKModel/availability/models.py:56 AKModel/models.py:358 #: AKModel/availability/models.py:56 AKModel/models.py:361
#: AKModel/models.py:377 AKModel/models.py:508 #: AKModel/models.py:380 AKModel/models.py:511
msgid "Room" msgid "Room"
msgstr "Raum" msgstr "Raum"
...@@ -132,8 +132,8 @@ msgstr "Raum" ...@@ -132,8 +132,8 @@ msgstr "Raum"
msgid "Room whose availability this is" msgid "Room whose availability this is"
msgstr "Raum dessen Verfügbarkeit hier abgebildet wird" msgstr "Raum dessen Verfügbarkeit hier abgebildet wird"
#: AKModel/availability/models.py:65 AKModel/models.py:294 #: AKModel/availability/models.py:65 AKModel/models.py:297
#: AKModel/models.py:376 AKModel/models.py:453 #: AKModel/models.py:379 AKModel/models.py:456
msgid "AK" msgid "AK"
msgstr "AK" msgstr "AK"
...@@ -142,7 +142,7 @@ msgid "AK whose availability this is" ...@@ -142,7 +142,7 @@ msgid "AK whose availability this is"
msgstr "Verfügbarkeiten" msgstr "Verfügbarkeiten"
#: AKModel/availability/models.py:74 AKModel/models.py:187 #: AKModel/availability/models.py:74 AKModel/models.py:187
#: AKModel/models.py:514 #: AKModel/models.py:517
msgid "AK Category" msgid "AK Category"
msgstr "AK-Kategorie" msgstr "AK-Kategorie"
...@@ -208,7 +208,7 @@ msgstr "" ...@@ -208,7 +208,7 @@ 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:658 #: AKModel/forms.py:113 AKModel/models.py:661
msgid "Default Slots" msgid "Default Slots"
msgstr "Standardslots" msgstr "Standardslots"
...@@ -223,8 +223,8 @@ msgid "" ...@@ -223,8 +223,8 @@ msgid ""
"Delimiter: Semicolon" "Delimiter: Semicolon"
msgstr "" msgstr ""
"Raumdetails im CSV-Format eingeben. Benötigte Spalte ist \"name\", optionale " "Raumdetails im CSV-Format eingeben. Benötigte Spalte ist \"name\", optionale "
"Spalten sind \"location\", \"capacity\", und \"url\" for Online-/Hybridräume" "Spalten sind \"location\", \"capacity\", und \"url\" for Online-/"
"Trennzeichen: Semikolon" "HybridräumeTrennzeichen: Semikolon"
#: AKModel/forms.py:136 #: AKModel/forms.py:136
msgid "CSV must contain a name column" msgid "CSV must contain a name column"
...@@ -232,7 +232,7 @@ msgstr "CSV muss eine name-Spalte enthalten" ...@@ -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:18 AKModel/models.py:175 AKModel/models.py:199
#: AKModel/models.py:218 AKModel/models.py:232 AKModel/models.py:250 #: AKModel/models.py:218 AKModel/models.py:232 AKModel/models.py:250
#: AKModel/models.py:346 #: AKModel/models.py:349
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
...@@ -266,7 +266,7 @@ msgstr "Zeitzone" ...@@ -266,7 +266,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:246 #: AKModel/models.py:27 AKModel/views.py:251
msgid "Start" msgid "Start"
msgstr "Start" msgstr "Start"
...@@ -406,7 +406,7 @@ msgstr "Internet Link" ...@@ -406,7 +406,7 @@ msgstr "Internet Link"
msgid "Link to Homepage" msgid "Link to Homepage"
msgstr "Link zu Homepage oder Webseite" 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" msgid "AK Owner"
msgstr "AK-Leitung" msgstr "AK-Leitung"
...@@ -478,7 +478,7 @@ msgstr "AK-Tags" ...@@ -478,7 +478,7 @@ msgstr "AK-Tags"
msgid "Name of the Requirement" msgid "Name of the Requirement"
msgstr "Name der Anforderung" msgstr "Name der Anforderung"
#: AKModel/models.py:238 AKModel/models.py:511 #: AKModel/models.py:238 AKModel/models.py:514
msgid "AK Requirement" msgid "AK Requirement"
msgstr "AK-Anforderung" msgstr "AK-Anforderung"
...@@ -617,263 +617,271 @@ msgstr "Interessenszähler" ...@@ -617,263 +617,271 @@ msgstr "Interessenszähler"
msgid "People who have indicated interest online" msgid "People who have indicated interest online"
msgstr "Anzahl Personen, die online Interesse bekundet haben" 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: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" msgid "AKs"
msgstr "AKs" msgstr "AKs"
#: AKModel/models.py:346 #: AKModel/models.py:349
msgid "Name or number of the room" msgid "Name or number of the room"
msgstr "Name oder Nummer des Raums" msgstr "Name oder Nummer des Raums"
#: AKModel/models.py:347 #: AKModel/models.py:350
msgid "Location" msgid "Location"
msgstr "Ort" msgstr "Ort"
#: AKModel/models.py:348 #: AKModel/models.py:351
msgid "Name or number of the location" msgid "Name or number of the location"
msgstr "Name oder Nummer des Ortes" msgstr "Name oder Nummer des Ortes"
#: AKModel/models.py:349 #: AKModel/models.py:352
msgid "Capacity" msgid "Capacity"
msgstr "Kapazität" msgstr "Kapazität"
#: AKModel/models.py:350 #: AKModel/models.py:353
msgid "Maximum number of people (-1 for unlimited)." msgid "Maximum number of people (-1 for unlimited)."
msgstr "Maximale Personenzahl (-1 wenn unbeschränkt)." msgstr "Maximale Personenzahl (-1 wenn unbeschränkt)."
#: AKModel/models.py:351 #: AKModel/models.py:354
msgid "Properties" msgid "Properties"
msgstr "Eigenschaften" msgstr "Eigenschaften"
#: AKModel/models.py:352 #: AKModel/models.py:355
msgid "AK requirements fulfilled by the room" msgid "AK requirements fulfilled by the room"
msgstr "AK-Anforderungen, die dieser Raum erfüllt" 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" msgid "Rooms"
msgstr "Räume" msgstr "Räume"
#: AKModel/models.py:376 #: AKModel/models.py:379
msgid "AK being mapped" msgid "AK being mapped"
msgstr "AK, der zugeordnet wird" msgstr "AK, der zugeordnet wird"
#: AKModel/models.py:378 #: AKModel/models.py:381
msgid "Room the AK will take place in" msgid "Room the AK will take place in"
msgstr "Raum in dem der AK stattfindet" 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" msgid "Slot Begin"
msgstr "Beginn des Slots" 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" msgid "Time and date the slot begins"
msgstr "Zeit und Datum zu der der AK beginnt" msgstr "Zeit und Datum zu der der AK beginnt"
#: AKModel/models.py:381 #: AKModel/models.py:384
msgid "Duration" msgid "Duration"
msgstr "Dauer" msgstr "Dauer"
#: AKModel/models.py:382 #: AKModel/models.py:385
msgid "Length in hours" msgid "Length in hours"
msgstr "Länge in Stunden" msgstr "Länge in Stunden"
#: AKModel/models.py:384 #: AKModel/models.py:387
msgid "Scheduling fixed" msgid "Scheduling fixed"
msgstr "Planung fix" msgstr "Planung fix"
#: AKModel/models.py:385 #: AKModel/models.py:388
msgid "Length and time of this AK should not be changed" msgid "Length and time of this AK should not be changed"
msgstr "Dauer und Zeit dieses AKs sollten nicht verändert werden" msgstr "Dauer und Zeit dieses AKs sollten nicht verändert werden"
#: AKModel/models.py:390 #: AKModel/models.py:393
msgid "Last update" msgid "Last update"
msgstr "Letzte Aktualisierung" msgstr "Letzte Aktualisierung"
#: AKModel/models.py:393 #: AKModel/models.py:396
msgid "AK Slot" msgid "AK Slot"
msgstr "AK-Slot" msgstr "AK-Slot"
#: AKModel/models.py:394 AKModel/models.py:504 #: AKModel/models.py:397 AKModel/models.py:507
msgid "AK Slots" msgid "AK Slots"
msgstr "AK-Slot" msgstr "AK-Slot"
#: AKModel/models.py:416 AKModel/models.py:425 #: AKModel/models.py:419 AKModel/models.py:428
msgid "Not scheduled yet" msgid "Not scheduled yet"
msgstr "Noch nicht geplant" msgstr "Noch nicht geplant"
#: AKModel/models.py:454 #: AKModel/models.py:457
msgid "AK this message belongs to" msgid "AK this message belongs to"
msgstr "AK zu dem die Nachricht gehört" msgstr "AK zu dem die Nachricht gehört"
#: AKModel/models.py:455 #: AKModel/models.py:458
msgid "Message text" msgid "Message text"
msgstr "Nachrichtentext" msgstr "Nachrichtentext"
#: AKModel/models.py:456 #: AKModel/models.py:459
msgid "Message to the organizers. This is not publicly visible." msgid "Message to the organizers. This is not publicly visible."
msgstr "" msgstr ""
"Nachricht an die Organisator*innen. Diese ist nicht öffentlich sichtbar." "Nachricht an die Organisator*innen. Diese ist nicht öffentlich sichtbar."
#: AKModel/models.py:462 #: AKModel/models.py:465
msgid "AK Orga Message" msgid "AK Orga Message"
msgstr "AK-Organachricht" msgstr "AK-Organachricht"
#: AKModel/models.py:463 #: AKModel/models.py:466
msgid "AK Orga Messages" msgid "AK Orga Messages"
msgstr "AK-Organachrichten" msgstr "AK-Organachrichten"
#: AKModel/models.py:472 #: AKModel/models.py:475
msgid "Constraint Violation" msgid "Constraint Violation"
msgstr "Constraintverletzung" 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" msgid "Constraint Violations"
msgstr "Constraintverletzungen" msgstr "Constraintverletzungen"
#: AKModel/models.py:477 #: AKModel/models.py:480
msgid "Owner has two parallel slots" msgid "Owner has two parallel slots"
msgstr "Leitung hat zwei Slots parallel" msgstr "Leitung hat zwei Slots parallel"
#: AKModel/models.py:478 #: AKModel/models.py:481
msgid "AK Slot was scheduled outside the AK's availabilities" msgid "AK Slot was scheduled outside the AK's availabilities"
msgstr "AK Slot wurde außerhalb der Verfügbarkeit des AKs platziert" 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" msgid "Room has two AK slots scheduled at the same time"
msgstr "Raum hat zwei AK Slots gleichzeitig" 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" msgid "Room does not satisfy the requirement of the scheduled AK"
msgstr "Room erfüllt die Anforderungen des platzierten AKs nicht" 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" msgid "AK Slot is scheduled at the same time as an AK listed as a conflict"
msgstr "" msgstr ""
"AK Slot wurde wurde zur gleichen Zeit wie ein Konflikt des AKs platziert" "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" msgid "AK Slot is scheduled before an AK listed as a prerequisite"
msgstr "AK Slot wurde vor einem als Voraussetzung gelisteten AK platziert" msgstr "AK Slot wurde vor einem als Voraussetzung gelisteten AK platziert"
#: AKModel/models.py:484 #: AKModel/models.py:487
msgid "" msgid ""
"AK Slot for AK with intention to submit a resolution is scheduled after " "AK Slot for AK with intention to submit a resolution is scheduled after "
"resolution deadline" "resolution deadline"
msgstr "" msgstr ""
"AK Slot eines AKs mit Resoabsicht wurde nach der Resodeadline platziert" "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" msgid "AK Slot in a category is outside that categories availabilities"
msgstr "AK Slot wurde außerhalb der Verfügbarkeiten seiner Kategorie" 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" msgid "Two AK Slots for the same AK scheduled at the same time"
msgstr "Zwei AK Slots eines AKs wurden zur selben Zeit platziert" 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" 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" 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" msgid "AK Slot is scheduled outside the event's availabilities"
msgstr "AK Slot wurde außerhalb der Verfügbarkeit des Events platziert" msgstr "AK Slot wurde außerhalb der Verfügbarkeit des Events platziert"
#: AKModel/models.py:491 #: AKModel/models.py:494
msgid "Warning" msgid "Warning"
msgstr "Warnung" msgstr "Warnung"
#: AKModel/models.py:492 #: AKModel/models.py:495
msgid "Violation" msgid "Violation"
msgstr "Verletzung" msgstr "Verletzung"
#: AKModel/models.py:494 #: AKModel/models.py:497
msgid "Type" msgid "Type"
msgstr "Art" msgstr "Art"
#: AKModel/models.py:495 #: AKModel/models.py:498
msgid "Type of violation, i.e. what kind of constraint was violated" msgid "Type of violation, i.e. what kind of constraint was violated"
msgstr "Art der Verletzung, gibt an welche Art Constraint verletzt wurde" msgstr "Art der Verletzung, gibt an welche Art Constraint verletzt wurde"
#: AKModel/models.py:496 #: AKModel/models.py:499
msgid "Level" msgid "Level"
msgstr "Level" msgstr "Level"
#: AKModel/models.py:497 #: AKModel/models.py:500
msgid "Severity level of the violation" msgid "Severity level of the violation"
msgstr "Schweregrad der Verletzung" msgstr "Schweregrad der Verletzung"
#: AKModel/models.py:503 #: AKModel/models.py:506
msgid "AK(s) belonging to this constraint" msgid "AK(s) belonging to this constraint"
msgstr "AK(s), die zu diesem Constraint gehören" 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" msgid "AK Slot(s) belonging to this constraint"
msgstr "AK Slot(s), die zu diesem Constraint gehören" 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" msgid "AK Owner belonging to this constraint"
msgstr "AK Leitung(en), die zu diesem Constraint gehören" msgstr "AK Leitung(en), die zu diesem Constraint gehören"
#: AKModel/models.py:509 #: AKModel/models.py:512
msgid "Room belonging to this constraint" msgid "Room belonging to this constraint"
msgstr "Raum, der zu diesem Constraint gehört" msgstr "Raum, der zu diesem Constraint gehört"
#: AKModel/models.py:512 #: AKModel/models.py:515
msgid "AK Requirement belonging to this constraint" msgid "AK Requirement belonging to this constraint"
msgstr "AK Anforderung, die zu diesem Constraint gehört" msgstr "AK Anforderung, die zu diesem Constraint gehört"
#: AKModel/models.py:514 #: AKModel/models.py:517
msgid "AK Category belonging to this constraint" msgid "AK Category belonging to this constraint"
msgstr "AK Kategorie, di zu diesem Constraint gehört" msgstr "AK Kategorie, di zu diesem Constraint gehört"
#: AKModel/models.py:516 #: AKModel/models.py:519
msgid "Comment" msgid "Comment"
msgstr "Kommentar" msgstr "Kommentar"
#: AKModel/models.py:516 #: AKModel/models.py:519
msgid "Comment or further details for this violation" msgid "Comment or further details for this violation"
msgstr "Kommentar oder weitere Details zu dieser Vereletzung" msgstr "Kommentar oder weitere Details zu dieser Vereletzung"
#: AKModel/models.py:519 #: AKModel/models.py:522
msgid "Timestamp" msgid "Timestamp"
msgstr "Timestamp" msgstr "Timestamp"
#: AKModel/models.py:519 #: AKModel/models.py:522
msgid "Time of creation" msgid "Time of creation"
msgstr "Zeitpunkt der ERstellung" msgstr "Zeitpunkt der ERstellung"
#: AKModel/models.py:520 #: AKModel/models.py:523
msgid "Manually Resolved" msgid "Manually Resolved"
msgstr "Manuell behoben" msgstr "Manuell behoben"
#: AKModel/models.py:521 #: AKModel/models.py:524
msgid "Mark this violation manually as resolved" msgid "Mark this violation manually as resolved"
msgstr "Markiere diese Verletzung manuell als behoben" msgstr "Markiere diese Verletzung manuell als behoben"
#: AKModel/models.py:548 #: AKModel/models.py:551
#: AKModel/templates/admin/AKModel/requirements_overview.html:27 #: AKModel/templates/admin/AKModel/requirements_overview.html:27
msgid "Details" msgid "Details"
msgstr "Details" msgstr "Details"
#: AKModel/models.py:657 #: AKModel/models.py:660
msgid "Default Slot" msgid "Default Slot"
msgstr "Standardslot" msgstr "Standardslot"
#: AKModel/models.py:662 #: AKModel/models.py:665
msgid "Slot End" msgid "Slot End"
msgstr "Ende des Slots" msgstr "Ende des Slots"
#: AKModel/models.py:662 #: AKModel/models.py:665
msgid "Time and date the slot ends" msgid "Time and date the slot ends"
msgstr "Zeit und Datum zu der der Slot endet" msgstr "Zeit und Datum zu der der Slot endet"
#: AKModel/models.py:667 #: AKModel/models.py:670
msgid "Primary categories" msgid "Primary categories"
msgstr "Primäre Kategorien" msgstr "Primäre Kategorien"
#: AKModel/models.py:668 #: AKModel/models.py:671
msgid "Categories that should be assigned to this slot primarily" msgid "Categories that should be assigned to this slot primarily"
msgstr "Kategorieren, die diesem Slot primär zugewiesen werden sollen" 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?" ...@@ -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?" 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:251 #: AKModel/views.py:256
msgid "Finish" msgid "Finish"
msgstr "Abschluss" msgstr "Abschluss"
...@@ -1017,7 +1025,7 @@ msgstr "Bisher keine Räume" ...@@ -1017,7 +1025,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:582 #: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:588
msgid "Import Rooms from CSV" msgid "Import Rooms from CSV"
msgstr "Räume aus CSV importieren" msgstr "Räume aus CSV importieren"
...@@ -1046,7 +1054,7 @@ msgstr "AKs, die besondere Aufmerksamkeit benötigen" ...@@ -1046,7 +1054,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:507 #: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:513
msgid "Edit Default Slots" msgid "Edit Default Slots"
msgstr "Standardslots bearbeiten" msgstr "Standardslots bearbeiten"
...@@ -1062,7 +1070,7 @@ msgstr "AKs als CSV exportieren" ...@@ -1062,7 +1070,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:334 #: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:339
msgid "Export AK Slides" msgid "Export AK Slides"
msgstr "AK-Folien exportieren" msgstr "AK-Folien exportieren"
...@@ -1115,162 +1123,162 @@ msgstr "Login" ...@@ -1115,162 +1123,162 @@ msgstr "Login"
msgid "Register" msgid "Register"
msgstr "Registrieren" msgstr "Registrieren"
#: AKModel/views.py:152 #: AKModel/views.py:154
msgid "Event Status" msgid "Event Status"
msgstr "Eventstatus" msgstr "Eventstatus"
#: AKModel/views.py:165 #: AKModel/views.py:167
msgid "Requirements for Event" msgid "Requirements for Event"
msgstr "Anforderungen für das Event" msgstr "Anforderungen für das Event"
#: AKModel/views.py:179 #: AKModel/views.py:181
msgid "AK CSV Export" msgid "AK CSV Export"
msgstr "AK-CSV-Export" msgstr "AK-CSV-Export"
#: AKModel/views.py:193 #: AKModel/views.py:195
msgid "AK Wiki Export" msgid "AK Wiki Export"
msgstr "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" msgid "Wishes"
msgstr "Wünsche" msgstr "Wünsche"
#: AKModel/views.py:222 #: AKModel/views.py:227
msgid "Delete AK Orga Messages" msgid "Delete AK Orga Messages"
msgstr "AK-Organachrichten löschen" msgstr "AK-Organachrichten löschen"
#: AKModel/views.py:237 #: AKModel/views.py:242
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:247 #: AKModel/views.py:252
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: AKModel/views.py:248 #: AKModel/views.py:253
msgid "Event created, Prepare Import" msgid "Event created, Prepare Import"
msgstr "Event angelegt, Import vorbereiten" msgstr "Event angelegt, Import vorbereiten"
#: AKModel/views.py:249 #: AKModel/views.py:254
msgid "Import categories & requirements" msgid "Import categories & requirements"
msgstr "Kategorien & Anforderungen kopieren" msgstr "Kategorien & Anforderungen kopieren"
#: AKModel/views.py:250 #: AKModel/views.py:255
msgid "Activate?" msgid "Activate?"
msgstr "Aktivieren?" msgstr "Aktivieren?"
#: AKModel/views.py:309 #: AKModel/views.py:314
#, python-format #, python-format
msgid "Copied '%(obj)s'" msgid "Copied '%(obj)s'"
msgstr "'%(obj)s' kopiert" msgstr "'%(obj)s' kopiert"
#: AKModel/views.py:312 #: AKModel/views.py:317
#, 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:345 #: AKModel/views.py:350
msgid "Symbols" msgid "Symbols"
msgstr "Symbole" msgstr "Symbole"
#: AKModel/views.py:346 #: AKModel/views.py:351
msgid "Who?" msgid "Who?"
msgstr "Wer?" msgstr "Wer?"
#: AKModel/views.py:347 #: AKModel/views.py:352
msgid "Duration(s)" msgid "Duration(s)"
msgstr "Dauer(n)" msgstr "Dauer(n)"
#: AKModel/views.py:348 #: AKModel/views.py:353
msgid "Reso intention?" msgid "Reso intention?"
msgstr "Resolutionsabsicht?" msgstr "Resolutionsabsicht?"
#: AKModel/views.py:349 #: AKModel/views.py:354
msgid "Category (for Wishes)" msgid "Category (for Wishes)"
msgstr "Kategorie (für Wünsche)" 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" 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:438 #: AKModel/views.py:444
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:447 #: AKModel/views.py:453
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:448 #: AKModel/views.py:454
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:457 #: AKModel/views.py:463
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:458 #: AKModel/views.py:464
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:467 #: AKModel/views.py:473
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:468 #: AKModel/views.py:474
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:477 #: AKModel/views.py:483
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:478 #: AKModel/views.py:484
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:487 #: AKModel/views.py:493
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:488 #: AKModel/views.py:494
msgid "Plan published" msgid "Plan published"
msgstr "Plan veröffentlicht" msgstr "Plan veröffentlicht"
#: AKModel/views.py:497 #: AKModel/views.py:503
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:498 #: AKModel/views.py:504
msgid "Plan unpublished" msgid "Plan unpublished"
msgstr "Plan verborgen" msgstr "Plan verborgen"
#: AKModel/views.py:544 #: AKModel/views.py:550
#, 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:574 #: AKModel/views.py:580
#, 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:611 #: AKModel/views.py:624
#, 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:615 #: AKModel/views.py:628
#, 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:617 #: AKModel/views.py:630
msgid "No rooms imported" msgid "No rooms imported"
msgstr "Keine Räume importiert" 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): ...@@ -92,10 +92,10 @@ class Event(models.Model):
for category in categories: for category in categories:
ak_list = [] ak_list = []
for ak in category.ak_set.all(): for ak in category.ak_set.all():
if ak.wish: if filter(ak):
ak_wishes.append(ak) if ak.wish:
else: ak_wishes.append(ak)
if filter(ak): else:
ak_list.append(ak) ak_list.append(ak)
if not hide_empty_categories or len(ak_list) > 0: if not hide_empty_categories or len(ak_list) > 0:
categories_with_aks.append((category, ak_list)) categories_with_aks.append((category, ak_list))
...@@ -288,7 +288,10 @@ class AK(models.Model): ...@@ -288,7 +288,10 @@ class AK(models.Model):
event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'), event = models.ForeignKey(to=Event, on_delete=models.CASCADE, verbose_name=_('Event'),
help_text=_('Associated 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: class Meta:
verbose_name = _('AK') verbose_name = _('AK')
......
...@@ -110,3 +110,20 @@ class ModelViewTests(BasicViewTests, TestCase): ...@@ -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})) view_name_with_prefix, url = self._name_and_url((f'admin:AKModel_{model[1]}_change', {'object_id': m.pk}))
response = self.client.get(url) response = self.client.get(url)
self.assertEqual(response.status_code, 200, msg=f"Edit form for model {model[1]} ({url}) broken") 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): ...@@ -197,7 +197,10 @@ class AKWikiExportView(AdminViewMixin, DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**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"] = [(category.name, ak_list) for category, ak_list in categories_with_aks]
context["categories_with_aks"].append((_("Wishes"), ak_wishes)) 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