Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AKPlanning
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Felix Blanke
AKPlanning
Commits
ebe2677c
Commit
ebe2677c
authored
2 years ago
by
Benjamin Hättasch
Browse files
Options
Downloads
Patches
Plain Diff
Extend new event vizard to cover cloning of dashboard buttons, too
This implements
#183
parent
205684a3
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
AKModel/forms.py
+11
-0
11 additions, 0 deletions
AKModel/forms.py
AKModel/locale/de_DE/LC_MESSAGES/django.po
+72
-68
72 additions, 68 deletions
AKModel/locale/de_DE/LC_MESSAGES/django.po
AKModel/views.py
+6
-2
6 additions, 2 deletions
AKModel/views.py
with
89 additions
and
70 deletions
AKModel/forms.py
+
11
−
0
View file @
ebe2677c
...
...
@@ -69,6 +69,17 @@ class NewEventWizardImportForm(forms.Form):
self
.
fields
[
"
import_requirements
"
].
queryset
=
self
.
fields
[
"
import_requirements
"
].
queryset
.
filter
(
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
Meta
:
...
...
This diff is collapsed.
Click to expand it.
AKModel/locale/de_DE/LC_MESSAGES/django.po
+
72
−
68
View file @
ebe2677c
...
...
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 202
2-12-28 01:03
+0100\n"
"POT-Creation-Date: 202
3-01-01 19:22
+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:49
1
#: AKModel/admin.py:73 AKModel/admin.py:84 AKModel/views.py:49
6
msgid "Publish plan"
msgstr "Plan veröffentlichen"
#: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:50
1
#: AKModel/admin.py:76 AKModel/admin.py:89 AKModel/views.py:50
6
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:47
1
#: AKModel/admin.py:236 AKModel/views.py:47
6
msgid "Reset interest in AKs"
msgstr "Interesse an AKs zurücksetzen"
#: AKModel/admin.py:241 AKModel/views.py:48
1
#: AKModel/admin.py:241 AKModel/views.py:48
6
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:44
1
#: AKModel/admin.py:384 AKModel/views.py:44
6
msgid "Mark Constraint Violations as manually resolved"
msgstr "Markiere Constraintverletzungen als manuell behoben"
#: AKModel/admin.py:389 AKModel/views.py:45
1
#: AKModel/admin.py:389 AKModel/views.py:45
6
msgid "Set Constraint Violations to level \"violation\""
msgstr "Constraintverletzungen auf Level \"Violation\" setzen"
#: AKModel/admin.py:394 AKModel/views.py:46
1
#: AKModel/admin.py:394 AKModel/views.py:46
6
msgid "Set Constraint Violations to level \"warning\""
msgstr "Constraintverletzungen auf Level \"Warning\" setzen"
...
...
@@ -155,52 +155,56 @@ msgstr "AK-Kategorie, deren Verfügbarkeit hier abgebildet wird"
msgid "Availabilities"
msgstr "Verfügbarkeiten"
#: AKModel/forms.py:4
2
#: AKModel/forms.py:4
3
msgid "Copy ak requirements and ak categories of existing event"
msgstr "AK-Anforderungen und AK-Kategorien eines existierenden Events kopieren"
#: AKModel/forms.py:4
3
#: AKModel/forms.py:4
4
msgid "You can choose what to copy in the next step"
msgstr ""
"Im nächsten Schritt kann ausgewählt werden, was genau kopiert werden soll"
#: AKModel/forms.py:5
1
#: AKModel/forms.py:5
2
msgid "Copy ak categories"
msgstr "AK-Kategorien kopieren"
#: AKModel/forms.py:5
8
#: AKModel/forms.py:5
9
msgid "Copy ak requirements"
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"
msgstr "# nächste AKs"
#: AKModel/forms.py:
9
3
#: AKModel/forms.py:
10
3
msgid "How many next AKs should be shown on a slide?"
msgstr "Wie viele nächste AKs sollen auf einer Folie angezeigt werden?"
#: AKModel/forms.py:
9
6
#: AKModel/forms.py:
10
6
msgid "Presentation only?"
msgstr "Nur Vorstellung?"
#: AKModel/forms.py:
9
8 AKModel/forms.py:1
0
5
#: AKModel/forms.py:
10
8 AKModel/forms.py:1
1
5
msgid "Yes"
msgstr "Ja"
#: AKModel/forms.py:
9
8 AKModel/forms.py:1
0
5
#: AKModel/forms.py:
10
8 AKModel/forms.py:1
1
5
msgid "No"
msgstr "Nein"
#: AKModel/forms.py:1
0
0
#: AKModel/forms.py:1
1
0
msgid "Restrict AKs to those that asked for chance to be presented?"
msgstr "AKs auf solche, die um eine Vorstellung gebeten haben, einschränken?"
#: AKModel/forms.py:1
0
3
#: AKModel/forms.py:1
1
3
msgid "Space for notes in wishes?"
msgstr "Platz für Notizen bei den Wünschen?"
#: AKModel/forms.py:1
0
7
#: AKModel/forms.py:1
1
7
msgid ""
"Create symbols indicating space to note down owners and timeslots for "
"wishes, e.g., to be filled out on a touch screen while presenting?"
...
...
@@ -209,11 +213,11 @@ msgstr ""
"fürWünsche markieren, z.B. um während der Präsentation auf einem Touchscreen "
"ausgefüllt zu werden?"
#: AKModel/forms.py:1
1
3 AKModel/models.py:661
#: AKModel/forms.py:1
2
3 AKModel/models.py:661
msgid "Default Slots"
msgstr "Standardslots"
#: AKModel/forms.py:1
1
5
#: AKModel/forms.py:1
2
5
msgid ""
"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."
...
...
@@ -222,11 +226,11 @@ msgstr ""
"Einträge zu löschen. Oder Start- und End-Eingabe verwenden, um der "
"Kalenderansicht neue Einträge hinzuzufügen."
#: AKModel/forms.py:1
2
5
#: AKModel/forms.py:1
3
5
msgid "New rooms"
msgstr "Neue Räume"
#: AKModel/forms.py:1
2
6
#: AKModel/forms.py:1
3
6
msgid ""
"Enter room details in CSV format. Required colum is \"name\", optional "
"colums are \"location\", \"capacity\", and \"url\" for online/hybrid rooms. "
...
...
@@ -236,7 +240,7 @@ msgstr ""
"Spalten sind \"location\", \"capacity\", und \"url\" for Online-/"
"HybridräumeTrennzeichen: Semikolon"
#: AKModel/forms.py:1
3
7
#: AKModel/forms.py:1
4
7
msgid "CSV must contain a name column"
msgstr "CSV muss eine name-Spalte enthalten"
...
...
@@ -276,7 +280,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:25
1
#: AKModel/models.py:27 AKModel/views.py:25
2
msgid "Start"
msgstr "Start"
...
...
@@ -637,7 +641,7 @@ 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:3
69
#: AKModel/templates/admin/AKModel/status.html:64 AKModel/views.py:3
74
msgid "AKs"
msgstr "AKs"
...
...
@@ -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?"
#: AKModel/templates/admin/AKModel/event_wizard/activate.html:27
#: AKModel/views.py:25
6
#: AKModel/views.py:25
7
msgid "Finish"
msgstr "Abschluss"
...
...
@@ -1035,7 +1039,7 @@ msgstr "Bisher keine Räume"
msgid "Add Room"
msgstr "Raum hinzufügen"
#: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:5
88
#: AKModel/templates/admin/AKModel/status.html:55 AKModel/views.py:5
93
msgid "Import Rooms from CSV"
msgstr "Räume aus CSV importieren"
...
...
@@ -1064,7 +1068,7 @@ msgstr "AKs, die besondere Aufmerksamkeit benötigen"
msgid "Enter Interest"
msgstr "Interesse erfassen"
#: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:51
3
#: AKModel/templates/admin/AKModel/status.html:94 AKModel/views.py:51
8
msgid "Edit Default Slots"
msgstr "Standardslots bearbeiten"
...
...
@@ -1080,7 +1084,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:3
39
#: AKModel/templates/admin/AKModel/status.html:102 AKModel/views.py:3
44
msgid "Export AK Slides"
msgstr "AK-Folien exportieren"
...
...
@@ -1133,162 +1137,162 @@ msgstr "Login"
msgid "Register"
msgstr "Registrieren"
#: AKModel/views.py:15
4
#: AKModel/views.py:15
5
msgid "Event Status"
msgstr "Eventstatus"
#: AKModel/views.py:16
7
#: AKModel/views.py:16
8
msgid "Requirements for Event"
msgstr "Anforderungen für das Event"
#: AKModel/views.py:18
1
#: AKModel/views.py:18
2
msgid "AK CSV Export"
msgstr "AK-CSV-Export"
#: AKModel/views.py:19
5
#: AKModel/views.py:19
6
msgid "AK Wiki Export"
msgstr "AK-Wiki-Export"
#: AKModel/views.py:20
6
AKModel/views.py:3
55
#: AKModel/views.py:20
7
AKModel/views.py:3
60
msgid "Wishes"
msgstr "Wünsche"
#: AKModel/views.py:22
7
#: AKModel/views.py:22
8
msgid "Delete AK Orga Messages"
msgstr "AK-Organachrichten löschen"
#: AKModel/views.py:24
2
#: AKModel/views.py:24
3
msgid "AK Orga Messages successfully deleted"
msgstr "AK-Organachrichten erfolgreich gelöscht"
#: AKModel/views.py:25
2
#: AKModel/views.py:25
3
msgid "Settings"
msgstr "Einstellungen"
#: AKModel/views.py:25
3
#: AKModel/views.py:25
4
msgid "Event created, Prepare Import"
msgstr "Event angelegt, Import vorbereiten"
#: AKModel/views.py:25
4
#: AKModel/views.py:25
5
msgid "Import categories & requirements"
msgstr "Kategorien & Anforderungen kopieren"
#: AKModel/views.py:25
5
#: AKModel/views.py:25
6
msgid "Activate?"
msgstr "Aktivieren?"
#: AKModel/views.py:31
4
#: AKModel/views.py:31
9
#, python-format
msgid "Copied '%(obj)s'"
msgstr "'%(obj)s' kopiert"
#: AKModel/views.py:3
17
#: AKModel/views.py:3
22
#, python-format
msgid "Could not copy '%(obj)s' (%(error)s)"
msgstr "'%(obj)s' konnte nicht kopiert werden (%(error)s)"
#: AKModel/views.py:35
0
#: AKModel/views.py:35
5
msgid "Symbols"
msgstr "Symbole"
#: AKModel/views.py:35
1
#: AKModel/views.py:35
6
msgid "Who?"
msgstr "Wer?"
#: AKModel/views.py:35
2
#: AKModel/views.py:35
7
msgid "Duration(s)"
msgstr "Dauer(n)"
#: AKModel/views.py:35
3
#: AKModel/views.py:35
8
msgid "Reso intention?"
msgstr "Resolutionsabsicht?"
#: AKModel/views.py:35
4
#: AKModel/views.py:35
9
msgid "Category (for Wishes)"
msgstr "Kategorie (für Wünsche)"
#: AKModel/views.py:44
3
#: AKModel/views.py:44
8
msgid "The following Constraint Violations will be marked as manually resolved"
msgstr ""
"Die folgenden Constraintverletzungen werden als manuell behoben markiert."
#: AKModel/views.py:44
4
#: AKModel/views.py:44
9
msgid "Constraint Violations marked as resolved"
msgstr "Constraintverletzungen als manuell behoben markiert"
#: AKModel/views.py:45
3
#: AKModel/views.py:45
8
msgid "The following Constraint Violations will be set to level 'violation'"
msgstr ""
"Die folgenden Constraintverletzungen werden auf das Level \"Violation\" "
"gesetzt."
#: AKModel/views.py:45
4
#: AKModel/views.py:45
9
msgid "Constraint Violations set to level 'violation'"
msgstr "Constraintverletzungen auf Level \"Violation\" gesetzt"
#: AKModel/views.py:46
3
#: AKModel/views.py:46
8
msgid "The following Constraint Violations will be set to level 'warning'"
msgstr ""
"Die folgenden Constraintverletzungen werden auf das Level 'warning' gesetzt."
#: AKModel/views.py:46
4
#: AKModel/views.py:46
9
msgid "Constraint Violations set to level 'warning'"
msgstr "Constraintverletzungen auf Level \"Warning\" gesetzt"
#: AKModel/views.py:47
3
#: AKModel/views.py:47
8
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:47
4
#: AKModel/views.py:47
9
msgid "Reset of interest in AKs successful."
msgstr "Interesse an AKs erfolgreich zurückgesetzt."
#: AKModel/views.py:48
3
#: AKModel/views.py:48
8
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:48
4
#: AKModel/views.py:48
9
msgid "AKs' interest counters set back to 0."
msgstr "Interessenszähler der AKs zurückgesetzt"
#: AKModel/views.py:49
3
#: AKModel/views.py:49
8
msgid "Publish the plan(s) of:"
msgstr "Den Plan/die Pläne veröffentlichen von:"
#: AKModel/views.py:49
4
#: AKModel/views.py:49
9
msgid "Plan published"
msgstr "Plan veröffentlicht"
#: AKModel/views.py:50
3
#: AKModel/views.py:50
8
msgid "Unpublish the plan(s) of:"
msgstr "Den Plan/die Pläne verbergen von:"
#: AKModel/views.py:50
4
#: AKModel/views.py:50
9
msgid "Plan unpublished"
msgstr "Plan verborgen"
#: AKModel/views.py:55
0
#: AKModel/views.py:55
5
#, 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:58
0
#: AKModel/views.py:58
5
#, 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:62
4
#: AKModel/views.py:62
8
#, python-brace-format
msgid "Could not import room {name}: {e}"
msgstr "Konnte Raum {name} nicht importieren: {e}"
#: AKModel/views.py:62
8
#: AKModel/views.py:6
3
2
#, python-brace-format
msgid "Imported {count} room(s)"
msgstr "{count} Raum/Räume importiert"
#: AKModel/views.py:63
0
#: AKModel/views.py:63
4
msgid "No rooms imported"
msgstr "Keine Räume importiert"
This diff is collapsed.
Click to expand it.
AKModel/views.py
+
6
−
2
View file @
ebe2677c
...
...
@@ -7,6 +7,7 @@ from abc import ABC, abstractmethod
from
itertools
import
zip_longest
import
django.db
from
django.apps
import
apps
from
django.contrib
import
admin
,
messages
from
django.db.models.functions
import
Now
from
django.shortcuts
import
get_object_or_404
,
redirect
...
...
@@ -304,7 +305,11 @@ class NewEventWizardImportView(EventSlugMixin, WizardViewMixin, FormView):
return
initial
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
):
# clone existing entry
try
:
...
...
@@ -591,7 +596,6 @@ class RoomBatchCreationView(EventSlugMixin, IntermediateAdminView):
return
reverse_lazy
(
'
admin:event_status
'
,
kwargs
=
{
'
slug
'
:
self
.
event
.
slug
})
def
form_valid
(
self
,
form
):
from
django.apps
import
apps
virtual_rooms_support
=
False
created_count
=
0
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment