diff --git a/openslides/application/forms.py b/openslides/application/forms.py
index 8488ffe19..1a08a368b 100644
--- a/openslides/application/forms.py
+++ b/openslides/application/forms.py
@@ -18,7 +18,6 @@ from utils.forms import CssClassMixin
from application.models import Application
-
class UserModelChoiceField(ModelChoiceField):
"""
Extend ModelChoiceField for users so that the choices are
@@ -58,6 +57,7 @@ class ApplicationImportForm(Form, CssClassMixin):
csvfile = FileField(widget=FileInput(attrs={'size':'50'}), label=_("CSV File"))
import_permitted = BooleanField(required=False, label=_("Import applications with status \"permitted\""), help_text=_("Set the initial status for each application to \"permitted\""))
+
class ConfigForm(Form, CssClassMixin):
application_min_supporters = IntegerField(
widget=TextInput(attrs={'class':'small-input'}),
diff --git a/openslides/application/models.py b/openslides/application/models.py
index 594c54f2b..c350bd9ba 100644
--- a/openslides/application/models.py
+++ b/openslides/application/models.py
@@ -504,7 +504,7 @@ register_slidemodel(Application)
class ApplicationOption(BaseOption):
def __getattr__(self, name):
- if name in ['yes', 'no', 'contained']:
+ if name in ['Yes', 'No', 'Abstain']:
try:
return self.get_votes().get(value=name)
except Vote.DoesNotExist:
@@ -514,7 +514,7 @@ class ApplicationOption(BaseOption):
class ApplicationPoll(BasePoll, CountInvalid, CountVotesCast):
option_class = ApplicationOption
- vote_values = ['yes', 'no', 'contained'] #todo: Translate the names without changing the db-key
+ vote_values = [_('Yes', fixstr=True), _('No', fixstr=True), _('Abstain', fixstr=True)]
application = models.ForeignKey(Application)
diff --git a/openslides/application/templates/application/view.html b/openslides/application/templates/application/view.html
index f242a2699..975c21df7 100644
--- a/openslides/application/templates/application/view.html
+++ b/openslides/application/templates/application/view.html
@@ -88,9 +88,9 @@
{% if poll.has_votes %}
{% with poll.get_options.0 as option %}
- {{ option.yes }}
- {{ option.no }}
- {{ option.contained }}
+ {{ option.Yes }}
+ {{ option.No }}
+ {{ option.Abstain }}
{{ poll.print_votesinvalid }}
{{ poll.print_votescast }}
diff --git a/openslides/locale/de/LC_MESSAGES/django.mo b/openslides/locale/de/LC_MESSAGES/django.mo
index 6e46ccaa3..94b7e3d96 100644
Binary files a/openslides/locale/de/LC_MESSAGES/django.mo and b/openslides/locale/de/LC_MESSAGES/django.mo differ
diff --git a/openslides/locale/de/LC_MESSAGES/django.po b/openslides/locale/de/LC_MESSAGES/django.po
index 4dc1120a0..f8c6665af 100644
--- a/openslides/locale/de/LC_MESSAGES/django.po
+++ b/openslides/locale/de/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-15 12:24+0200\n"
+"POT-Creation-Date: 2012-04-17 17:16+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME
\n"
"Language-Team: LANGUAGE \n"
@@ -33,107 +33,110 @@ msgstr "Elternelement"
msgid "Countdown (in seconds)"
msgstr "Countdown (in Sekunden)"
-#: agenda/models.py:39 application/forms.py:41
-#: application/templates/application/view.html:250 projector/models.py:13
+#: agenda/models.py:38 application/forms.py:41
+#: application/templates/application/view.html:256 config/forms.py:27
+#: projector/models.py:16
msgid "Title"
msgstr "Titel"
-#: agenda/models.py:40 application/forms.py:42
-#: application/templates/application/view.html:251 projector/models.py:14
+#: agenda/models.py:39 application/forms.py:42
+#: application/templates/application/view.html:257 projector/models.py:17
msgid "Text"
msgstr "Text"
-#: agenda/models.py:41 participant/models.py:37
-#: participant/templates/participant/overview.html:69
+#: agenda/models.py:40 agenda/templates/agenda/view.html:12
+#: participant/models.py:37 participant/templates/participant/overview.html:69
msgid "Comment"
msgstr "Kommentar"
-#: agenda/models.py:42
+#: agenda/models.py:41
msgid "Closed"
msgstr "Abgeschlossen"
-#: agenda/models.py:43 agenda/templates/agenda/overview.html:60
-#: projector/models.py:15
+#: agenda/models.py:42 agenda/templates/agenda/overview.html:60
+#: projector/models.py:18
msgid "Weight"
msgstr "Gewichtung"
-#: agenda/models.py:127
+#: agenda/models.py:112
msgid "Can see agenda"
msgstr "Darf die Tagesordnung sehen"
-#: agenda/models.py:128
+#: agenda/models.py:113
msgid "Can manage agenda"
msgstr "Darf die Tagesordung verwalten"
-#: agenda/models.py:135
-msgid "Agenda Item"
-msgstr "Tagesordnungseintrag"
-
-#: agenda/models.py:142 agenda/slides.py:7 agenda/views.py:185
-#: agenda/views.py:186 agenda/views.py:215
-#: agenda/templates/agenda/base_agenda.html:9
+#: agenda/models.py:127 agenda/slides.py:7 agenda/views.py:154
+#: agenda/views.py:155 agenda/views.py:184
+#: agenda/templates/agenda/base_agenda.html:10
#: agenda/templates/agenda/overview.html:8
#: agenda/templates/agenda/overview.html:42
#: agenda/templates/agenda/overview.html:66
-#: agenda/templates/projector/AgendaSummary.html:6
-#: agenda/templates/projector/AgendaSummary.html:13
+#: agenda/templates/projector/AgendaSummary.html:7
+#: agenda/templates/projector/AgendaSummary.html:11
msgid "Agenda"
msgstr "Tagesordnung"
-#: agenda/views.py:160
+#: agenda/views.py:129
#, python-format
msgid "Item %s and his children were successfully deleted."
msgstr "Eintrag %s und seine Kindelemente wurde erfolgreich gelöscht."
-#: agenda/views.py:166 utils/views.py:191
+#: agenda/views.py:135 utils/views.py:195
#, python-format
msgid "Item %s was successfully deleted."
msgstr "Eintrag %s wurde erfolgreich gelöscht."
-#: agenda/views.py:170 agenda/views.py:172
-#: agenda/templates/agenda/overview.html:48 application/views.py:706
-#: application/views.py:750 application/templates/application/view.html:80
-#: application/templates/projector/Application.html:34
+#: agenda/views.py:139 agenda/views.py:141
+#: agenda/templates/agenda/overview.html:48 application/models.py:517
+#: application/views.py:695 application/views.py:739
+#: application/templates/application/view.html:91
+#: application/templates/projector/Application.html:33
#: assignment/templates/assignment/view.html:186
#: assignment/templates/assignment/view.html:190
#: assignment/templates/projector/Assignment.html:72
#: assignment/templates/projector/Assignment.html:76 utils/pdf.py:332
-#: utils/utils.py:39 utils/views.py:203
+#: utils/utils.py:39 utils/views.py:207
msgid "Yes"
msgstr "Ja"
-#: agenda/views.py:170 agenda/views.py:172
-#: agenda/templates/agenda/overview.html:49 application/views.py:706
-#: application/views.py:751 application/templates/application/view.html:81
-#: application/templates/projector/Application.html:35
+#: agenda/views.py:139 agenda/views.py:141
+#: agenda/templates/agenda/overview.html:49 application/models.py:517
+#: application/views.py:695 application/views.py:740
+#: application/templates/application/view.html:92
+#: application/templates/projector/Application.html:34
#: assignment/templates/assignment/view.html:187
#: assignment/templates/projector/Assignment.html:73 utils/pdf.py:332
-#: utils/utils.py:39 utils/views.py:203
+#: utils/utils.py:39 utils/views.py:207
msgid "No"
msgstr "Nein"
-#: agenda/views.py:172
+#: agenda/views.py:141
msgid "Yes, with all child items."
msgstr "Ja, mit allen Kindelementen."
-#: agenda/views.py:178 agenda/views.py:180 participant/views.py:188
-#: participant/views.py:282 utils/utils.py:47 utils/views.py:200
+#: agenda/views.py:147 agenda/views.py:149 participant/views.py:188
+#: participant/views.py:282 utils/utils.py:47 utils/views.py:204
#, python-format
msgid "Do you really want to delete %s?"
msgstr "Soll %s wirklich gelöscht werden?"
-#: agenda/views.py:208
+#: agenda/views.py:177
msgid "Agenda settings successfully saved."
msgstr "Tagesordnungs-Einstellungen erfolgreich gespeichert."
-#: agenda/templates/agenda/base_agenda.html:11
+#: agenda/templates/agenda/base_agenda.html:12
msgid "All items"
msgstr "Alle Einträge"
-#: agenda/templates/agenda/base_agenda.html:13
+#: agenda/templates/agenda/base_agenda.html:14
msgid "New item"
msgstr "Neuer Eintrag"
+#: agenda/templates/agenda/base_agenda.html:16
+msgid "Agenda as PDF"
+msgstr "Tagesordnung als PDF"
+
#: agenda/templates/agenda/config.html:5 agenda/templates/agenda/config.html:8
msgid "Agenda settings"
msgstr "Tagesordnungs-Einstellungen"
@@ -141,11 +144,11 @@ msgstr "Tagesordnungs-Einstellungen"
#: agenda/templates/agenda/config.html:13 agenda/templates/agenda/edit.html:12
#: application/templates/application/config.html:13
#: application/templates/application/edit.html:21
-#: application/templates/application/poll_view.html:49
+#: application/templates/application/poll_view.html:50
#: assignment/templates/assignment/config.html:13
#: assignment/templates/assignment/edit.html:17
#: assignment/templates/assignment/poll_view.html:53
-#: config/templates/config/general.html:41
+#: config/templates/config/general.html:56
#: participant/templates/participant/config.html:13
#: participant/templates/participant/edit.html:21
#: participant/templates/participant/group_edit.html:17
@@ -158,11 +161,11 @@ msgstr "Speichern"
#: application/templates/application/config.html:17
#: application/templates/application/edit.html:28
#: application/templates/application/import.html:26
-#: application/templates/application/poll_view.html:56
+#: application/templates/application/poll_view.html:57
#: assignment/templates/assignment/config.html:17
#: assignment/templates/assignment/edit.html:24
#: assignment/templates/assignment/poll_view.html:60
-#: config/templates/config/general.html:45
+#: config/templates/config/general.html:60
#: participant/templates/participant/config.html:17
#: participant/templates/participant/edit.html:28
#: participant/templates/participant/group_edit.html:24
@@ -178,27 +181,28 @@ msgid "Item"
msgstr "Eintrag"
#: agenda/templates/agenda/edit.html:8
-#: agenda/templates/agenda/item_row.html:23
+#: agenda/templates/agenda/item_row.html:30
msgid "Edit item"
msgstr "Eintrag bearbeiten"
#: agenda/templates/agenda/edit.html:15
#: application/templates/application/edit.html:24
-#: application/templates/application/poll_view.html:52
+#: application/templates/application/poll_view.html:53
#: assignment/templates/assignment/edit.html:20
#: assignment/templates/assignment/poll_view.html:56
#: assignment/templates/assignment/view.html:110
#: participant/templates/participant/edit.html:24
#: participant/templates/participant/group_edit.html:20
+#: projector/templates/projector/control.html:136
#: projector/templates/projector/new.html:16
msgid "Apply"
msgstr "Übernehmen"
-#: agenda/templates/agenda/item_row.html:8
+#: agenda/templates/agenda/item_row.html:12
msgid "Item closed"
msgstr "Eintrag erledigt"
-#: agenda/templates/agenda/item_row.html:24
+#: agenda/templates/agenda/item_row.html:31
msgid "Delete item"
msgstr "Eintrag löschen"
@@ -221,18 +225,14 @@ msgstr "Aktionen"
msgid "items"
msgstr "Einträge"
-#: agenda/templates/agenda/overview.html:72
-msgid "Print agenda"
-msgstr "Tagesordnung drucken"
-
-#: agenda/templates/agenda/overview.html:84
+#: agenda/templates/agenda/overview.html:81
msgid "No items available."
msgstr "Keine Einträge vorhanden."
-#: application/forms.py:43 application/views.py:724
-#: application/templates/application/view.html:233
-#: application/templates/application/view.html:253
-#: application/templates/projector/Application.html:60
+#: application/forms.py:43 application/views.py:713
+#: application/templates/application/view.html:239
+#: application/templates/application/view.html:259
+#: application/templates/projector/Application.html:59
msgid "Reason"
msgstr "Begründung"
@@ -244,15 +244,15 @@ msgstr "Triviale Änderung"
msgid "Trivial changes don't create a new version."
msgstr "Triviale Änderungen erzeugen keine neue Version."
-#: application/forms.py:49 application/models.py:54 application/views.py:653
+#: application/forms.py:49 application/models.py:54 application/views.py:641
#: application/templates/application/overview.html:39
-#: application/templates/application/view.html:14
-#: application/templates/projector/Application.html:23
+#: application/templates/application/view.html:30
+#: application/templates/projector/Application.html:22
msgid "Submitter"
msgstr "Antragsteller/in"
-#: application/forms.py:50 application/models.py:56 application/views.py:666
-#: application/templates/application/view.html:28
+#: application/forms.py:50 application/models.py:56 application/views.py:654
+#: application/templates/application/view.html:37
msgid "Supporters"
msgstr "Unterstützer/innen"
@@ -313,12 +313,12 @@ msgid "Permitted"
msgstr "Zugelassen"
#: application/models.py:35 application/templates/application/overview.html:23
-#: application/templates/application/view.html:175
+#: application/templates/application/view.html:181
msgid "Accepted"
msgstr "Angenommen"
#: application/models.py:36 application/templates/application/overview.html:24
-#: application/templates/application/view.html:180
+#: application/templates/application/view.html:186
msgid "Rejected"
msgstr "Abgelehnt"
@@ -326,17 +326,17 @@ msgstr "Abgelehnt"
msgid "Withdrawed"
msgstr "Zurückgezogen"
-#: application/models.py:38 application/templates/application/view.html:188
+#: application/models.py:38 application/templates/application/view.html:194
msgid "Adjourned"
msgstr "Vertagt"
# please check!
-#: application/models.py:39 application/templates/application/view.html:191
+#: application/models.py:39 application/templates/application/view.html:197
msgid "Not Concerned"
msgstr "Nicht befasst"
# please check!
-#: application/models.py:40 application/templates/application/view.html:194
+#: application/models.py:40 application/templates/application/view.html:200
msgid "Commited a bill"
msgstr "Verwiesen (in Ausschuss)"
@@ -379,12 +379,12 @@ msgstr "Unterstützer/innen gelöscht"
msgid "Status reseted to: %s"
msgstr "Status zurückgesetzt auf: %s"
-#: application/models.py:229 application/views.py:176
+#: application/models.py:229 application/views.py:177
#, python-format
msgid "Supporter: +%s"
msgstr "Unterstützer/in: +%s"
-#: application/models.py:239 application/views.py:187
+#: application/models.py:239 application/views.py:188
#, python-format
msgid "Supporter: -%s"
msgstr "Unterstützer/in: -%s"
@@ -408,27 +408,31 @@ msgstr "Version %s nicht zugelassen"
msgid "Status modified"
msgstr "Status geändert"
-#: application/models.py:424
+#: application/models.py:426
msgid "Poll created"
msgstr "Abstimmung erstellt"
-#: application/models.py:469
+#: application/models.py:474
msgid "Can see application"
msgstr "Darf Anträge sehen"
-#: application/models.py:470
+#: application/models.py:475
msgid "Can create application"
msgstr "Darf Anträge erstellen"
-#: application/models.py:471
+#: application/models.py:476
msgid "Can support application"
msgstr "Darf Anträge unterstützen"
-#: application/models.py:472
+#: application/models.py:477
msgid "Can manage application"
msgstr "Darf Anträge verwalten"
-#: application/models.py:545 application/views.py:609 application/views.py:807
+#: application/models.py:517
+msgid "Abstain"
+msgstr "Enthaltung"
+
+#: application/models.py:549 application/views.py:596 application/views.py:796
#: application/templates/application/base_application.html:9
#: application/templates/application/overview.html:6
#: application/templates/application/overview.html:9
@@ -436,31 +440,31 @@ msgstr "Darf Anträge verwalten"
msgid "Applications"
msgstr "Anträge"
-#: application/views.py:129
+#: application/views.py:130
msgid "You have not the necessary rights to create or edit applications."
msgstr ""
"Sie haben nicht die nötigen Rechte, um Anträge zu erstellen oder zu "
"bearbeiten."
-#: application/views.py:134
+#: application/views.py:135
msgid "You can not edit this application. You are not the submitter."
msgstr "Sie dürfen keine Anträge von anderen bearbeiten."
-#: application/views.py:189
+#: application/views.py:190
msgid "New application was successfully created."
msgstr "Neuer Antrag wurde erfolgreich angelegt."
-#: application/views.py:191
+#: application/views.py:192
msgid "Application was successfully modified."
msgstr "Antrag wurde erfolgreich geändert."
-#: application/views.py:198 application/views.py:597 assignment/views.py:129
+#: application/views.py:199 application/views.py:584 assignment/views.py:128
#: participant/views.py:165 participant/views.py:267 participant/views.py:296
-#: participant/views.py:454 utils/views.py:153
+#: participant/views.py:454 utils/views.py:157
msgid "Please check the form for errors."
msgstr "Bitte kontrollieren Sie das Formular nach Fehlern."
-#: application/views.py:205
+#: application/views.py:206
msgid ""
"Attention: Do you really want to edit this application? The supporters will "
"not be removed automatically because you can manage applications. "
@@ -470,7 +474,7 @@ msgstr ""
"werden nicht automatisch entfernt, da Sie Anträge verwalten dürfen. "
"Prüfen Sie, ob die Unterstützungen noch gültig sind."
-#: application/views.py:207
+#: application/views.py:208
#, python-format
msgid ""
"Attention: Do you really want to edit this application? All %s "
@@ -479,131 +483,131 @@ msgstr ""
"Wollen Sie den Antrag wirklich ändern? Alle %s Unterstützer/innen "
"werden dann automatisch entfernt. Versuchen Sie diese erneut zu gewinnen."
-#: application/views.py:237
+#: application/views.py:238
#, python-format
msgid "You can not delete application %s."
msgstr "Sie können Antrag %s nicht löschen."
-#: application/views.py:243
+#: application/views.py:244
#, python-format
msgid "Application %s was successfully deleted."
msgstr "Antrag %s wurde erfolgreich gelöscht."
-#: application/views.py:259
+#: application/views.py:260
msgid "Application number was successfully set."
msgstr "Antragsnummer wurde erfolgreich gesetzt."
-#: application/views.py:275
+#: application/views.py:276
msgid "Application was successfully permitted."
msgstr "Antrag wurde erfolgreich zugelassen."
-#: application/views.py:288
+#: application/views.py:289
msgid "Application was successfully rejected."
msgstr "Antrag wurde erfolgreich verworfen."
-#: application/views.py:302
+#: application/views.py:303
#, python-format
msgid "Application status was set to: %s."
msgstr "Antragsstatus wurde gesetzt auf: %s"
-#: application/views.py:316
+#: application/views.py:317
msgid "Application status was reset."
msgstr "Antragsstatus wurde zurückgesetzt."
-#: application/views.py:330
+#: application/views.py:331
msgid "You have support the application successfully."
msgstr "Sie haben den Antrag erfolgreich unterstützt."
-#: application/views.py:344
+#: application/views.py:345
msgid "You have unsupport the application successfully."
msgstr "Sie haben dem Antrag erfolgreich Ihre Unterstützung entzogen."
-#: application/views.py:365
+#: application/views.py:366
msgid "New vote was successfully created."
msgstr "Neue Abstimmung erfolgreich angelegt."
-#: application/views.py:381
+#: application/views.py:382
msgid "Poll was successfully deleted."
msgstr "Abstimmung wurde erfolgreich gelöscht."
-#: application/views.py:383
+#: application/views.py:384
#, python-format
msgid "the %s. poll"
msgstr "die %s. Abstimmung"
-#: application/views.py:413
+#: application/views.py:414
msgid "Votes are successfully saved."
msgstr "Stimmen erfolgreich gespeichert."
-#: application/views.py:468
+#: application/views.py:455
#, python-format
msgid "Version %s accepted."
msgstr "Version %s akzeptiert."
-#: application/views.py:470
+#: application/views.py:457
#, python-format
msgid "Do you really want to permit version %s?"
msgstr "Soll Version %s wirklich zugelassen werden?"
-#: application/views.py:480
+#: application/views.py:467
#, python-format
msgid "Version %s rejected."
msgstr "Version %s zurückgewiesen."
-#: application/views.py:482
+#: application/views.py:469
msgid "ERROR by rejecting the version."
msgstr "FEHLER beim Zurückweisen der Version."
-#: application/views.py:484
+#: application/views.py:471
#, python-format
msgid "Do you really want to reject version %s?"
msgstr "Soll Version %s wirklich zurückgewiesen werden?"
-#: application/views.py:493 participant/views.py:312
+#: application/views.py:480 participant/views.py:312
msgid ""
"The import function is available for the superuser (without user profile) "
"only."
msgstr ""
"Die Importfunktion ist nur für den 'superuser' (ohne Nutzerprofil) verfügbar."
-#: application/views.py:524 application/views.py:528 application/views.py:534
-#: application/views.py:537 participant/views.py:381
+#: application/views.py:511 application/views.py:515 application/views.py:521
+#: application/views.py:524 participant/views.py:381
#, python-format
msgid "Ignoring malformed line %d in import file."
msgstr "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert."
-#: application/views.py:583
+#: application/views.py:570
#, python-format
msgid "%d application was successfully imported."
msgid_plural "%d applications were successfully imported."
msgstr[0] "%d Antrag wurde erfolgreich importiert."
msgstr[1] "%d Anträge wurden erfolgreich importiert."
-#: application/views.py:586
+#: application/views.py:573
#, python-format
msgid "%d application was successfully modified."
msgid_plural "%d applications were successfully modified."
msgstr[0] "%d Antrag wurde erfolgreich geändert."
msgstr[1] "%d Anträge wurden erfolgreich geändert."
-#: application/views.py:589
+#: application/views.py:576
#, python-format
msgid "%d new user was added."
msgid_plural "%d new users were added."
msgstr[0] "%d neuer Nutzer wurde erstellt."
msgstr[1] "%d neue Nutzer wurden erstellt."
-#: application/views.py:593 participant/views.py:450
+#: application/views.py:580 participant/views.py:450
msgid "Import aborted because of severe errors in the input file."
msgstr "Import auf Grund von schweren Fehlern in der Quelldatei abgebrochen."
-#: application/views.py:595 participant/views.py:452
+#: application/views.py:582 participant/views.py:452
msgid "Import file has wrong character encoding, only UTF-8 is supported!"
msgstr ""
"Die Quelldatei benutzt eine ungültige Zeichenkodierung, es wird nur UTF-8 "
"wird unterstützt!"
-#: application/views.py:599
+#: application/views.py:586
msgid ""
"Attention: Existing applications will be modified if you import new "
"applications with the same number."
@@ -611,7 +615,7 @@ msgstr ""
"Achtung: Existierende Anträge werden geändert wenn Sie neue Anträge mit "
"identischer Nummer importieren."
-#: application/views.py:600
+#: application/views.py:587
msgid ""
"Attention: Importing an application without a number multiple times will "
"create duplicates."
@@ -619,26 +623,28 @@ msgstr ""
"Achtung: Bei mehrfachem Import eines Antrags ohne Nummer können Duplikate "
"entstehen."
-#: application/views.py:627 application/views.py:629 application/views.py:646
-#: application/views.py:648 application/views.py:746
+#: application/views.py:615 application/views.py:617 application/views.py:634
+#: application/views.py:636 application/views.py:735
#: application/templates/application/poll_view.html:12
#: application/templates/application/poll_view.html:20
-#: application/templates/application/view.html:215
-#: application/templates/projector/Application.html:54
+#: application/templates/application/view.html:13
+#: application/templates/application/view.html:221
+#: application/templates/projector/Application.html:53
msgid "Application No."
msgstr "Antrag Nr."
-#: application/views.py:640 application/views.py:738
+#: application/views.py:628 application/views.py:727
#: application/templates/application/edit.html:6
#: application/templates/application/view.html:7
-#: application/templates/application/view.html:217
+#: application/templates/application/view.html:15
+#: application/templates/application/view.html:223
msgid "Application"
msgstr "Antrag"
-#: application/views.py:680 application/templates/application/overview.html:19
+#: application/views.py:668 application/templates/application/overview.html:19
#: application/templates/application/overview.html:38
-#: application/templates/application/view.html:40
-#: application/templates/projector/Application.html:12
+#: application/templates/application/view.html:49
+#: application/templates/projector/Application.html:11
#: assignment/templates/assignment/overview.html:14
#: assignment/templates/assignment/overview.html:27
#: assignment/templates/assignment/view.html:12
@@ -647,51 +653,52 @@ msgstr "Antrag"
msgid "Status"
msgstr "Status"
-#: application/views.py:699 application/templates/application/view.html:50
-#: assignment/views.py:338
+#: application/views.py:688 application/templates/application/view.html:59
+#: assignment/views.py:337
msgid "Vote results"
msgstr "Abstimmungsergebnis"
-#: application/views.py:705
+#: application/views.py:694
#: application/templates/application/poll_view.html:20
#: application/templates/application/poll_view.html:23
-#: application/templates/application/view.html:71
-#: application/templates/projector/Application.html:31
+#: application/templates/application/view.html:80
+#: application/templates/application/view.html:86
+#: application/templates/projector/Application.html:30
msgid "Vote"
msgstr "Abstimmung"
-#: application/views.py:706 application/views.py:752
-#: application/templates/application/view.html:82
-#: application/templates/projector/Application.html:36
+#: application/views.py:695 application/views.py:741
+#: application/templates/application/view.html:93
+#: application/templates/projector/Application.html:35
#: assignment/templates/assignment/view.html:188
#: assignment/templates/projector/Assignment.html:74 utils/pdf.py:332
msgid "Abstention"
msgstr "Enthaltung"
-#: application/views.py:706 application/templates/application/view.html:83
-#: application/templates/projector/Application.html:37
+#: application/views.py:695 application/templates/application/view.html:94
+#: application/templates/projector/Application.html:36
#: assignment/templates/assignment/view.html:207
#: assignment/templates/projector/Assignment.html:93
msgid "Invalid"
msgstr "Ungültig"
-#: application/views.py:706
-#: application/templates/application/poll_view.html:43
-#: application/templates/application/view.html:85
-#: application/templates/projector/Application.html:39 assignment/views.py:385
+#: application/views.py:695
+#: application/templates/application/poll_view.html:44
+#: application/templates/application/view.html:96
+#: application/templates/projector/Application.html:38 assignment/views.py:384
#: assignment/templates/assignment/poll_view.html:38
#: assignment/templates/assignment/view.html:215
#: assignment/templates/assignment/view.html:218
#: assignment/templates/projector/Assignment.html:98
-#: assignment/templates/projector/Assignment.html:101 poll/models.py:44
+#: assignment/templates/projector/Assignment.html:101 poll/models.py:50
msgid "Votes cast"
msgstr "Abgegebene Stimmen"
-#: application/views.py:738 assignment/templates/assignment/poll_view.html:5
+#: application/views.py:727 assignment/templates/assignment/poll_view.html:5
msgid "Poll"
msgstr "Abstimmung"
-#: application/views.py:800
+#: application/views.py:789
msgid "Application settings successfully saved."
msgstr "Antrags-Einstellungen erfolgreich gespeichert."
@@ -711,8 +718,8 @@ msgid "Import applications"
msgstr "Anträge importieren"
#: application/templates/application/base_application.html:18
-msgid "Print all applications"
-msgstr "Alle Anträge drucken"
+msgid "All applications as PDF"
+msgstr "Alle Anträge als PDF"
#: application/templates/application/config.html:5
#: application/templates/application/config.html:8
@@ -791,7 +798,7 @@ msgid "Number of supporters"
msgstr "Anzahl der Unterstützer/innen"
#: application/templates/application/overview.html:40
-#: application/templates/application/view.html:108
+#: application/templates/application/view.html:119
msgid "Creation Time"
msgstr "Erstellungszeit"
@@ -808,24 +815,24 @@ msgid "Results of"
msgstr "Ergebnis der"
#: application/templates/application/poll_view.html:24
-#: assignment/templates/assignment/poll_view.html:13 poll/models.py:153
+#: assignment/templates/assignment/poll_view.html:13 poll/models.py:192
msgid "majority"
msgstr "Mehrheit"
#: application/templates/application/poll_view.html:24
-#: assignment/templates/assignment/poll_view.html:13 poll/models.py:155
+#: assignment/templates/assignment/poll_view.html:13 poll/models.py:194
msgid "undocumented"
msgstr "nicht erfasst"
-#: application/templates/application/poll_view.html:29
+#: application/templates/application/poll_view.html:30
msgid "Option"
msgstr "Wahlmöglichkeit"
-#: application/templates/application/poll_view.html:30
+#: application/templates/application/poll_view.html:31
msgid "Votes"
msgstr "Stimmen"
-#: application/templates/application/poll_view.html:39 assignment/views.py:377
+#: application/templates/application/poll_view.html:40 assignment/views.py:376
#: assignment/templates/assignment/poll_view.html:34
#: assignment/templates/assignment/view.html:204
#: assignment/templates/projector/Assignment.html:90
@@ -833,157 +840,152 @@ msgid "Invalid votes"
msgstr "Ungültige Stimmen"
#: application/templates/application/view.html:17
+msgid "Edit Application"
+msgstr "Antrag bearbeiten"
+
+#: application/templates/application/view.html:20
msgid "Delete Application"
msgstr "Antrag löschen"
-#: application/templates/application/view.html:19
-msgid "Print Application"
-msgstr "Antrag drucken"
+#: application/templates/application/view.html:22
+msgid "Application as PDF"
+msgstr "Antrag als PDF"
-#: application/templates/application/view.html:24
+#: application/templates/application/view.html:33
msgid "You!"
msgstr "Sie!"
-#: application/templates/application/view.html:56
-#: application/templates/application/view.html:92
+#: application/templates/application/view.html:65
+#: application/templates/application/view.html:103
msgid "New vote"
msgstr "Neue Abstimmung"
-#: application/templates/application/view.html:74
+#: application/templates/application/view.html:83
msgid "Delete Vote"
msgstr "Abstimmung löschen"
-#: application/templates/application/view.html:76
-msgid "project"
-msgstr "projizieren"
-
-#: application/templates/application/view.html:99
+#: application/templates/application/view.html:110
msgid "Enter vote results!"
msgstr "Abstimmungsergebnisse eingeben!"
-#: application/templates/application/view.html:114
-#: assignment/templates/assignment/view.html:39
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: application/templates/application/view.html:120
+#: application/templates/application/view.html:126
msgid "Withdraw"
msgstr "Zurückziehen"
-#: application/templates/application/view.html:128
+#: application/templates/application/view.html:134
msgid "Unsupport"
msgstr "Nicht unterstützen"
-#: application/templates/application/view.html:134
+#: application/templates/application/view.html:140
msgid "Support"
msgstr "Unterstützen"
-#: application/templates/application/view.html:140
+#: application/templates/application/view.html:146
msgid "minimum required supporters"
msgstr "minimal erforderliche Unterstützer/innen"
-#: application/templates/application/view.html:147
+#: application/templates/application/view.html:153
msgid "Manage application"
msgstr "Antrag verwalten"
-#: application/templates/application/view.html:150
+#: application/templates/application/view.html:156
msgid "Formal validation"
msgstr "Formale Gültigkeitsprüfung"
-#: application/templates/application/view.html:152
+#: application/templates/application/view.html:158
msgid "Publish"
msgstr "Veröffentlen"
-#: application/templates/application/view.html:155
+#: application/templates/application/view.html:161
msgid "Permit"
msgstr "Zulassen"
-#: application/templates/application/view.html:158
+#: application/templates/application/view.html:164
msgid "Not permit (reject)"
msgstr "Nicht zulassen (verwerfen)"
-#: application/templates/application/view.html:161
+#: application/templates/application/view.html:167
msgid "Set Number"
msgstr "Setze Nummer"
-#: application/templates/application/view.html:168
+#: application/templates/application/view.html:174
msgid "Beam Application"
msgstr "Antrag projizieren"
-#: application/templates/application/view.html:172
+#: application/templates/application/view.html:178
msgid "Result after vote"
msgstr "Ergebnis nach der Abstimmung"
-#: application/templates/application/view.html:186
+#: application/templates/application/view.html:192
msgid "Result after debate"
msgstr "Ergebnis nach der Debatte"
-#: application/templates/application/view.html:197
+#: application/templates/application/view.html:203
msgid "Withdrawed by Submitter"
msgstr "Zurückgezogen durch Antragsteller/in"
-#: application/templates/application/view.html:203
+#: application/templates/application/view.html:209
msgid "For Administration only:"
msgstr "Nur zur Administration:"
-#: application/templates/application/view.html:205
+#: application/templates/application/view.html:211
msgid "Reset"
msgstr "Zurücksetzen"
-#: application/templates/application/view.html:220
-#: application/templates/application/view.html:248 config/models.py:120
+#: application/templates/application/view.html:226
+#: application/templates/application/view.html:254 config/models.py:126
#: config/templates/config/version.html:5
#: config/templates/config/version.html:8
msgid "Version"
msgstr "Version"
-#: application/templates/application/view.html:223
+#: application/templates/application/view.html:229
msgid "Show newest Version"
msgstr "Neuste Version anzeigen"
-#: application/templates/application/view.html:225
+#: application/templates/application/view.html:231
msgid "Show permitted Version"
msgstr "Zugelassene Version anzeigen"
-#: application/templates/application/view.html:243
+#: application/templates/application/view.html:249
msgid "Version History"
msgstr "Versionshistorie"
-#: application/templates/application/view.html:249
+#: application/templates/application/view.html:255
msgid "Time"
msgstr "Zeit"
-#: application/templates/application/view.html:260
+#: application/templates/application/view.html:266
msgid "Version accepted"
msgstr "Version akzeptiert"
-#: application/templates/application/view.html:263
+#: application/templates/application/view.html:269
msgid "Accept Version"
msgstr "Zugelassene Version"
-#: application/templates/application/view.html:266
+#: application/templates/application/view.html:272
msgid "Reject Version"
msgstr "Version zurückweisen"
-#: application/templates/application/view.html:270
+#: application/templates/application/view.html:276
msgid "Version rejected"
msgstr "Version zurückgewiesen"
-#: application/templates/application/view.html:280
-#: application/templates/application/view.html:287
-#: application/templates/application/view.html:294
+#: application/templates/application/view.html:286
+#: application/templates/application/view.html:293
+#: application/templates/application/view.html:300
msgid "unchanged"
msgstr "unverändert"
-#: application/templates/application/view.html:303
+#: application/templates/application/view.html:309
msgid "Log"
msgstr "Log"
-#: application/templates/projector/Application.html:27
+#: application/templates/projector/Application.html:26
msgid "Poll result"
msgstr "Abstimmungsergebnis"
-#: application/templates/projector/Application.html:45
+#: application/templates/projector/Application.html:44
msgid "No poll results available."
msgstr "Keine Abstimmungen vorhanden."
@@ -1021,11 +1023,11 @@ msgstr "Abgeschlossen"
msgid "Name"
msgstr "Name"
-#: assignment/models.py:31 poll/models.py:85
+#: assignment/models.py:31 poll/models.py:91
msgid "Description"
msgstr "Beschreibung"
-#: assignment/models.py:32 assignment/views.py:321
+#: assignment/models.py:32 assignment/views.py:320
#: assignment/templates/assignment/view.html:18
#: assignment/templates/projector/Assignment.html:21
msgid "Number of available posts"
@@ -1071,7 +1073,7 @@ msgstr "Darf selbst für Wahlen kandidieren"
msgid "Can manage assignment"
msgstr "Darf Wahlen verwalten"
-#: assignment/models.py:165 assignment/views.py:288 assignment/views.py:470
+#: assignment/models.py:165 assignment/views.py:287 assignment/views.py:469
#: assignment/templates/assignment/base_assignment.html:14
#: assignment/templates/assignment/overview.html:6
#: assignment/templates/assignment/overview.html:9
@@ -1083,84 +1085,84 @@ msgstr "Wahlen"
msgid "Candidate %s was nominated successfully."
msgstr "Kandidat/in %s wurde erfolgreich vorgeschlagen."
-#: assignment/views.py:121
+#: assignment/views.py:120
msgid "New election was successfully created."
msgstr "Neue Wahl wurde erfolgreich angelegt."
-#: assignment/views.py:123
+#: assignment/views.py:122
msgid "Election was successfully modified."
msgstr "Wahl wurde erfolgreich geändert."
-#: assignment/views.py:143
+#: assignment/views.py:142
#, python-format
msgid "Election %s was successfully deleted."
msgstr "Wahl %s wurde erfolgreich gelöscht."
-#: assignment/views.py:156
+#: assignment/views.py:155
#, python-format
msgid "Election status was set to: %s."
msgstr "Wahlstatus wurde gesetzt auf: %s."
-#: assignment/views.py:167
+#: assignment/views.py:166
msgid "You have set your candidature successfully."
msgstr "Sie haben Ihre Kandidatur erfolgreich gesetzt."
-#: assignment/views.py:172
+#: assignment/views.py:171
msgid "You can't candidate. Your user account is only for administration."
msgstr ""
"Sie können nicht kandidieren. Ihr Nutzerkonto ist nur zur Administration."
-#: assignment/views.py:180
+#: assignment/views.py:179
msgid "You have withdrawn your candidature successfully."
msgstr "Sie haben Ihre Kandidatur erfolgreich zurückgezogen."
-#: assignment/views.py:191
+#: assignment/views.py:190
#, python-format
msgid "Candidate %s was withdrawn successfully."
msgstr "Die Kandidatur von %s wurde erfolgreich zurückgezogen."
-#: assignment/views.py:194
+#: assignment/views.py:193
#, python-format
msgid "Do you really want to withdraw %s from the election?"
msgstr "Soll %s wirklich von der Wahl zurückgezogen werden?"
-#: assignment/views.py:209
+#: assignment/views.py:208
msgid "New ballot was successfully created."
msgstr "Neuer Wahlgang erfolgreich angelegt."
-#: assignment/views.py:235
+#: assignment/views.py:234
msgid "Poll successfully set to published."
msgstr "Abstimmung wurde erfolgreich veröffentlicht."
-#: assignment/views.py:237
+#: assignment/views.py:236
msgid "Poll successfully set to unpublished."
msgstr "Abstimmung wurde erfolgreich unveröffentlicht."
-#: assignment/views.py:239
+#: assignment/views.py:238
#, python-format
msgid "Poll ID %d does not exist."
msgstr "Abstimmungs-ID %d existiert nicht."
-#: assignment/views.py:253
+#: assignment/views.py:252
msgid "not elected"
msgstr "nicht gewählt"
-#: assignment/views.py:256 assignment/views.py:406
+#: assignment/views.py:255 assignment/views.py:405
msgid "elected"
msgstr "gewählt"
-#: assignment/views.py:312 assignment/templates/assignment/view.html:6
+#: assignment/views.py:311 assignment/templates/assignment/view.html:6
msgid "Assignment"
msgstr "Wahl"
-#: assignment/views.py:317 assignment/templates/assignment/edit.html:5
+#: assignment/views.py:316 assignment/templates/assignment/edit.html:5
#: assignment/templates/assignment/overview.html:25
#: assignment/templates/projector/Assignment.html:13 utils/pdf.py:304
#: utils/pdf.py:313
msgid "Election"
msgstr "Wahl"
-#: assignment/views.py:326 assignment/views.py:346
+#: assignment/views.py:325 assignment/views.py:345
#: assignment/templates/assignment/overview.html:26
#: assignment/templates/assignment/view.html:61
#: assignment/templates/assignment/view.html:132
@@ -1169,23 +1171,23 @@ msgstr "Wahl"
msgid "Candidates"
msgstr "Kandidaten/innen"
-#: assignment/views.py:341
+#: assignment/views.py:340
msgid "ballots"
msgstr "Wahlgänge"
-#: assignment/views.py:364
+#: assignment/views.py:363
msgid "Y"
msgstr "J"
-#: assignment/views.py:365
+#: assignment/views.py:364
msgid "N"
msgstr "N"
-#: assignment/views.py:366
+#: assignment/views.py:365
msgid "A"
msgstr "E"
-#: assignment/views.py:463
+#: assignment/views.py:462
msgid "Election settings successfully saved."
msgstr "Wahl-Einstellungen wurden erfolgreich gespeichert."
@@ -1266,6 +1268,10 @@ msgstr "Status ändern"
msgid "Finish"
msgstr "Abschließen"
+#: assignment/templates/assignment/view.html:39
+msgid "Edit"
+msgstr "Bearbeiten"
+
#: assignment/templates/assignment/view.html:47
msgid "Beam election"
msgstr "Wahl projizieren"
@@ -1347,15 +1353,19 @@ msgstr "Veranstalter"
msgid "Allow access for anonymous guest users"
msgstr "Erlaube Zugriff für anonyme Gast-Nutzer"
+#: config/forms.py:28 participant/forms.py:95
+msgid "Welcome text"
+msgstr "Willkommens text"
+
#: config/models.py:33
msgid "Can manage configuration"
msgstr "Darf die Konfiguration verwalten"
-#: config/models.py:103
+#: config/models.py:104
msgid "General"
msgstr "Allgemein"
-#: config/views.py:65
+#: config/views.py:74
msgid ""
"Anonymous access enabled. Please modify the \"Anonymous\" group to fit your "
"required permissions."
@@ -1363,11 +1373,11 @@ msgstr ""
"Anonymer Zugriff aktiviert. Bitte setzen Sie die Rechte der Benutzerrolle "
"\"Anonymous\" passend zum gewünschten Zugriffslevel."
-#: config/views.py:68
+#: config/views.py:78
msgid "General settings successfully saved."
msgstr "Allgemeine Einstellungen erfolgreich gespeichert."
-#: config/views.py:85 config/templates/config/base_config.html:7
+#: config/views.py:95 config/templates/config/base_config.html:7
msgid "Configuration"
msgstr "Konfiguration"
@@ -1380,9 +1390,13 @@ msgstr "Allgemeine Einstellungen"
msgid "Event"
msgstr "Veranstaltung"
-#: config/templates/config/general.html:26 templates/base.html:28
-msgid "Welcome"
-msgstr "Willkommen"
+#: config/templates/config/general.html:26
+msgid "Frontpage"
+msgstr ""
+
+#: config/templates/config/general.html:41
+msgid "System"
+msgstr "System"
#: config/templates/config/version.html:10
msgid "OpenSlides Version"
@@ -1416,11 +1430,6 @@ msgstr "Bei existierenden Anträgen"
msgid "System URL"
msgstr "System URL"
-#: participant/forms.py:95
-#, fuzzy
-msgid "Welcome text"
-msgstr "Willkommen"
-
#: participant/models.py:22 participant/templates/participant/overview.html:23
msgid "Male"
msgstr "Männlich"
@@ -1600,9 +1609,8 @@ msgid "Participants"
msgstr "Teilnehmer/innen"
#: participant/views.py:502
-#, fuzzy
msgid "Participants settings successfully saved."
-msgstr "Wahl-Einstellungen wurden erfolgreich gespeichert."
+msgstr "Teilnehmer Einstellungen wurden erfolgreich gespeichert."
#: participant/templates/participant/base_participant.html:15
msgid "All participants"
@@ -1638,9 +1646,8 @@ msgstr "Erst-Passwörter drucken"
#: participant/templates/participant/config.html:5
#: participant/templates/participant/config.html:8
-#, fuzzy
msgid "Participant settings"
-msgstr "Teilnehmer/innen"
+msgstr "Teilnehmer/innen Einstellungen"
#: participant/templates/participant/edit.html:5
msgid "Participant"
@@ -1699,11 +1706,12 @@ msgstr ""
#: participant/templates/participant/login.html:8
#: participant/templates/participant/login.html:16
-#: participant/templates/participant/login.html:45 templates/base.html:30
+#: participant/templates/participant/login.html:45 templates/base.html:31
msgid "Login"
msgstr "Anmelden"
#: participant/templates/participant/login.html:21 templates/base.html:56
+#: templates/base.html.py:63
msgid "Close this notification"
msgstr "Meldung ausblenden"
@@ -1726,7 +1734,7 @@ msgstr "Nicht angegeben"
msgid "Type"
msgstr "Typ"
-#: participant/templates/participant/overview.html:51 projector/models.py:35
+#: participant/templates/participant/overview.html:51 projector/models.py:38
msgid "Active"
msgstr "Aktiv"
@@ -1763,33 +1771,29 @@ msgstr "Status ändern (aktiv/inaktiv)"
msgid "Your Settings"
msgstr "Ihre Einstellungen"
-#: poll/models.py:57
+#: poll/models.py:63
msgid "Votes invalid"
msgstr "Ungültige Stimmen"
-#: poll/models.py:88
+#: poll/models.py:94
msgid "votes"
msgstr "Stimmen"
-#: projector/models.py:29
+#: projector/models.py:32
msgid "Can manage the projector"
msgstr "Darf den Beamer steuern"
-#: projector/models.py:30
+#: projector/models.py:33
msgid "Can see projector"
msgstr "Darf den Beamer sehen"
-#: projector/models.py:42
+#: projector/models.py:48
msgid "Projector Slide"
msgstr "Beamer-Folie"
-#: projector/projector.py:79
-msgid "Countdown"
-msgstr "Countdown"
-
-#: projector/views.py:203 projector/templates/projector/base_projector.html:7
+#: projector/views.py:212 projector/templates/projector/base_projector.html:7
#: projector/templates/projector/base_projector.html:12
-#: projector/templates/projector/control.html:36
+#: projector/templates/projector/control.html:41
msgid "Projector"
msgstr "Beamer"
@@ -1807,63 +1811,55 @@ msgstr "Neue Folie"
msgid "Projector view"
msgstr "Beamer-Ansicht"
-#: projector/templates/projector/control.html:39
+#: projector/templates/projector/control.html:44
msgid "Adjust projector view"
msgstr "Beamer-Ansicht anpassen"
-#: projector/templates/projector/control.html:40
+#: projector/templates/projector/control.html:45
msgid "Zoom in"
msgstr "Vergrößern"
-#: projector/templates/projector/control.html:43
+#: projector/templates/projector/control.html:48
msgid "Zoom out"
msgstr "Verkleinern"
-#: projector/templates/projector/control.html:46
+#: projector/templates/projector/control.html:51
msgid "Scroll text up"
msgstr "Text nach oben scrollen"
-#: projector/templates/projector/control.html:49
+#: projector/templates/projector/control.html:54
msgid "Scroll text down"
msgstr "Text nach unten scrollen"
-#: projector/templates/projector/control.html:52
+#: projector/templates/projector/control.html:57
msgid "Reset projector view"
msgstr "Beamer-Ansicht zurücksetzen"
-#: projector/templates/projector/control.html:83
+#: projector/templates/projector/control.html:88
msgid "Projector Live View"
msgstr "Beamer-Live-Ansicht"
-#: projector/templates/projector/control.html:86
+#: projector/templates/projector/control.html:91
msgid "Open Projector view"
msgstr "Beamer-Ansicht öffnen"
-#: projector/templates/projector/control.html:98
-msgid "Static Slides"
-msgstr "Statische Folien"
+#: projector/templates/projector/control.html:102
+msgid "Overlays"
+msgstr ""
-#: projector/templates/projector/control.html:110
-msgid "Select item overview"
-msgstr "Wähle Eintragsübersicht"
-
-#: projector/templates/projector/control.html:131
-msgid "Messages"
-msgstr "Nachrichten"
-
-#: projector/templates/projector/control.html:142
+#: projector/templates/projector/control.html:114
msgid "sec"
msgstr "s"
-#: projector/templates/projector/control.html:143
+#: projector/templates/projector/control.html:115
msgid "Reset countdown"
msgstr "Countdown zurücksetzen"
-#: projector/templates/projector/control.html:146
+#: projector/templates/projector/control.html:118
msgid "Start countdown"
msgstr "Countdown starten"
-#: projector/templates/projector/control.html:149
+#: projector/templates/projector/control.html:121
msgid "Stop countdown"
msgstr "Countdown stoppen"
@@ -1875,18 +1871,26 @@ msgstr "Seite nicht gefunden."
msgid "Server Error"
msgstr "Serverfehler"
-#: templates/base.html:20
+#: templates/base.html:21 templates/front_page.html:5
msgid "Home"
msgstr "Startseite"
-#: templates/base.html:26
+#: templates/base.html:27
msgid "Logout"
msgstr "Abmelden"
-#: templates/base.html:27
+#: templates/base.html:28
msgid "User Settings"
msgstr "Benutzereinstellungen"
+#: templates/base.html:29
+msgid "Welcome"
+msgstr "Willkommen"
+
+#: templates/front_page.html:11
+msgid "You have access to the following pages:"
+msgstr ""
+
#: utils/pdf.py:189
msgid "%Y-%m-%d %H:%Mh"
msgstr "%d.%m.%Y %H:%Mh"
@@ -1943,10 +1947,6 @@ msgstr "verfügbare Posten"
msgid "Sorry, you have no rights to see this page."
msgstr "Bedaure, Sie haben keine Berechtigung diese Seite zu sehen."
-#: utils/views.py:219
+#: utils/views.py:223
msgid "undefined-filename"
msgstr "undefinierter-dateiname"
-
-#, fuzzy
-#~ msgid "Access for guest users"
-#~ msgstr "Zugriff für Gast-Nutzer aktivieren"
diff --git a/openslides/poll/forms.py b/openslides/poll/forms.py
index c0086811d..6fc5b20cf 100644
--- a/openslides/poll/forms.py
+++ b/openslides/poll/forms.py
@@ -2,6 +2,7 @@ from django import forms
from django.utils.translation import ugettext as _
from utils.forms import CssClassMixin
+from models import Vote
class OptionForm(forms.Form, CssClassMixin):
@@ -11,8 +12,16 @@ class OptionForm(forms.Form, CssClassMixin):
kwargs['prefix'] = "option-%s" % formid
super(OptionForm, self).__init__(*args, **kwargs)
- for key, value in extra:
+ for vote in extra:
+ if type(vote) is Vote:
+ key = vote.value
+ value = vote.get_value()
+ weight = vote.get_weight()
+ else:
+ key = vote
+ value = _(vote)
+ weight = None
self.fields[key] = forms.IntegerField(
- label=_(key),
- initial=value,
+ label=value,
+ initial=weight,
)
diff --git a/openslides/poll/models.py b/openslides/poll/models.py
index 7d86424d3..004d9ab79 100644
--- a/openslides/poll/models.py
+++ b/openslides/poll/models.py
@@ -36,9 +36,15 @@ class Vote(models.Model):
weight = models.IntegerField(default=1)
value = models.CharField(max_length=255, null=True)
- def __unicode__(self):
+ def get_weight(self):
return print_value(self.weight)
+ def get_value(self):
+ return _(self.value)
+
+ def __unicode__(self):
+ return self.get_weight()
+
class CountVotesCast(models.Model):
votescast = models.IntegerField(null=True, blank=True, verbose_name=_("Votes cast"))
@@ -85,29 +91,50 @@ class BasePoll(models.Model, SlideMixin):
description = models.TextField(null=True, blank=True, verbose_name=_("Description")) #TODO: Use this field or delete it.
option_class = TextOption
- vote_values = [_('votes')]
+ vote_values = [_('votes', fixstr=True)]
def has_votes(self):
+ """
+ Return True, the there are votes in the poll.
+ """
if self.get_options().filter(vote__isnull=False):
return True
return False
def set_options(self, options_data=[]):
+ """
+ Add new Option pbjects to the poll.
+
+ option_data: A List of arguments for the Option.
+ """
for option_data in options_data:
- option = self.option_class(**option_data)
+ option = self.get_option_class()(**option_data)
option.poll = self
option.save()
def get_options(self):
+ """
+ Return the option objects for the poll.
+ """
return self.get_option_class().objects.filter(poll=self)
def get_option_class(self):
+ """
+ Return the option class for the poll. Default is self.option_class.
+ """
return self.option_class
def get_vote_values(self):
+ """
+ Return the possible values for the poll as list.
+ """
return self.vote_values
def set_form_values(self, option, data):
+ # TODO: recall this function. It has nothing to do with a form
+ """
+ Create or update the vote objects for the poll.
+ """
for value in self.get_vote_values():
try:
vote = Vote.objects.filter(option=option).get(value=value)
@@ -117,21 +144,30 @@ class BasePoll(models.Model, SlideMixin):
vote.save()
def get_form_values(self, option_id):
+ # TODO: recall this function. It has nothing to do with a form
+ """
+ Return a the values and the weight of the values as a list with two elements.
+ """
values = []
for value in self.get_vote_values():
try:
vote = Vote.objects.filter(option=option_id).get(value=value)
- weight = vote.weight
+ values.append(vote)
except Vote.DoesNotExist:
- weight = None
- values.append((value, weight))
+ values.append(value)
return values
def get_vote_form(self, **kwargs):
+ """
+ Return the form for one option of the poll.
+ """
from poll.forms import OptionForm
return OptionForm(extra=self.get_form_values(kwargs['formid']), **kwargs)
def get_vote_forms(self, **kwargs):
+ """
+ Return a list of forms for the poll
+ """
forms = []
for option in self.get_options():
form = self.get_vote_form(formid=option.id, **kwargs)
@@ -140,6 +176,9 @@ class BasePoll(models.Model, SlideMixin):
return forms
def slide(self):
+ """
+ show a Slide for the Poll.
+ """
data = super(BasePoll, self).slide()
# data['template'] = 'projector/TODO.html'
return data