diff --git a/openslides/locale/en/LC_MESSAGES/django.po b/openslides/locale/en/LC_MESSAGES/django.po
index ab6a14430..e25e22539 100644
--- a/openslides/locale/en/LC_MESSAGES/django.po
+++ b/openslides/locale/en/LC_MESSAGES/django.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-10-16 23:25+0200\n"
+"POT-Creation-Date: 2015-01-11 19:03+0100\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -62,7 +62,7 @@ msgstr ""
msgid "Invalid format. Hours from 0 to 99 and minutes from 00 to 59"
msgstr ""
-#: agenda/forms.py:30 agenda/templates/agenda/overview.html:89
+#: agenda/forms.py:30 agenda/templates/agenda/overview.html:103
msgid "Duration"
msgstr ""
@@ -79,95 +79,95 @@ msgstr ""
msgid "%s is already on the list of speakers."
msgstr ""
-#: agenda/main_menu.py:12 agenda/signals.py:87 agenda/views.py:367
-#: agenda/views.py:368 agenda/widgets.py:16
+#: agenda/main_menu.py:12 agenda/signals.py:87 agenda/views.py:358
+#: agenda/views.py:359 agenda/widgets.py:16
#: agenda/templates/agenda/item_slide_summary.html:7
#: agenda/templates/agenda/overview.html:7
#: agenda/templates/agenda/overview.html:34
-#: agenda/templates/agenda/overview.html:97
+#: agenda/templates/agenda/overview.html:111
#: agenda/templates/agenda/widget_item.html:18
#: agenda/templates/search/agenda-results.html:7
#: agenda/templates/search/agenda-results.html:13
msgid "Agenda"
msgstr ""
-#: agenda/models.py:38
+#: agenda/models.py:39
msgid "Agenda item"
msgstr ""
-#: agenda/models.py:39 agenda/templates/search/agenda-results.html:13
+#: agenda/models.py:40 agenda/templates/search/agenda-results.html:13
msgid "Organizational item"
msgstr ""
-#: agenda/models.py:41
+#: agenda/models.py:42
msgid "Number"
msgstr ""
-#: agenda/models.py:46 core/models.py:15 core/signals.py:111
+#: agenda/models.py:47 core/models.py:15 core/signals.py:111
#: mediafile/models.py:28 mediafile/templates/mediafile/mediafile_list.html:18
-#: motion/forms.py:28 motion/models.py:536 participant/models.py:34
+#: motion/forms.py:27 motion/models.py:573 participant/models.py:34
#: participant/pdf.py:21 participant/templates/participant/overview.html:49
msgid "Title"
msgstr ""
-#: agenda/models.py:51 core/models.py:16 motion/forms.py:33
-#: motion/models.py:539
+#: agenda/models.py:52 core/models.py:16 motion/forms.py:32
+#: motion/models.py:576
msgid "Text"
msgstr ""
-#: agenda/models.py:56 agenda/templates/agenda/overview.html:86
-#: agenda/templates/agenda/view.html:54 participant/models.py:46
+#: agenda/models.py:57 agenda/templates/agenda/overview.html:100
+#: agenda/templates/agenda/view.html:62 participant/models.py:46
#: participant/templates/participant/overview.html:55
#: participant/templates/participant/user_detail.html:71
msgid "Comment"
msgstr ""
-#: agenda/models.py:61
+#: agenda/models.py:62
msgid "Closed"
msgstr ""
-#: agenda/models.py:67 mediafile/templates/mediafile/mediafile_list.html:19
+#: agenda/models.py:68 mediafile/templates/mediafile/mediafile_list.html:19
msgid "Type"
msgstr ""
-#: agenda/models.py:85 core/models.py:17
+#: agenda/models.py:86 core/models.py:17
msgid "Weight"
msgstr ""
-#: agenda/models.py:107
+#: agenda/models.py:108
msgid "List of speakers is closed"
msgstr ""
-#: agenda/models.py:114
+#: agenda/models.py:120
msgid "Can see agenda"
msgstr ""
-#: agenda/models.py:115
+#: agenda/models.py:121
msgid "Can manage agenda"
msgstr ""
-#: agenda/models.py:116
+#: agenda/models.py:122
msgid "Can see orga items and time scheduling of agenda"
msgstr ""
-#: agenda/models.py:131 agenda/views.py:142
+#: agenda/models.py:137 agenda/views.py:142
msgid "Agenda items can not be child elements of an organizational item."
msgstr ""
-#: agenda/models.py:133
+#: agenda/models.py:139
msgid "Organizational items can not have agenda items as child elements."
msgstr ""
-#: agenda/models.py:348
+#: agenda/models.py:354
#, python-format
msgid "%(person)s is already on the list of speakers of item %(id)s."
msgstr ""
-#: agenda/models.py:352
+#: agenda/models.py:358
msgid "An anonymous user can not be on lists of speakers."
msgstr ""
-#: agenda/models.py:392
+#: agenda/models.py:398
msgid "Can put oneself on the list of speakers"
msgstr ""
@@ -223,43 +223,43 @@ msgstr ""
msgid "Errors when reordering of the agenda"
msgstr ""
-#: agenda/views.py:290
+#: agenda/views.py:288
msgid "Yes, with all child items."
msgstr ""
-#: agenda/views.py:315
+#: agenda/views.py:313
#, python-format
msgid "Item %s was successfully deleted."
msgstr ""
-#: agenda/views.py:317
+#: agenda/views.py:315
#, python-format
msgid "Item %s and its children were successfully deleted."
msgstr ""
-#: agenda/views.py:350
+#: agenda/views.py:341
msgid ""
"Do you really want to generate agenda numbering? Manually added item numbers "
"will be overwritten!"
msgstr ""
-#: agenda/views.py:359
+#: agenda/views.py:350
msgid "The agenda has been numbered."
msgstr ""
-#: agenda/views.py:393 agenda/views.py:624
+#: agenda/views.py:383 agenda/views.py:618
msgid "The list of speakers is closed."
msgstr ""
-#: agenda/views.py:400 agenda/views.py:633
+#: agenda/views.py:390 agenda/views.py:627
msgid "You were successfully added to the list of speakers."
msgstr ""
-#: agenda/views.py:424
+#: agenda/views.py:437
msgid "You are not on the list of speakers."
msgstr ""
-#: agenda/views.py:447
+#: agenda/views.py:448
msgid "Do you really want to remove yourself from the list of speakers?"
msgstr ""
@@ -268,56 +268,56 @@ msgstr ""
msgid "%(person)s is not on the list of %(item)s."
msgstr ""
-#: agenda/views.py:494
+#: agenda/views.py:493
#, python-format
msgid "There is no one speaking at the moment according to %(item)s."
msgstr ""
-#: agenda/views.py:559
+#: agenda/views.py:553
msgid "Could not change order. Invalid data."
msgstr ""
-#: agenda/views.py:618
+#: agenda/views.py:612
msgid ""
"There is no list of speakers for the current slide. Please choose the agenda "
"item manually from the agenda."
msgstr ""
-#: agenda/views.py:637
+#: agenda/views.py:631
msgid "You can not put yourself on the list of speakers."
msgstr ""
-#: agenda/views.py:646
+#: agenda/views.py:640
#, python-format
msgid "%s is now speaking."
msgstr ""
-#: agenda/views.py:648
+#: agenda/views.py:642
#: agenda/templates/agenda/item_slide_list_of_speaker.html:26
#: agenda/templates/agenda/overlay_speaker_projector.html:20
msgid "The list of speakers is empty."
msgstr ""
-#: agenda/views.py:656
+#: agenda/views.py:650
msgid "There is no one speaking at the moment."
msgstr ""
-#: agenda/views.py:659
+#: agenda/views.py:653
#, python-format
msgid "%s is now finished."
msgstr ""
-#: agenda/views.py:716 agenda/widgets.py:44
+#: agenda/views.py:710 agenda/widgets.py:44
#: agenda/templates/agenda/current_list_of_speakers_projector.html:4
#: agenda/templates/agenda/item_slide_list_of_speaker.html:9
#: agenda/templates/agenda/overlay_speaker_projector.html:7
#: agenda/templates/agenda/overlay_speaker_widget.html:4
-#: agenda/templates/agenda/overview.html:43
-#: agenda/templates/agenda/view.html:60
+#: agenda/templates/agenda/overview.html:57
+#: agenda/templates/agenda/view.html:68
msgid "List of speakers"
msgstr ""
-#: agenda/views.py:716
+#: agenda/views.py:710
msgid "Not available."
msgstr ""
@@ -338,12 +338,13 @@ msgstr ""
#: assignment/templates/assignment/assignment_form.html:26
#: core/templates/core/customslide_update.html:10
#: core/templates/core/select_widgets.html:10
+#: core/templates/core/tag_list.html:11
#: mediafile/templates/mediafile/mediafile_form.html:22
#: motion/templates/motion/category_list.html:15
-#: motion/templates/motion/motion_detail.html:35
-#: motion/templates/motion/motion_form.html:50
+#: motion/templates/motion/motion_detail.html:38
+#: motion/templates/motion/motion_form.html:33
#: motion/templates/motion/motion_form_csv_import.html:11
-#: participant/templates/participant/edit.html:42
+#: participant/templates/participant/edit.html:24
#: participant/templates/participant/group_detail.html:12
#: participant/templates/participant/group_edit.html:22
#: participant/templates/participant/user_detail.html:12
@@ -364,10 +365,10 @@ msgstr ""
#: config/templates/config/config_form.html:47
#: 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:42
#: motion/templates/motion/motion_form_csv_import.html:42
#: motion/templates/motion/motionpoll_form.html:84
-#: participant/templates/participant/edit.html:56
+#: participant/templates/participant/edit.html:38
#: participant/templates/participant/group_edit.html:31
#: participant/templates/participant/user_form_csv_import.html:44
#: participant/templates/participant/user_form_multiple.html:23
@@ -381,9 +382,9 @@ msgstr ""
#: core/templates/core/customslide_update.html:18
#: 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:45
#: motion/templates/motion/motion_form_csv_import.html:45
-#: participant/templates/participant/edit.html:59
+#: participant/templates/participant/edit.html:41
#: participant/templates/participant/group_edit.html:34
#: participant/templates/participant/user_form_csv_import.html:47
#: participant/templates/participant/user_form_multiple.html:26
@@ -392,7 +393,7 @@ msgstr ""
#: agenda/templates/agenda/item_form_csv_import.html:5
#: agenda/templates/agenda/item_form_csv_import.html:9
-#: agenda/templates/agenda/overview.html:38
+#: agenda/templates/agenda/overview.html:49
msgid "Import agenda items"
msgstr ""
@@ -439,9 +440,9 @@ msgid "Use the CSV example file from OpenSlides Wiki."
msgstr ""
#: agenda/templates/agenda/item_form_csv_import.html:39
-#: agenda/templates/agenda/overview.html:38
+#: agenda/templates/agenda/overview.html:51
#: motion/templates/motion/motion_form_csv_import.html:39
-#: motion/templates/motion/motion_list.html:41
+#: motion/templates/motion/motion_list.html:50
#: participant/templates/participant/overview.html:26
#: participant/templates/participant/user_form_csv_import.html:41
msgid "Import"
@@ -452,20 +453,21 @@ msgid "Show agenda item"
msgstr ""
#: agenda/templates/agenda/item_row.html:16
-#: agenda/templates/agenda/view.html:72
+#: agenda/templates/agenda/view.html:80
#: agenda/templates/agenda/widget_item.html:42
msgid "Show list of speakers"
msgstr ""
#: agenda/templates/agenda/item_row.html:22
#: agenda/templates/agenda/widget_item.html:32
-#: assignment/templates/assignment/assignment_detail.html:173
-#: assignment/templates/assignment/assignment_list.html:68
+#: assignment/templates/assignment/assignment_detail.html:178
+#: assignment/templates/assignment/assignment_list.html:78
#: assignment/templates/assignment/widget_assignment.html:16
+#: core/templates/core/tag_list.html:31 core/templates/core/tag_list.html:45
#: core/templates/core/widget_customslide.html:34
#: mediafile/templates/mediafile/mediafile_list.html:38
#: motion/templates/motion/category_list.html:30
-#: motion/templates/motion/motion_list.html:103
+#: motion/templates/motion/motion_list.html:123
#: motion/templates/motion/widget_motion.html:16
#: participant/templates/participant/group_overview.html:58
#: participant/templates/participant/overview.html:117
@@ -475,14 +477,15 @@ msgid "Edit"
msgstr ""
#: agenda/templates/agenda/item_row.html:25
-#: agenda/templates/agenda/view.html:128
-#: assignment/templates/assignment/assignment_detail.html:175
-#: assignment/templates/assignment/assignment_list.html:72
+#: agenda/templates/agenda/view.html:136
+#: assignment/templates/assignment/assignment_detail.html:180
+#: assignment/templates/assignment/assignment_list.html:82
+#: core/templates/core/tag_list.html:34 core/templates/core/tag_list.html:48
#: core/templates/core/widget_customslide.html:30
#: mediafile/templates/mediafile/mediafile_list.html:39
#: motion/templates/motion/category_list.html:33
-#: motion/templates/motion/motion_detail.html:146
-#: motion/templates/motion/motion_list.html:106
+#: motion/templates/motion/motion_detail.html:149
+#: motion/templates/motion/motion_list.html:126
#: participant/templates/participant/group_overview.html:62
#: participant/templates/participant/overview.html:122
msgid "Delete"
@@ -515,7 +518,7 @@ msgstr ""
#: agenda/templates/agenda/item_slide_list_of_speaker.html:10
#: agenda/templates/agenda/overlay_speaker_projector.html:7
-#: agenda/templates/agenda/view.html:60
+#: agenda/templates/agenda/view.html:68
msgid "closed"
msgstr ""
@@ -528,31 +531,31 @@ msgid "Do you want to save the changed order of agenda items?"
msgstr ""
#: agenda/templates/agenda/overview.html:29
-#: agenda/templates/agenda/view.html:84 assignment/models.py:334
-#: assignment/views.py:588
-#: assignment/templates/assignment/assignment_detail.html:211
-#: assignment/templates/assignment/assignment_detail.html:215
+#: agenda/templates/agenda/view.html:92 assignment/models.py:336
+#: assignment/views.py:573
+#: assignment/templates/assignment/assignment_detail.html:216
+#: assignment/templates/assignment/assignment_detail.html:220
#: assignment/templates/assignment/assignmentpoll_slide.html:24
-#: motion/models.py:712 motion/pdf.py:129 motion/pdf.py:274
-#: motion/templates/motion/motion_detail.html:230
+#: motion/models.py:749 motion/pdf.py:128 motion/pdf.py:273
+#: motion/templates/motion/motion_detail.html:233
#: motion/templates/motion/motionpoll_slide.html:20
-#: motion/templates/motion/slide.html:23 utils/views.py:330
+#: motion/templates/motion/slide.html:23 utils/views.py:359
msgid "Yes"
msgstr ""
#: agenda/templates/agenda/overview.html:30
-#: agenda/templates/agenda/view.html:85 assignment/models.py:334
-#: assignment/views.py:589
-#: assignment/templates/assignment/assignment_detail.html:212
+#: agenda/templates/agenda/view.html:93 assignment/models.py:336
+#: assignment/views.py:574
+#: assignment/templates/assignment/assignment_detail.html:217
#: assignment/templates/assignment/assignmentpoll_slide.html:26
-#: motion/models.py:712 motion/pdf.py:129 motion/pdf.py:276
-#: motion/templates/motion/motion_detail.html:231
+#: motion/models.py:749 motion/pdf.py:128 motion/pdf.py:275
+#: motion/templates/motion/motion_detail.html:234
#: motion/templates/motion/motionpoll_slide.html:24
-#: motion/templates/motion/slide.html:24 utils/views.py:330
+#: motion/templates/motion/slide.html:24 utils/views.py:359
msgid "No"
msgstr ""
-#: agenda/templates/agenda/overview.html:37
+#: agenda/templates/agenda/overview.html:39
#: assignment/templates/assignment/assignment_list.html:22
#: core/templates/core/widget_customslide.html:47
#: mediafile/templates/mediafile/mediafile_list.html:12
@@ -563,60 +566,75 @@ msgstr ""
msgid "New"
msgstr ""
-#: agenda/templates/agenda/overview.html:40
+#: agenda/templates/agenda/overview.html:43
+#: assignment/templates/assignment/assignment_list.html:25
+#: motion/templates/motion/motion_list.html:40
+msgid "Manage tags"
+msgstr ""
+
+#: agenda/templates/agenda/overview.html:45
+#: assignment/templates/assignment/assignment_list.html:27
+#: core/templates/core/tag_list.html:5 core/templates/core/tag_list.html:8
+#: motion/forms.py:54 motion/templates/motion/motion_detail.html:279
+#: motion/templates/motion/motion_list.html:42
+msgid "Tags"
+msgstr ""
+
+#: agenda/templates/agenda/overview.html:54
msgid "Print agenda as PDF"
msgstr ""
-#: agenda/templates/agenda/overview.html:42
+#: agenda/templates/agenda/overview.html:56
msgid "Current list of speakers"
msgstr ""
-#: agenda/templates/agenda/overview.html:52
+#: agenda/templates/agenda/overview.html:66
msgid "Number agenda items"
msgstr ""
-#: agenda/templates/agenda/overview.html:57
+#: agenda/templates/agenda/overview.html:71
msgid "Hide closed items"
msgstr ""
-#: agenda/templates/agenda/overview.html:60
+#: agenda/templates/agenda/overview.html:74
msgid "item"
msgid_plural "items"
msgstr[0] ""
msgstr[1] ""
-#: agenda/templates/agenda/overview.html:68
+#: agenda/templates/agenda/overview.html:82
msgid "Start of event"
msgstr ""
-#: agenda/templates/agenda/overview.html:72
+#: agenda/templates/agenda/overview.html:86
msgid "Estimated end"
msgstr ""
-#: agenda/templates/agenda/overview.html:77
+#: agenda/templates/agenda/overview.html:91
msgid "Set start time of event"
msgstr ""
-#: agenda/templates/agenda/overview.html:84
+#: agenda/templates/agenda/overview.html:98
msgid "Item"
msgstr ""
-#: agenda/templates/agenda/overview.html:92
-#: assignment/templates/assignment/assignment_list.html:37
+#: agenda/templates/agenda/overview.html:106
+#: assignment/templates/assignment/assignment_list.html:43
+#: core/templates/core/tag_list.html:25
#: mediafile/templates/mediafile/mediafile_list.html:24
#: motion/templates/motion/category_list.html:23
-#: motion/templates/motion/motion_detail.html:122
-#: motion/templates/motion/motion_list.html:60
+#: motion/templates/motion/motion_detail.html:125
+#: motion/templates/motion/motion_list.html:69
#: participant/templates/participant/group_overview.html:33
#: participant/templates/participant/overview.html:57
msgid "Actions"
msgstr ""
-#: agenda/templates/agenda/overview.html:111
+#: agenda/templates/agenda/overview.html:125
msgid "Show agenda"
msgstr ""
-#: agenda/templates/agenda/overview.html:134
+#: agenda/templates/agenda/overview.html:148
#: agenda/templates/agenda/widget_item.html:59
#: core/templates/core/widget_customslide.html:43
msgid "No items available."
@@ -628,7 +646,7 @@ msgstr ""
#: agenda/templates/agenda/view.html:33
#: assignment/templates/assignment/assignment_detail.html:34
-#: motion/templates/motion/motion_detail.html:48
+#: motion/templates/motion/motion_detail.html:51
#: participant/templates/participant/group_detail.html:22
#: participant/templates/participant/user_detail.html:22
msgid "More actions"
@@ -638,57 +656,57 @@ msgstr ""
msgid "Delete item"
msgstr ""
-#: agenda/templates/agenda/view.html:64
+#: agenda/templates/agenda/view.html:72
msgid "Open list"
msgstr ""
-#: agenda/templates/agenda/view.html:66
+#: agenda/templates/agenda/view.html:74
msgid "Close list"
msgstr ""
-#: agenda/templates/agenda/view.html:74
+#: agenda/templates/agenda/view.html:82
msgid "Show list"
msgstr ""
-#: agenda/templates/agenda/view.html:82
+#: agenda/templates/agenda/view.html:90
msgid "Do you want to save the changed order of speakers?"
msgstr ""
-#: agenda/templates/agenda/view.html:93
+#: agenda/templates/agenda/view.html:101
msgid "Last speakers"
msgstr ""
-#: agenda/templates/agenda/view.html:96
+#: agenda/templates/agenda/view.html:104
msgid "Show all speakers"
msgstr ""
-#: agenda/templates/agenda/view.html:100
+#: agenda/templates/agenda/view.html:108
msgid "Current speaker"
msgstr ""
-#: agenda/templates/agenda/view.html:102
+#: agenda/templates/agenda/view.html:110
msgid "Next speakers"
msgstr ""
-#: agenda/templates/agenda/view.html:122
+#: agenda/templates/agenda/view.html:130
#: agenda/templates/agenda/widget_list_of_speakers.html:12
msgid "End speach"
msgstr ""
-#: agenda/templates/agenda/view.html:125
+#: agenda/templates/agenda/view.html:133
msgid "Begin speach"
msgstr ""
-#: agenda/templates/agenda/view.html:140
+#: agenda/templates/agenda/view.html:148
msgid "Remove me from the list"
msgstr ""
-#: agenda/templates/agenda/view.html:142
+#: agenda/templates/agenda/view.html:150
msgid "Put me on the list"
msgstr ""
-#: agenda/templates/agenda/view.html:152
-#: assignment/templates/assignment/assignment_detail.html:112
+#: agenda/templates/agenda/view.html:160
+#: assignment/templates/assignment/assignment_detail.html:117
#: assignment/templates/assignment/assignmentpoll_form.html:105
#: core/templates/formbuttons_saveapply.html:7
#: mediafile/templates/mediafile/widget_pdfpresentation.html:32
@@ -697,8 +715,8 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: agenda/templates/agenda/view.html:154
-#: assignment/templates/assignment/assignment_detail.html:115
+#: agenda/templates/agenda/view.html:162
+#: assignment/templates/assignment/assignment_detail.html:120
msgid "Add new participant"
msgstr ""
@@ -709,7 +727,7 @@ msgstr ""
#: core/templates/core/widget_customslide.html:25
#: mediafile/templates/mediafile/mediafile_list.html:41
#: mediafile/templates/mediafile/widget_pdfpresentation.html:41
-#: motion/templates/motion/motion_detail.html:142
+#: motion/templates/motion/motion_detail.html:145
#: motion/templates/motion/widget_motion.html:11
#: participant/templates/participant/widget_group.html:11
#: participant/templates/participant/widget_user.html:11
@@ -739,8 +757,8 @@ msgstr ""
msgid "Go to current list of speakers"
msgstr ""
-#: assignment/forms.py:14 assignment/models.py:56 assignment/views.py:353
-#: assignment/templates/assignment/assignment_detail.html:296
+#: assignment/forms.py:14 assignment/models.py:57 assignment/views.py:350
+#: assignment/templates/assignment/assignment_detail.html:301
#: assignment/templates/assignment/slide.html:11
msgid "Number of available posts"
msgstr ""
@@ -750,61 +768,61 @@ msgid "Nominate a participant"
msgstr ""
#: assignment/main_menu.py:12 assignment/signals.py:75
-#: assignment/signals.py:93 assignment/views.py:308 assignment/widgets.py:15
+#: assignment/signals.py:93 assignment/views.py:302 assignment/widgets.py:15
#: assignment/templates/assignment/assignment_list.html:7
#: assignment/templates/assignment/assignment_list.html:19
msgid "Elections"
msgstr ""
-#: assignment/models.py:49
-#: assignment/templates/assignment/assignment_detail.html:306
+#: assignment/models.py:50
+#: assignment/templates/assignment/assignment_detail.html:311
msgid "Searching for candidates"
msgstr ""
-#: assignment/models.py:50
-#: assignment/templates/assignment/assignment_detail.html:309
+#: assignment/models.py:51
+#: assignment/templates/assignment/assignment_detail.html:314
msgid "Voting"
msgstr ""
-#: assignment/models.py:51
-#: assignment/templates/assignment/assignment_detail.html:312
+#: assignment/models.py:52
+#: assignment/templates/assignment/assignment_detail.html:317
msgid "Finished"
msgstr ""
-#: assignment/models.py:54 participant/templates/participant/overview.html:50
+#: assignment/models.py:55 participant/templates/participant/overview.html:50
msgid "Name"
msgstr ""
-#: assignment/models.py:55
-#: assignment/templates/assignment/assignment_detail.html:56
+#: assignment/models.py:56
+#: assignment/templates/assignment/assignment_detail.html:61
#: participant/models.py:123
msgid "Description"
msgstr ""
-#: assignment/models.py:59
+#: assignment/models.py:60
msgid "Default comment on the ballot paper"
msgstr ""
-#: assignment/models.py:64
+#: assignment/models.py:66
msgid "Can see elections"
msgstr ""
-#: assignment/models.py:65
+#: assignment/models.py:67
msgid "Can nominate another person"
msgstr ""
-#: assignment/models.py:66
+#: assignment/models.py:68
msgid "Can nominate oneself"
msgstr ""
-#: assignment/models.py:67
+#: assignment/models.py:69
msgid "Can manage elections"
msgstr ""
-#: assignment/models.py:70 assignment/views.py:512 assignment/views.py:529
+#: assignment/models.py:72 assignment/views.py:497 assignment/views.py:514
#: assignment/templates/assignment/assignment_detail.html:8
#: assignment/templates/assignment/assignment_detail.html:19
-#: assignment/templates/assignment/assignment_list.html:33
+#: assignment/templates/assignment/assignment_list.html:39
#: assignment/templates/assignment/assignmentpoll_form.html:7
#: assignment/templates/assignment/assignmentpoll_slide.html:10
#: assignment/templates/assignment/slide.html:18
@@ -812,53 +830,53 @@ msgstr ""
msgid "Election"
msgstr ""
-#: assignment/models.py:95
+#: assignment/models.py:97
#, python-format
msgid "%s is not a valid status."
msgstr ""
-#: assignment/models.py:98
+#: assignment/models.py:100
#, python-format
msgid "The election status is already %s."
msgstr ""
-#: assignment/models.py:111
+#: assignment/models.py:113
#, python-format
msgid "%s is already a candidate."
msgstr ""
-#: assignment/models.py:113 assignment/views.py:152
+#: assignment/models.py:115 assignment/views.py:149
msgid "The candidate list is already closed."
msgstr ""
-#: assignment/models.py:120
+#: assignment/models.py:122
#, python-format
msgid "%s does not want to be a candidate."
msgstr ""
-#: assignment/models.py:134
+#: assignment/models.py:136
#, python-format
msgid "%s is no candidate"
msgstr ""
-#: assignment/models.py:280 assignment/views.py:305
+#: assignment/models.py:282 assignment/views.py:299
msgid "Assignment"
msgstr ""
-#: assignment/models.py:307
+#: assignment/models.py:309
msgid "Comment on the ballot paper"
msgstr ""
-#: assignment/models.py:310
+#: assignment/models.py:312
#, python-format
msgid "Ballot %d"
msgstr ""
-#: assignment/models.py:334 motion/models.py:712
+#: assignment/models.py:336 motion/models.py:749
msgid "Abstain"
msgstr ""
-#: assignment/models.py:336 motion/templates/motion/motionpoll_form.html:45
+#: assignment/models.py:338 motion/templates/motion/motionpoll_form.html:45
msgid "Votes"
msgstr ""
@@ -886,23 +904,23 @@ msgstr ""
msgid "The 100 % base of an election result consists of"
msgstr ""
-#: assignment/signals.py:44 motion/signals.py:104
+#: assignment/signals.py:44 motion/signals.py:123
msgid "Number of ballot papers (selection)"
msgstr ""
-#: assignment/signals.py:46 motion/signals.py:106
+#: assignment/signals.py:46 motion/signals.py:125
msgid "Number of all delegates"
msgstr ""
-#: assignment/signals.py:47 motion/signals.py:107
+#: assignment/signals.py:47 motion/signals.py:126
msgid "Number of all participants"
msgstr ""
-#: assignment/signals.py:48 motion/signals.py:108
+#: assignment/signals.py:48 motion/signals.py:127
msgid "Use the following custom number"
msgstr ""
-#: assignment/signals.py:56 motion/signals.py:116
+#: assignment/signals.py:56 motion/signals.py:135
msgid "Custom number of ballot papers"
msgstr ""
@@ -922,110 +940,106 @@ msgstr ""
msgid "Preamble text for PDF document (all elections)"
msgstr ""
-#: assignment/signals.py:89 motion/signals.py:144 participant/signals.py:97
+#: assignment/signals.py:89 motion/signals.py:163 participant/signals.py:97
msgid "PDF"
msgstr ""
-#: assignment/views.py:75
+#: assignment/views.py:74
#, python-format
msgid "Candidate %s was nominated successfully."
msgstr ""
-#: assignment/views.py:114
+#: assignment/views.py:112
#, python-format
msgid "Election status was set to: %s."
msgstr ""
-#: assignment/views.py:131
+#: assignment/views.py:129
msgid "You have set your candidature successfully."
msgstr ""
-#: assignment/views.py:149
+#: assignment/views.py:146
msgid ""
"You have withdrawn your candidature successfully. You can not be nominated "
"by other participants anymore."
msgstr ""
-#: assignment/views.py:162
+#: assignment/views.py:159
#, python-format
msgid "Do you really want to withdraw %s from the election?"
msgstr ""
-#: assignment/views.py:164
+#: assignment/views.py:161
#, python-format
msgid "Do you really want to unblock %s for the election?"
msgstr ""
-#: assignment/views.py:183
+#: assignment/views.py:180
#, python-format
msgid "Candidate %s was withdrawn successfully."
msgstr ""
-#: assignment/views.py:185
+#: assignment/views.py:182
#, python-format
msgid "%s was unblocked successfully."
msgstr ""
-#: assignment/views.py:202
+#: assignment/views.py:197
msgid "New ballot was successfully created."
msgstr ""
-#: assignment/views.py:238
+#: assignment/views.py:233
#, python-format
msgid "Ballot ID %d does not exist."
msgstr ""
-#: assignment/views.py:263
+#: assignment/views.py:257
msgid "not elected"
msgstr ""
-#: assignment/views.py:267 assignment/views.py:476
-#: assignment/templates/assignment/assignment_detail.html:76
+#: assignment/views.py:261 assignment/views.py:461
+#: assignment/templates/assignment/assignment_detail.html:81
msgid "elected"
msgstr ""
-#: assignment/views.py:293
+#: assignment/views.py:287
msgid "Ballot was successfully deleted."
msgstr ""
-#: assignment/views.py:328
+#: assignment/views.py:322
msgid "No assignments available."
msgstr ""
-#: assignment/views.py:347
+#: assignment/views.py:341
#, python-format
msgid "Election: %s"
msgstr ""
-#: assignment/views.py:360 assignment/views.py:396
-#: assignment/templates/assignment/assignment_detail.html:65
-#: assignment/templates/assignment/assignment_detail.html:149
-#: assignment/templates/assignment/assignment_list.html:34
-#: assignment/templates/assignment/assignment_list.html:50
+#: assignment/views.py:357 assignment/views.py:385
+#: assignment/templates/assignment/assignment_detail.html:70
+#: assignment/templates/assignment/assignment_detail.html:154
+#: assignment/templates/assignment/assignment_list.html:40
+#: assignment/templates/assignment/assignment_list.html:60
#: assignment/templates/assignment/assignmentpoll_form.html:44
#: assignment/templates/assignment/slide.html:29
msgid "Candidates"
msgstr ""
-#: assignment/views.py:385
-#: assignment/templates/assignment/assignment_detail.html:145
+#: assignment/views.py:381
+#: assignment/templates/assignment/assignment_detail.html:150
#: assignment/templates/assignment/assignmentpoll_form.html:26
msgid "Election result"
msgstr ""
-#: assignment/views.py:389
-#: assignment/templates/assignment/assignment_detail.html:153
+#: assignment/views.py:387
+#: assignment/templates/assignment/assignment_detail.html:158
#: assignment/templates/assignment/assignmentpoll_form.html:7
#: assignment/templates/assignment/assignmentpoll_form.html:13
#: assignment/templates/assignment/assignmentpoll_slide.html:11
msgid "ballot"
msgstr ""
-#: assignment/views.py:392
-msgid "ballots"
-msgstr ""
-
-#: assignment/views.py:417
+#: assignment/views.py:406
#, python-format
msgid ""
"Y: %(YES)s\n"
@@ -1033,66 +1047,66 @@ msgid ""
"A: %(ABSTAIN)s"
msgstr ""
-#: assignment/views.py:428
-#: assignment/templates/assignment/assignment_detail.html:229
+#: assignment/views.py:417
#: assignment/templates/assignment/assignment_detail.html:234
+#: assignment/templates/assignment/assignment_detail.html:239
#: assignment/templates/assignment/assignmentpoll_form.html:61
#: assignment/templates/assignment/assignmentpoll_slide.html:39
-#: motion/pdf.py:119 motion/templates/motion/motion_detail.html:236
+#: motion/pdf.py:118 motion/templates/motion/motion_detail.html:239
#: motion/templates/motion/motionpoll_form.html:54
#: motion/templates/motion/motionpoll_slide.html:33
#: motion/templates/motion/slide.html:29 poll/models.py:84
msgid "Valid votes"
msgstr ""
-#: assignment/views.py:439
-#: assignment/templates/assignment/assignment_detail.html:245
+#: assignment/views.py:428
#: assignment/templates/assignment/assignment_detail.html:250
+#: assignment/templates/assignment/assignment_detail.html:255
#: assignment/templates/assignment/assignmentpoll_form.html:71
#: assignment/templates/assignment/assignmentpoll_slide.html:45
-#: motion/pdf.py:121 motion/templates/motion/motion_detail.html:239
+#: motion/pdf.py:120 motion/templates/motion/motion_detail.html:242
#: motion/templates/motion/motionpoll_form.html:58
#: motion/templates/motion/motionpoll_slide.html:39
#: motion/templates/motion/slide.html:32 poll/models.py:86
msgid "Invalid votes"
msgstr ""
-#: assignment/views.py:450
-#: assignment/templates/assignment/assignment_detail.html:261
+#: assignment/views.py:439
#: assignment/templates/assignment/assignment_detail.html:266
+#: assignment/templates/assignment/assignment_detail.html:271
#: assignment/templates/assignment/assignmentpoll_form.html:81
#: assignment/templates/assignment/assignmentpoll_slide.html:51
-#: motion/pdf.py:123 motion/templates/motion/motion_detail.html:244
+#: motion/pdf.py:122 motion/templates/motion/motion_detail.html:247
#: motion/templates/motion/motionpoll_form.html:62
#: motion/templates/motion/motionpoll_slide.html:45
#: motion/templates/motion/slide.html:37 poll/models.py:88
msgid "Votes cast"
msgstr ""
-#: assignment/views.py:536
+#: assignment/views.py:521
#, python-format
msgid "%d. ballot"
msgstr ""
-#: assignment/views.py:538
+#: assignment/views.py:523
#, python-format
msgid "%d candidate"
msgid_plural "%d candidates"
msgstr[0] ""
msgstr[1] ""
-#: assignment/views.py:540
+#: assignment/views.py:525
#, python-format
msgid "%d available post"
msgid_plural "%d available posts"
msgstr[0] ""
msgstr[1] ""
-#: assignment/views.py:590
-#: assignment/templates/assignment/assignment_detail.html:213
+#: assignment/views.py:575
+#: assignment/templates/assignment/assignment_detail.html:218
#: assignment/templates/assignment/assignmentpoll_slide.html:28
-#: motion/pdf.py:129 motion/pdf.py:278
-#: motion/templates/motion/motion_detail.html:232
+#: motion/pdf.py:128 motion/pdf.py:277
+#: motion/templates/motion/motion_detail.html:235
#: motion/templates/motion/motionpoll_slide.html:28
#: motion/templates/motion/slide.html:25
msgid "Abstention"
@@ -1103,7 +1117,7 @@ msgid "Print election as PDF"
msgstr ""
#: assignment/templates/assignment/assignment_detail.html:27
-#: assignment/templates/assignment/assignment_list.html:62
+#: assignment/templates/assignment/assignment_list.html:72
#: assignment/templates/assignment/assignmentpoll_form.html:21
msgid "Show election"
msgstr ""
@@ -1119,88 +1133,88 @@ msgid "Delete election"
msgstr ""
#: assignment/templates/assignment/assignment_detail.html:45
-#: motion/templates/motion/motion_detail.html:63
+#: motion/templates/motion/motion_detail.html:66
msgid "New agenda item"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:72
-#: assignment/templates/assignment/assignment_detail.html:132
+#: assignment/templates/assignment/assignment_detail.html:77
+#: assignment/templates/assignment/assignment_detail.html:137
msgid "Remove candidate"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:79
+#: assignment/templates/assignment/assignment_detail.html:84
msgid "Mark candidate as not elected"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:87
+#: assignment/templates/assignment/assignment_detail.html:92
#: assignment/templates/assignment/slide.html:35
msgid "No candidates available."
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:97
+#: assignment/templates/assignment/assignment_detail.html:102
msgid "Withdraw self candidature"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:101
+#: assignment/templates/assignment/assignment_detail.html:106
msgid "Self candidature"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:126
+#: assignment/templates/assignment/assignment_detail.html:131
msgid "Blocked Candidates"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:137
+#: assignment/templates/assignment/assignment_detail.html:142
msgid "No blocked candidates available."
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:157
+#: assignment/templates/assignment/assignment_detail.html:162
msgid "Publish result"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:168
+#: assignment/templates/assignment/assignment_detail.html:173
#: assignment/templates/assignment/assignmentpoll_form.html:25
msgid "Show election result"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:171
+#: assignment/templates/assignment/assignment_detail.html:176
#: assignment/templates/assignment/assignmentpoll_form.html:96
-#: motion/templates/motion/motion_detail.html:221
+#: motion/templates/motion/motion_detail.html:224
#: motion/templates/motion/motionpoll_form.html:72
msgid "Ballot paper as PDF"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:183
-#: assignment/templates/assignment/assignment_detail.html:282
+#: assignment/templates/assignment/assignment_detail.html:188
+#: assignment/templates/assignment/assignment_detail.html:287
msgid "New ballot"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:194
-#: assignment/templates/assignment/assignment_detail.html:203
+#: assignment/templates/assignment/assignment_detail.html:199
+#: assignment/templates/assignment/assignment_detail.html:208
msgid "Mark candidate as elected"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:197
+#: assignment/templates/assignment/assignment_detail.html:202
msgid "Candidate is elected"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:217
+#: assignment/templates/assignment/assignment_detail.html:222
msgid "was not a
candidate"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:278
+#: assignment/templates/assignment/assignment_detail.html:283
msgid "No ballots available."
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:293
-#: assignment/templates/assignment/assignment_list.html:35
+#: assignment/templates/assignment/assignment_detail.html:298
+#: assignment/templates/assignment/assignment_list.html:41
#: assignment/templates/assignment/slide.html:9
-#: motion/templates/motion/motion_detail.html:203
-#: motion/templates/motion/motion_list.html:53
+#: motion/templates/motion/motion_detail.html:206
+#: motion/templates/motion/motion_list.html:62
#: motion/templates/motion/slide.html:8
msgid "Status"
msgstr ""
-#: assignment/templates/assignment/assignment_detail.html:302
+#: assignment/templates/assignment/assignment_detail.html:307
msgid "Change status"
msgstr ""
@@ -1215,16 +1229,16 @@ msgstr ""
msgid "Back to election"
msgstr ""
-#: assignment/templates/assignment/assignment_list.html:25
+#: assignment/templates/assignment/assignment_list.html:31
msgid "Print all elections as PDF"
msgstr ""
-#: assignment/templates/assignment/assignment_list.html:46
+#: assignment/templates/assignment/assignment_list.html:56
msgctxt "Number of searched candidates for an election"
msgid "Posts"
msgstr ""
-#: assignment/templates/assignment/assignment_list.html:53
+#: assignment/templates/assignment/assignment_list.html:63
msgid "Elected"
msgstr ""
@@ -1256,6 +1270,7 @@ msgstr ""
#: core/templates/formbuttons_save.html:4
#: core/templates/formbuttons_saveapply.html:4
#: core/templates/core/select_widgets.html:28
+#: core/templates/core/tag_list.html:19
#: motion/templates/motion/motionpoll_form.html:78
msgid "Save"
msgstr ""
@@ -1313,6 +1328,14 @@ msgstr ""
msgid "Can use the chat"
msgstr ""
+#: core/models.py:49 core/templates/core/tag_list.html:24
+msgid "Tag"
+msgstr ""
+
+#: core/models.py:54
+msgid "Can manage tags"
+msgstr ""
+
#: core/signals.py:26
msgid "Event name"
msgstr ""
@@ -1407,31 +1430,31 @@ msgstr ""
msgid "General"
msgstr ""
-#: core/views.py:81
+#: core/views.py:83
msgid "There are errors in the form."
msgstr ""
-#: core/views.py:167
+#: core/views.py:169
msgid "Forbidden"
msgstr ""
-#: core/views.py:168
+#: core/views.py:170
msgid "Sorry, you have no permission to see this page."
msgstr ""
-#: core/views.py:170
+#: core/views.py:172
msgid "Not Found"
msgstr ""
-#: core/views.py:171
+#: core/views.py:173
msgid "Sorry, the requested page could not be found."
msgstr ""
-#: core/views.py:173
+#: core/views.py:175
msgid "Internal Server Error"
msgstr ""
-#: core/views.py:174
+#: core/views.py:176
msgid "Sorry, there was an unknown error. Please contact the event manager."
msgstr ""
@@ -1439,38 +1462,38 @@ msgstr ""
msgid "Custom Slides"
msgstr ""
-#: core/templates/base.html:29
+#: core/templates/base.html:30
msgid "Home"
msgstr ""
-#: core/templates/base.html:29
+#: core/templates/base.html:30
msgid "Logo"
msgstr ""
-#: core/templates/base.html:36 core/templates/core/search.html:5
+#: core/templates/base.html:37 core/templates/core/search.html:5
#: core/templates/core/search.html.py:13 core/templates/core/search.html:16
msgid "Search"
msgstr ""
-#: core/templates/base.html:45
+#: core/templates/base.html:46
msgid "Chat"
msgstr ""
-#: core/templates/base.html:59
+#: core/templates/base.html:60
#: participant/templates/participant/settings.html:5
#: participant/templates/participant/settings.html:8
msgid "Edit profile"
msgstr ""
-#: core/templates/base.html:60
+#: core/templates/base.html:61
msgid "Change password"
msgstr ""
-#: core/templates/base.html:62
+#: core/templates/base.html:63
msgid "Logout"
msgstr ""
-#: core/templates/base.html:65 participant/templates/participant/login.html:6
+#: core/templates/base.html:66 participant/templates/participant/login.html:6
#: participant/templates/participant/login.html:43
msgid "Login"
msgstr ""
@@ -1509,13 +1532,21 @@ msgstr ""
msgid "No widgets available"
msgstr ""
+#: core/templates/core/tag_list.html:17
+msgid "Enter new tag name"
+msgstr ""
+
+#: core/templates/core/tag_list.html:56
+msgid "You can use these tags for agenda items, motions and elections."
+msgstr ""
+
#: core/templates/core/version.html:5 core/templates/core/version.html.py:8
-#: core/templates/core/version.html:16 motion/pdf.py:95 motion/views.py:363
+#: core/templates/core/version.html:16 motion/pdf.py:94 motion/views.py:443
#: motion/templates/motion/motion_detail.html:22
#: motion/templates/motion/motion_diff.html:35
#: motion/templates/motion/motion_diff.html:39
#: motion/templates/motion/motionpoll_slide.html:10
-#: motion/templates/motion/slide.html:80
+#: motion/templates/motion/slide.html:83
msgid "Version"
msgstr ""
@@ -1673,105 +1704,105 @@ msgstr ""
msgid "%(counts)d of %(total)d motions successfully imported."
msgstr ""
-#: motion/forms.py:39 motion/models.py:542 motion/pdf.py:152
-#: motion/templates/motion/motion_detail.html:94
+#: motion/forms.py:38 motion/models.py:579 motion/pdf.py:151
+#: motion/templates/motion/motion_detail.html:97
#: motion/templates/motion/motion_diff.html:54
-#: motion/templates/motion/slide.html:91
+#: motion/templates/motion/slide.html:94
msgid "Reason"
msgstr ""
-#: motion/forms.py:47 motion/templates/motion/motion_detail.html:101
+#: motion/forms.py:46 motion/templates/motion/motion_detail.html:104
msgid "Attachments"
msgstr ""
-#: motion/forms.py:77 motion/pdf.py:49
-#: motion/templates/motion/motion_detail.html:183
-#: motion/templates/motion/motion_list.html:54
+#: motion/forms.py:80 motion/pdf.py:48
+#: motion/templates/motion/motion_detail.html:186
+#: motion/templates/motion/motion_list.html:63
#: motion/templates/motion/slide.html:51
msgid "Submitter"
msgstr ""
-#: motion/forms.py:92 motion/pdf.py:74 motion/signals.py:86
-#: motion/templates/motion/motion_detail.html:190
-#: motion/templates/motion/motion_list.html:56
+#: motion/forms.py:95 motion/pdf.py:73 motion/signals.py:105
+#: motion/templates/motion/motion_detail.html:193
+#: motion/templates/motion/motion_list.html:65
#: motion/templates/motion/slide.html:61
msgid "Supporters"
msgstr ""
-#: motion/forms.py:107
+#: motion/forms.py:110
msgid "Don't create a new version"
msgstr ""
-#: motion/forms.py:108
+#: motion/forms.py:111
msgid "Don't create a new version. Useful e.g. for trivial changes."
msgstr ""
-#: motion/forms.py:121 motion/templates/motion/motion_detail.html:266
-#: motion/templates/motion/motion_list.html:52
+#: motion/forms.py:124 motion/templates/motion/motion_detail.html:272
+#: motion/templates/motion/motion_list.html:61
#: motion/templates/motion/slide.html:70
msgid "Category"
msgstr ""
-#: motion/forms.py:141 motion/signals.py:36
+#: motion/forms.py:144 motion/signals.py:36
msgid "Identifier"
msgstr ""
-#: motion/forms.py:156
+#: motion/forms.py:159
msgid "Workflow"
msgstr ""
-#: motion/forms.py:157
+#: motion/forms.py:160
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:167
+#: motion/forms.py:170
msgid "Override existing motions with the same identifier"
msgstr ""
-#: motion/forms.py:168
+#: motion/forms.py:171
msgid ""
"If this is active, every motion with the same identifier as in your csv file "
"will be overridden."
msgstr ""
-#: motion/forms.py:176
+#: motion/forms.py:179
msgid "Default submitter"
msgstr ""
-#: motion/forms.py:177
+#: 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."
msgstr ""
-#: motion/main_menu.py:12 motion/signals.py:124 motion/views.py:715
+#: motion/main_menu.py:12 motion/signals.py:143 motion/views.py:776
#: motion/widgets.py:15 motion/templates/motion/category_list.html:6
#: motion/templates/motion/motion_list.html:7
#: motion/templates/motion/motion_list.html:32
msgid "Motions"
msgstr ""
-#: motion/models.py:79
+#: motion/models.py:89
msgid "Can see motions"
msgstr ""
-#: motion/models.py:80
+#: motion/models.py:90
msgid "Can create motions"
msgstr ""
-#: motion/models.py:81
+#: motion/models.py:91
msgid "Can support motions"
msgstr ""
-#: motion/models.py:82
+#: motion/models.py:92
msgid "Can manage motions"
msgstr ""
-#: motion/models.py:85 motion/models.py:470 motion/pdf.py:42 motion/pdf.py:262
-#: motion/signals.py:148 motion/views.py:289 motion/views.py:612
-#: motion/views.py:722 motion/templates/motion/motion_detail.html:8
+#: motion/models.py:95 motion/models.py:492 motion/pdf.py:41 motion/pdf.py:261
+#: motion/signals.py:167 motion/views.py:370 motion/views.py:672
+#: motion/views.py:783 motion/templates/motion/motion_detail.html:8
#: motion/templates/motion/motion_detail.html:20
#: motion/templates/motion/motion_diff.html:6
#: motion/templates/motion/motion_diff.html:19
@@ -1783,60 +1814,60 @@ msgstr ""
msgid "Motion"
msgstr ""
-#: motion/models.py:556
+#: motion/models.py:593
msgid "new"
msgstr ""
-#: motion/models.py:613 motion/templates/motion/category_list.html:22
+#: motion/models.py:650 motion/templates/motion/category_list.html:22
msgid "Category name"
msgstr ""
-#: motion/models.py:616 motion/templates/motion/category_list.html:21
+#: motion/models.py:653 motion/templates/motion/category_list.html:21
msgid "Prefix"
msgstr ""
-#: motion/models.py:671
+#: motion/models.py:708
#, python-format
msgid "%(time_and_messages)s by %(person)s"
msgstr ""
-#: motion/models.py:726
+#: motion/models.py:763
#, python-format
msgid "Vote %d"
msgstr ""
-#: motion/pdf.py:63
+#: motion/pdf.py:62
msgid "Signature"
msgstr ""
-#: motion/pdf.py:85
+#: motion/pdf.py:84
msgid "State"
msgstr ""
-#: motion/pdf.py:111 motion/templates/motion/motion_detail.html:208
+#: motion/pdf.py:110 motion/templates/motion/motion_detail.html:211
#: motion/templates/motion/motionpoll_form.html:27
msgid "Vote result"
msgstr ""
-#: motion/pdf.py:125 motion/templates/motion/slide.html:17
+#: motion/pdf.py:124 motion/templates/motion/slide.html:17
msgid "Vote"
msgstr ""
-#: motion/pdf.py:249 motion/templates/motion/category_list.html:10
-#: motion/templates/motion/motion_list.html:40
+#: motion/pdf.py:248 motion/templates/motion/category_list.html:10
+#: motion/templates/motion/motion_list.html:48
msgid "Categories"
msgstr ""
-#: motion/pdf.py:256 motion/templates/motion/widget_motion.html:29
+#: motion/pdf.py:255 motion/templates/motion/widget_motion.html:29
msgid "No motions available."
msgstr ""
-#: motion/pdf.py:269
+#: motion/pdf.py:268
#, python-format
msgid "Motion No. %s"
msgstr ""
-#: motion/pdf.py:271
+#: motion/pdf.py:270
#, python-format
msgid "%d. Vote"
msgstr ""
@@ -1881,245 +1912,262 @@ msgstr ""
msgid "Allow to disable versioning"
msgstr ""
-#: motion/signals.py:76
-msgid "Number of (minimum) required supporters for a motion"
+#: motion/signals.py:75
+msgid "Activate amendments"
msgstr ""
-#: motion/signals.py:78
-msgid "Choose 0 to disable the supporting system."
+#: motion/signals.py:80
+msgctxt "Prefix for the identifier for amendments"
+msgid "A"
msgstr ""
#: motion/signals.py:83
+msgid "Prefix for the identifier for amendments"
+msgstr ""
+
+#: motion/signals.py:86 motion/templates/motion/motion_detail.html:295
+msgid "Amendments"
+msgstr ""
+
+#: motion/signals.py:95
+msgid "Number of (minimum) required supporters for a motion"
+msgstr ""
+
+#: motion/signals.py:97
+msgid "Choose 0 to disable the supporting system."
+msgstr ""
+
+#: motion/signals.py:102
msgid ""
"Remove all supporters of a motion if a submitter edits his motion in early "
"state"
msgstr ""
-#: motion/signals.py:96
+#: motion/signals.py:115
msgid "The 100 % base of a voting result consists of"
msgstr ""
-#: motion/signals.py:118
+#: motion/signals.py:137
msgid "Voting and ballot papers"
msgstr ""
-#: motion/signals.py:129
+#: motion/signals.py:148
msgid "Title for PDF document (all motions)"
msgstr ""
-#: motion/signals.py:136
+#: motion/signals.py:155
msgid "Preamble text for PDF document (all motions)"
msgstr ""
-#: motion/signals.py:141
+#: motion/signals.py:160
msgid "Show paragraph numbering (only in PDF)"
msgstr ""
-#: motion/signals.py:159
+#: motion/signals.py:179
msgid "Simple Workflow"
msgstr ""
-#: motion/signals.py:161
+#: motion/signals.py:181
msgid "submitted"
msgstr ""
-#: motion/signals.py:166 motion/signals.py:193
+#: motion/signals.py:186 motion/signals.py:213
msgid "accepted"
msgstr ""
-#: motion/signals.py:168 motion/signals.py:195
+#: motion/signals.py:188 motion/signals.py:215
msgid "Accept"
msgstr ""
-#: motion/signals.py:169 motion/signals.py:197
+#: motion/signals.py:189 motion/signals.py:217
msgid "rejected"
msgstr ""
-#: motion/signals.py:171 motion/signals.py:199
+#: motion/signals.py:191 motion/signals.py:219
msgid "Reject"
msgstr ""
-#: motion/signals.py:172
+#: motion/signals.py:192
msgid "not decided"
msgstr ""
-#: motion/signals.py:174
+#: motion/signals.py:194
msgid "Do not decide"
msgstr ""
-#: motion/signals.py:179
+#: motion/signals.py:199
msgid "Complex Workflow"
msgstr ""
-#: motion/signals.py:181
+#: motion/signals.py:201
msgid "published"
msgstr ""
-#: motion/signals.py:186 motion/views.py:365
+#: motion/signals.py:206 motion/views.py:445
msgid "permitted"
msgstr ""
-#: motion/signals.py:188
+#: motion/signals.py:208
msgid "Permit"
msgstr ""
-#: motion/signals.py:201
+#: motion/signals.py:221
msgid "withdrawed"
msgstr ""
-#: motion/signals.py:203
+#: motion/signals.py:223
msgid "Withdraw"
msgstr ""
-#: motion/signals.py:205
+#: motion/signals.py:225
msgid "adjourned"
msgstr ""
-#: motion/signals.py:207
+#: motion/signals.py:227
msgid "Adjourn"
msgstr ""
-#: motion/signals.py:209
+#: motion/signals.py:229
msgid "not concerned"
msgstr ""
-#: motion/signals.py:211
+#: motion/signals.py:231
msgid "Do not concern"
msgstr ""
-#: motion/signals.py:213
+#: motion/signals.py:233
msgid "commited a bill"
msgstr ""
-#: motion/signals.py:215
+#: motion/signals.py:235
msgid "Commit a bill"
msgstr ""
-#: motion/signals.py:217
+#: motion/signals.py:237
msgid "needs review"
msgstr ""
-#: motion/signals.py:219
+#: motion/signals.py:239
msgid "Needs review"
msgstr ""
-#: motion/signals.py:221
+#: motion/signals.py:241
msgid "rejected (not authorized)"
msgstr ""
-#: motion/signals.py:223
+#: motion/signals.py:243
msgid "Reject (not authorized)"
msgstr ""
-#: motion/views.py:183
+#: motion/views.py:214
msgid "Motion created"
msgstr ""
-#: motion/views.py:228
+#: motion/views.py:311
msgid "All supporters removed"
msgstr ""
-#: motion/views.py:242
+#: motion/views.py:325
msgid "Motion version"
msgstr ""
-#: motion/views.py:244
+#: motion/views.py:327
msgid "created"
msgstr ""
-#: motion/views.py:244
+#: motion/views.py:327
msgid "updated"
msgstr ""
-#: motion/views.py:289 utils/views.py:525
+#: motion/views.py:370 utils/views.py:554
#, python-format
msgid "%s was successfully deleted."
msgstr ""
-#: motion/views.py:328
+#: motion/views.py:409
msgid "Version successfully permitted."
msgstr ""
-#: motion/views.py:354
+#: motion/views.py:434
#, python-format
msgid "Are you sure you want permit version %s?"
msgstr ""
-#: motion/views.py:391
+#: motion/views.py:474
msgid "At least one version number is not valid."
msgstr ""
-#: motion/views.py:434
+#: motion/views.py:508
msgid "You can not support this motion."
msgstr ""
-#: motion/views.py:437
+#: motion/views.py:511
msgid "You can not unsupport this motion."
msgstr ""
-#: motion/views.py:447
+#: motion/views.py:521
msgid "Do you really want to support this motion?"
msgstr ""
-#: motion/views.py:449
+#: motion/views.py:523
msgid "Do you really want to unsupport this motion?"
msgstr ""
-#: motion/views.py:462
+#: motion/views.py:536
msgid "Motion supported"
msgstr ""
-#: motion/views.py:465
+#: motion/views.py:539
msgid "Motion unsupported"
msgstr ""
-#: motion/views.py:472
+#: motion/views.py:546
msgid "You have supported this motion successfully."
msgstr ""
-#: motion/views.py:474
+#: motion/views.py:548
msgid "You have unsupported this motion successfully."
msgstr ""
-#: motion/views.py:500
+#: motion/views.py:564
msgid "Poll created"
msgstr ""
-#: motion/views.py:501
+#: motion/views.py:565
msgid "New vote was successfully created."
msgstr ""
-#: motion/views.py:567
+#: motion/views.py:635
msgid "Poll updated"
msgstr ""
-#: motion/views.py:585
+#: motion/views.py:651
msgid "Poll deleted"
msgstr ""
-#: motion/views.py:612
+#: motion/views.py:672
msgid "Poll"
msgstr ""
-#: motion/views.py:653
+#: motion/views.py:710
msgid "You can not set the state of the motion. It is already done."
msgstr ""
-#: motion/views.py:655
+#: motion/views.py:712
#, python-format
msgid "You can not set the state of the motion to %s."
msgstr ""
-#: motion/views.py:662
+#: motion/views.py:719
msgid "State changed to"
msgstr ""
-#: motion/views.py:665
+#: motion/views.py:722
#, python-format
msgid "The state of the motion was set to %s."
msgstr ""
-#: motion/views.py:683
+#: motion/views.py:737
msgid "Agenda item created"
msgstr ""
@@ -2139,7 +2187,7 @@ msgid "No categories available."
msgstr ""
#: motion/templates/motion/motion_detail.html:24
-#: motion/templates/motion/motion_detail.html:128
+#: motion/templates/motion/motion_detail.html:131
msgid "This version is authorized"
msgstr ""
@@ -2147,117 +2195,121 @@ msgstr ""
msgid "This version is not authorized."
msgstr ""
-#: motion/templates/motion/motion_detail.html:37
+#: motion/templates/motion/motion_detail.html:40
msgid "Print motion as PDF"
msgstr ""
-#: motion/templates/motion/motion_detail.html:41
-#: motion/templates/motion/motion_list.html:98
+#: motion/templates/motion/motion_detail.html:44
+#: motion/templates/motion/motion_list.html:118
#: motion/templates/motion/motionpoll_form.html:22
msgid "Show motion"
msgstr ""
-#: motion/templates/motion/motion_detail.html:53
-#: motion/templates/motion/motion_form.html:32
-#: motion/templates/motion/motion_form.html:42
+#: motion/templates/motion/motion_detail.html:56
+#: motion/templates/motion/motion_form.html:15
+#: motion/templates/motion/motion_form.html:25
msgid "Edit motion"
msgstr ""
-#: motion/templates/motion/motion_detail.html:58
+#: motion/templates/motion/motion_detail.html:61
msgid "Delete motion"
msgstr ""
-#: motion/templates/motion/motion_detail.html:77
+#: motion/templates/motion/motion_detail.html:80
msgid "Go to the authorized version"
msgstr ""
-#: motion/templates/motion/motion_detail.html:82
+#: motion/templates/motion/motion_detail.html:85
msgid "Go to the newest version"
msgstr ""
-#: motion/templates/motion/motion_detail.html:89
+#: motion/templates/motion/motion_detail.html:92
msgid "Motion text"
msgstr ""
-#: motion/templates/motion/motion_detail.html:114
+#: motion/templates/motion/motion_detail.html:117
msgid "Version history"
msgstr ""
-#: motion/templates/motion/motion_detail.html:120
+#: motion/templates/motion/motion_detail.html:123
msgid "Time"
msgstr ""
-#: motion/templates/motion/motion_detail.html:121
+#: motion/templates/motion/motion_detail.html:124
msgid "Difference"
msgstr ""
-#: motion/templates/motion/motion_detail.html:131
+#: motion/templates/motion/motion_detail.html:134
msgid "Permit this version"
msgstr ""
-#: motion/templates/motion/motion_detail.html:165
+#: motion/templates/motion/motion_detail.html:168
msgid "Show log"
msgstr ""
-#: motion/templates/motion/motion_detail.html:213
+#: motion/templates/motion/motion_detail.html:216
#: motion/templates/motion/motionpoll_slide.html:11
msgid "vote"
msgstr ""
-#: motion/templates/motion/motion_detail.html:218
+#: motion/templates/motion/motion_detail.html:221
#: motion/templates/motion/motionpoll_form.html:26
msgid "Show vote result"
msgstr ""
-#: motion/templates/motion/motion_detail.html:223
+#: motion/templates/motion/motion_detail.html:226
msgid "Edit Vote"
msgstr ""
-#: motion/templates/motion/motion_detail.html:225
+#: motion/templates/motion/motion_detail.html:228
#: motion/templates/motion/motionpoll_form.html:31
msgid "Delete Vote"
msgstr ""
-#: motion/templates/motion/motion_detail.html:249
+#: motion/templates/motion/motion_detail.html:252
msgid "No result"
msgstr ""
-#: motion/templates/motion/motion_detail.html:259
+#: motion/templates/motion/motion_detail.html:264
msgid "New vote"
msgstr ""
-#: motion/templates/motion/motion_detail.html:276
+#: motion/templates/motion/motion_detail.html:287
msgid "Last changes (of this version)"
msgstr ""
-#: motion/templates/motion/motion_detail.html:278
+#: motion/templates/motion/motion_detail.html:289
#: motion/templates/motion/motion_diff.html:36
#: motion/templates/motion/motion_diff.html:40
-#: motion/templates/motion/motion_list.html:58
+#: motion/templates/motion/motion_list.html:67
msgid "Last changes"
msgstr ""
-#: motion/templates/motion/motion_detail.html:288
+#: motion/templates/motion/motion_detail.html:307
+msgid "New amendment"
+msgstr ""
+
+#: motion/templates/motion/motion_detail.html:316
msgid "Unsupport"
msgstr ""
-#: motion/templates/motion/motion_detail.html:294
+#: motion/templates/motion/motion_detail.html:322
msgid "Support"
msgstr ""
-#: motion/templates/motion/motion_detail.html:302
+#: motion/templates/motion/motion_detail.html:330
msgid "minimum required supporters"
msgstr ""
-#: motion/templates/motion/motion_detail.html:309
+#: motion/templates/motion/motion_detail.html:337
msgid "Manage motion"
msgstr ""
-#: motion/templates/motion/motion_detail.html:319
+#: motion/templates/motion/motion_detail.html:347
msgid "For administration only:"
msgstr ""
-#: motion/templates/motion/motion_detail.html:321
+#: motion/templates/motion/motion_detail.html:349
msgid "Reset state"
msgstr ""
@@ -2270,20 +2322,20 @@ msgid "Diff view"
msgstr ""
#: motion/templates/motion/motion_diff.html:27
-#: motion/templates/motion/motion_form.html:48
+#: motion/templates/motion/motion_form.html:31
#: motion/templates/motion/motionpoll_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:17
+#: motion/templates/motion/motion_form.html:27
#: motion/templates/motion/motion_list.html:36
msgid "New motion"
msgstr ""
#: motion/templates/motion/motion_form_csv_import.html:5
#: motion/templates/motion/motion_form_csv_import.html:9
-#: motion/templates/motion/motion_list.html:41
+#: motion/templates/motion/motion_list.html:50
msgid "Import motions"
msgstr ""
@@ -2300,31 +2352,31 @@ msgid ""
"Identifier, reason, submitter and category are optional and may be empty"
msgstr ""
-#: motion/templates/motion/motion_list.html:40
+#: motion/templates/motion/motion_list.html:46
msgid "Manage categories"
msgstr ""
-#: motion/templates/motion/motion_list.html:43
+#: motion/templates/motion/motion_list.html:52
msgid "Print all motions as PDF"
msgstr ""
-#: motion/templates/motion/motion_list.html:50
+#: motion/templates/motion/motion_list.html:59
msgid "#"
msgstr ""
-#: motion/templates/motion/motion_list.html:51
+#: motion/templates/motion/motion_list.html:60
msgid "Motion title"
msgstr ""
-#: motion/templates/motion/motion_list.html:79
+#: motion/templates/motion/motion_list.html:99
msgid "Enough supporters"
msgstr ""
-#: motion/templates/motion/motion_list.html:82
+#: motion/templates/motion/motion_list.html:102
msgid "Needs supporters"
msgstr ""
-#: motion/templates/motion/motion_list.html:89
+#: motion/templates/motion/motion_list.html:109
msgid "There is a newer (unauthorized) version."
msgstr ""
@@ -2382,7 +2434,7 @@ msgstr ""
msgid "Use one line per participant for its name (first name and last name)."
msgstr ""
-#: participant/forms.py:52 participant/forms.py:155 participant/pdf.py:109
+#: participant/forms.py:52 participant/forms.py:156 participant/pdf.py:109
#: participant/templates/participant/login.html:34
#: participant/templates/participant/user_detail.html:69
msgid "Username"
@@ -2398,19 +2450,19 @@ msgstr ""
msgid "Permissions"
msgstr ""
-#: participant/forms.py:141
+#: participant/forms.py:142
msgid ""
"You can not remove yourself from the last group containing the permission to "
"manage participants."
msgstr ""
-#: participant/forms.py:149
+#: participant/forms.py:150
msgid ""
"You can not remove the permission to manage participants from the last group "
"you are in."
msgstr ""
-#: participant/forms.py:164
+#: participant/forms.py:165
msgid "Language"
msgstr ""
@@ -2592,7 +2644,7 @@ msgstr ""
msgid "Delegates"
msgstr ""
-#: participant/signals.py:176
+#: participant/signals.py:179
#: participant/templates/participant/user_form_csv_import.html:25
msgid "Staff"
msgstr ""
@@ -2606,42 +2658,42 @@ msgstr ""
msgid "You can not delete yourself."
msgstr ""
-#: participant/views.py:194
+#: participant/views.py:193
msgid "You can not deactivate yourself."
msgstr ""
-#: participant/views.py:213
+#: participant/views.py:212
msgid "Participant-list"
msgstr ""
-#: participant/views.py:214
+#: participant/views.py:213
msgid "List of Participants"
msgstr ""
-#: participant/views.py:228
+#: participant/views.py:227
msgid "Participant-access-data"
msgstr ""
-#: participant/views.py:258
+#: participant/views.py:257
msgid "Do you really want to reset the password?"
msgstr ""
-#: participant/views.py:271
+#: participant/views.py:266
#, python-format
msgid "The Password for %s was successfully reset."
msgstr ""
-#: participant/views.py:365
+#: participant/views.py:360
msgid "You can not delete this group."
msgstr ""
-#: participant/views.py:374
+#: participant/views.py:369
msgid ""
"You can not delete the last group containing the permission to manage "
"participants you are in."
msgstr ""
-#: participant/views.py:390
+#: participant/views.py:385
#, python-format
msgid ""
"Installation was successfully! Use %(user)s (password: %(password)s) for "
@@ -2650,31 +2702,31 @@ msgid ""
"a security risk."
msgstr ""
-#: participant/views.py:417
+#: participant/views.py:412
msgid "User settings successfully saved."
msgstr ""
-#: participant/views.py:419 participant/views.py:443 utils/views.py:180
+#: participant/views.py:414 participant/views.py:438 utils/views.py:205
msgid "Please check the form for errors."
msgstr ""
-#: participant/views.py:440
+#: participant/views.py:435
msgid "Password successfully changed."
msgstr ""
-#: participant/templates/participant/edit.html:27
-#: participant/templates/participant/edit.html:37
+#: participant/templates/participant/edit.html:9
+#: participant/templates/participant/edit.html:19
#: participant/templates/participant/user_detail.html:26
msgid "Edit participant"
msgstr ""
-#: participant/templates/participant/edit.html:29
-#: participant/templates/participant/edit.html:39
+#: participant/templates/participant/edit.html:11
+#: participant/templates/participant/edit.html:21
#: participant/templates/participant/overview.html:23
msgid "New participant"
msgstr ""
-#: participant/templates/participant/edit.html:50
+#: participant/templates/participant/edit.html:32
msgid "Reset to First Password"
msgstr ""
@@ -2969,33 +3021,33 @@ msgstr ""
msgid "Starting OpenSlides' tornado webserver listening to %(url_string)s"
msgstr ""
-#: utils/views.py:328
+#: utils/views.py:357
msgid "Are you sure?"
msgstr ""
-#: utils/views.py:329
+#: utils/views.py:358
msgid "Thank you for your answer."
msgstr ""
-#: utils/views.py:418
+#: utils/views.py:447
msgid "You did not send a valid answer."
msgstr ""
-#: utils/views.py:452
+#: utils/views.py:481
#, python-format
msgid "%s was successfully modified."
msgstr ""
-#: utils/views.py:466
+#: utils/views.py:499
#, python-format
msgid "%s was successfully created."
msgstr ""
-#: utils/views.py:513
+#: utils/views.py:542
#, python-format
msgid "Do you really want to delete %s?"
msgstr ""
-#: utils/views.py:540
+#: utils/views.py:569
msgid "undefined-filename"
msgstr ""
diff --git a/openslides/locale/en/LC_MESSAGES/djangojs.po b/openslides/locale/en/LC_MESSAGES/djangojs.po
index f5445d612..44c54cde3 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: 2014-10-16 23:27+0200\n"
+"POT-Creation-Date: 2015-01-11 19:03+0100\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff --git a/openslides/motion/signals.py b/openslides/motion/signals.py
index f6b9a4778..8a1a426f0 100644
--- a/openslides/motion/signals.py
+++ b/openslides/motion/signals.py
@@ -77,7 +77,7 @@ def setup_motion_config(sender, **kwargs):
motion_amendments_prefix = ConfigVariable(
name='motion_amendments_prefix',
- default_value=pgettext('Prefix for amendment', 'A'),
+ default_value=pgettext('Prefix for the identifier for amendments', 'A'),
form_field=forms.CharField(
required=False,
label=ugettext_lazy('Prefix for the identifier for amendments')))
diff --git a/openslides/projector/models.py b/openslides/projector/models.py
index a9de923c8..7eca7acea 100644
--- a/openslides/projector/models.py
+++ b/openslides/projector/models.py
@@ -61,11 +61,16 @@ class SlideMixin(object):
def delete(self, *args, **kwargs):
"""
- Updates the projector, if the object is on the projector and is deleted.
+ Updates the projector if the object is on the projector and is deleted.
"""
from openslides.projector.api import update_projector
+ # Checking active slide has to be done before calling super().delete()
+ # because super().delete() deletes the object and than we have no
+ # access to the former existing primary key any more. But updating
+ # projector has to be done after deleting the object of course.
+ update_required = self.is_active_slide()
value = super(SlideMixin, self).delete(*args, **kwargs)
- if self.is_active_slide():
+ if update_required:
update_projector()
return value
diff --git a/tests/projector/models.py b/tests/projector/models.py
new file mode 100644
index 000000000..6bfd3576d
--- /dev/null
+++ b/tests/projector/models.py
@@ -0,0 +1,11 @@
+from django.db import models
+
+from openslides.projector.models import SlideMixin
+
+
+class DummySlideMixinModel(SlideMixin, models.Model):
+ """
+ Dummy model to test the SlideMixin.
+ """
+ slide_callback_name = 'dummy_slides_mixin_model_geu3AiceeG9eo6ohChoD'
+ title = models.CharField(max_length=255)
diff --git a/tests/projector/test_models.py b/tests/projector/test_models.py
new file mode 100644
index 000000000..3a0618517
--- /dev/null
+++ b/tests/projector/test_models.py
@@ -0,0 +1,17 @@
+from mock import patch
+
+from openslides.config.api import config
+from openslides.utils.test import TestCase
+
+from .models import DummySlideMixinModel
+
+
+class TestSlideMixin(TestCase):
+ @patch('openslides.projector.api.update_projector')
+ def test_delete(self, mock_update_projector):
+ obj = DummySlideMixinModel.objects.create(title='title_cah4AhZai3einoh9koo3')
+ config['projector_active_slide'] = {
+ 'callback': 'dummy_slides_mixin_model_geu3AiceeG9eo6ohChoD',
+ 'pk': '1'}
+ obj.delete()
+ mock_update_projector.assert_called_with()
diff --git a/tests/settings.py b/tests/settings.py
index d913376e7..d7a181ead 100644
--- a/tests/settings.py
+++ b/tests/settings.py
@@ -29,6 +29,7 @@ DATABASES = {
# Add OpenSlides plugins to this list
INSTALLED_PLUGINS = (
'tests.person_api',
+ 'tests.projector',
'tests.utils',
)