From bac918a9e8e75687f869be49db31fda747920ce8 Mon Sep 17 00:00:00 2001 From: Emanuel Schuetze Date: Sat, 19 Oct 2013 22:16:43 +0200 Subject: [PATCH] Some bug fixing for 1.5b1 - Fixed #921 (Check THANKS URL for jQuery UI Nested Sortable) - Fixed #919 (Permission problem in agenda) - Fixed #918 (Search does not work for guest users) - Fixed search-bar position. - Updated EN po files. --- THANKS | 2 +- .../templates/search/agenda-results.html | 8 +- openslides/agenda/views.py | 25 +- openslides/core/views.py | 3 +- openslides/locale/en/LC_MESSAGES/django.po | 1280 +++++++++-------- openslides/locale/en/LC_MESSAGES/djangojs.po | 2 +- openslides/templates/base.html | 2 +- 7 files changed, 684 insertions(+), 638 deletions(-) diff --git a/THANKS b/THANKS index f7c44c3d4..26d1b4f3f 100644 --- a/THANKS +++ b/THANKS @@ -46,7 +46,7 @@ OpenSlides uses parts of the following projects: License: MIT and some addons: - jQuery UI Nested Sortable - + License: MIT - jQuery UI Slider Access diff --git a/openslides/agenda/templates/search/agenda-results.html b/openslides/agenda/templates/search/agenda-results.html index 8397a60f1..2807e2445 100644 --- a/openslides/agenda/templates/search/agenda-results.html +++ b/openslides/agenda/templates/search/agenda-results.html @@ -1,10 +1,16 @@ {% load i18n %} {% load highlight %} -{% if perms.agenda.can_see_agenda %} +{% if perms.agenda.can_see_agenda and result.object.type == result.object.AGENDA_ITEM %}
  • {{ result.object }}
    {% trans "Agenda" %}
    {% highlight result.text with request.GET.q %}
  • +{% elif perms.agenda.can_see_orga_items and result.object.type == result.object.ORGANIZATIONAL_ITEM %} +
  • + [{{ result.object }}]
    + {% trans "Agenda" %} ({% trans "Organizational item" %})
    + {% highlight result.text with request.GET.q %} +
  • {% endif %} diff --git a/openslides/agenda/views.py b/openslides/agenda/views.py index dcdf847fa..c3c4d7811 100644 --- a/openslides/agenda/views.py +++ b/openslides/agenda/views.py @@ -144,19 +144,26 @@ class AgendaItemView(SingleObjectMixin, FormView): Show an agenda item. """ # TODO: use 'SingleObjectTemplateResponseMixin' to choose the right template name - permission_required = 'agenda.can_see_agenda' template_name = 'agenda/view.html' model = Item context_object_name = 'item' form_class = AppendSpeakerForm + def has_permission(self, request, *args, **kwargs): + """ + Checks if the user has the required permission. + """ + if self.get_object().type == Item.ORGANIZATIONAL_ITEM: + permission = request.user.has_perm('agenda.can_see_orga_items') + else: + permission = request.user.has_perm('agenda.can_see_agenda') + return permission + def get_context_data(self, **kwargs): self.object = self.get_object() list_of_speakers = self.object.get_list_of_speakers() - active_slide = get_active_slide() active_type = active_slide.get('type', None) - kwargs.update({ 'object': self.object, 'list_of_speakers': list_of_speakers, @@ -594,10 +601,16 @@ class CurrentListOfSpeakersView(RedirectView): messages.success(request, _('%s is now finished.') % current_speaker) reverse_to_dashboard = True - if reverse_to_dashboard or not self.request.user.has_perm('agenda.can_see_agenda'): - return reverse('dashboard') + if item.type == Item.ORGANIZATIONAL_ITEM: + if reverse_to_dashboard or not self.request.user.has_perm('agenda.can_see_orga_items'): + return reverse('dashboard') + else: + return reverse('item_view', args=[item.pk]) else: - return reverse('item_view', args=[item.pk]) + if reverse_to_dashboard or not self.request.user.has_perm('agenda.can_see_agenda'): + return reverse('dashboard') + else: + return reverse('item_view', args=[item.pk]) def register_tab(request): diff --git a/openslides/core/views.py b/openslides/core/views.py index 0338c1424..776719346 100644 --- a/openslides/core/views.py +++ b/openslides/core/views.py @@ -16,6 +16,7 @@ from django.utils.importlib import import_module from haystack.views import SearchView as _SearchView from openslides import get_git_commit_id, get_version, RELEASE +from openslides.config.api import config from openslides.utils.signals import template_manipulation from openslides.utils.views import TemplateView @@ -76,7 +77,7 @@ class SearchView(_SearchView): template = 'core/search.html' def __call__(self, request): - if not request.user.is_authenticated(): + if not request.user.is_authenticated() and not config['system_enable_anonymous']: raise PermissionDenied return super(SearchView, self).__call__(request) diff --git a/openslides/locale/en/LC_MESSAGES/django.po b/openslides/locale/en/LC_MESSAGES/django.po index 236e6ede5..c1458bec8 100644 --- a/openslides/locale/en/LC_MESSAGES/django.po +++ b/openslides/locale/en/LC_MESSAGES/django.po @@ -5,28 +5,32 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-09-10 09:06+0200\n" +"POT-Creation-Date: 2013-10-20 20:19+0200\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: global_settings.py:33 +#: global_settings.py:31 msgid "German" msgstr "" -#: global_settings.py:34 +#: global_settings.py:32 msgid "English" msgstr "" -#: global_settings.py:35 +#: global_settings.py:33 msgid "French" msgstr "" -#: global_settings.py:36 +#: global_settings.py:34 msgid "Czech" msgstr "" +#: global_settings.py:35 +msgid "Portuguese" +msgstr "" + #: account/views.py:71 msgid "My items, motions and elections" msgstr "" @@ -54,229 +58,225 @@ msgstr "" msgid "I am candidate for the following elections:" msgstr "" -#: agenda/forms.py:29 +#: agenda/forms.py:33 msgid "Parent item" msgstr "" -#: agenda/forms.py:33 +#: agenda/forms.py:37 msgid "Invalid format. Hours from 0 to 99 and minutes from 00 to 59" msgstr "" -#: agenda/forms.py:36 agenda/models.py:74 +#: agenda/forms.py:40 agenda/models.py:75 msgid "Duration (hh:mm)" msgstr "" -#: agenda/forms.py:70 +#: agenda/forms.py:74 msgid "Add participant" msgstr "" -#: agenda/forms.py:83 +#: agenda/forms.py:87 #, python-format msgid "%s is already on the list of speakers." msgstr "" -#: agenda/models.py:42 +#: agenda/models.py:43 msgid "Agenda item" msgstr "" -#: agenda/models.py:43 +#: agenda/models.py:44 msgid "Organizational item" msgstr "" -#: 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:554 participant/models.py:40 participant/views.py:210 -#: participant/templates/participant/overview.html:48 projector/models.py:27 +#: agenda/models.py:46 core/signals.py:76 mediafile/models.py:32 +#: mediafile/templates/mediafile/mediafile_list.html:18 motion/forms.py:36 +#: motion/models.py:546 participant/models.py:43 participant/views.py:210 +#: participant/templates/participant/overview.html:48 projector/models.py:126 msgid "Title" msgstr "" -#: agenda/models.py:50 motion/forms.py:38 motion/models.py:557 -#: projector/models.py:28 +#: agenda/models.py:51 motion/forms.py:41 motion/models.py:549 +#: projector/models.py:127 msgid "Text" msgstr "" -#: agenda/models.py:55 agenda/templates/agenda/overview.html:77 -#: agenda/templates/agenda/view.html:55 participant/models.py:52 +#: agenda/models.py:56 agenda/templates/agenda/overview.html:77 +#: agenda/templates/agenda/view.html:55 participant/models.py:55 #: participant/templates/participant/overview.html:54 #: participant/templates/participant/user_detail.html:71 msgid "Comment" msgstr "" -#: agenda/models.py:60 +#: agenda/models.py:61 msgid "Closed" msgstr "" -#: agenda/models.py:66 mediafile/templates/mediafile/mediafile_list.html:19 +#: agenda/models.py:67 mediafile/templates/mediafile/mediafile_list.html:19 msgid "Type" msgstr "" -#: agenda/models.py:85 projector/models.py:29 +#: agenda/models.py:86 projector/models.py:128 msgid "Weight" msgstr "" -#: agenda/models.py:98 +#: agenda/models.py:108 msgid "List of speakers is closed" msgstr "" -#: agenda/models.py:105 +#: agenda/models.py:115 msgid "Can see agenda" msgstr "" -#: agenda/models.py:106 +#: agenda/models.py:116 msgid "Can manage agenda" msgstr "" -#: agenda/models.py:107 +#: agenda/models.py:117 msgid "Can see orga items and time scheduling of agenda" msgstr "" -#: agenda/models.py:135 -#, python-format -msgid "< Item for deleted slide (%s) >" -msgstr "" - -#: agenda/models.py:323 +#: agenda/models.py:285 #, python-format msgid "%(person)s is already on the list of speakers of item %(id)s." msgstr "" -#: agenda/models.py:327 +#: agenda/models.py:289 msgid "An anonymous user can not be on lists of speakers." msgstr "" -#: agenda/models.py:367 +#: agenda/models.py:329 msgid "Can put oneself on the list of speakers" msgstr "" -#: agenda/signals.py:36 +#: agenda/signals.py:37 msgid "Invalid input." msgstr "" -#: agenda/signals.py:54 +#: agenda/signals.py:55 msgid "Begin of event" msgstr "" -#: agenda/signals.py:55 +#: agenda/signals.py:56 msgid "Input format: DD.MM.YYYY HH:MM" msgstr "" -#: agenda/signals.py:62 +#: agenda/signals.py:63 msgid "Number of last speakers to be shown on the projector" msgstr "" -#: agenda/signals.py:70 agenda/slides.py:23 agenda/slides.py:29 -#: agenda/views.py:254 agenda/views.py:255 agenda/views.py:548 -#: agenda/views.py:564 agenda/templates/agenda/overview.html:7 +#: agenda/signals.py:71 agenda/views.py:320 agenda/views.py:321 +#: agenda/views.py:623 agenda/views.py:647 +#: agenda/templates/agenda/item_slide_summary.html:3 +#: agenda/templates/agenda/overview.html:7 #: agenda/templates/agenda/overview.html:39 #: agenda/templates/agenda/overview.html:88 -#: agenda/templates/projector/AgendaSummary.html:6 -#: agenda/templates/projector/AgendaSummary.html:10 +#: agenda/templates/agenda/widget.html:14 +#: agenda/templates/search/agenda-results.html:7 msgid "Agenda" msgstr "" -#: agenda/views.py:101 +#: agenda/views.py:109 msgid "You are not authorized to manage the agenda." msgstr "" -#: agenda/views.py:117 +#: agenda/views.py:127 msgid "Errors when reordering of the agenda" msgstr "" -#: agenda/views.py:230 +#: agenda/views.py:268 msgid "Yes, with all child items." msgstr "" -#: agenda/views.py:239 +#: agenda/views.py:280 #, python-format msgid "Item %s and his children were successfully deleted." msgstr "" -#: agenda/views.py:245 +#: agenda/views.py:286 #, python-format msgid "Item %s was successfully deleted." msgstr "" -#: agenda/views.py:280 agenda/views.py:500 +#: agenda/views.py:346 agenda/views.py:569 msgid "The list of speakers is closed." msgstr "" -#: agenda/views.py:309 +#: agenda/views.py:375 msgid "You are not on the list of speakers." msgstr "" -#: agenda/views.py:332 +#: agenda/views.py:398 msgid "Do you really want to remove yourself from the list of speakers?" msgstr "" -#: agenda/views.py:353 +#: agenda/views.py:419 #, python-format msgid "%(person)s is not on the list of %(item)s." msgstr "" -#: agenda/views.py:379 +#: agenda/views.py:445 #, python-format msgid "There is no one speaking at the moment according to %(item)s." msgstr "" -#: agenda/views.py:444 +#: agenda/views.py:510 msgid "Could not change order. Invalid data." msgstr "" -#: agenda/views.py:494 +#: agenda/views.py:563 msgid "" "There is no list of speakers for the current slide. Please choose the agenda " "item manually from the agenda." msgstr "" -#: agenda/views.py:511 +#: agenda/views.py:580 msgid "You can not put yourself on the list of speakers." msgstr "" -#: agenda/views.py:520 +#: agenda/views.py:589 #, python-format msgid "%s is now speaking." msgstr "" -#: agenda/views.py:522 +#: agenda/views.py:591 +#: agenda/templates/agenda/item_slide_list_of_speaker.html:37 #: agenda/templates/agenda/overlay_speaker_projector.html:46 -#: agenda/templates/projector/agenda_list_of_speaker.html:43 msgid "The list of speakers is empty." msgstr "" -#: agenda/views.py:530 +#: agenda/views.py:599 msgid "There is no one speaking at the moment." msgstr "" -#: agenda/views.py:533 +#: agenda/views.py:602 #, python-format msgid "%s is now finished." msgstr "" -#: agenda/views.py:576 +#: agenda/views.py:660 +#: agenda/templates/agenda/item_slide_list_of_speaker.html:20 #: agenda/templates/agenda/overlay_speaker_projector.html:33 #: agenda/templates/agenda/overlay_speaker_widget.html:4 #: agenda/templates/agenda/view.html:61 -#: agenda/templates/projector/agenda_list_of_speaker.html:24 msgid "List of speakers" msgstr "" -#: agenda/templates/agenda/edit.html:8 agenda/templates/agenda/edit.html:18 +#: agenda/templates/agenda/edit.html:9 agenda/templates/agenda/edit.html:36 #: agenda/templates/agenda/view.html:38 msgid "Edit item" msgstr "" -#: agenda/templates/agenda/edit.html:10 agenda/templates/agenda/edit.html:20 +#: agenda/templates/agenda/edit.html:11 agenda/templates/agenda/edit.html:38 #: agenda/templates/agenda/overview.html:42 msgid "New item" msgstr "" -#: agenda/templates/agenda/edit.html:23 agenda/templates/agenda/view.html:23 -#: assignment/templates/assignment/edit.html:22 -#: assignment/templates/assignment/view.html:22 +#: agenda/templates/agenda/edit.html:41 agenda/templates/agenda/view.html:23 +#: assignment/templates/assignment/assignment_detail.html:22 +#: assignment/templates/assignment/assignment_form.html:26 #: mediafile/templates/mediafile/mediafile_form.html:22 #: motion/templates/motion/category_list.html:15 -#: motion/templates/motion/motion_detail.html:27 -#: motion/templates/motion/motion_form.html:50 +#: motion/templates/motion/motion_detail.html:26 +#: motion/templates/motion/motion_form.html:58 #: motion/templates/motion/motion_form_csv_import.html:11 #: participant/templates/participant/edit.html:42 #: participant/templates/participant/group_detail.html:12 @@ -288,18 +288,18 @@ msgstr "" msgid "Back to overview" msgstr "" -#: agenda/templates/agenda/edit.html:29 +#: agenda/templates/agenda/edit.html:47 #, python-format msgid "Edit %(type)s %(name)s" msgstr "" -#: agenda/templates/agenda/edit.html:38 -#: assignment/templates/assignment/edit.html:31 -#: assignment/templates/assignment/poll_view.html:87 +#: agenda/templates/agenda/edit.html:56 +#: assignment/templates/assignment/assignment_form.html:36 +#: assignment/templates/assignment/poll_view.html:90 #: config/templates/config/config_form.html:46 #: mediafile/templates/mediafile/mediafile_form.html:33 #: motion/templates/motion/category_form.html:27 -#: motion/templates/motion/motion_form.html:59 +#: motion/templates/motion/motion_form.html:67 #: motion/templates/motion/motion_form_csv_import.html:42 #: motion/templates/motion/poll_form.html:73 #: participant/templates/participant/edit.html:56 @@ -308,12 +308,12 @@ msgstr "" msgid "Cancel" msgstr "" -#: agenda/templates/agenda/edit.html:41 -#: assignment/templates/assignment/edit.html:34 +#: agenda/templates/agenda/edit.html:59 +#: assignment/templates/assignment/assignment_form.html:39 #: config/templates/config/config_form.html:48 #: mediafile/templates/mediafile/mediafile_form.html:35 #: motion/templates/motion/category_form.html:30 -#: motion/templates/motion/motion_form.html:62 +#: motion/templates/motion/motion_form.html:70 #: motion/templates/motion/motion_form_csv_import.html:45 #: participant/templates/participant/edit.html:59 #: participant/templates/participant/group_edit.html:34 @@ -333,30 +333,30 @@ msgstr "" #: agenda/templates/agenda/item_row.html:21 #: agenda/templates/agenda/widget.html:26 -#: assignment/templates/assignment/overview.html:64 -#: assignment/templates/assignment/view.html:172 +#: assignment/templates/assignment/assignment_detail.html:174 +#: assignment/templates/assignment/assignment_list.html:65 #: assignment/templates/assignment/widget.html:10 #: mediafile/templates/mediafile/mediafile_list.html:37 #: motion/templates/motion/category_list.html:30 -#: motion/templates/motion/motion_list.html:82 +#: motion/templates/motion/motion_list.html:83 #: motion/templates/motion/widget.html:10 -#: participant/templates/participant/group_overview.html:52 +#: participant/templates/participant/group_overview.html:54 #: participant/templates/participant/group_widget.html:10 #: participant/templates/participant/overview.html:116 -#: participant/templates/participant/user_widget.html:10 +#: participant/templates/participant/user_widget.html:9 #: projector/templates/projector/custom_slide_widget.html:26 msgid "Edit" msgstr "" #: agenda/templates/agenda/item_row.html:24 #: agenda/templates/agenda/view.html:131 -#: assignment/templates/assignment/overview.html:68 -#: assignment/templates/assignment/view.html:174 +#: assignment/templates/assignment/assignment_detail.html:176 +#: assignment/templates/assignment/assignment_list.html:69 #: mediafile/templates/mediafile/mediafile_list.html:38 #: motion/templates/motion/category_list.html:33 -#: motion/templates/motion/motion_detail.html:130 -#: motion/templates/motion/motion_list.html:85 -#: participant/templates/participant/group_overview.html:56 +#: motion/templates/motion/motion_detail.html:140 +#: motion/templates/motion/motion_list.html:86 +#: participant/templates/participant/group_overview.html:58 #: participant/templates/participant/overview.html:121 #: projector/templates/projector/custom_slide_widget.html:23 msgid "Delete" @@ -387,9 +387,9 @@ msgstr "" msgid "Item closed" msgstr "" +#: agenda/templates/agenda/item_slide_list_of_speaker.html:21 #: agenda/templates/agenda/overlay_speaker_projector.html:33 #: agenda/templates/agenda/view.html:61 -#: agenda/templates/projector/agenda_list_of_speaker.html:25 msgid "closed" msgstr "" @@ -402,31 +402,34 @@ msgid "Do you want to save the changed order of agenda items?" msgstr "" #: agenda/templates/agenda/overview.html:33 -#: agenda/templates/agenda/view.html:86 assignment/models.py:285 -#: 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:717 +#: agenda/templates/agenda/view.html:86 assignment/models.py:298 +#: assignment/views.py:575 +#: assignment/templates/assignment/assignment_detail.html:210 +#: assignment/templates/assignment/assignment_detail.html:214 +#: assignment/templates/assignment/assignment_poll_slide.html:32 +#: assignment/templates/assignment/assignment_poll_slide.html:36 +#: assignment/templates/assignment/slide.html:67 +#: assignment/templates/assignment/slide.html:71 motion/models.py:712 #: motion/pdf.py:134 motion/pdf.py:276 -#: motion/templates/motion/motion_detail.html:205 -#: motion/templates/projector/Motion.html:26 utils/utils.py:46 -#: utils/views.py:169 +#: motion/templates/motion/motion_detail.html:215 +#: motion/templates/motion/slide.html:21 utils/views.py:342 msgid "Yes" msgstr "" #: agenda/templates/agenda/overview.html:34 -#: agenda/templates/agenda/view.html:87 assignment/models.py:285 -#: assignment/views.py:581 assignment/templates/assignment/view.html:209 -#: assignment/templates/projector/Assignment.html:78 motion/models.py:717 +#: agenda/templates/agenda/view.html:87 assignment/models.py:298 +#: assignment/views.py:576 +#: assignment/templates/assignment/assignment_detail.html:211 +#: assignment/templates/assignment/assignment_poll_slide.html:33 +#: assignment/templates/assignment/slide.html:68 motion/models.py:712 #: motion/pdf.py:134 motion/pdf.py:277 -#: motion/templates/motion/motion_detail.html:206 -#: motion/templates/projector/Motion.html:27 utils/utils.py:46 -#: utils/views.py:169 +#: motion/templates/motion/motion_detail.html:216 +#: motion/templates/motion/slide.html:22 utils/views.py:342 msgid "No" msgstr "" #: agenda/templates/agenda/overview.html:42 -#: assignment/templates/assignment/overview.html:21 +#: assignment/templates/assignment/assignment_list.html:22 #: mediafile/templates/mediafile/mediafile_list.html:12 #: motion/templates/motion/category_list.html:13 #: motion/templates/motion/motion_list.html:24 @@ -471,10 +474,10 @@ msgid "Duration" msgstr "" #: agenda/templates/agenda/overview.html:83 -#: assignment/templates/assignment/overview.html:35 +#: assignment/templates/assignment/assignment_list.html:36 #: mediafile/templates/mediafile/mediafile_list.html:24 #: motion/templates/motion/category_list.html:23 -#: motion/templates/motion/motion_detail.html:106 +#: motion/templates/motion/motion_detail.html:116 #: motion/templates/motion/motion_list.html:47 #: participant/templates/participant/group_overview.html:32 #: participant/templates/participant/overview.html:56 @@ -509,13 +512,12 @@ msgid "End speach" msgstr "" #: agenda/templates/agenda/view.html:27 -#: motion/templates/motion/motion_detail.html:26 msgid "Show item" msgstr "" #: agenda/templates/agenda/view.html:34 -#: assignment/templates/assignment/view.html:33 -#: motion/templates/motion/motion_detail.html:40 +#: assignment/templates/assignment/assignment_detail.html:35 +#: motion/templates/motion/motion_detail.html:39 #: participant/templates/participant/group_detail.html:22 #: participant/templates/participant/user_detail.html:22 msgid "More actions" @@ -570,8 +572,8 @@ msgid "Put me on the list" msgstr "" #: agenda/templates/agenda/view.html:155 -#: assignment/templates/assignment/poll_view.html:84 -#: assignment/templates/assignment/view.html:111 +#: assignment/templates/assignment/assignment_detail.html:113 +#: assignment/templates/assignment/poll_view.html:87 #: motion/templates/motion/poll_form.html:70 #: projector/templates/projector/overlay_message_widget.html:9 #: templates/formbuttons_saveapply.html:7 @@ -579,19 +581,17 @@ msgid "Apply" msgstr "" #: agenda/templates/agenda/view.html:157 -#: assignment/templates/assignment/view.html:114 +#: assignment/templates/assignment/assignment_detail.html:116 msgid "Add new participant" msgstr "" #: agenda/templates/agenda/widget.html:8 #: agenda/templates/agenda/widget.html:23 #: assignment/templates/assignment/widget.html:7 -#: motion/templates/motion/motion_detail.html:126 -#: motion/templates/motion/motion_list.html:77 +#: motion/templates/motion/motion_detail.html:136 #: motion/templates/motion/widget.html:7 -#: participant/templates/participant/group_overview.html:48 #: participant/templates/participant/group_widget.html:7 -#: participant/templates/participant/user_widget.html:7 +#: participant/templates/participant/user_widget.html:6 #: projector/templates/projector/custom_slide_widget.html:6 #: projector/templates/projector/custom_slide_widget.html:19 msgid "Show" @@ -602,15 +602,15 @@ msgstr "" #: assignment/templates/assignment/widget.html:13 #: motion/templates/motion/widget.html:13 #: participant/templates/participant/group_widget.html:13 -#: participant/templates/participant/user_widget.html:13 +#: participant/templates/participant/user_widget.html:12 #: projector/templates/projector/custom_slide_widget.html:9 #: projector/templates/projector/custom_slide_widget.html:29 msgid "Preview" msgstr "" -#: assignment/forms.py:24 assignment/models.py:50 assignment/views.py:370 -#: assignment/templates/assignment/view.html:277 -#: assignment/templates/projector/Assignment.html:20 +#: assignment/forms.py:24 assignment/models.py:61 assignment/views.py:367 +#: assignment/templates/assignment/assignment_detail.html:279 +#: assignment/templates/assignment/slide.html:10 msgid "Number of available posts" msgstr "" @@ -618,277 +618,253 @@ msgstr "" msgid "Nominate a participant" msgstr "" -#: assignment/models.py:41 -msgid "assignment" -msgstr "" - -#: assignment/models.py:43 assignment/templates/assignment/view.html:286 +#: assignment/models.py:54 +#: assignment/templates/assignment/assignment_detail.html:288 msgid "Searching for candidates" msgstr "" -#: assignment/models.py:44 assignment/templates/assignment/view.html:290 +#: assignment/models.py:55 +#: assignment/templates/assignment/assignment_detail.html:292 msgid "Voting" msgstr "" -#: assignment/models.py:45 assignment/templates/assignment/view.html:294 +#: assignment/models.py:56 +#: assignment/templates/assignment/assignment_detail.html:296 msgid "Finished" msgstr "" -#: assignment/models.py:48 participant/templates/participant/overview.html:49 +#: assignment/models.py:59 participant/templates/participant/overview.html:49 msgid "Name" msgstr "" -#: assignment/models.py:49 assignment/templates/assignment/view.html:55 -#: participant/models.py:139 +#: assignment/models.py:60 +#: assignment/templates/assignment/assignment_detail.html:57 +#: participant/models.py:130 msgid "Description" msgstr "" -#: assignment/models.py:53 +#: assignment/models.py:64 msgid "Comment on the ballot paper" msgstr "" -#: assignment/models.py:63 +#: assignment/models.py:69 +msgid "Can see assignments" +msgstr "" + +#: assignment/models.py:70 +msgid "Can nominate another person" +msgstr "" + +#: assignment/models.py:71 +msgid "Can nominate oneself" +msgstr "" + +#: assignment/models.py:72 +msgid "Can manage assignments" +msgstr "" + +#: assignment/models.py:97 #, python-format msgid "%s is not a valid status." msgstr "" -#: assignment/models.py:66 +#: assignment/models.py:100 #, python-format msgid "The assignment status is already %s." msgstr "" -#: assignment/models.py:79 +#: assignment/models.py:113 #, python-format msgid "%s is already a candidate." msgstr "" -#: assignment/models.py:81 assignment/views.py:183 +#: assignment/models.py:115 assignment/views.py:167 msgid "The candidate list is already closed." msgstr "" -#: assignment/models.py:88 +#: assignment/models.py:122 #, python-format msgid "%s does not want to be a candidate." msgstr "" -#: assignment/models.py:102 +#: assignment/models.py:136 #, python-format msgid "%s is no candidate" msgstr "" -#: assignment/models.py:239 -msgid "Can see assignments" +#: assignment/models.py:245 assignment/views.py:319 +msgid "Assignment" msgstr "" -#: assignment/models.py:240 -msgid "Can nominate another person" -msgstr "" - -#: assignment/models.py:241 -msgid "Can nominate oneself" -msgstr "" - -#: assignment/models.py:242 -msgid "Can manage assignments" -msgstr "" - -#: assignment/models.py:285 motion/models.py:717 -msgid "Abstain" -msgstr "" - -#: assignment/models.py:287 motion/templates/motion/poll_form.html:38 -msgid "Votes" -msgstr "" - -#: assignment/models.py:304 +#: assignment/models.py:269 #, python-format msgid "Ballot %d" msgstr "" -#: assignment/signals.py:31 +#: assignment/models.py:298 motion/models.py:712 +msgid "Abstain" +msgstr "" + +#: assignment/models.py:300 motion/templates/motion/poll_form.html:38 +msgid "Votes" +msgstr "" + +#: assignment/signals.py:32 msgid "Only publish voting results for selected winners (Projector view only)" msgstr "" -#: assignment/signals.py:39 motion/signals.py:62 +#: assignment/signals.py:40 motion/signals.py:63 msgid "Number of ballot papers (selection)" msgstr "" -#: assignment/signals.py:41 motion/signals.py:64 +#: assignment/signals.py:42 motion/signals.py:65 msgid "Number of all delegates" msgstr "" -#: assignment/signals.py:42 motion/signals.py:65 +#: assignment/signals.py:43 motion/signals.py:66 msgid "Number of all participants" msgstr "" -#: assignment/signals.py:43 motion/signals.py:66 +#: assignment/signals.py:44 motion/signals.py:67 msgid "Use the following custom number" msgstr "" -#: assignment/signals.py:51 motion/signals.py:74 +#: assignment/signals.py:52 motion/signals.py:75 msgid "Custom number of ballot papers" msgstr "" -#: assignment/signals.py:54 assignment/signals.py:78 assignment/views.py:325 -#: assignment/views.py:630 assignment/views.py:646 -#: assignment/templates/assignment/overview.html:6 -#: assignment/templates/assignment/overview.html:18 +#: assignment/signals.py:55 assignment/signals.py:79 assignment/views.py:322 +#: assignment/views.py:625 assignment/views.py:641 +#: assignment/templates/assignment/assignment_list.html:7 +#: assignment/templates/assignment/assignment_list.html:19 msgid "Elections" msgstr "" -#: assignment/signals.py:58 +#: assignment/signals.py:59 msgid "Title for PDF document (all elections)" msgstr "" -#: assignment/signals.py:65 +#: assignment/signals.py:66 msgid "Preamble text for PDF document (all elections)" msgstr "" -#: assignment/signals.py:72 +#: assignment/signals.py:73 msgid "Election method" msgstr "" -#: assignment/signals.py:74 +#: assignment/signals.py:75 msgid "Automatic assign of method" msgstr "" -#: assignment/signals.py:75 +#: assignment/signals.py:76 msgid "Always one option per candidate" msgstr "" -#: assignment/signals.py:76 +#: assignment/signals.py:77 msgid "Always Yes-No-Abstain per candidate" msgstr "" -#: assignment/views.py:67 +#: assignment/views.py:90 #, python-format -msgid "Candidate %s was nominated successfully." +msgid "Candidate %s was nominated successfully." msgstr "" -#: assignment/views.py:109 -msgid "New election was successfully created." -msgstr "" - -#: assignment/views.py:111 -msgid "Election was successfully modified." -msgstr "" - -#: assignment/views.py:117 participant/views.py:499 participant/views.py:523 -#: utils/views.py:319 utils/views.py:341 utils/views.py:351 -msgid "Please check the form for errors." -msgstr "" - -#: assignment/views.py:137 +#: assignment/views.py:129 #, python-format -msgid "Election %s was successfully deleted." +msgid "Election status was set to: %s." msgstr "" -#: assignment/views.py:150 -#, python-format -msgid "Election status was set to: %s." -msgstr "" - -#: assignment/views.py:163 +#: assignment/views.py:146 msgid "You have set your candidature successfully." msgstr "" -#: assignment/views.py:180 +#: assignment/views.py:164 msgid "" "You have withdrawn your candidature successfully. You can not be nominated " "by other participants anymore." msgstr "" -#: assignment/views.py:202 +#: assignment/views.py:177 #, python-format -msgid "Candidate %s was withdrawn successfully." +msgid "Do you really want to withdraw %s from the election?" msgstr "" -#: assignment/views.py:204 +#: assignment/views.py:179 #, python-format -msgid "%s was unblocked successfully." +msgid "Do you really want to unblock %s for the election?" msgstr "" -#: assignment/views.py:208 +#: assignment/views.py:198 #, python-format -msgid "Do you really want to withdraw %s from the election?" +msgid "Candidate %s was withdrawn successfully." msgstr "" -#: assignment/views.py:210 +#: assignment/views.py:200 #, python-format -msgid "Do you really want to unblock %s for the election?" +msgid "%s was unblocked successfully." msgstr "" -#: assignment/views.py:225 +#: assignment/views.py:216 msgid "New ballot was successfully created." msgstr "" -#: assignment/views.py:257 +#: assignment/views.py:252 #, python-format msgid "Ballot ID %d does not exist." msgstr "" -#: assignment/views.py:264 -msgid "Ballot successfully published." -msgstr "" - -#: assignment/views.py:266 -msgid "Ballot successfully unpublished." -msgstr "" - -#: assignment/views.py:279 +#: assignment/views.py:277 msgid "not elected" msgstr "" -#: assignment/views.py:282 assignment/views.py:471 -#: assignment/templates/assignment/view.html:75 +#: assignment/views.py:281 assignment/views.py:471 +#: assignment/templates/assignment/assignment_detail.html:77 msgid "elected" msgstr "" -#: assignment/views.py:310 +#: assignment/views.py:307 msgid "Ballot was successfully deleted." msgstr "" -#: assignment/views.py:322 -msgid "Assignment" -msgstr "" - -#: assignment/views.py:345 assignment/templates/assignment/widget.html:19 +#: assignment/views.py:342 assignment/templates/assignment/widget.html:19 msgid "No assignments available." msgstr "" -#: assignment/views.py:364 +#: assignment/views.py:361 #, python-format msgid "Election: %s" msgstr "" -#: 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: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 +#: assignment/views.py:374 assignment/views.py:410 +#: assignment/templates/assignment/assignment_detail.html:66 +#: assignment/templates/assignment/assignment_detail.html:158 +#: assignment/templates/assignment/assignment_list.html:34 +#: assignment/templates/assignment/assignment_list.html:48 +#: assignment/templates/assignment/poll_view.html:38 +#: assignment/templates/assignment/slide.html:29 +#: assignment/templates/assignment/slide.html:46 msgid "Candidates" msgstr "" -#: assignment/views.py:402 motion/pdf.py:120 -#: motion/templates/motion/motion_detail.html:192 +#: assignment/views.py:399 motion/pdf.py:120 +#: motion/templates/motion/motion_detail.html:202 msgid "Vote results" msgstr "" -#: 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 +#: assignment/views.py:403 +#: assignment/templates/assignment/assignment_detail.html:161 +#: assignment/templates/assignment/assignment_poll_slide.html:12 +#: assignment/templates/assignment/poll_view.html:7 +#: assignment/templates/assignment/poll_view.html:13 +#: assignment/templates/assignment/slide.html:49 msgid "ballot" msgstr "" -#: assignment/views.py:409 +#: assignment/views.py:406 msgid "ballots" msgstr "" -#: assignment/views.py:434 +#: assignment/views.py:431 #, python-format msgid "" "Y: %(YES)s\n" @@ -896,235 +872,252 @@ msgid "" "A: %(ABSTAIN)s" msgstr "" -#: assignment/views.py:445 assignment/templates/assignment/poll_view.html:52 -#: assignment/templates/assignment/view.html:226 -#: assignment/templates/projector/Assignment.html:95 +#: assignment/views.py:442 +#: assignment/templates/assignment/assignment_detail.html:228 +#: assignment/templates/assignment/poll_view.html:55 +#: assignment/templates/assignment/slide.html:85 #: motion/templates/motion/poll_form.html:47 msgid "Invalid votes" msgstr "" -#: 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:210 +#: assignment/views.py:449 +#: assignment/templates/assignment/assignment_detail.html:244 +#: assignment/templates/assignment/assignment_detail.html:249 +#: assignment/templates/assignment/assignment_poll_slide.html:58 +#: assignment/templates/assignment/poll_view.html:65 +#: assignment/templates/assignment/slide.html:98 +#: assignment/templates/assignment/slide.html:103 motion/pdf.py:135 +#: motion/templates/motion/motion_detail.html:220 #: motion/templates/motion/poll_form.html:51 -#: motion/templates/projector/Motion.html:31 poll/models.py:76 +#: motion/templates/motion/slide.html:26 poll/models.py:77 msgid "Votes cast" msgstr "" -#: assignment/views.py:512 assignment/views.py:530 -#: assignment/templates/assignment/overview.html:32 -#: assignment/templates/assignment/poll_view.html:6 -#: assignment/templates/assignment/view.html:8 -#: assignment/templates/projector/Assignment.html:26 +#: assignment/views.py:507 assignment/views.py:525 +#: assignment/templates/assignment/assignment_detail.html:8 +#: assignment/templates/assignment/assignment_list.html:33 +#: assignment/templates/assignment/assignment_poll_slide.html:10 +#: assignment/templates/assignment/poll_view.html:7 +#: assignment/templates/assignment/slide.html:18 +#: assignment/templates/search/assignment-results.html:7 msgid "Election" msgstr "" -#: assignment/views.py:537 +#: assignment/views.py:532 #, python-format msgid "%d. ballot" msgstr "" -#: assignment/views.py:539 +#: assignment/views.py:534 #, python-format msgid "%d candidate" msgid_plural "%d candidates" msgstr[0] "" msgstr[1] "" -#: assignment/views.py:541 +#: assignment/views.py:536 #, python-format msgid "%d available post" msgid_plural "%d available posts" msgstr[0] "" msgstr[1] "" -#: assignment/views.py:581 assignment/templates/assignment/view.html:210 -#: assignment/templates/projector/Assignment.html:79 motion/pdf.py:134 -#: motion/pdf.py:278 motion/templates/motion/motion_detail.html:207 -#: motion/templates/projector/Motion.html:28 +#: assignment/views.py:576 +#: assignment/templates/assignment/assignment_detail.html:212 +#: assignment/templates/assignment/assignment_poll_slide.html:34 +#: assignment/templates/assignment/slide.html:69 motion/pdf.py:134 +#: motion/pdf.py:278 motion/templates/motion/motion_detail.html:217 +#: motion/templates/motion/slide.html:23 msgid "Abstention" msgstr "" -#: assignment/templates/assignment/edit.html:7 -#: assignment/templates/assignment/edit.html:17 -#: assignment/templates/assignment/view.html:38 +#: assignment/templates/assignment/assignment_detail.html:23 +#: assignment/templates/assignment/assignment_list.html:74 +msgid "Print election as PDF" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:28 +#: assignment/templates/assignment/assignment_list.html:59 +#: assignment/templates/assignment/poll_view.html:21 +msgid "Show election" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:40 +#: assignment/templates/assignment/assignment_form.html:8 +#: assignment/templates/assignment/assignment_form.html:18 msgid "Edit election" msgstr "" -#: assignment/templates/assignment/edit.html:9 -#: assignment/templates/assignment/edit.html:19 -#: assignment/templates/assignment/overview.html:21 -msgid "New election" +#: assignment/templates/assignment/assignment_detail.html:42 +msgid "Delete election" msgstr "" -#: assignment/templates/assignment/overview.html:24 -msgid "Print all elections as PDF" +#: assignment/templates/assignment/assignment_detail.html:46 +#: motion/templates/motion/motion_detail.html:54 +msgid "New agenda item" msgstr "" -#: assignment/templates/assignment/overview.html:34 -#: assignment/templates/assignment/view.html:274 -#: assignment/templates/projector/Assignment.html:17 -#: motion/templates/motion/motion_detail.html:187 +#: assignment/templates/assignment/assignment_detail.html:73 +#: assignment/templates/assignment/assignment_detail.html:133 +msgid "Remove candidate" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:80 +msgid "Mark candidate as not elected" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:88 +#: assignment/templates/assignment/slide.html:35 +msgid "No candidates available." +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:98 +msgid "Withdraw self candidature" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:102 +msgid "Self candidature" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:127 +msgid "Blocked Candidates" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:138 +msgid "No blocked candidates available." +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:146 +#: assignment/templates/assignment/slide.html:43 +msgid "Election results" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:153 +msgid "Ballot" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:166 +msgid "Publish results" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:183 +#: assignment/templates/assignment/assignment_detail.html:265 +msgid "New ballot" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:194 +msgid "Mark candidate as elected" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:197 +#: assignment/templates/assignment/slide.html:58 +msgid "Candidate is elected" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:216 +#: assignment/templates/assignment/slide.html:73 +msgid "was not a
    candidate" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:233 +#: assignment/templates/assignment/assignment_poll_slide.html:49 +#: assignment/templates/assignment/slide.html:89 motion/pdf.py:134 +#: motion/templates/motion/motion_detail.html:218 +#: motion/templates/motion/slide.html:24 +msgid "Invalid" +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:261 +msgid "No ballots available." +msgstr "" + +#: assignment/templates/assignment/assignment_detail.html:276 +#: assignment/templates/assignment/assignment_list.html:35 +#: assignment/templates/assignment/slide.html:8 +#: motion/templates/motion/motion_detail.html:197 #: motion/templates/motion/motion_list.html:41 -#: motion/templates/projector/Motion.html:11 +#: motion/templates/motion/slide.html:7 msgid "Status" msgstr "" -#: assignment/templates/assignment/overview.html:43 +#: assignment/templates/assignment/assignment_detail.html:285 +msgid "Change status" +msgstr "" + +#: assignment/templates/assignment/assignment_form.html:10 +#: assignment/templates/assignment/assignment_form.html:20 +#: assignment/templates/assignment/assignment_list.html:22 +msgid "New election" +msgstr "" + +#: assignment/templates/assignment/assignment_form.html:24 +#: assignment/templates/assignment/poll_view.html:16 +msgid "Back to election" +msgstr "" + +#: assignment/templates/assignment/assignment_list.html:25 +msgid "Print all elections as PDF" +msgstr "" + +#: assignment/templates/assignment/assignment_list.html:44 msgctxt "Number of searched candidates for an election" msgid "Posts" msgstr "" -#: assignment/templates/assignment/overview.html:50 +#: assignment/templates/assignment/assignment_list.html:51 msgid "Elected" msgstr "" -#: assignment/templates/assignment/overview.html:58 -#: assignment/templates/assignment/poll_view.html:18 -#: assignment/templates/assignment/view.html:26 -msgid "Show election" +#: assignment/templates/assignment/assignment_poll_slide.html:11 +msgid "Election result" msgstr "" -#: assignment/templates/assignment/overview.html:73 -#: assignment/templates/assignment/view.html:23 -msgid "Print election as PDF" +#: assignment/templates/assignment/assignment_poll_slide.html:70 +msgid "No vote result available." msgstr "" -#: assignment/templates/assignment/poll_view.html:15 -msgid "Back to election" -msgstr "" - -#: assignment/templates/assignment/poll_view.html:26 +#: assignment/templates/assignment/poll_view.html:29 msgid "Short description (for ballot paper)" msgstr "" -#: assignment/templates/assignment/poll_view.html:30 +#: assignment/templates/assignment/poll_view.html:33 #: motion/templates/motion/poll_form.html:30 msgid "Special values" msgstr "" -#: assignment/templates/assignment/poll_view.html:30 -#: motion/templates/motion/poll_form.html:30 poll/models.py:234 +#: assignment/templates/assignment/poll_view.html:33 +#: motion/templates/motion/poll_form.html:30 poll/models.py:235 msgid "majority" msgstr "" -#: assignment/templates/assignment/poll_view.html:30 -#: motion/templates/motion/poll_form.html:30 poll/models.py:236 -#: poll/models.py:238 +#: assignment/templates/assignment/poll_view.html:33 +#: motion/templates/motion/poll_form.html:30 poll/models.py:237 +#: poll/models.py:239 msgid "undocumented" msgstr "" -#: assignment/templates/assignment/poll_view.html:75 +#: assignment/templates/assignment/poll_view.html:78 #: motion/templates/motion/poll_form.html:61 msgid "Ballot paper as PDF" msgstr "" -#: assignment/templates/assignment/poll_view.html:81 +#: assignment/templates/assignment/poll_view.html:84 #: 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 "" -#: assignment/templates/assignment/view.html:40 -msgid "Delete election" -msgstr "" - -#: assignment/templates/assignment/view.html:44 -#: motion/templates/motion/motion_detail.html:55 -msgid "New agenda item" -msgstr "" - -#: assignment/templates/assignment/view.html:71 -#: assignment/templates/assignment/view.html:131 -msgid "Remove candidate" -msgstr "" - -#: assignment/templates/assignment/view.html:78 -msgid "Mark candidate as not elected" -msgstr "" - -#: assignment/templates/assignment/view.html:86 -#: assignment/templates/projector/Assignment.html:43 -msgid "No candidates available." -msgstr "" - -#: assignment/templates/assignment/view.html:96 -msgid "Withdraw self candidature" -msgstr "" - -#: assignment/templates/assignment/view.html:100 -msgid "Self candidature" -msgstr "" - -#: assignment/templates/assignment/view.html:125 -msgid "Blocked Candidates" -msgstr "" - -#: assignment/templates/assignment/view.html:136 -msgid "No blocked candidates available." -msgstr "" - -#: assignment/templates/assignment/view.html:144 -#: assignment/templates/projector/Assignment.html:51 -msgid "Election results" -msgstr "" - -#: assignment/templates/assignment/view.html:151 -msgid "Ballot" -msgstr "" - -#: assignment/templates/assignment/view.html:164 -msgid "Publish results" -msgstr "" - -#: assignment/templates/assignment/view.html:181 -#: assignment/templates/assignment/view.html:263 -msgid "New ballot" -msgstr "" - -#: assignment/templates/assignment/view.html:192 -msgid "Mark candidate as elected" -msgstr "" - -#: assignment/templates/assignment/view.html:195 -#: assignment/templates/projector/Assignment.html:68 -msgid "Candidate is elected" -msgstr "" - -#: assignment/templates/assignment/view.html:214 -#: assignment/templates/projector/Assignment.html:83 -msgid "was not a
    candidate" -msgstr "" - -#: assignment/templates/assignment/view.html:231 -#: assignment/templates/projector/Assignment.html:99 motion/pdf.py:134 -#: motion/templates/motion/motion_detail.html:208 -#: motion/templates/projector/Motion.html:29 -msgid "Invalid" -msgstr "" - -#: assignment/templates/assignment/view.html:259 -msgid "No ballots available." -msgstr "" - -#: assignment/templates/assignment/view.html:283 -msgid "Change status" -msgstr "" - #: config/models.py:31 msgid "Can manage configuration" msgstr "" -#: config/views.py:118 +#: config/views.py:119 #, python-format msgid "%s settings successfully saved." msgstr "" -#: config/views.py:127 config/templates/config/config_form.html:6 +#: config/views.py:128 config/templates/config/config_form.html:6 #: config/templates/config/config_form.html:10 msgid "Configuration" msgstr "" @@ -1161,7 +1154,7 @@ msgstr "" msgid "[Place for your welcome text.]" msgstr "" -#: core/signals.py:84 participant/signals.py:47 +#: core/signals.py:84 participant/signals.py:48 msgid "Welcome text" msgstr "" @@ -1185,16 +1178,33 @@ msgstr "" msgid "General" msgstr "" +#: core/templates/core/search.html:5 core/templates/core/search.html.py:13 +#: core/templates/core/search.html:16 templates/base.html:34 +msgid "Search" +msgstr "" + +#: core/templates/core/search.html:8 +msgid "Search results" +msgstr "" + +#: core/templates/core/search.html:19 +msgid "Filter" +msgstr "" + +#: core/templates/core/search.html:45 +msgid "No results found." +msgstr "" + #: core/templates/core/version.html:5 core/templates/core/version.html.py:8 -#: core/templates/core/version.html:11 motion/pdf.py:104 motion/views.py:367 +#: core/templates/core/version.html:11 motion/pdf.py:104 motion/views.py:377 #: motion/templates/motion/motion_detail.html:21 #: motion/templates/motion/motion_diff.html:35 #: motion/templates/motion/motion_diff.html:39 -#: motion/templates/projector/Motion.html:60 +#: motion/templates/motion/slide.html:59 msgid "Version" msgstr "" -#: mediafile/models.py:26 +#: mediafile/models.py:26 mediafile/templates/search/mediafile-results.html:7 msgid "File" msgstr "" @@ -1218,7 +1228,7 @@ msgstr "" msgid "unknown" msgstr "" -#: mediafile/views.py:101 mediafile/templates/mediafile/mediafile_list.html:6 +#: mediafile/views.py:103 mediafile/templates/mediafile/mediafile_list.html:6 #: mediafile/templates/mediafile/mediafile_list.html:9 msgid "Files" msgstr "" @@ -1246,123 +1256,124 @@ msgstr "" msgid "No files available." msgstr "" -#: motion/csv_import.py:48 participant/api.py:114 +#: motion/csv_import.py:49 participant/api.py:114 msgid "Import file has wrong character encoding, only UTF-8 is supported!" msgstr "" -#: motion/csv_import.py:66 motion/csv_import.py:79 motion/csv_import.py:117 +#: motion/csv_import.py:67 motion/csv_import.py:80 motion/csv_import.py:118 #, python-format msgid "Line %d of import file:" msgstr "" -#: motion/csv_import.py:67 +#: motion/csv_import.py:68 msgid "" "Line is malformed. Motion not imported. Please check the required values." msgstr "" -#: motion/csv_import.py:80 +#: motion/csv_import.py:81 msgid "Identifier already exists. Motion not imported." msgstr "" -#: motion/csv_import.py:94 +#: motion/csv_import.py:95 msgid "Category unknown. No category is used." msgstr "" -#: motion/csv_import.py:96 +#: motion/csv_import.py:97 msgid "Several suitable categories found. No category is used." msgstr "" -#: motion/csv_import.py:105 +#: motion/csv_import.py:106 msgid "Several suitable submitters found." msgstr "" -#: motion/csv_import.py:112 +#: motion/csv_import.py:113 msgid "Submitter unknown. Default submitter is used." msgstr "" -#: motion/csv_import.py:126 +#: motion/csv_import.py:127 msgid "Motion imported" msgstr "" -#: motion/forms.py:44 motion/models.py:560 motion/pdf.py:157 -#: motion/templates/motion/motion_detail.html:89 +#: motion/forms.py:47 motion/models.py:552 motion/pdf.py:157 +#: motion/templates/motion/motion_detail.html:88 #: motion/templates/motion/motion_diff.html:54 -#: motion/templates/projector/Motion.html:72 +#: motion/templates/motion/slide.html:68 msgid "Reason" msgstr "" -#: motion/forms.py:72 motion/pdf.py:58 -#: motion/templates/motion/motion_detail.html:167 +#: motion/forms.py:55 motion/templates/motion/motion_detail.html:95 +msgid "Attachments" +msgstr "" + +#: motion/forms.py:85 motion/pdf.py:58 +#: motion/templates/motion/motion_detail.html:177 #: motion/templates/motion/motion_list.html:42 -#: motion/templates/projector/Motion.html:45 +#: motion/templates/motion/slide.html:39 msgid "Submitter" msgstr "" -#: motion/forms.py:87 motion/pdf.py:83 -#: motion/templates/motion/motion_detail.html:174 +#: motion/forms.py:100 motion/pdf.py:83 +#: motion/templates/motion/motion_detail.html:184 #: motion/templates/motion/motion_list.html:44 msgid "Supporters" msgstr "" -#: motion/forms.py:102 +#: motion/forms.py:115 msgid "Don't create a new version" msgstr "" -#: motion/forms.py:103 +#: motion/forms.py:116 msgid "Don't create a new version. Useful e.g. for trivial changes." msgstr "" -#: motion/forms.py:116 motion/templates/motion/motion_detail.html:232 +#: motion/forms.py:129 motion/templates/motion/motion_detail.html:242 #: motion/templates/motion/motion_list.html:40 +#: motion/templates/motion/slide.html:48 msgid "Category" msgstr "" -#: motion/forms.py:136 motion/signals.py:115 +#: motion/forms.py:149 motion/signals.py:116 msgid "Identifier" msgstr "" -#: motion/forms.py:151 +#: motion/forms.py:164 msgid "Workflow" msgstr "" -#: motion/forms.py:152 +#: motion/forms.py:165 msgid "" "Set a specific workflow to switch to it. If you do so, the state of the " "motion will be reset." msgstr "" -#: motion/forms.py:162 participant/forms.py:179 +#: motion/forms.py:175 participant/forms.py:181 msgid "CSV File" msgstr "" -#: motion/forms.py:163 +#: motion/forms.py:176 msgid "The file has to be encoded in UTF-8." msgstr "" -#: motion/forms.py:170 +#: motion/forms.py:183 msgid "Override existing motions with the same identifier" msgstr "" -#: motion/forms.py:171 +#: motion/forms.py:184 msgid "" "If this is active, every motion with the same identifier as in your csv file " "will be overridden." msgstr "" -#: motion/forms.py:179 +#: motion/forms.py:192 msgid "Default submitter" msgstr "" -#: motion/forms.py:180 +#: motion/forms.py:193 msgid "" "This person is used as submitter for any line of your csv file which does " "not contain valid submitter data." msgstr "" -#: motion/models.py:46 -msgid "motion" -msgstr "" - #: motion/models.py:92 msgid "Can see motions" msgstr "" @@ -1379,38 +1390,38 @@ msgstr "" msgid "Can manage motions" msgstr "" -#: motion/models.py:487 motion/models.py:488 motion/pdf.py:51 -#: motion/signals.py:121 motion/views.py:292 motion/views.py:621 -#: motion/views.py:737 motion/templates/motion/motion_detail.html:8 +#: motion/models.py:98 motion/models.py:479 motion/models.py:480 +#: motion/pdf.py:51 motion/signals.py:122 motion/views.py:303 +#: motion/views.py:626 motion/views.py:732 +#: motion/templates/motion/motion_detail.html:8 #: motion/templates/motion/motion_detail.html:19 #: motion/templates/motion/motion_diff.html:6 #: motion/templates/motion/motion_diff.html:19 #: motion/templates/motion/poll_form.html:6 #: motion/templates/motion/poll_form.html:14 -#: motion/templates/projector/Motion.html:6 -#: motion/templates/projector/Motion.html:55 -#: motion/templates/projector/Motion.html:57 +#: motion/templates/motion/slide.html:58 +#: motion/templates/search/motion-results.html:7 msgid "Motion" msgstr "" -#: motion/models.py:574 +#: motion/models.py:566 msgid "new" msgstr "" -#: motion/models.py:625 motion/templates/motion/category_list.html:22 +#: motion/models.py:620 motion/templates/motion/category_list.html:22 msgid "Category name" msgstr "" -#: motion/models.py:628 motion/templates/motion/category_list.html:21 +#: motion/models.py:623 motion/templates/motion/category_list.html:21 msgid "Prefix" msgstr "" -#: motion/models.py:680 +#: motion/models.py:675 #, python-format msgid "%(time_and_messages)s by %(person)s" msgstr "" -#: motion/models.py:731 +#: motion/models.py:726 #, python-format msgid "Vote %d" msgstr "" @@ -1423,7 +1434,7 @@ msgstr "" msgid "State" msgstr "" -#: motion/pdf.py:130 motion/templates/projector/Motion.html:22 +#: motion/pdf.py:130 motion/templates/motion/slide.html:17 msgid "Vote" msgstr "" @@ -1446,275 +1457,275 @@ msgstr "" msgid "%d. Vote" msgstr "" -#: motion/signals.py:33 +#: motion/signals.py:34 msgid "Stop submitting new motions by non-staff users" msgstr "" -#: motion/signals.py:40 +#: motion/signals.py:41 msgid "Number of (minimum) required supporters for a motion" msgstr "" -#: motion/signals.py:42 +#: motion/signals.py:43 msgid "Choose 0 to disable the supporting system." msgstr "" -#: motion/signals.py:47 +#: motion/signals.py:48 msgid "" "Remove all supporters of a motion if a submitter edits his motion in early " "state" msgstr "" -#: motion/signals.py:51 +#: motion/signals.py:52 msgid "The assembly may decide," msgstr "" -#: motion/signals.py:55 +#: motion/signals.py:56 msgid "Motion preamble" msgstr "" -#: motion/signals.py:77 motion/views.py:730 motion/views.py:832 -#: motion/views.py:848 motion/templates/motion/category_list.html:6 +#: motion/signals.py:78 motion/views.py:725 motion/views.py:827 +#: motion/views.py:843 motion/templates/motion/category_list.html:6 #: motion/templates/motion/motion_list.html:7 #: motion/templates/motion/motion_list.html:20 msgid "Motions" msgstr "" -#: motion/signals.py:81 +#: motion/signals.py:82 msgid "Title for PDF document (all motions)" msgstr "" -#: motion/signals.py:88 +#: motion/signals.py:89 msgid "Preamble text for PDF document (all motions)" msgstr "" -#: motion/signals.py:93 -msgid "Show paragraph numbering" +#: motion/signals.py:94 +msgid "Show paragraph numbering (only in PDF)" msgstr "" -#: motion/signals.py:99 +#: motion/signals.py:100 msgid "Allow to disable versioning" msgstr "" -#: motion/signals.py:106 +#: motion/signals.py:107 msgid "Workflow of new motions" msgstr "" -#: motion/signals.py:117 +#: motion/signals.py:118 msgid "Numbered per category" msgstr "" -#: motion/signals.py:118 +#: motion/signals.py:119 msgid "Serially numbered" msgstr "" -#: motion/signals.py:119 +#: motion/signals.py:120 msgid "Set it manually" msgstr "" -#: motion/signals.py:144 +#: motion/signals.py:145 msgid "Simple Workflow" msgstr "" -#: motion/signals.py:146 +#: motion/signals.py:147 msgid "submitted" msgstr "" -#: motion/signals.py:151 motion/signals.py:178 +#: motion/signals.py:152 motion/signals.py:179 msgid "accepted" msgstr "" -#: motion/signals.py:153 motion/signals.py:180 +#: motion/signals.py:154 motion/signals.py:181 msgid "Accept" msgstr "" -#: motion/signals.py:154 motion/signals.py:182 +#: motion/signals.py:155 motion/signals.py:183 msgid "rejected" msgstr "" -#: motion/signals.py:156 motion/signals.py:184 +#: motion/signals.py:157 motion/signals.py:185 msgid "Reject" msgstr "" -#: motion/signals.py:157 +#: motion/signals.py:158 msgid "not decided" msgstr "" -#: motion/signals.py:159 +#: motion/signals.py:160 msgid "Do not decide" msgstr "" -#: motion/signals.py:164 +#: motion/signals.py:165 msgid "Complex Workflow" msgstr "" -#: motion/signals.py:166 +#: motion/signals.py:167 msgid "published" msgstr "" -#: motion/signals.py:171 motion/views.py:369 +#: motion/signals.py:172 motion/views.py:379 msgid "permitted" msgstr "" -#: motion/signals.py:173 +#: motion/signals.py:174 msgid "Permit" msgstr "" -#: motion/signals.py:186 +#: motion/signals.py:187 msgid "withdrawed" msgstr "" -#: motion/signals.py:188 +#: motion/signals.py:189 msgid "Withdraw" msgstr "" -#: motion/signals.py:190 +#: motion/signals.py:191 msgid "adjourned" msgstr "" -#: motion/signals.py:192 +#: motion/signals.py:193 msgid "Adjourn" msgstr "" -#: motion/signals.py:194 +#: motion/signals.py:195 msgid "not concerned" msgstr "" -#: motion/signals.py:196 +#: motion/signals.py:197 msgid "Do not concern" msgstr "" -#: motion/signals.py:198 +#: motion/signals.py:199 msgid "commited a bill" msgstr "" -#: motion/signals.py:200 +#: motion/signals.py:201 msgid "Commit a bill" msgstr "" -#: motion/signals.py:202 +#: motion/signals.py:203 msgid "needs review" msgstr "" -#: motion/signals.py:204 +#: motion/signals.py:205 msgid "Needs review" msgstr "" -#: motion/signals.py:206 +#: motion/signals.py:207 msgid "rejected (not authorized)" msgstr "" -#: motion/signals.py:208 +#: motion/signals.py:209 msgid "Reject (not authorized)" msgstr "" -#: motion/views.py:186 +#: motion/views.py:197 msgid "Motion created" msgstr "" -#: motion/views.py:231 +#: motion/views.py:242 msgid "All supporters removed" msgstr "" -#: motion/views.py:245 +#: motion/views.py:256 msgid "Motion version" msgstr "" -#: motion/views.py:247 +#: motion/views.py:258 msgid "created" msgstr "" -#: motion/views.py:247 +#: motion/views.py:258 msgid "updated" msgstr "" -#: motion/views.py:292 utils/views.py:380 +#: motion/views.py:303 utils/views.py:526 #, python-format msgid "%s was successfully deleted." msgstr "" -#: motion/views.py:333 +#: motion/views.py:342 msgid "Version successfully permitted." msgstr "" -#: motion/views.py:358 +#: motion/views.py:368 #, python-format msgid "Are you sure you want permit version %s?" msgstr "" -#: motion/views.py:395 +#: motion/views.py:405 msgid "At least one version number is not valid." msgstr "" -#: motion/views.py:438 +#: motion/views.py:448 msgid "You can not support this motion." msgstr "" -#: motion/views.py:441 +#: motion/views.py:451 msgid "You can not unsupport this motion." msgstr "" -#: motion/views.py:451 +#: motion/views.py:461 msgid "Do you really want to support this motion?" msgstr "" -#: motion/views.py:453 +#: motion/views.py:463 msgid "Do you really want to unsupport this motion?" msgstr "" -#: motion/views.py:466 +#: motion/views.py:476 msgid "Motion supported" msgstr "" -#: motion/views.py:469 +#: motion/views.py:479 msgid "Motion unsupported" msgstr "" -#: motion/views.py:476 +#: motion/views.py:486 msgid "You have supported this motion successfully." msgstr "" -#: motion/views.py:478 +#: motion/views.py:488 msgid "You have unsupported this motion successfully." msgstr "" -#: motion/views.py:509 +#: motion/views.py:514 msgid "Poll created" msgstr "" -#: motion/views.py:510 +#: motion/views.py:515 msgid "New vote was successfully created." msgstr "" -#: motion/views.py:576 +#: motion/views.py:581 msgid "Poll updated" msgstr "" -#: motion/views.py:594 +#: motion/views.py:599 msgid "Poll deleted" msgstr "" -#: motion/views.py:621 +#: motion/views.py:626 msgid "Poll" msgstr "" -#: motion/views.py:667 +#: motion/views.py:672 msgid "State changed to" msgstr "" -#: motion/views.py:670 +#: motion/views.py:675 #, python-format msgid "The state of the motion was set to %s." msgstr "" -#: motion/views.py:698 +#: motion/views.py:693 msgid "Agenda item created" msgstr "" -#: motion/views.py:818 +#: motion/views.py:813 msgid "Summary" msgstr "" -#: motion/views.py:819 +#: motion/views.py:814 #, python-format msgid "%(counts)d of %(total)d motions successfully imported." msgstr "" @@ -1734,126 +1745,127 @@ msgstr "" msgid "No categories available." msgstr "" -#: motion/templates/motion/motion_detail.html:29 -#: motion/templates/motion/motion_list.html:89 +#: motion/templates/motion/motion_detail.html:28 +#: motion/templates/motion/motion_list.html:90 msgid "Print motion as PDF" msgstr "" -#: motion/templates/motion/motion_detail.html:33 +#: motion/templates/motion/motion_detail.html:32 +#: motion/templates/motion/motion_list.html:78 #: motion/templates/motion/poll_form.html:21 msgid "Show motion" msgstr "" -#: motion/templates/motion/motion_detail.html:45 -#: motion/templates/motion/motion_form.html:32 -#: motion/templates/motion/motion_form.html:42 +#: motion/templates/motion/motion_detail.html:44 +#: motion/templates/motion/motion_form.html:40 +#: motion/templates/motion/motion_form.html:50 msgid "Edit motion" msgstr "" -#: motion/templates/motion/motion_detail.html:50 +#: motion/templates/motion/motion_detail.html:49 msgid "Delete motion" msgstr "" -#: motion/templates/motion/motion_detail.html:69 +#: motion/templates/motion/motion_detail.html:68 msgid "This is not the newest version." msgstr "" -#: motion/templates/motion/motion_detail.html:71 +#: motion/templates/motion/motion_detail.html:70 msgid "Go to the newest version" msgstr "" -#: motion/templates/motion/motion_detail.html:76 +#: motion/templates/motion/motion_detail.html:75 msgid "This version is not authorized." msgstr "" -#: motion/templates/motion/motion_detail.html:78 +#: motion/templates/motion/motion_detail.html:77 msgid "Go to the authorized version" msgstr "" -#: motion/templates/motion/motion_detail.html:84 +#: motion/templates/motion/motion_detail.html:83 msgid "Motion text" msgstr "" -#: motion/templates/motion/motion_detail.html:98 +#: motion/templates/motion/motion_detail.html:108 msgid "Version history" msgstr "" -#: motion/templates/motion/motion_detail.html:104 +#: motion/templates/motion/motion_detail.html:114 msgid "Time" msgstr "" -#: motion/templates/motion/motion_detail.html:105 +#: motion/templates/motion/motion_detail.html:115 msgid "Difference" msgstr "" -#: motion/templates/motion/motion_detail.html:112 +#: motion/templates/motion/motion_detail.html:122 msgid "This version is authorized" msgstr "" -#: motion/templates/motion/motion_detail.html:115 +#: motion/templates/motion/motion_detail.html:125 msgid "Permit this version" msgstr "" -#: motion/templates/motion/motion_detail.html:149 +#: motion/templates/motion/motion_detail.html:159 msgid "Show log" msgstr "" -#: motion/templates/motion/motion_detail.html:197 +#: motion/templates/motion/motion_detail.html:207 msgid "vote" msgstr "" -#: motion/templates/motion/motion_detail.html:199 +#: motion/templates/motion/motion_detail.html:209 msgid "Edit Vote" msgstr "" -#: motion/templates/motion/motion_detail.html:200 +#: motion/templates/motion/motion_detail.html:210 msgid "Delete Vote" msgstr "" -#: motion/templates/motion/motion_detail.html:215 +#: motion/templates/motion/motion_detail.html:225 msgid "No results" msgstr "" -#: motion/templates/motion/motion_detail.html:226 +#: motion/templates/motion/motion_detail.html:236 msgid "New vote" msgstr "" -#: motion/templates/motion/motion_detail.html:242 +#: motion/templates/motion/motion_detail.html:252 msgid "Last changes (of this version)" msgstr "" -#: motion/templates/motion/motion_detail.html:244 +#: motion/templates/motion/motion_detail.html:254 #: 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 "" -#: motion/templates/motion/motion_detail.html:254 +#: motion/templates/motion/motion_detail.html:264 msgid "Withdraw motion" msgstr "" -#: motion/templates/motion/motion_detail.html:263 +#: motion/templates/motion/motion_detail.html:273 msgid "Unsupport" msgstr "" -#: motion/templates/motion/motion_detail.html:269 +#: motion/templates/motion/motion_detail.html:279 msgid "Support" msgstr "" -#: motion/templates/motion/motion_detail.html:277 +#: motion/templates/motion/motion_detail.html:287 msgid "minimum required supporters" msgstr "" -#: motion/templates/motion/motion_detail.html:284 +#: motion/templates/motion/motion_detail.html:294 msgid "Manage motion" msgstr "" -#: motion/templates/motion/motion_detail.html:292 +#: motion/templates/motion/motion_detail.html:302 msgid "For administration only:" msgstr "" -#: motion/templates/motion/motion_detail.html:294 +#: motion/templates/motion/motion_detail.html:304 msgid "Reset state" msgstr "" @@ -1866,13 +1878,13 @@ msgid "Diff view" msgstr "" #: motion/templates/motion/motion_diff.html:27 -#: motion/templates/motion/motion_form.html:48 +#: motion/templates/motion/motion_form.html:56 #: motion/templates/motion/poll_form.html:18 msgid "Back to motion" msgstr "" -#: motion/templates/motion/motion_form.html:34 -#: motion/templates/motion/motion_form.html:44 +#: motion/templates/motion/motion_form.html:42 +#: motion/templates/motion/motion_form.html:52 #: motion/templates/motion/motion_list.html:24 msgid "New motion" msgstr "" @@ -1956,18 +1968,14 @@ msgstr "" msgid "Option" msgstr "" -#: motion/templates/projector/Motion.html:18 +#: motion/templates/motion/slide.html:13 msgid "Poll result" msgstr "" -#: motion/templates/projector/Motion.html:36 +#: motion/templates/motion/slide.html:31 msgid "No poll results available." msgstr "" -#: participant/__init__.py:18 participant/signals.py:57 -msgid "Participant" -msgstr "" - #: participant/api.py:80 #, python-format msgid "Ignoring malformed line %d in import file." @@ -1987,7 +1995,7 @@ msgstr "" msgid "Import aborted because of severe errors in the input file." msgstr "" -#: participant/forms.py:29 participant/views.py:578 +#: participant/forms.py:30 participant/views.py:583 #: participant/templates/participant/group_overview.html:7 #: participant/templates/participant/group_overview.html:20 #: participant/templates/participant/overview.html:24 @@ -1995,141 +2003,146 @@ msgstr "" msgid "Groups" msgstr "" -#: participant/forms.py:43 +#: participant/forms.py:44 msgid "First name and last name can not both be empty." msgstr "" -#: participant/forms.py:82 +#: participant/forms.py:83 msgid "" "You can not remove the last group containing the permission to manage " "participants." msgstr "" -#: participant/forms.py:89 +#: participant/forms.py:90 msgid "Permissions" msgstr "" -#: participant/forms.py:92 participant/views.py:538 participant/views.py:563 +#: participant/forms.py:93 participant/views.py:542 participant/views.py:567 #: participant/templates/participant/overview.html:7 #: participant/templates/participant/overview.html:20 msgid "Participants" msgstr "" -#: participant/forms.py:143 +#: participant/forms.py:144 msgid "" "You can not remove yourself from the last group containing the permission to " "manage participants." msgstr "" -#: participant/forms.py:151 +#: participant/forms.py:152 msgid "" "You can not remove the permission to manage participants from the last group " -"your are in." +"you are in." msgstr "" -#: participant/models.py:31 +#: participant/models.py:34 msgid "Male" msgstr "" -#: participant/models.py:32 +#: participant/models.py:35 msgid "Female" msgstr "" -#: participant/models.py:37 participant/views.py:211 +#: participant/models.py:40 participant/views.py:211 #: participant/templates/participant/overview.html:50 #: participant/templates/participant/user_detail.html:49 msgid "Structure level" msgstr "" -#: participant/models.py:38 +#: participant/models.py:41 msgid "Will be shown after the name." msgstr "" -#: participant/models.py:41 +#: participant/models.py:44 msgid "Will be shown before the name." msgstr "" -#: participant/models.py:44 +#: participant/models.py:47 #: participant/templates/participant/user_detail.html:39 msgid "Gender" msgstr "" -#: participant/models.py:44 participant/models.py:47 +#: participant/models.py:47 participant/models.py:50 msgid "Only for filtering the participant list." msgstr "" -#: participant/models.py:46 participant/views.py:211 +#: participant/models.py:49 participant/views.py:211 #: participant/templates/participant/overview.html:52 #: participant/templates/participant/user_detail.html:51 msgid "Committee" msgstr "" -#: participant/models.py:49 +#: participant/models.py:52 #: participant/templates/participant/user_detail.html:43 msgid "About me" msgstr "" -#: participant/models.py:50 +#: participant/models.py:53 msgid "Your profile text" msgstr "" -#: participant/models.py:53 +#: participant/models.py:56 msgid "Only for notes." msgstr "" -#: participant/models.py:56 +#: participant/models.py:59 msgid "Default password" msgstr "" -#: participant/models.py:114 +#: participant/models.py:63 msgid "Can see participants" msgstr "" -#: participant/models.py:115 +#: participant/models.py:64 msgid "Can manage participants" msgstr "" -#: participant/models.py:137 +#: participant/models.py:128 msgid "Use this group as participant" msgstr "" -#: participant/models.py:138 +#: participant/models.py:129 msgid "For example as submitter of a motion." msgstr "" -#: participant/signals.py:39 +#: participant/signals.py:40 msgid "System URL" msgstr "" -#: participant/signals.py:40 participant/signals.py:48 +#: participant/signals.py:41 participant/signals.py:49 msgid "Printed in PDF of first time passwords only." msgstr "" -#: participant/signals.py:43 +#: participant/signals.py:44 msgid "Welcome to OpenSlides!" msgstr "" -#: participant/signals.py:54 +#: participant/signals.py:55 msgid "Sort participants by first name" msgstr "" -#: participant/signals.py:55 +#: participant/signals.py:56 msgid "Disable for sorting by last name" msgstr "" -#: participant/signals.py:103 +#: participant/signals.py:58 +#: participant/templates/search/participant-results.html:7 +msgid "Participant" +msgstr "" + +#: participant/signals.py:104 msgid "Anonymous" msgstr "" -#: participant/signals.py:105 +#: participant/signals.py:106 msgid "Registered" msgstr "" -#: participant/signals.py:115 +#: participant/signals.py:116 msgid "Delegates" msgstr "" -#: participant/signals.py:129 participant/templates/participant/import.html:25 +#: participant/signals.py:130 participant/templates/participant/import.html:25 msgid "Staff" msgstr "" @@ -2200,17 +2213,17 @@ msgstr "" msgid "The Password for %s was successfully reset." msgstr "" -#: participant/views.py:448 +#: participant/views.py:449 msgid "You can not delete this group." msgstr "" -#: participant/views.py:457 +#: participant/views.py:458 msgid "" "You can not delete the last group containing the permission to manage " "participants you are in." msgstr "" -#: participant/views.py:469 +#: participant/views.py:474 #, python-format msgid "" "Installation was successfully! Use %(user)s (password: %(password)s) for " @@ -2219,11 +2232,15 @@ msgid "" "a security risk." msgstr "" -#: participant/views.py:497 +#: participant/views.py:501 msgid "User settings successfully saved." msgstr "" -#: participant/views.py:520 +#: participant/views.py:503 participant/views.py:527 utils/views.py:192 +msgid "Please check the form for errors." +msgstr "" + +#: participant/views.py:524 msgid "Password successfully changed." msgstr "" @@ -2244,6 +2261,7 @@ msgid "Reset to First Password" msgstr "" #: participant/templates/participant/group_detail.html:15 +#: participant/templates/participant/group_overview.html:50 msgid "Show group" msgstr "" @@ -2287,6 +2305,10 @@ msgid "" "participants." msgstr "" +#: participant/templates/participant/group_slide.html:8 +msgid "participants" +msgstr "" + #: participant/templates/participant/import.html:5 #: participant/templates/participant/import.html:9 #: participant/templates/participant/overview.html:25 @@ -2313,12 +2335,12 @@ msgstr "" #: participant/templates/participant/import.html:28 msgid "" -"At least first name or last name have to filled in. All other fields are " +"At least first name or last name have to be filled in. All other fields are " "optional and may be empty." msgstr "" #: participant/templates/participant/login.html:6 -#: participant/templates/participant/login.html:49 templates/base.html:44 +#: participant/templates/participant/login.html:49 templates/base.html:53 msgid "Login" msgstr "" @@ -2385,7 +2407,7 @@ msgid "Password settings" msgstr "" #: participant/templates/participant/settings.html:5 -#: participant/templates/participant/settings.html:8 templates/base.html:38 +#: participant/templates/participant/settings.html:8 templates/base.html:47 msgid "Edit profile" msgstr "" @@ -2417,55 +2439,55 @@ msgstr "" msgid "The participant has not logged in yet." msgstr "" -#: participant/templates/participant/user_widget.html:19 +#: participant/templates/participant/user_widget.html:18 msgid "No participants available." msgstr "" -#: participant/templates/projector/GroupSlide.html:10 -msgid "participants" -msgstr "" - -#: poll/models.py:95 +#: poll/models.py:96 msgid "Votes invalid" msgstr "" -#: poll/models.py:128 +#: poll/models.py:129 msgid "votes" msgstr "" -#: projector/models.py:50 +#: projector/models.py:142 msgid "Can manage the projector" msgstr "" -#: projector/models.py:51 +#: projector/models.py:143 msgid "Can see the projector" msgstr "" -#: projector/models.py:52 +#: projector/models.py:144 msgid "Can see the dashboard" msgstr "" -#: projector/views.py:195 +#: projector/views.py:130 msgid "Errors in the form" msgstr "" -#: projector/views.py:364 projector/templates/projector/dashboard.html:16 +#: projector/views.py:298 projector/templates/projector/dashboard.html:16 #: projector/templates/projector/dashboard.html:19 msgid "Dashboard" msgstr "" -#: projector/views.py:392 +#: projector/views.py:327 msgid "Projector live view" msgstr "" -#: projector/views.py:406 +#: projector/views.py:343 msgid "Overlays" msgstr "" -#: projector/views.py:416 +#: projector/views.py:355 msgid "Custom Slides" msgstr "" +#: projector/templates/projector.html:11 +msgid "Projector" +msgstr "" + #: projector/templates/projector/dashboard.html:21 msgid "Manage widgets" msgstr "" @@ -2551,6 +2573,14 @@ msgstr "" msgid "No widgets available" msgstr "" +#: templates/403.html:6 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:7 +msgid "Sorry, you have no rights to see this page." +msgstr "" + #: templates/404.html:6 msgid "Page not found." msgstr "" @@ -2567,61 +2597,57 @@ msgstr "" msgid "Logo" msgstr "" -#: templates/base.html:39 +#: templates/base.html:48 msgid "Change password" msgstr "" -#: templates/base.html:41 +#: templates/base.html:50 msgid "Logout" msgstr "" -#: utils/pdf.py:280 +#: utils/pdf.py:278 #, python-format msgid "As of: %s" msgstr "" -#: utils/pdf.py:291 utils/pdf.py:300 +#: utils/pdf.py:289 utils/pdf.py:298 #, python-format msgid "Page %s" msgstr "" -#: utils/tornado_webserver.py:47 +#: utils/tornado_webserver.py:71 msgid "the machine's local ip address" msgstr "" -#: utils/tornado_webserver.py:50 +#: utils/tornado_webserver.py:74 #, python-format msgid "Starting OpenSlides' tornado webserver listening to %(url_string)s" msgstr "" -#: utils/utils.py:60 utils/views.py:374 -#, python-format -msgid "Do you really want to delete %s?" -msgstr "" - -#: utils/utils.py:107 -msgid "Sorry, you have no rights to see this page." -msgstr "" - -#: utils/views.py:167 +#: utils/views.py:340 msgid "Are you sure?" msgstr "" -#: utils/views.py:168 -msgid "Thank you for your answer" +#: utils/views.py:341 +msgid "Thank you for your answer." msgstr "" -#: utils/views.py:345 +#: utils/views.py:461 #, python-format msgid "%s was successfully modified." msgstr "" -#: utils/views.py:355 +#: utils/views.py:475 #, python-format msgid "%s was successfully created." msgstr "" -#: utils/views.py:393 +#: utils/views.py:514 +#, python-format +msgid "Do you really want to delete %s?" +msgstr "" + +#: utils/views.py:541 msgid "undefined-filename" msgstr "" diff --git a/openslides/locale/en/LC_MESSAGES/djangojs.po b/openslides/locale/en/LC_MESSAGES/djangojs.po index 1908a5bcf..8aad3883d 100644 --- a/openslides/locale/en/LC_MESSAGES/djangojs.po +++ b/openslides/locale/en/LC_MESSAGES/djangojs.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-09-02 13:52+0200\n" +"POT-Creation-Date: 2013-10-20 20:19+0200\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/openslides/templates/base.html b/openslides/templates/base.html index a529a7a0f..9eb82d833 100644 --- a/openslides/templates/base.html +++ b/openslides/templates/base.html @@ -37,7 +37,7 @@   -
    +
    {% if user.is_authenticated %} {{ user.username }}