From a383a4305b9c301033e9210c4c3f11341314656b Mon Sep 17 00:00:00 2001 From: Emanuel Schuetze Date: Fri, 14 Jun 2013 20:24:48 +0200 Subject: [PATCH] Fixed some (pdf) template issues and updated (DE) translation. - Fixed #737 (Motion edit link is missing for normal delegate users) - Fixed motion pdf filename errors (now use motion-.pdf or if no identifier: motion-.pdf with using djangos slugify for special chars in title) - Fixed motion pdf build error if there is an unauthorized version - Enlarge max_length of event name field to 50 chars. - Align participant import instruction with motion import page. - Added title field to particpants-demo_en.csv. - participant overview: Show comma after last_name only if first_name and last_name are given. - Changed all page titles to "<specific action page> - <event-name>" (moved event-name to the end of the string) - Updated EN tranlation string. - Updated DE translations. --- extras/csv-examples/participants-demo_en.csv | 24 +- openslides/agenda/templates/agenda/edit.html | 2 +- .../agenda/templates/agenda/overview.html | 2 +- openslides/agenda/templates/agenda/view.html | 2 +- .../templates/projector/AgendaSummary.html | 2 +- .../templates/projector/AgendaText.html | 2 +- .../projector/agenda_list_of_speaker.html | 2 +- .../assignment/templates/assignment/edit.html | 2 +- .../templates/assignment/overview.html | 2 +- .../templates/assignment/poll_view.html | 2 +- .../assignment/templates/assignment/view.html | 2 +- .../templates/projector/Assignment.html | 2 +- .../config/templates/config/config_form.html | 2 + openslides/core/signals.py | 2 +- openslides/core/templates/core/version.html | 2 +- openslides/locale/de/LC_MESSAGES/django.mo | Bin 40162 -> 41412 bytes openslides/locale/de/LC_MESSAGES/django.po | 605 ++++++++++-------- openslides/locale/de/LC_MESSAGES/djangojs.mo | Bin 2578 -> 2578 bytes .../templates/mediafile/mediafile_form.html | 2 +- .../templates/mediafile/mediafile_list.html | 2 +- openslides/motion/pdf.py | 5 +- openslides/motion/signals.py | 2 +- .../templates/motion/category_form.html | 2 +- .../templates/motion/category_list.html | 2 +- .../templates/motion/motion_detail.html | 4 +- .../motion/templates/motion/motion_diff.html | 2 +- .../motion/templates/motion/motion_form.html | 2 +- .../motion/motion_form_csv_import.html | 2 +- .../motion/templates/motion/motion_list.html | 2 +- .../motion/templates/motion/poll_form.html | 2 +- openslides/motion/views.py | 8 +- .../templates/participant/edit.html | 2 +- .../templates/participant/group_detail.html | 2 +- .../templates/participant/group_edit.html | 2 +- .../templates/participant/group_overview.html | 2 +- .../templates/participant/import.html | 12 +- .../templates/participant/login.html | 2 + .../templates/participant/overview.html | 4 +- .../participant/password_change.html | 4 +- .../templates/participant/settings.html | 2 +- .../templates/participant/user_detail.html | 2 +- .../templates/projector/GroupSlide.html | 2 +- .../templates/projector/UserSlide.html | 2 +- .../projector/templates/base-projector.html | 2 +- .../templates/projector/ProjectorSlide.html | 2 +- .../templates/projector/dashboard.html | 2 + .../templates/projector/select_widgets.html | 2 +- 47 files changed, 401 insertions(+), 339 deletions(-) diff --git a/extras/csv-examples/participants-demo_en.csv b/extras/csv-examples/participants-demo_en.csv index 971eeaebd..5211ca108 100644 --- a/extras/csv-examples/participants-demo_en.csv +++ b/extras/csv-examples/participants-demo_en.csv @@ -1,15 +1,15 @@ -"First Name";"Last Name";"Gender";"Email";"Group id";"Structure Level";"Committee";"About me";"Comment";"Is active" -"Angramain";"Aranea";"female";;;;;;;1 -"Bastian";"Bux";"male";;;;"2. Vorsitzender";;;1 -"Emma";"Dampf";"female";;3;"Ortsverband Berlin-Mitte";"AG Frauen";;;0 -"David";"Delegierter";"male";"david@example.com";3;"Ortsverband Berlin-Mitte";"Haushaltsausschuss";"Zu meiner Person: +"Title";"First Name";"Last Name";"Gender";"Email";"Group id";"Structure Level";"Committee";"About me";"Comment";"Is active" +;"Angramain";"Aranea";"female";;;;;;;1 +;"Bastian";"Bux";"male";;;;"2. Vorsitzender";;;1 +;"Emma";"Dampf";"female";;3;"Ortsverband Berlin-Mitte";"AG Frauen";;;0 +PhD;"David";"Delegierter";"male";"david@example.com";3;"Ortsverband Berlin-Mitte";"Haushaltsausschuss";"Zu meiner Person: A B C";"Demo-Account";1 -"Marta";"Grankvist";"female";;3,4;"Ortsverband Köln";"1. Vorsitzende";;;0 -"Atréju";"Grün";"male";;4;"Ortsverband Freiburg";"Versammlungsleitung";;;1 -"Li Si";"Mandala";"female";;4;;;;;1 -"Malin";"Melchersson";"male";;;"Gastredner e.V.";;;;1 -"Molly";"Tender";"female";;3;"Ortsverband Berlin-Mitte";;;;1 -"Karl";"Tur Tur";"male";;;;;;;1 -"Volker";"Versammlungsleitung";"male";"volker@example.com";3,4;"Ortsverband Hamburg";"Versammlungsleitung";;"Demo-Account";1 +;"Marta";"Grankvist";"female";;3,4;"Ortsverband Köln";"1. Vorsitzende";;;0 +"Prof. Dr.";"Atréju";"Grün";"male";;4;"Ortsverband Freiburg";"Versammlungsleitung";;;1 +;"Li Si";"Mandala";"female";;4;;;;;1 +;"Malin";"Melchersson";"male";;;"Gastredner e.V.";;;;1 +;"Molly";"Tender";"female";;3;"Ortsverband Berlin-Mitte";;;;1 +;"Karl";"Tur Tur";"male";;;;;;;1 +;"Volker";"Versammlungsleitung";"male";"volker@example.com";3,4;"Ortsverband Hamburg";"Versammlungsleitung";;"Demo-Account";1 diff --git a/openslides/agenda/templates/agenda/edit.html b/openslides/agenda/templates/agenda/edit.html index 4c5d86455..9d5a8065b 100644 --- a/openslides/agenda/templates/agenda/edit.html +++ b/openslides/agenda/templates/agenda/edit.html @@ -3,12 +3,12 @@ {% load i18n %} {% block title %} - {{ block.super }} – {% if item %} {{ item.title }} – {% trans "Edit item" %} {% else %} {% trans "New item" %} {% endif %} + – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/agenda/templates/agenda/overview.html b/openslides/agenda/templates/agenda/overview.html index f0bddf4be..3e8ebe632 100644 --- a/openslides/agenda/templates/agenda/overview.html +++ b/openslides/agenda/templates/agenda/overview.html @@ -4,7 +4,7 @@ {% load mptt_tags %} {% load staticfiles %} -{% block title %}{{ block.super }} – {% trans "Agenda" %}{% endblock %} +{% block title %}{% trans "Agenda" %} – {{ block.super }}{% endblock %} {% block header %} <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/agenda.css' %}" /> diff --git a/openslides/agenda/templates/agenda/view.html b/openslides/agenda/templates/agenda/view.html index d897e96e2..50848af14 100644 --- a/openslides/agenda/templates/agenda/view.html +++ b/openslides/agenda/templates/agenda/view.html @@ -4,7 +4,7 @@ {% load tags %} {% load staticfiles %} -{% block title %}{{ block.super }} – {{ item }}{% endblock %} +{% block title %}{{ item }} – {{ block.super }}{% endblock %} {% block header %} <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/agenda.css' %}" /> diff --git a/openslides/agenda/templates/projector/AgendaSummary.html b/openslides/agenda/templates/projector/AgendaSummary.html index a05be9af8..26eece6eb 100644 --- a/openslides/agenda/templates/projector/AgendaSummary.html +++ b/openslides/agenda/templates/projector/AgendaSummary.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} - +{% block title %} {% if title %} {{ title }} {% else %} {% trans "Agenda" %} {% endif %} {% endblock %} diff --git a/openslides/agenda/templates/projector/AgendaText.html b/openslides/agenda/templates/projector/AgendaText.html index 459b1f023..e7e01e01f 100644 --- a/openslides/agenda/templates/projector/AgendaText.html +++ b/openslides/agenda/templates/projector/AgendaText.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} - {{ item }}{% endblock %} +{% block title %}{{ item }}{% endblock %} {% block content %} {% if item.text %} diff --git a/openslides/agenda/templates/projector/agenda_list_of_speaker.html b/openslides/agenda/templates/projector/agenda_list_of_speaker.html index e4eb018e7..687a45fd4 100644 --- a/openslides/agenda/templates/projector/agenda_list_of_speaker.html +++ b/openslides/agenda/templates/projector/agenda_list_of_speaker.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {{ item }}{% endblock %} +{% block title %}{{ item }}{% endblock %} {% block header %} <style type="text/css"> diff --git a/openslides/assignment/templates/assignment/edit.html b/openslides/assignment/templates/assignment/edit.html index e5f56e87f..2145bf79d 100644 --- a/openslides/assignment/templates/assignment/edit.html +++ b/openslides/assignment/templates/assignment/edit.html @@ -3,12 +3,12 @@ {% load i18n %} {% block title %} - {{ block.super }} – {% if assignment %} {% trans "Edit election" %} {% else %} {% trans "New election" %} {% endif %} + – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/assignment/templates/assignment/overview.html b/openslides/assignment/templates/assignment/overview.html index 60d033f8e..86a5bec59 100644 --- a/openslides/assignment/templates/assignment/overview.html +++ b/openslides/assignment/templates/assignment/overview.html @@ -3,7 +3,7 @@ {% load i18n %} {% load staticfiles %} -{% block title %}{{ block.super }} – {% trans "Elections" %}{% endblock %} +{% block title %}{% trans "Elections" %} – {{ block.super }}{% endblock %} {% block header %} <link href="{% static 'styles/dataTables/dataTables.bootstrap.css' %}" type="text/css" rel="stylesheet"> diff --git a/openslides/assignment/templates/assignment/poll_view.html b/openslides/assignment/templates/assignment/poll_view.html index 99077cbb5..44fd1a957 100644 --- a/openslides/assignment/templates/assignment/poll_view.html +++ b/openslides/assignment/templates/assignment/poll_view.html @@ -3,7 +3,7 @@ {% load i18n %} {% load humanize %} -{% block title %}{{ block.super }} – {% trans "Election" %} "{{ assignment }}" – {{ ballotnumber }}. {% trans "ballot" %}{% endblock %} +{% block title %}{% trans "Election" %} "{{ assignment }}", {{ ballotnumber }}. {% trans "ballot" %} – {{ block.super }}{% endblock %} {% block content %} <h1> diff --git a/openslides/assignment/templates/assignment/view.html b/openslides/assignment/templates/assignment/view.html index 26b917246..8cd2141e8 100644 --- a/openslides/assignment/templates/assignment/view.html +++ b/openslides/assignment/templates/assignment/view.html @@ -5,7 +5,7 @@ {% load tags %} {% load humanize %} -{% block title %}{{ block.super }} – {% trans "Election" %} "{{ assignment }}"{% endblock %} +{% block title %}{% trans "Election" %} "{{ assignment }}" – {{ block.super }}{% endblock %} {% block header %} <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/assignment.css' %}" /> diff --git a/openslides/assignment/templates/projector/Assignment.html b/openslides/assignment/templates/projector/Assignment.html index 0819069d9..abe8a8e96 100644 --- a/openslides/assignment/templates/projector/Assignment.html +++ b/openslides/assignment/templates/projector/Assignment.html @@ -3,7 +3,7 @@ {% load i18n %} {% load staticfiles %} -{% block title %}{{ block.super }} - {{ assignment }}{% endblock %} +{% block title %}{{ assignment }}{% endblock %} {% block header %} <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/assignment.css' %}" /> diff --git a/openslides/config/templates/config/config_form.html b/openslides/config/templates/config/config_form.html index 545653328..b3ff44442 100644 --- a/openslides/config/templates/config/config_form.html +++ b/openslides/config/templates/config/config_form.html @@ -3,6 +3,8 @@ {% load i18n %} {% load staticfiles %} +{% block title %}{% trans "Configuration" %} – {{ block.super }}{% endblock %} + {% block content %} <h1> {% trans 'Configuration' %} diff --git a/openslides/core/signals.py b/openslides/core/signals.py index 75b52a853..158671218 100644 --- a/openslides/core/signals.py +++ b/openslides/core/signals.py @@ -33,7 +33,7 @@ def setup_general_config_page(sender, **kwargs): form_field=forms.CharField( widget=forms.TextInput(), label=ugettext_lazy('Event name'), - max_length=30)) + max_length=50)) event_description = ConfigVariable( name='event_description', diff --git a/openslides/core/templates/core/version.html b/openslides/core/templates/core/version.html index 90d251749..b550f0776 100644 --- a/openslides/core/templates/core/version.html +++ b/openslides/core/templates/core/version.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {% trans 'Version' %}{% endblock %} +{% block title %}{% trans 'Version' %} – {{ block.super }}{% endblock %} {% block content %} <h1>{% trans 'Version' %}</h1> diff --git a/openslides/locale/de/LC_MESSAGES/django.mo b/openslides/locale/de/LC_MESSAGES/django.mo index fcee30b8a2f47d42286a68349524b386f033affe..496bc9411d82b056a6ed08c6a218f2a5b708d26f 100644 GIT binary patch delta 12827 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 C%-p2_ delta 11964 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 S_K6kG{XBP9t??{hUG_f<7UKW_ diff --git a/openslides/locale/de/LC_MESSAGES/django.po b/openslides/locale/de/LC_MESSAGES/django.po index 0ff4e39a5..de18dadde 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: OpenSlides\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-04 00:13+0200\n" +"POT-Creation-Date: 2013-06-14 23:02+0200\n" "PO-Revision-Date: 2013-06-03 15:22+0000\n" "Last-Translator: emanuelschuetze <emanuelschuetze@gmail.com>\n" "Language-Team: German (http://www.transifex.com/projects/p/openslides/" @@ -30,7 +30,7 @@ msgstr "Englisch" msgid "French" msgstr "Französisch" -#: account/views.py:70 +#: account/views.py:71 msgid "My items, motions and elections" msgstr "Meine Tagesordnungseinträge, Anträge und Wahlen" @@ -65,7 +65,7 @@ msgstr "Elternelement" msgid "Invalid format. Hours from 0 to 99 and minutes from 00 to 59" msgstr "Ungültiges Format. Stunden von 0 bis 99 und Minuten von 00 bis 59" -#: agenda/forms.py:36 agenda/models.py:73 +#: agenda/forms.py:36 agenda/models.py:74 msgid "Duration (hh:mm)" msgstr "Dauer (hh:mm)" @@ -78,72 +78,76 @@ msgstr "Neue/n Teilnehmer/in hinzufügen" msgid "%s is already on the list of speakers." msgstr "%s ist bereits auf der Rednerliste" -#: agenda/models.py:41 +#: agenda/models.py:42 msgid "Agenda item" msgstr "Tagesordnungseintrag" -#: agenda/models.py:42 +#: agenda/models.py:43 msgid "Organizational item" msgstr "Organisatorischer Eintrag" -#: agenda/models.py:44 core/signals.py:76 mediafile/models.py:32 -#: mediafile/templates/mediafile/mediafile_list.html:18 motion/forms.py:34 -#: motion/models.py:543 participant/models.py:39 participant/views.py:204 +#: agenda/models.py:45 core/signals.py:76 mediafile/models.py:32 +#: mediafile/templates/mediafile/mediafile_list.html:18 motion/forms.py:33 +#: motion/models.py:543 participant/models.py:40 participant/views.py:210 #: participant/templates/participant/overview.html:48 projector/models.py:27 msgid "Title" msgstr "Titel" -#: agenda/models.py:49 motion/forms.py:39 motion/models.py:546 +#: agenda/models.py:50 motion/forms.py:38 motion/models.py:546 #: projector/models.py:28 msgid "Text" msgstr "Text" -#: agenda/models.py:54 agenda/templates/agenda/overview.html:77 -#: agenda/templates/agenda/view.html:55 participant/models.py:51 +#: agenda/models.py:55 agenda/templates/agenda/overview.html:77 +#: agenda/templates/agenda/view.html:55 participant/models.py:52 #: participant/templates/participant/overview.html:54 #: participant/templates/participant/user_detail.html:66 msgid "Comment" msgstr "Kommentar" -#: agenda/models.py:59 +#: agenda/models.py:60 msgid "Closed" msgstr "Abgeschlossen" -#: agenda/models.py:65 mediafile/templates/mediafile/mediafile_list.html:19 +#: agenda/models.py:66 mediafile/templates/mediafile/mediafile_list.html:19 msgid "Type" msgstr "Typ" -#: agenda/models.py:84 projector/models.py:29 +#: agenda/models.py:85 projector/models.py:29 msgid "Weight" msgstr "Gewichtung" -#: agenda/models.py:97 +#: agenda/models.py:98 msgid "List of speakers is closed" msgstr "Rednerliste ist geschlossen" -#: agenda/models.py:104 +#: agenda/models.py:105 msgid "Can see agenda" msgstr "Darf die Tagesordnung sehen" -#: agenda/models.py:105 +#: agenda/models.py:106 msgid "Can manage agenda" msgstr "Darf die Tagesordung verwalten" -#: agenda/models.py:106 +#: agenda/models.py:107 msgid "Can see orga items and time scheduling of agenda" msgstr "Darf Organisationspunkte und Tagesordnung-Zeitplan sehen" -#: agenda/models.py:140 +#: agenda/models.py:141 #, python-format msgid "< Item for deleted slide (%s) >" msgstr "< Eintrag für gelöschte Folie (%s) >" -#: agenda/models.py:327 +#: agenda/models.py:329 #, python-format msgid "%(person)s is already on the list of speakers of item %(id)s." msgstr "%(person)s ist bereits auf der Rednerliste von Eintrag %(id)s." -#: agenda/models.py:367 +#: agenda/models.py:333 +msgid "An anonymous user can not be on the list of speakers." +msgstr "Ein anonymer Nutzer darf nicht auf einer Rednerliste sein." + +#: agenda/models.py:373 msgid "Can put oneself on the list of speakers" msgstr "Darf sich selbst auf die Rednerliste setzen" @@ -164,7 +168,7 @@ msgid "Number of last speakers to be shown on the projector" msgstr "Anzahl der dargestellten letzten Redner auf dem Projektor" #: agenda/signals.py:70 agenda/slides.py:23 agenda/slides.py:29 -#: agenda/views.py:242 agenda/views.py:243 agenda/views.py:536 +#: agenda/views.py:241 agenda/views.py:242 agenda/views.py:535 #: agenda/views.py:551 agenda/templates/agenda/overview.html:7 #: agenda/templates/agenda/overview.html:39 #: agenda/templates/agenda/overview.html:88 @@ -173,55 +177,55 @@ msgstr "Anzahl der dargestellten letzten Redner auf dem Projektor" msgid "Agenda" msgstr "Tagesordnung" -#: agenda/views.py:96 +#: agenda/views.py:95 msgid "You are not authorized to manage the agenda." msgstr "Sie sind nicht berechtigt die Tagesordnung zu ändern." -#: agenda/views.py:112 +#: agenda/views.py:111 msgid "Errors when reordering of the agenda" msgstr "Fehler beim Neusortieren der Tagesordnung" -#: agenda/views.py:218 +#: agenda/views.py:217 msgid "Yes, with all child items." msgstr "Ja, mit allen Kindelementen." -#: agenda/views.py:227 +#: agenda/views.py:226 #, python-format msgid "Item %s and his children were successfully deleted." msgstr "Eintrag %s und seine Kindelemente wurde erfolgreich gelöscht." -#: agenda/views.py:233 +#: agenda/views.py:232 #, python-format msgid "Item %s was successfully deleted." msgstr "Eintrag %s wurde erfolgreich gelöscht." -#: agenda/views.py:268 agenda/views.py:488 +#: agenda/views.py:267 agenda/views.py:487 msgid "The list of speakers is closed." msgstr "Die Rednerliste ist geschlossen." -#: agenda/views.py:297 +#: agenda/views.py:296 msgid "You are not on the list of speakers." msgstr "Sie stehen nicht auf der Rednerliste." -#: agenda/views.py:320 +#: agenda/views.py:319 msgid "Do you really want to remove yourself from the list of speakers?" msgstr "Wollen Sie sich wirklich von der Rednerliste entfernen?" -#: agenda/views.py:341 +#: agenda/views.py:340 #, python-format msgid "%(person)s is not on the list of %(item)s." msgstr "%(person)s ist nicht auf der Rednerliste von %(item)s." -#: agenda/views.py:367 +#: agenda/views.py:366 #, python-format msgid "There is no one speaking at the moment according to %(item)s." msgstr "Es spricht derzeit kein Redner zu %(item)s." -#: agenda/views.py:432 +#: agenda/views.py:431 msgid "Could not change order. Invalid data." msgstr "Die Reihenfolge kann nicht verändert werden. Ungültige Daten." -#: agenda/views.py:482 +#: agenda/views.py:481 msgid "" "There is no list of speakers for the current slide. Please choose the agenda " "item manually from the agenda." @@ -229,35 +233,31 @@ msgstr "" "Es existiert keine Rednerliste für die aktuelle Folie. Bitte wählen Sie den " "Tagesordnungseintrag manuell von der Tagesordnung." -#: agenda/views.py:495 -msgid "You are already on the list of speakers." -msgstr "Sie stehen bereits auf der Rednerliste." - -#: agenda/views.py:499 +#: agenda/views.py:498 msgid "You can not put yourself on the list of speakers." msgstr "Sie können sich nicht selbst auf die Rednerliste setzen." -#: agenda/views.py:508 +#: agenda/views.py:507 #, python-format msgid "%s is now speaking." msgstr "%s redet jetzt." -#: agenda/views.py:510 +#: agenda/views.py:509 #: agenda/templates/agenda/overlay_speaker_projector.html:46 #: agenda/templates/projector/agenda_list_of_speaker.html:46 msgid "The list of speakers is empty." msgstr "Die Rednerliste ist leer." -#: agenda/views.py:518 +#: agenda/views.py:517 msgid "There is no one speaking at the moment." msgstr "Es redet derzeit niemand." -#: agenda/views.py:521 +#: agenda/views.py:520 #, python-format msgid "%s is now finished." msgstr "%s ist jetzt fertig." -#: agenda/views.py:562 +#: agenda/views.py:563 #: agenda/templates/agenda/overlay_speaker_projector.html:33 #: agenda/templates/agenda/overlay_speaker_widget.html:4 #: agenda/templates/agenda/view.html:61 @@ -277,10 +277,10 @@ msgstr "Neuer Eintrag" #: agenda/templates/agenda/edit.html:22 agenda/templates/agenda/view.html:23 #: assignment/templates/assignment/edit.html:22 -#: assignment/templates/assignment/view.html:21 +#: assignment/templates/assignment/view.html:22 #: mediafile/templates/mediafile/mediafile_form.html:22 #: motion/templates/motion/category_list.html:15 -#: motion/templates/motion/motion_detail.html:25 +#: motion/templates/motion/motion_detail.html:31 #: motion/templates/motion/motion_form.html:38 #: motion/templates/motion/motion_form_csv_import.html:11 #: participant/templates/participant/edit.html:22 @@ -295,7 +295,7 @@ msgstr "Zurück zur Übersicht" #: agenda/templates/agenda/edit.html:30 #: assignment/templates/assignment/edit.html:31 -#: assignment/templates/assignment/poll_view.html:86 +#: assignment/templates/assignment/poll_view.html:87 #: config/templates/config/config_form.html:44 #: mediafile/templates/mediafile/mediafile_form.html:33 #: motion/templates/motion/category_form.html:27 @@ -304,7 +304,7 @@ msgstr "Zurück zur Übersicht" #: motion/templates/motion/poll_form.html:73 #: participant/templates/participant/edit.html:36 #: participant/templates/participant/group_edit.html:31 -#: participant/templates/participant/import.html:38 +#: participant/templates/participant/import.html:44 msgid "Cancel" msgstr "Abbrechen" @@ -317,7 +317,7 @@ msgstr "Abbrechen" #: motion/templates/motion/motion_form_csv_import.html:45 #: participant/templates/participant/edit.html:39 #: participant/templates/participant/group_edit.html:34 -#: participant/templates/participant/import.html:41 +#: participant/templates/participant/import.html:47 #: projector/templates/projector/new.html:18 msgid "required" msgstr "erforderlich" @@ -334,7 +334,7 @@ msgstr "Rednerliste projizieren" #: agenda/templates/agenda/item_row.html:21 #: agenda/templates/agenda/widget.html:26 #: assignment/templates/assignment/overview.html:64 -#: assignment/templates/assignment/view.html:171 +#: assignment/templates/assignment/view.html:172 #: assignment/templates/assignment/widget.html:10 #: mediafile/templates/mediafile/mediafile_list.html:37 #: motion/templates/motion/category_list.html:30 @@ -351,10 +351,10 @@ msgstr "Bearbeiten" #: agenda/templates/agenda/item_row.html:24 #: agenda/templates/agenda/view.html:131 #: assignment/templates/assignment/overview.html:68 -#: assignment/templates/assignment/view.html:173 +#: assignment/templates/assignment/view.html:174 #: mediafile/templates/mediafile/mediafile_list.html:38 #: motion/templates/motion/category_list.html:33 -#: motion/templates/motion/motion_detail.html:128 +#: motion/templates/motion/motion_detail.html:134 #: motion/templates/motion/motion_list.html:85 #: participant/templates/participant/group_overview.html:56 #: participant/templates/participant/overview.html:121 @@ -404,12 +404,12 @@ msgstr "Möchten Sie die geänderte Reihenfolge der Einträge speichern?" #: agenda/templates/agenda/overview.html:33 #: agenda/templates/agenda/view.html:86 assignment/models.py:288 -#: assignment/views.py:580 assignment/templates/assignment/view.html:207 -#: assignment/templates/assignment/view.html:211 +#: assignment/views.py:580 assignment/templates/assignment/view.html:208 +#: assignment/templates/assignment/view.html:212 #: assignment/templates/projector/Assignment.html:77 #: assignment/templates/projector/Assignment.html:81 motion/models.py:701 -#: motion/pdf.py:134 motion/pdf.py:256 -#: motion/templates/motion/motion_detail.html:202 +#: motion/pdf.py:135 motion/pdf.py:257 +#: motion/templates/motion/motion_detail.html:208 #: motion/templates/projector/Motion.html:26 utils/utils.py:46 #: utils/views.py:169 msgid "Yes" @@ -417,10 +417,10 @@ msgstr "Ja" #: agenda/templates/agenda/overview.html:34 #: agenda/templates/agenda/view.html:87 assignment/models.py:288 -#: assignment/views.py:581 assignment/templates/assignment/view.html:208 +#: assignment/views.py:581 assignment/templates/assignment/view.html:209 #: assignment/templates/projector/Assignment.html:78 motion/models.py:701 -#: motion/pdf.py:134 motion/pdf.py:257 -#: motion/templates/motion/motion_detail.html:203 +#: motion/pdf.py:135 motion/pdf.py:258 +#: motion/templates/motion/motion_detail.html:209 #: motion/templates/projector/Motion.html:27 utils/utils.py:46 #: utils/views.py:169 msgid "No" @@ -475,7 +475,7 @@ msgstr "Dauer" #: assignment/templates/assignment/overview.html:35 #: mediafile/templates/mediafile/mediafile_list.html:24 #: motion/templates/motion/category_list.html:23 -#: motion/templates/motion/motion_detail.html:104 +#: motion/templates/motion/motion_detail.html:110 #: motion/templates/motion/motion_list.html:47 #: participant/templates/participant/group_overview.html:32 #: participant/templates/participant/overview.html:56 @@ -510,13 +510,13 @@ msgid "End speach" msgstr "Rede beenden" #: agenda/templates/agenda/view.html:27 -#: motion/templates/motion/motion_detail.html:24 +#: motion/templates/motion/motion_detail.html:30 msgid "Show item" msgstr "Eintrag projizieren" #: agenda/templates/agenda/view.html:34 -#: assignment/templates/assignment/view.html:32 -#: motion/templates/motion/motion_detail.html:38 +#: assignment/templates/assignment/view.html:33 +#: motion/templates/motion/motion_detail.html:44 #: participant/templates/participant/group_detail.html:22 #: participant/templates/participant/user_detail.html:22 msgid "More actions" @@ -571,8 +571,8 @@ msgid "Put me on the list" msgstr "Setze mich auf die Liste" #: agenda/templates/agenda/view.html:155 -#: assignment/templates/assignment/poll_view.html:83 -#: assignment/templates/assignment/view.html:110 +#: assignment/templates/assignment/poll_view.html:84 +#: assignment/templates/assignment/view.html:111 #: motion/templates/motion/poll_form.html:70 #: projector/templates/projector/overlay_message_widget.html:9 #: templates/formbuttons_saveapply.html:7 @@ -580,14 +580,14 @@ msgid "Apply" msgstr "Übernehmen" #: agenda/templates/agenda/view.html:157 -#: assignment/templates/assignment/view.html:113 +#: assignment/templates/assignment/view.html:114 msgid "Add new participant" msgstr "Neue/n Teilnehmer/in hinzufügen" #: agenda/templates/agenda/widget.html:8 #: agenda/templates/agenda/widget.html:23 #: assignment/templates/assignment/widget.html:7 -#: motion/templates/motion/motion_detail.html:124 +#: motion/templates/motion/motion_detail.html:130 #: motion/templates/motion/motion_list.html:77 #: motion/templates/motion/widget.html:7 #: participant/templates/participant/group_overview.html:48 @@ -610,7 +610,7 @@ msgid "Preview" msgstr "Vorschau" #: assignment/forms.py:24 assignment/models.py:49 assignment/views.py:370 -#: assignment/templates/assignment/view.html:276 +#: assignment/templates/assignment/view.html:277 #: assignment/templates/projector/Assignment.html:20 msgid "Number of available posts" msgstr "Anzahl der zur Wahl stehenden Posten" @@ -623,15 +623,15 @@ msgstr "Teilnehmer/in vorschlagen" msgid "assignment" msgstr "Wahl" -#: assignment/models.py:42 assignment/templates/assignment/view.html:285 +#: assignment/models.py:42 assignment/templates/assignment/view.html:286 msgid "Searching for candidates" msgstr "Auf Kandidatensuche" -#: assignment/models.py:43 assignment/templates/assignment/view.html:289 +#: assignment/models.py:43 assignment/templates/assignment/view.html:290 msgid "Voting" msgstr "Im Wahlvorgang" -#: assignment/models.py:44 assignment/templates/assignment/view.html:293 +#: assignment/models.py:44 assignment/templates/assignment/view.html:294 msgid "Finished" msgstr "Abgeschlossen" @@ -639,8 +639,8 @@ msgstr "Abgeschlossen" msgid "Name" msgstr "Name" -#: assignment/models.py:48 assignment/templates/assignment/view.html:54 -#: participant/models.py:139 +#: assignment/models.py:48 assignment/templates/assignment/view.html:55 +#: participant/models.py:140 msgid "Description" msgstr "Beschreibung" @@ -732,7 +732,7 @@ msgid "Custom number of ballot papers" msgstr "Benutzerdefinierte Anzahl von Stimmzetteln" #: assignment/signals.py:54 assignment/signals.py:78 assignment/views.py:325 -#: assignment/views.py:630 assignment/views.py:645 +#: assignment/views.py:630 assignment/views.py:646 #: assignment/templates/assignment/overview.html:6 #: assignment/templates/assignment/overview.html:18 msgid "Elections" @@ -775,7 +775,7 @@ msgstr "Neue Wahl wurde erfolgreich angelegt." msgid "Election was successfully modified." msgstr "Wahl wurde erfolgreich geändert." -#: assignment/views.py:117 participant/views.py:465 participant/views.py:489 +#: assignment/views.py:117 participant/views.py:497 participant/views.py:521 #: utils/views.py:318 utils/views.py:340 utils/views.py:350 msgid "Please check the form for errors." msgstr "Bitte kontrollieren Sie das Formular nach Fehlern." @@ -844,7 +844,7 @@ msgid "not elected" msgstr "nicht gewählt" #: assignment/views.py:282 assignment/views.py:471 -#: assignment/templates/assignment/view.html:74 +#: assignment/templates/assignment/view.html:75 msgid "elected" msgstr "gewählt" @@ -868,23 +868,22 @@ msgstr "Wahlen: %s" #: assignment/views.py:377 assignment/views.py:413 #: assignment/templates/assignment/overview.html:33 #: assignment/templates/assignment/overview.html:47 -#: assignment/templates/assignment/poll_view.html:34 -#: assignment/templates/assignment/view.html:63 -#: assignment/templates/assignment/view.html:155 +#: assignment/templates/assignment/poll_view.html:35 +#: assignment/templates/assignment/view.html:64 +#: assignment/templates/assignment/view.html:156 #: assignment/templates/projector/Assignment.html:37 #: assignment/templates/projector/Assignment.html:55 msgid "Candidates" msgstr "Kandidaten/innen" -#: assignment/views.py:402 motion/pdf.py:120 -#: motion/templates/motion/motion_detail.html:189 +#: assignment/views.py:402 motion/pdf.py:121 +#: motion/templates/motion/motion_detail.html:195 msgid "Vote results" msgstr "Abstimmungsergebnis" -#: assignment/views.py:406 assignment/templates/assignment/poll_view.html:5 -#: assignment/templates/assignment/poll_view.html:11 -#: assignment/templates/assignment/view.html:150 -#: assignment/templates/assignment/view.html:158 +#: assignment/views.py:406 assignment/templates/assignment/poll_view.html:6 +#: assignment/templates/assignment/poll_view.html:12 +#: assignment/templates/assignment/view.html:159 #: assignment/templates/projector/Assignment.html:58 msgid "ballot" msgstr "Wahlgang" @@ -904,19 +903,19 @@ msgstr "" "N: %(NO)s\n" "E: %(ABSTAIN)s" -#: assignment/views.py:445 assignment/templates/assignment/poll_view.html:51 -#: assignment/templates/assignment/view.html:225 +#: assignment/views.py:445 assignment/templates/assignment/poll_view.html:52 +#: assignment/templates/assignment/view.html:226 #: assignment/templates/projector/Assignment.html:95 #: motion/templates/motion/poll_form.html:47 msgid "Invalid votes" msgstr "Ungültige Stimmen" -#: assignment/views.py:452 assignment/templates/assignment/poll_view.html:61 -#: assignment/templates/assignment/view.html:241 -#: assignment/templates/assignment/view.html:246 +#: assignment/views.py:452 assignment/templates/assignment/poll_view.html:62 +#: assignment/templates/assignment/view.html:242 +#: assignment/templates/assignment/view.html:247 #: assignment/templates/projector/Assignment.html:108 -#: assignment/templates/projector/Assignment.html:114 motion/pdf.py:135 -#: motion/templates/motion/motion_detail.html:207 +#: assignment/templates/projector/Assignment.html:114 motion/pdf.py:136 +#: motion/templates/motion/motion_detail.html:213 #: motion/templates/motion/poll_form.html:51 #: motion/templates/projector/Motion.html:31 poll/models.py:76 msgid "Votes cast" @@ -924,8 +923,8 @@ msgstr "Abgegebene Stimmen" #: assignment/views.py:512 assignment/views.py:530 #: assignment/templates/assignment/overview.html:32 -#: assignment/templates/assignment/poll_view.html:5 -#: assignment/templates/assignment/view.html:7 +#: assignment/templates/assignment/poll_view.html:6 +#: assignment/templates/assignment/view.html:8 #: assignment/templates/projector/Assignment.html:26 msgid "Election" msgstr "Wahl" @@ -949,16 +948,16 @@ msgid_plural "%d available posts" msgstr[0] "%d verfügbare Posten" msgstr[1] "%d verfügbare Posten" -#: assignment/views.py:581 assignment/templates/assignment/view.html:209 -#: assignment/templates/projector/Assignment.html:79 motion/pdf.py:134 -#: motion/pdf.py:258 motion/templates/motion/motion_detail.html:204 +#: assignment/views.py:581 assignment/templates/assignment/view.html:210 +#: assignment/templates/projector/Assignment.html:79 motion/pdf.py:135 +#: motion/pdf.py:259 motion/templates/motion/motion_detail.html:210 #: motion/templates/projector/Motion.html:28 msgid "Abstention" msgstr "Enthaltung" #: assignment/templates/assignment/edit.html:8 #: assignment/templates/assignment/edit.html:17 -#: assignment/templates/assignment/view.html:37 +#: assignment/templates/assignment/view.html:38 msgid "Edit election" msgstr "Wahl bearbeiten" @@ -973,9 +972,9 @@ msgid "Print all elections as PDF" msgstr "Alle Wahlen als PDF drucken" #: assignment/templates/assignment/overview.html:34 -#: assignment/templates/assignment/view.html:273 +#: assignment/templates/assignment/view.html:274 #: assignment/templates/projector/Assignment.html:17 -#: motion/templates/motion/motion_detail.html:184 +#: motion/templates/motion/motion_detail.html:190 #: motion/templates/motion/motion_list.html:41 #: motion/templates/projector/Motion.html:11 msgid "Status" @@ -991,131 +990,135 @@ msgid "Elected" msgstr "Gewählt" #: assignment/templates/assignment/overview.html:58 -#: assignment/templates/assignment/poll_view.html:17 -#: assignment/templates/assignment/view.html:25 +#: assignment/templates/assignment/poll_view.html:18 +#: assignment/templates/assignment/view.html:26 msgid "Show election" msgstr "Wahl projizieren" #: assignment/templates/assignment/overview.html:73 -#: assignment/templates/assignment/view.html:22 +#: assignment/templates/assignment/view.html:23 msgid "Print election as PDF" msgstr "Wahl als PDF drucken" -#: assignment/templates/assignment/poll_view.html:14 +#: assignment/templates/assignment/poll_view.html:15 msgid "Back to election" msgstr "Zurück zur Wahl" -#: assignment/templates/assignment/poll_view.html:25 +#: assignment/templates/assignment/poll_view.html:26 msgid "Short description (for ballot paper)" msgstr "Kurzbeschreibung (für Stimmzettel)" -#: assignment/templates/assignment/poll_view.html:29 +#: assignment/templates/assignment/poll_view.html:30 #: motion/templates/motion/poll_form.html:30 msgid "Special values" msgstr "Spezielle Werte" -#: assignment/templates/assignment/poll_view.html:29 +#: assignment/templates/assignment/poll_view.html:30 #: motion/templates/motion/poll_form.html:30 poll/models.py:234 msgid "majority" msgstr "Mehrheit" -#: assignment/templates/assignment/poll_view.html:29 +#: assignment/templates/assignment/poll_view.html:30 #: motion/templates/motion/poll_form.html:30 poll/models.py:236 #: poll/models.py:238 msgid "undocumented" msgstr "nicht erfasst" -#: assignment/templates/assignment/poll_view.html:74 +#: assignment/templates/assignment/poll_view.html:75 #: motion/templates/motion/poll_form.html:61 msgid "Ballot paper as PDF" msgstr "Stimmzettel als PDF" -#: assignment/templates/assignment/poll_view.html:80 +#: assignment/templates/assignment/poll_view.html:81 #: motion/templates/motion/poll_form.html:67 #: projector/templates/projector/select_widgets.html:28 #: templates/formbuttons_save.html:4 templates/formbuttons_saveapply.html:4 msgid "Save" msgstr "Speichern" -#: assignment/templates/assignment/view.html:39 +#: assignment/templates/assignment/view.html:40 msgid "Delete election" msgstr "Wahl löschen" -#: assignment/templates/assignment/view.html:43 -#: motion/templates/motion/motion_detail.html:53 +#: assignment/templates/assignment/view.html:44 +#: motion/templates/motion/motion_detail.html:59 msgid "New agenda item" msgstr "Neuer Tagesordnungseintrag" -#: assignment/templates/assignment/view.html:70 -#: assignment/templates/assignment/view.html:130 +#: assignment/templates/assignment/view.html:71 +#: assignment/templates/assignment/view.html:131 msgid "Remove candidate" msgstr "Kandidate/in entfernen" -#: assignment/templates/assignment/view.html:77 +#: assignment/templates/assignment/view.html:78 msgid "Mark candidate as not elected" msgstr "Kandidat/in als nicht gewählt markieren" -#: assignment/templates/assignment/view.html:85 +#: assignment/templates/assignment/view.html:86 #: assignment/templates/projector/Assignment.html:43 msgid "No candidates available." msgstr "Keine Kandidaten/innen vorhanden." -#: assignment/templates/assignment/view.html:95 +#: assignment/templates/assignment/view.html:96 msgid "Withdraw self candidature" msgstr "Eigene Kandidatur zurückziehen" -#: assignment/templates/assignment/view.html:99 +#: assignment/templates/assignment/view.html:100 msgid "Self candidature" msgstr "Selbst kandidieren" -#: assignment/templates/assignment/view.html:124 +#: assignment/templates/assignment/view.html:125 msgid "Blocked Candidates" msgstr "Blockierte Kandidaten/innen" -#: assignment/templates/assignment/view.html:135 +#: assignment/templates/assignment/view.html:136 msgid "No blocked candidates available." msgstr "Keine blockierten Kandidaten/innen vorhanden." -#: assignment/templates/assignment/view.html:143 +#: assignment/templates/assignment/view.html:144 #: assignment/templates/projector/Assignment.html:51 msgid "Election results" msgstr "Wahlergebnisse" -#: assignment/templates/assignment/view.html:163 +#: assignment/templates/assignment/view.html:151 +msgid "Ballot" +msgstr "Wahlgang" + +#: assignment/templates/assignment/view.html:164 msgid "Publish results" msgstr "Ergebnisse veröffentlichen" -#: assignment/templates/assignment/view.html:180 -#: assignment/templates/assignment/view.html:262 +#: assignment/templates/assignment/view.html:181 +#: assignment/templates/assignment/view.html:263 msgid "New ballot" msgstr "Neuer Wahlgang" -#: assignment/templates/assignment/view.html:191 +#: assignment/templates/assignment/view.html:192 msgid "Mark candidate as elected" msgstr "Kandidat/in als gewählt markieren" -#: assignment/templates/assignment/view.html:194 +#: assignment/templates/assignment/view.html:195 #: assignment/templates/projector/Assignment.html:68 msgid "Candidate is elected" msgstr "Kandidat/in ist gewählt" -#: assignment/templates/assignment/view.html:213 +#: assignment/templates/assignment/view.html:214 #: assignment/templates/projector/Assignment.html:83 msgid "was not a <br> candidate" msgstr "war kein Kandidat" -#: assignment/templates/assignment/view.html:230 -#: assignment/templates/projector/Assignment.html:99 motion/pdf.py:134 -#: motion/templates/motion/motion_detail.html:205 +#: assignment/templates/assignment/view.html:231 +#: assignment/templates/projector/Assignment.html:99 motion/pdf.py:135 +#: motion/templates/motion/motion_detail.html:211 #: motion/templates/projector/Motion.html:29 msgid "Invalid" msgstr "Ungültig" -#: assignment/templates/assignment/view.html:258 +#: assignment/templates/assignment/view.html:259 msgid "No ballots available." msgstr "Keine Wahlgänge vorhanden." -#: assignment/templates/assignment/view.html:282 +#: assignment/templates/assignment/view.html:283 msgid "Change status" msgstr "Status ändern" @@ -1189,8 +1192,8 @@ msgid "General" msgstr "Allgemein" #: core/templates/core/version.html:5 core/templates/core/version.html.py:8 -#: core/templates/core/version.html:11 motion/pdf.py:104 -#: motion/templates/motion/motion_detail.html:20 +#: core/templates/core/version.html:11 motion/pdf.py:105 +#: motion/templates/motion/motion_detail.html:26 #: motion/templates/motion/motion_diff.html:35 #: motion/templates/motion/motion_diff.html:39 #: motion/templates/projector/Motion.html:60 @@ -1293,48 +1296,48 @@ msgstr "" msgid "Motion imported" msgstr "Antrag importiert" -#: motion/forms.py:45 motion/models.py:549 motion/pdf.py:157 -#: motion/templates/motion/motion_detail.html:87 +#: motion/forms.py:44 motion/models.py:549 motion/pdf.py:158 +#: motion/templates/motion/motion_detail.html:93 #: motion/templates/motion/motion_diff.html:54 #: motion/templates/projector/Motion.html:72 msgid "Reason" msgstr "Begründung" -#: motion/forms.py:70 motion/pdf.py:55 -#: motion/templates/motion/motion_detail.html:164 +#: motion/forms.py:72 motion/pdf.py:55 +#: motion/templates/motion/motion_detail.html:170 #: motion/templates/motion/motion_list.html:42 #: motion/templates/projector/Motion.html:45 msgid "Submitter" msgstr "Antragsteller/in" -#: motion/forms.py:85 motion/pdf.py:80 -#: motion/templates/motion/motion_detail.html:171 +#: motion/forms.py:87 motion/pdf.py:80 +#: motion/templates/motion/motion_detail.html:177 #: motion/templates/motion/motion_list.html:44 msgid "Supporters" msgstr "Unterstützer/innen" -#: motion/forms.py:100 +#: motion/forms.py:102 msgid "Don't create a new version" msgstr "Keine neue Version erzeugen" -#: motion/forms.py:101 +#: motion/forms.py:103 msgid "Don't create a new version. Useful e.g. for trivial changes." msgstr "Keine neue Version erzeugen. Nützlich z.B. für triviale Änderungen." -#: motion/forms.py:114 motion/templates/motion/motion_detail.html:229 +#: motion/forms.py:116 motion/templates/motion/motion_detail.html:235 #: motion/templates/motion/motion_list.html:40 msgid "Category" msgstr "Sachgebiet" -#: motion/forms.py:134 motion/signals.py:111 +#: motion/forms.py:136 motion/signals.py:111 msgid "Identifier" msgstr "Bezeichner" -#: motion/forms.py:150 +#: motion/forms.py:152 msgid "Workflow" msgstr "Arbeitsablauf" -#: motion/forms.py:151 +#: motion/forms.py:153 msgid "" "Set a specific workflow to switch to it. If you do so, the state of the " "motion will be reset." @@ -1342,19 +1345,19 @@ msgstr "" "Setzt den Antrag auf einen bestimmten Arbeitsablauf. In diesem Fall wird der " "Status des Antrags zurückgesetzt." -#: motion/forms.py:160 participant/forms.py:132 +#: motion/forms.py:162 participant/forms.py:156 msgid "CSV File" msgstr "CSV-Datei" -#: motion/forms.py:161 +#: motion/forms.py:163 msgid "The file has to be encoded in UTF-8." msgstr "Die Datei muss UTF-8-kodiert sein." -#: motion/forms.py:168 +#: motion/forms.py:170 msgid "Override existing motions with the same identifier" msgstr "Überschreibe existrierende Anträge mit dem gleichen Bezeichner" -#: motion/forms.py:169 +#: motion/forms.py:171 msgid "" "If this is active, every motion with the same identifier as in your csv file " "will be overridden." @@ -1362,11 +1365,11 @@ msgstr "" "Wenn dies aktiviert ist, wird jeder Antrag mit dem gleichen Bezeichner wie " "in Ihrer CSV-Datei überschrieben." -#: motion/forms.py:177 +#: motion/forms.py:179 msgid "Default submitter" msgstr "Voreinstellter Antragsteller/in" -#: motion/forms.py:178 +#: motion/forms.py:180 msgid "" "This person is used as submitter for any line of your csv file which does " "not contain valid submitter data." @@ -1395,9 +1398,9 @@ msgid "Can manage motions" msgstr "Darf Anträge verwalten" #: motion/models.py:476 motion/models.py:477 motion/signals.py:117 -#: motion/views.py:245 motion/views.py:543 -#: motion/templates/motion/motion_detail.html:7 -#: motion/templates/motion/motion_detail.html:15 +#: motion/views.py:246 motion/views.py:544 motion/views.py:661 +#: motion/templates/motion/motion_detail.html:8 +#: motion/templates/motion/motion_detail.html:21 #: motion/templates/motion/motion_diff.html:6 #: motion/templates/motion/motion_diff.html:19 #: motion/templates/motion/poll_form.html:6 @@ -1430,7 +1433,7 @@ msgstr "durch %s" msgid "Vote %d" msgstr "Abstimmung %d" -#: motion/pdf.py:48 motion/views.py:654 +#: motion/pdf.py:48 #, python-format msgid "Motion: %s" msgstr "Antrag: %s" @@ -1443,23 +1446,20 @@ msgstr "Unterschrift" msgid "State" msgstr "Status" -#: motion/pdf.py:130 motion/templates/motion/motion_detail.html:194 -#: motion/templates/motion/poll_form.html:6 -#: motion/templates/motion/poll_form.html:14 -#: motion/templates/projector/Motion.html:22 +#: motion/pdf.py:131 motion/templates/projector/Motion.html:22 msgid "Vote" msgstr "Abstimmung" -#: motion/pdf.py:241 motion/templates/motion/widget.html:26 +#: motion/pdf.py:242 motion/templates/motion/widget.html:26 msgid "No motions available." msgstr "Keine Anträge vorhanden." -#: motion/pdf.py:252 +#: motion/pdf.py:253 #, python-format msgid "Motion No. %s" msgstr "Antrag Nr. %s" -#: motion/pdf.py:254 +#: motion/pdf.py:255 #, python-format msgid "%d. Vote" msgstr "%d. Abstimmung" @@ -1479,11 +1479,11 @@ msgstr "Zum Deaktivieren des Unterstützersystems '0' eingeben" #: motion/signals.py:49 msgid "" -"Supporters of a motion will be removed if a submitter edits his motion in " -"early state." +"Remove all supporters of a motion if a submitter edits his motion in early " +"state" msgstr "" -"Unterstützer eines Antrags werden entfernt, wenn ein Antragsteller sein " -"Antrag im Anfangsstadium bearbeitet." +"Alle Unterstützer eines Antrags werden entfernt, wenn ein Antragsteller sein " +"Antrag im Anfangsstadium bearbeitet" #: motion/signals.py:53 msgid "The assembly may decide," @@ -1493,8 +1493,8 @@ msgstr "Die Versammlung möge beschließen," msgid "Motion preamble" msgstr "Antragseinleitung" -#: motion/signals.py:79 motion/views.py:652 motion/views.py:749 -#: motion/views.py:764 motion/templates/motion/category_list.html:6 +#: motion/signals.py:79 motion/views.py:653 motion/views.py:756 +#: motion/views.py:772 motion/templates/motion/category_list.html:6 #: motion/templates/motion/motion_list.html:7 #: motion/templates/motion/motion_list.html:20 msgid "Motions" @@ -1506,7 +1506,7 @@ msgstr "Titel für PDF-Dokument (alle Anträge)" #: motion/signals.py:90 msgid "Preamble text for PDF document (all motions)" -msgstr "Einleitungstext für PDF-Dokument (alle Wahlen) " +msgstr "Einleitungstext für PDF-Dokument (alle Anträge) " #: motion/signals.py:95 msgid "Allow to disable versioning" @@ -1624,113 +1624,113 @@ msgstr "Verworfen (nicht zulässig)" msgid "Reject (not authorized)" msgstr "Verwerfen (nicht zulässig)" -#: motion/views.py:196 +#: motion/views.py:197 msgid "Motion created" msgstr "Antrag erstellt" -#: motion/views.py:221 +#: motion/views.py:222 msgid "Motion updated" msgstr "Antrag aktualisiert" -#: motion/views.py:225 +#: motion/views.py:226 msgid "All supporters removed" msgstr "Alle Unterstützer entfernt" -#: motion/views.py:245 utils/views.py:379 +#: motion/views.py:246 utils/views.py:379 #, python-format msgid "%s was successfully deleted." msgstr "%s wurde erfolgreich gelöscht." -#: motion/views.py:257 +#: motion/views.py:258 msgid "Version successfully permitted." msgstr "Version erfolgreich zugelassen." -#: motion/views.py:281 +#: motion/views.py:282 #, python-format msgid "Are you sure you want permit version %s?" msgstr "Soll Version %s wirklich zugelassen werden?" -#: motion/views.py:290 +#: motion/views.py:291 #, python-format msgid "Version %d permitted" msgstr "Version %d zugelassen" -#: motion/views.py:317 +#: motion/views.py:318 msgid "At least one version number is not valid." msgstr "Mindestens eine Versionsnummer ist ungültig" -#: motion/views.py:360 +#: motion/views.py:361 msgid "You can not support this motion." msgstr "Sie dürfen diesen Antrag nicht unterstützen." -#: motion/views.py:363 +#: motion/views.py:364 msgid "You can not unsupport this motion." msgstr "Sie dürfen Ihre Unterstützung für diesen Antrag nicht entziehen." -#: motion/views.py:373 +#: motion/views.py:374 msgid "Do you really want to support this motion?" msgstr "Wollen Sie wirklich diesen Antrag unterstützen?" -#: motion/views.py:375 +#: motion/views.py:376 msgid "Do you really want to unsupport this motion?" msgstr "Wollen Sie wirklich Ihre Unterstützung für diesen Antrag entziehen?" -#: motion/views.py:388 +#: motion/views.py:389 #, python-format msgid "Supporter: +%s" msgstr "Unterstützer/in: +%s" -#: motion/views.py:391 +#: motion/views.py:392 #, python-format msgid "Supporter: -%s" msgstr "Unterstützer/in: -%s" -#: motion/views.py:398 +#: motion/views.py:399 msgid "You have supported this motion successfully." msgstr "Sie haben den Antrag erfolgreich unterstützt." -#: motion/views.py:400 +#: motion/views.py:401 msgid "You have unsupported this motion successfully." msgstr "Sie haben dem Antrag erfolgreich Ihre Unterstützung entzogen." -#: motion/views.py:431 +#: motion/views.py:432 msgid "Poll created" msgstr "Abstimmung erstellt" -#: motion/views.py:432 +#: motion/views.py:433 msgid "New vote was successfully created." msgstr "Neue Abstimmung erfolgreich angelegt." -#: motion/views.py:498 +#: motion/views.py:499 msgid "Poll updated" msgstr "Abstimmung wurde aktualisiert" -#: motion/views.py:516 +#: motion/views.py:517 msgid "Poll deleted" msgstr "Abstimmung gelöscht" -#: motion/views.py:543 +#: motion/views.py:544 msgid "Poll" msgstr "Abstimmung" -#: motion/views.py:589 +#: motion/views.py:590 msgid "State changed to " msgstr "Status geändert zu " -#: motion/views.py:592 +#: motion/views.py:593 #, python-format msgid "The state of the motion was set to %s." msgstr "Der Status des Antrags wurde auf %s gesetzt." -#: motion/views.py:620 +#: motion/views.py:621 msgid "Agenda item created" msgstr "Tagesordnungseintrag angelegt" -#: motion/views.py:735 +#: motion/views.py:742 msgid "Summary" msgstr "Zusammenfassung" -#: motion/views.py:736 +#: motion/views.py:743 #, python-format msgid "%(counts)d of %(total)d motions successfully imported." msgstr "%(counts)d von %(total)d Anträgen erfolgreich importiert." @@ -1755,127 +1755,131 @@ msgstr "Sachgebiete" msgid "No categories available." msgstr "Keine Sachgebieter vorhanden." -#: motion/templates/motion/motion_detail.html:17 +#: motion/templates/motion/motion_detail.html:23 #: motion/templates/motion/motion_diff.html:21 msgid "no number" msgstr "ohne Nummer" -#: motion/templates/motion/motion_detail.html:27 +#: motion/templates/motion/motion_detail.html:33 #: motion/templates/motion/motion_list.html:89 msgid "Print motion as PDF" msgstr "Antrag als PDF drucken" -#: motion/templates/motion/motion_detail.html:31 +#: motion/templates/motion/motion_detail.html:37 #: motion/templates/motion/poll_form.html:21 msgid "Show motion" msgstr "Antrag projizieren" -#: motion/templates/motion/motion_detail.html:43 +#: motion/templates/motion/motion_detail.html:49 #: motion/templates/motion/motion_form.html:21 #: motion/templates/motion/motion_form.html:30 msgid "Edit motion" msgstr "Antrag bearbeiten" -#: motion/templates/motion/motion_detail.html:48 +#: motion/templates/motion/motion_detail.html:54 msgid "Delete motion" msgstr "Antrag löschen" -#: motion/templates/motion/motion_detail.html:67 +#: motion/templates/motion/motion_detail.html:73 msgid "This is not the newest version." msgstr "Dies ist nicht die neuste Version." -#: motion/templates/motion/motion_detail.html:69 +#: motion/templates/motion/motion_detail.html:75 msgid "Go to the newest version" msgstr "Zur neuesten Version" -#: motion/templates/motion/motion_detail.html:74 +#: motion/templates/motion/motion_detail.html:80 msgid "This version is not authorized." msgstr "Diese Version ist nicht zugelassen." -#: motion/templates/motion/motion_detail.html:76 +#: motion/templates/motion/motion_detail.html:82 msgid "Go to the authorized version" msgstr "Zur zugelassenen Version" -#: motion/templates/motion/motion_detail.html:82 +#: motion/templates/motion/motion_detail.html:88 msgid "Motion text" msgstr "Antragstext" -#: motion/templates/motion/motion_detail.html:96 +#: motion/templates/motion/motion_detail.html:102 msgid "Version history" msgstr "Versionshistorie" -#: motion/templates/motion/motion_detail.html:102 +#: motion/templates/motion/motion_detail.html:108 msgid "Time" msgstr "Zeit" -#: motion/templates/motion/motion_detail.html:103 +#: motion/templates/motion/motion_detail.html:109 msgid "Difference" msgstr "Unterschied" -#: motion/templates/motion/motion_detail.html:110 +#: motion/templates/motion/motion_detail.html:116 msgid "This version is authorized" msgstr "Diese Version wurde zugelassen" -#: motion/templates/motion/motion_detail.html:113 +#: motion/templates/motion/motion_detail.html:119 msgid "Permit this version" msgstr "Diese Version zulassen" -#: motion/templates/motion/motion_detail.html:146 +#: motion/templates/motion/motion_detail.html:152 msgid "Show log" msgstr "Log anzeigen" -#: motion/templates/motion/motion_detail.html:196 +#: motion/templates/motion/motion_detail.html:200 +msgid "vote" +msgstr "Abstimmung" + +#: motion/templates/motion/motion_detail.html:202 msgid "Edit Vote" msgstr "Abstimmung bearbeiten" -#: motion/templates/motion/motion_detail.html:197 +#: motion/templates/motion/motion_detail.html:203 msgid "Delete Vote" msgstr "Abstimmung löschen" -#: motion/templates/motion/motion_detail.html:212 +#: motion/templates/motion/motion_detail.html:218 msgid "No results" msgstr "Keine Ergebnisse" -#: motion/templates/motion/motion_detail.html:223 +#: motion/templates/motion/motion_detail.html:229 msgid "New vote" msgstr "Neue Abstimmung" -#: motion/templates/motion/motion_detail.html:240 +#: motion/templates/motion/motion_detail.html:246 msgid "Last changes (of this version)" msgstr "Letzte Änderung (von dieser Version)" -#: motion/templates/motion/motion_detail.html:242 +#: motion/templates/motion/motion_detail.html:248 #: motion/templates/motion/motion_diff.html:36 #: motion/templates/motion/motion_diff.html:40 #: motion/templates/motion/motion_list.html:46 msgid "Last changes" msgstr "Letzte Änderung" -#: motion/templates/motion/motion_detail.html:253 +#: motion/templates/motion/motion_detail.html:259 msgid "Withdraw motion" msgstr "Antrag zurückziehen" -#: motion/templates/motion/motion_detail.html:262 +#: motion/templates/motion/motion_detail.html:268 msgid "Unsupport" msgstr "Nicht unterstützen" -#: motion/templates/motion/motion_detail.html:268 +#: motion/templates/motion/motion_detail.html:274 msgid "Support" msgstr "Unterstützen" -#: motion/templates/motion/motion_detail.html:276 +#: motion/templates/motion/motion_detail.html:282 msgid "minimum required supporters" msgstr "minimal erforderliche Unterstützer/innen" -#: motion/templates/motion/motion_detail.html:283 +#: motion/templates/motion/motion_detail.html:289 msgid "Manage motion" msgstr "Antrag verwalten" -#: motion/templates/motion/motion_detail.html:291 +#: motion/templates/motion/motion_detail.html:297 msgid "For administration only:" msgstr "Nur zur Administration:" -#: motion/templates/motion/motion_detail.html:293 +#: motion/templates/motion/motion_detail.html:299 msgid "Reset state" msgstr "Status zurücksetzen" @@ -1929,21 +1933,23 @@ msgstr "" "dürfen leer bleiben" #: motion/templates/motion/motion_form_csv_import.html:26 +#: participant/templates/participant/import.html:30 msgid "The first line (header) is ignored" msgstr "Die erste Zeile (Kopfzeile) wird ignoriert" #: motion/templates/motion/motion_form_csv_import.html:28 +#: participant/templates/participant/import.html:32 msgid "Required CSV file encoding is UTF-8" msgstr "Erforderliches Encoding der CSV-Datei ist UTF-8" #: motion/templates/motion/motion_form_csv_import.html:31 -#: participant/templates/participant/import.html:28 +#: participant/templates/participant/import.html:34 msgid "Use the CSV example file from OpenSlides Wiki." msgstr "Verwenden Sie die CSV-Beispiel-Datei vom OpenSlides Wiki." #: motion/templates/motion/motion_form_csv_import.html:39 #: motion/templates/motion/motion_list.html:29 -#: participant/templates/participant/import.html:35 +#: participant/templates/participant/import.html:41 #: participant/templates/participant/overview.html:25 msgid "Import" msgstr "Importieren" @@ -2007,7 +2013,7 @@ msgstr "Gruppen-ID %(id)s existiert nicht (Zeile %(line)d)." msgid "Import aborted because of severe errors in the input file." msgstr "Import auf Grund von schweren Fehlern in der Quelldatei abgebrochen." -#: participant/forms.py:29 participant/views.py:542 +#: participant/forms.py:28 participant/views.py:576 #: participant/templates/participant/group_overview.html:7 #: participant/templates/participant/group_overview.html:20 #: participant/templates/participant/overview.html:24 @@ -2015,18 +2021,18 @@ msgstr "Import auf Grund von schweren Fehlern in der Quelldatei abgebrochen." msgid "Groups" msgstr "Gruppen" -#: participant/forms.py:30 +#: participant/forms.py:29 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um " "mehrere Einträge auszuwählen." -#: participant/forms.py:44 +#: participant/forms.py:43 msgid "First name and last name can not both be empty." msgstr "Vorname und Nachname dürfen nicht beide leer sein." -#: participant/forms.py:77 +#: participant/forms.py:73 msgid "" "You can not remove the last group containing the permission to manage " "participants." @@ -2034,93 +2040,109 @@ msgstr "" "Sie können nicht die letzte Gruppe löschen, die das Recht zur Verwaltung von " "Teilnehmern enthält." -#: participant/forms.py:85 +#: participant/forms.py:80 msgid "Permissions" msgstr "Rechte" -#: participant/forms.py:88 participant/views.py:504 participant/views.py:528 +#: participant/forms.py:83 participant/views.py:536 participant/views.py:561 #: participant/templates/participant/overview.html:7 #: participant/templates/participant/overview.html:20 msgid "Participants" msgstr "Teilnehmer/innen" -#: participant/models.py:30 +#: participant/forms.py:132 +msgid "" +"You can not remove yourself from the last group containing the permission to " +"manage participants." +msgstr "" +"Sie können sich nicht von der letzten Gruppe enfernen, die das Recht zur " +"Verwaltung von Teilnehmern enthält." + +#: participant/forms.py:140 +msgid "" +"You can not remove the permission to manage participants from the last group " +"your are in." +msgstr "" +"Sie können nicht das Recht zur Verwaltung von Teilnehmern von der letzten " +"Gruppe entfernen, in der Sie enthalten sind." + +#: participant/models.py:31 msgid "Male" msgstr "Männlich" -#: participant/models.py:31 +#: participant/models.py:32 msgid "Female" msgstr "Weiblich" -#: participant/models.py:36 participant/views.py:205 +#: participant/models.py:37 participant/views.py:211 #: participant/templates/participant/overview.html:50 #: participant/templates/participant/user_detail.html:49 msgid "Structure level" msgstr "Gliederungsebene" -#: participant/models.py:37 +#: participant/models.py:38 msgid "Will be shown after the name." msgstr "Wird nach dem Namen angezeigt." -#: participant/models.py:40 +#: participant/models.py:41 msgid "Will be shown before the name." msgstr "Wird vor dem Namen angezeigt." -#: participant/models.py:43 +#: participant/models.py:44 #: participant/templates/participant/user_detail.html:39 msgid "Gender" msgstr "Geschlecht" -#: participant/models.py:43 participant/models.py:46 +#: participant/models.py:44 participant/models.py:47 msgid "Only for filtering the participant list." msgstr "Nur zum Filtern der Teilnehmerliste." -#: participant/models.py:45 participant/views.py:205 +#: participant/models.py:46 participant/views.py:211 #: participant/templates/participant/overview.html:52 #: participant/templates/participant/user_detail.html:51 msgid "Committee" msgstr "Amt" -#: participant/models.py:48 +#: participant/models.py:49 #: participant/templates/participant/user_detail.html:43 msgid "About me" msgstr "Über mich" -#: participant/models.py:49 +#: participant/models.py:50 msgid "Your profile text" msgstr "Ihr Profiltext" -#: participant/models.py:52 +#: participant/models.py:53 msgid "Only for notes." msgstr "Nur für Notizen." -#: participant/models.py:55 +#: participant/models.py:56 msgid "Default password" msgstr "Voreinstelltes Passwort" -#: participant/models.py:113 +#: participant/models.py:114 msgid "Can see participant" msgstr "Darf Teilnehmer sehen" -#: participant/models.py:115 +#: participant/models.py:116 msgid "Can manage participant" msgstr "Darf Teilnehmer hinzufügen" -#: participant/models.py:137 +#: participant/models.py:138 msgid "Use this group as participant" msgstr "Diese Gruppe als Teilnehmer/in verwenden" -#: participant/models.py:138 +#: participant/models.py:139 msgid "For example as submitter of a motion." msgstr "Zum Beispiel als Antragsteller eines Antrags." #: participant/signals.py:38 msgid "System URL" -msgstr "System URL" +msgstr "System-URL" #: participant/signals.py:39 participant/signals.py:47 msgid "Printed in PDF of first time passwords only." -msgstr "" +msgstr "Wird nur im Erst-Passwörter-PDF ausgegeben." #: participant/signals.py:42 msgid "Welcome to OpenSlides!" @@ -2150,82 +2172,90 @@ msgstr "Delegierte/r" msgid "Staff" msgstr "Mitarbeiter/in" -#: participant/views.py:157 +#: participant/views.py:157 participant/views.py:163 msgid "You can not delete yourself." -msgstr "Sie düfen sich nicht selbst löschen." +msgstr "Sie dürfen sich nicht selbst löschen." -#: participant/views.py:178 +#: participant/views.py:184 msgid "You can not deactivate yourself." msgstr "Sie dürfen sich nicht selbst deaktivieren." -#: participant/views.py:181 +#: participant/views.py:187 msgid "You can not deactivate the administrator." msgstr "Sie dürfen den Administrator nicht deaktivieren." -#: participant/views.py:200 +#: participant/views.py:206 msgid "Participant-list" msgstr "Teilnehmerliste" -#: participant/views.py:201 +#: participant/views.py:207 msgid "List of Participants" msgstr "Teilnehmerliste" -#: participant/views.py:204 +#: participant/views.py:210 msgid "Last Name" msgstr "Nachname" -#: participant/views.py:204 +#: participant/views.py:210 msgid "First Name" msgstr "Vorname" -#: participant/views.py:205 +#: participant/views.py:211 #: participant/templates/participant/group_overview.html:31 #: participant/templates/participant/overview.html:51 msgid "Group" msgstr "Gruppe" -#: participant/views.py:241 +#: participant/views.py:247 msgid "Participant-passwords" msgstr "Teilnehmer-Passwoerter" -#: participant/views.py:271 +#: participant/views.py:277 msgid "Account for OpenSlides" msgstr "Zugang für OpenSlides" -#: participant/views.py:273 +#: participant/views.py:279 #, python-format msgid "for %s" msgstr "für %s" -#: participant/views.py:276 +#: participant/views.py:282 #, python-format msgid "User: %s" msgstr "Nutzername: %s" -#: participant/views.py:280 +#: participant/views.py:286 #, python-format msgid "Password: %s" msgstr "Passwort: %s" -#: participant/views.py:327 +#: participant/views.py:333 #, python-format msgid "%d new participants were successfully imported." msgstr "%d neue Teilnehmer/innen wurden erfolgreich importiert." -#: participant/views.py:338 +#: participant/views.py:344 msgid "Do you really want to reset the password?" msgstr "Soll das Passwort wirklich zurückgesetzt werden?" -#: participant/views.py:351 +#: participant/views.py:357 #, python-format msgid "The Password for %s was successfully reset." msgstr "Das Passwort für %s wurde erfolgreich zurückgesetzt." -#: participant/views.py:426 -msgid "You can not delete this Group." +#: participant/views.py:448 +msgid "You can not delete this group." msgstr "Sie dürfen diese Gruppe nicht löschen." -#: participant/views.py:437 +#: participant/views.py:457 +msgid "" +"You can not delete the last group containing the permission to manage " +"participants you are in." +msgstr "" +"Sie dürfen nicht die letzte Gruppe löschen, die das Recht zur Verwaltung von " +"Teilnehmern enthält." + +#: participant/views.py:469 #, python-format msgid "" "Installation was successfully! Use %(user)s (password: %(password)s) for " @@ -2238,11 +2268,11 @@ msgstr "" "Sie das Passwort nach der ersten Anmeldung! Anderenfalls erscheint diese " "Meldung weiterhin für alle und ist ein Sicherheitsrisiko." -#: participant/views.py:463 +#: participant/views.py:495 msgid "User settings successfully saved." msgstr "Nutzereinstellungen wurden erfolgreich gespeichert." -#: participant/views.py:486 +#: participant/views.py:518 msgid "Password successfully changed." msgstr "Passwort wurde erfolgreich geändert." @@ -2318,8 +2348,8 @@ msgid "Import participants" msgstr "Teilnehmer/innen importieren" #: participant/templates/participant/import.html:15 -msgid "Select a CSV file to import participants!" -msgstr "Wählen Sie eine CSV-Datei zum Importieren von Teilnehmer/innen aus!" +msgid "Select a CSV file to import participants" +msgstr "Wählen Sie eine CSV-Datei zum Importieren von Teilnehmer/innen aus" #: participant/templates/participant/import.html:21 msgid "" @@ -2337,9 +2367,13 @@ msgstr "Vorgegebene Gruppen" msgid "Delegate" msgstr "Delegierte/r" -#: participant/templates/participant/import.html:27 -msgid "Required CSV file encoding: UTF-8 (Unicode)." -msgstr "Erforderliches CSV-Datei-Encoding: UTF-8 (Unicode)." +#: participant/templates/participant/import.html:28 +msgid "" +"At least first name or last name have to filled in. All other fields are " +"optional and may be empty." +msgstr "" +"Mindestens Vorname oder Nachname müssen ausgefüllt werden. Alle anderen " +"Felder dürfen leer bleiben." #: participant/templates/participant/login.html:19 msgid "Your username and password were not accepted. Please try again." @@ -2482,11 +2516,11 @@ msgstr "Dashboard" msgid "Projector live view" msgstr "Projektor-Live-Ansicht" -#: projector/views.py:407 +#: projector/views.py:406 msgid "Overlays" msgstr "Einblendungen" -#: projector/views.py:419 +#: projector/views.py:416 msgid "Custom Slides" msgstr "Benutzerdefinierte Folien" @@ -2599,6 +2633,15 @@ msgstr "Stand: %s" msgid "Page %s" msgstr "Seite %s" +#: utils/tornado_webserver.py:47 +msgid "the machine's local ip address" +msgstr "der lokalen IP-Adresse des Rechners" + +#: utils/tornado_webserver.py:50 +#, python-format +msgid "Starting OpenSlides' tornado webserver listening to %(url_string)s" +msgstr "Der Tornado-Webserver von OpenSlides wird gestaret und hört auf " + #: utils/utils.py:60 utils/views.py:373 #, python-format msgid "Do you really want to delete %s?" diff --git a/openslides/locale/de/LC_MESSAGES/djangojs.mo b/openslides/locale/de/LC_MESSAGES/djangojs.mo index dbd25a9e0e1dbefdc85dc2769cef05665f8c721b..61852c27de0a284b904fa8efd60cdcec41b190af 100644 GIT binary patch delta 23 ecmbOvGD&2E3_F*Zu7RO~k)f5L@n$vlH%tIVUIpC% delta 23 ecmbOvGD&2E3_F*puA!NNfq|8w>1H+dH%tIVhXvsP diff --git a/openslides/mediafile/templates/mediafile/mediafile_form.html b/openslides/mediafile/templates/mediafile/mediafile_form.html index 712382713..70802f997 100644 --- a/openslides/mediafile/templates/mediafile/mediafile_form.html +++ b/openslides/mediafile/templates/mediafile/mediafile_form.html @@ -3,12 +3,12 @@ {% load i18n %} {% block title %} - {{ block.super }} – {% if mediafile %} {% trans "Edit file" %} {% else %} {% trans "New file" %} {% endif %} + – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/mediafile/templates/mediafile/mediafile_list.html b/openslides/mediafile/templates/mediafile/mediafile_list.html index 124639e79..5a39d5ae5 100644 --- a/openslides/mediafile/templates/mediafile/mediafile_list.html +++ b/openslides/mediafile/templates/mediafile/mediafile_list.html @@ -3,7 +3,7 @@ {% load i18n %} {% load tags %} -{% block title %}{{ block.super }} – {% trans 'Files' %}{% endblock %} +{% block title %}{% trans 'Files' %} – {{ block.super }}{% endblock %} {% block content %} <h1>{% trans 'Files' %} diff --git a/openslides/motion/pdf.py b/openslides/motion/pdf.py index 9905fca60..079997b1a 100644 --- a/openslides/motion/pdf.py +++ b/openslides/motion/pdf.py @@ -97,13 +97,14 @@ def motion_to_pdf(pdf, motion): cell4b.append(Paragraph(_(motion.state.name), stylesheet['Normal'])) motion_data.append([cell4a, cell4b]) - # Version number (aid) + # Version number if motion.versions.count() > 1: + version = motion.get_active_version() cell5a = [] cell5b = [] cell5a.append(Paragraph("<font name='Ubuntu-Bold'>%s:</font>" % _("Version"), stylesheet['Heading4'])) - cell5b.append(Paragraph("%s" % motion.version.version_number, stylesheet['Normal'])) + cell5b.append(Paragraph("%s" % version.version_number, stylesheet['Normal'])) motion_data.append([cell5a, cell5b]) # voting results diff --git a/openslides/motion/signals.py b/openslides/motion/signals.py index ba617e394..a4ad10b3a 100644 --- a/openslides/motion/signals.py +++ b/openslides/motion/signals.py @@ -46,7 +46,7 @@ def setup_motion_config_page(sender, **kwargs): name='motion_remove_supporters', default_value=False, form_field=forms.BooleanField( - label=ugettext_lazy('Supporters of a motion will be removed if a submitter edits his motion in early state.'), + label=ugettext_lazy('Remove all supporters of a motion if a submitter edits his motion in early state'), required=False)) motion_preamble = ConfigVariable( name='motion_preamble', diff --git a/openslides/motion/templates/motion/category_form.html b/openslides/motion/templates/motion/category_form.html index facb2d6b0..9da1039b6 100644 --- a/openslides/motion/templates/motion/category_form.html +++ b/openslides/motion/templates/motion/category_form.html @@ -3,12 +3,12 @@ {% load i18n %} {% block title %} - {{ block.super }} – {% if category %} {% trans "Edit category" %} {% else %} {% trans "New category" %} {% endif %} + – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/motion/templates/motion/category_list.html b/openslides/motion/templates/motion/category_list.html index 62aecec11..924709948 100644 --- a/openslides/motion/templates/motion/category_list.html +++ b/openslides/motion/templates/motion/category_list.html @@ -3,7 +3,7 @@ {% load tags %} {% load i18n %} -{% block title %}{{ block.super }} – {% trans "Motions" %}{% endblock %} +{% block title %}{% trans "Motions" %} – {{ block.super }}{% endblock %} {% block content %} <h1> diff --git a/openslides/motion/templates/motion/motion_detail.html b/openslides/motion/templates/motion/motion_detail.html index c89a61e9c..8285af4bd 100644 --- a/openslides/motion/templates/motion/motion_detail.html +++ b/openslides/motion/templates/motion/motion_detail.html @@ -5,7 +5,7 @@ {% load staticfiles %} {% load humanize %} -{% block title %}{{ block.super }} – {% trans "Motion" %} {{ motion.identifier|default:'' }}{% endblock %} +{% block title %}{% trans "Motion" %} {{ motion.identifier|default:'' }} – {{ block.super }}{% endblock %} {% block header %} {{ block.super }} @@ -38,7 +38,7 @@ <i class="icon-facetime-video {% if motion.active %}icon-white{% endif %}"></i> </a> {% endif %} - {% if perms.motion.can_manage_motion or perms.agenda.can_manage_agenda %} + {% if perms.motion.can_manage_motion or perms.agenda.can_manage_agenda or allowed_actions.edit %} <div class="btn-group"> <a data-toggle="dropdown" class="btn btn-mini dropdown-toggle"> {% trans 'More actions' %} <span class="caret"></span> diff --git a/openslides/motion/templates/motion/motion_diff.html b/openslides/motion/templates/motion/motion_diff.html index c9d0720e2..927d5faf3 100644 --- a/openslides/motion/templates/motion/motion_diff.html +++ b/openslides/motion/templates/motion/motion_diff.html @@ -3,7 +3,7 @@ {% load i18n %} {% load staticfiles %} -{% block title %}{{ block.super }} – {% trans "Motion" %} {{ motion.identifier }}{% endblock %} +{% block title %}{% trans "Motion" %} {{ motion.identifier }} – {{ block.super }}{% endblock %} {% block header %} <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/motion.css' %}" /> diff --git a/openslides/motion/templates/motion/motion_form.html b/openslides/motion/templates/motion/motion_form.html index a214bb8f4..45919ec1e 100644 --- a/openslides/motion/templates/motion/motion_form.html +++ b/openslides/motion/templates/motion/motion_form.html @@ -16,12 +16,12 @@ {% endblock %} {% block title %} - {{ block.super }} – {% if motion %} {% trans "Edit motion" %} {% else %} {% trans "New motion" %} {% endif %} + – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/motion/templates/motion/motion_form_csv_import.html b/openslides/motion/templates/motion/motion_form_csv_import.html index 8fa4677a7..d70847a63 100644 --- a/openslides/motion/templates/motion/motion_form_csv_import.html +++ b/openslides/motion/templates/motion/motion_form_csv_import.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {% trans 'Import motions' %} {% endblock %} +{% block title %}{% trans 'Import motions' %} – {{ block.super }}{% endblock %} {% block content %} <h1> diff --git a/openslides/motion/templates/motion/motion_list.html b/openslides/motion/templates/motion/motion_list.html index c69a1863a..3f6c478e1 100644 --- a/openslides/motion/templates/motion/motion_list.html +++ b/openslides/motion/templates/motion/motion_list.html @@ -4,7 +4,7 @@ {% load i18n %} {% load staticfiles %} -{% block title %}{{ block.super }} – {% trans "Motions" %}{% endblock %} +{% block title %}{% trans "Motions" %} – {{ block.super }}{% endblock %} {% block header %} <link href="{% static 'styles/dataTables/dataTables.bootstrap.css' %}" type="text/css" rel="stylesheet"> diff --git a/openslides/motion/templates/motion/poll_form.html b/openslides/motion/templates/motion/poll_form.html index bf5f701dc..0326e7f4f 100644 --- a/openslides/motion/templates/motion/poll_form.html +++ b/openslides/motion/templates/motion/poll_form.html @@ -3,7 +3,7 @@ {% load i18n %} {% block title %} - {{ block.super }} - {% trans "Motion" %} {{ motion.identifier }}, {{ poll }} + {% trans "Motion" %} {{ motion.identifier }}, {{ poll }} – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/motion/views.py b/openslides/motion/views.py index 769fc97d7..544f58d15 100644 --- a/openslides/motion/views.py +++ b/openslides/motion/views.py @@ -16,6 +16,7 @@ from django.core.urlresolvers import reverse from django.contrib import messages from django.db import transaction from django.db.models import Model +from django.utils.text import slugify from django.utils.translation import ugettext as _, ugettext_lazy, ugettext_noop from django.views.generic.detail import SingleObjectMixin from django.http import Http404, HttpResponseRedirect @@ -672,7 +673,12 @@ class MotionPDFView(SingleObjectMixin, PDFView): if self.print_all_motions: return _("Motions") else: - return _("Motion: %s") % unicode(self.object) + if self.object.identifier: + suffix = self.object.identifier + else: + suffix = self.object.title.replace(' ', '_') + suffix = slugify(suffix) + return '%s-%s' % (_("Motion"), suffix) def append_to_pdf(self, pdf): """ diff --git a/openslides/participant/templates/participant/edit.html b/openslides/participant/templates/participant/edit.html index d0dfc143a..79162fe2a 100644 --- a/openslides/participant/templates/participant/edit.html +++ b/openslides/participant/templates/participant/edit.html @@ -3,12 +3,12 @@ {% load i18n %} {% block title %} - {{ block.super }} – {% if edit_user %} {% trans "Edit participant" %} {% else %} {% trans "New participant" %} {% endif %} + – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/participant/templates/participant/group_detail.html b/openslides/participant/templates/participant/group_detail.html index 89ef8f960..e9811ecf1 100644 --- a/openslides/participant/templates/participant/group_detail.html +++ b/openslides/participant/templates/participant/group_detail.html @@ -3,7 +3,7 @@ {% load i18n %} {% load tags %} -{% block title %}{{ block.super }} – {% trans group.name %}{% endblock %} +{% block title %}{% trans group.name %} – {{ block.super }}{% endblock %} {% block content %} diff --git a/openslides/participant/templates/participant/group_edit.html b/openslides/participant/templates/participant/group_edit.html index 8020247d2..026ee268b 100644 --- a/openslides/participant/templates/participant/group_edit.html +++ b/openslides/participant/templates/participant/group_edit.html @@ -3,12 +3,12 @@ {% load i18n %} {% block title %} - {{ block.super }} – {% if group %} {% trans "Edit group" %} {% else %} {% trans "New group" %} {% endif %} + – {{ block.super }} {% endblock %} {% block content %} diff --git a/openslides/participant/templates/participant/group_overview.html b/openslides/participant/templates/participant/group_overview.html index e640e1b7d..70b26beaf 100644 --- a/openslides/participant/templates/participant/group_overview.html +++ b/openslides/participant/templates/participant/group_overview.html @@ -4,7 +4,7 @@ {% load staticfiles %} {% load tags %} -{% block title %}{{ block.super }} – {% trans "Groups" %}{% endblock %} +{% block title %}{% trans "Groups" %} – {{ block.super }}{% endblock %} {% block header %} <link href="{% static 'styles/dataTables/dataTables.bootstrap.css' %}" type="text/css" rel="stylesheet"> diff --git a/openslides/participant/templates/participant/import.html b/openslides/participant/templates/participant/import.html index 449eafdb6..cc1e21470 100644 --- a/openslides/participant/templates/participant/import.html +++ b/openslides/participant/templates/participant/import.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {% trans "Import participants" %} {% endblock %} +{% block title %}{% trans "Import participants" %} – {{ block.super }}{% endblock %} {% block content %} <h1> @@ -12,7 +12,7 @@ </small> </h1> - <p>{% trans 'Select a CSV file to import participants!' %}</p> + <p>{% trans 'Select a CSV file to import participants' %}.</p> <p>{% trans 'Please note' %}:</p> <ul> @@ -24,7 +24,13 @@ {% trans 'Default groups' %}: {% trans 'Delegate' %} (<code>3</code>), {% trans 'Staff' %} (<code>4</code>) </li> - <li>{% trans 'Required CSV file encoding: UTF-8 (Unicode).' %}</li> + <li> + {% trans 'At least first name or last name have to filled in. All other fields are optional and may be empty.' %} + </li> + <li>{% trans 'The first line (header) is ignored' %}.</li> + <li> + {% trans 'Required CSV file encoding is UTF-8' %}. + </li> <li><a href="https://github.com/OpenSlides/OpenSlides/wiki/CSV-Import" target="_blank">{% trans 'Use the CSV example file from OpenSlides Wiki.' %}</a></li> </ul> diff --git a/openslides/participant/templates/participant/login.html b/openslides/participant/templates/participant/login.html index ec7576bae..07cbe6399 100644 --- a/openslides/participant/templates/participant/login.html +++ b/openslides/participant/templates/participant/login.html @@ -3,6 +3,8 @@ {% load i18n %} {% load staticfiles %} +{% block title %}{{ block.super }} – {% trans "Login" %} {% endblock %} + {% block loginbutton %} {% endblock %} diff --git a/openslides/participant/templates/participant/overview.html b/openslides/participant/templates/participant/overview.html index bf079817e..06756808f 100644 --- a/openslides/participant/templates/participant/overview.html +++ b/openslides/participant/templates/participant/overview.html @@ -4,7 +4,7 @@ {% load staticfiles %} {% load tags %} -{% block title %}{{ block.super }} – {% trans "Participants" %}{% endblock %} +{% block title %}{% trans "Participants" %} – {{ block.super }}{% endblock %} {% block header %} <link href="{% static 'styles/dataTables/dataTables.bootstrap.css' %}" type="text/css" rel="stylesheet"> @@ -79,7 +79,7 @@ {% if 'participant_sort_users_by_first_name'|get_config %} <a href="{% url 'user_view' user.id %}">{{ user.first_name }} {{ user.last_name }}</a> {% else %} - <a href="{% url 'user_view' user.id %}">{{ user.last_name }}, {{ user.first_name }}</a> + <a href="{% url 'user_view' user.id %}">{{ user.last_name }}{% if user.last_name and user.first_name %},{% endif %} {{ user.first_name }}</a> {% endif %} </td> <td class="optional">{{ user.structure_level }}</td> diff --git a/openslides/participant/templates/participant/password_change.html b/openslides/participant/templates/participant/password_change.html index 3a845dae5..cef9a54d5 100644 --- a/openslides/participant/templates/participant/password_change.html +++ b/openslides/participant/templates/participant/password_change.html @@ -2,10 +2,10 @@ {% load i18n %} -{% block title %}{{ block.super }} – {% trans "Password Settings" %}{% endblock %} +{% block title %}{% trans "Password settings" %} – {{ block.super }}{% endblock %} {% block content %} - <h1>{% trans "Password Settings" %}</h1> + <h1>{% trans "Password settings" %}</h1> <form action="" method="post">{% csrf_token %} {% include "form.html" %} diff --git a/openslides/participant/templates/participant/settings.html b/openslides/participant/templates/participant/settings.html index f7dfa77d8..b667a93d7 100644 --- a/openslides/participant/templates/participant/settings.html +++ b/openslides/participant/templates/participant/settings.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {% trans "Edit profile" %}{% endblock %} +{% block title %}{% trans "Edit profile" %} – {{ block.super }}{% endblock %} {% block content %} <h1>{% trans "Edit profile" %}</h1> diff --git a/openslides/participant/templates/participant/user_detail.html b/openslides/participant/templates/participant/user_detail.html index 50a384da2..8a0540e00 100644 --- a/openslides/participant/templates/participant/user_detail.html +++ b/openslides/participant/templates/participant/user_detail.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {{ shown_user }}{% endblock %} +{% block title %}{{ shown_user }} – {{ block.super }}{% endblock %} {% block content %} diff --git a/openslides/participant/templates/projector/GroupSlide.html b/openslides/participant/templates/projector/GroupSlide.html index 742d624fd..3cc4afd13 100644 --- a/openslides/participant/templates/projector/GroupSlide.html +++ b/openslides/participant/templates/projector/GroupSlide.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} - {{ title }}{% endblock %} +{% block title %}{{ title }}{% endblock %} {% block content %} <div class="item_fullscreen">{% trans group.name %} diff --git a/openslides/participant/templates/projector/UserSlide.html b/openslides/participant/templates/projector/UserSlide.html index 4c426a8ee..dc78e577d 100644 --- a/openslides/participant/templates/projector/UserSlide.html +++ b/openslides/participant/templates/projector/UserSlide.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} - {{ title }}{% endblock %} +{% block title %}{{ title }}{% endblock %} {% block content %} <div class="item_fullscreen">{{ shown_user }} diff --git a/openslides/projector/templates/base-projector.html b/openslides/projector/templates/base-projector.html index ae086fce8..43bb1c2e9 100644 --- a/openslides/projector/templates/base-projector.html +++ b/openslides/projector/templates/base-projector.html @@ -8,7 +8,7 @@ <link rel="shortcut icon" href="{% static 'img/favicon.png' %}" type="image/png" /> <script type="text/javascript" src="{% static 'javascript/jquery.min.js' %}"></script> <script type="text/javascript" src="{% static 'javascript/projector.js' %}"></script> - <title>{% block title %} {% get_config 'event_name' %} {% endblock %} + {% block title %}{% get_config 'event_name' %}{% endblock %} {% block header %} {% endblock %} diff --git a/openslides/projector/templates/projector/ProjectorSlide.html b/openslides/projector/templates/projector/ProjectorSlide.html index 12ddbf11a..62cd9d4ea 100644 --- a/openslides/projector/templates/projector/ProjectorSlide.html +++ b/openslides/projector/templates/projector/ProjectorSlide.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {{ slide.title }}{% endblock %} +{% block title %}{{ slide.title }}{% endblock %} {% block content %} {% if slide.text %} diff --git a/openslides/projector/templates/projector/dashboard.html b/openslides/projector/templates/projector/dashboard.html index cadcc45d3..4e0ffbccf 100644 --- a/openslides/projector/templates/projector/dashboard.html +++ b/openslides/projector/templates/projector/dashboard.html @@ -13,6 +13,8 @@ {% endblock %} +{% block title %}{% trans "Dashboard" %} – {{ block.super }}{% endblock %} + {% block content %}

{% trans 'Dashboard' %} diff --git a/openslides/projector/templates/projector/select_widgets.html b/openslides/projector/templates/projector/select_widgets.html index 75d1f6f86..470d72093 100644 --- a/openslides/projector/templates/projector/select_widgets.html +++ b/openslides/projector/templates/projector/select_widgets.html @@ -2,7 +2,7 @@ {% load i18n %} -{% block title %}{{ block.super }} – {% trans 'Select widgets' %}{% endblock %} +{% block title %}{% trans 'Select widgets' %} – {{ block.super }}{% endblock %} {% block content %}

{% trans 'Select widgets' %}