commit
9122052ba6
@ -32,10 +32,11 @@
|
|||||||
{% if assignment.active %}activeline{% endif %}">
|
{% if assignment.active %}activeline{% endif %}">
|
||||||
<td><a href="{% url assignment_view assignment.id %}">{{ assignment }}</a></td>
|
<td><a href="{% url assignment_view assignment.id %}">{{ assignment }}</a></td>
|
||||||
<td>
|
<td>
|
||||||
{{ assignment.posts }} {% trans "posts" %} / {{ assignment.elected|length }} {% trans "elected" %}
|
{% blocktrans with posts=assignment.posts %}posts: {{ posts }}{% endblocktrans %}
|
||||||
{% if assignment.status != 'fin' %}
|
{% if assignment.status != 'fin' %}
|
||||||
/ {{ assignment.candidates|length }} {% trans "candidates" %}
|
| {% blocktrans with candidates=assignment.get_participants|length %}candidates: {{ candidates }}{% endblocktrans %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
| {% blocktrans with elected=assignment.elected|length %}elected: {{ elected }}{% endblocktrans %}
|
||||||
</td>
|
</td>
|
||||||
<td>{{ assignment.get_status_display }}</td>
|
<td>{{ assignment.get_status_display }}</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -33,9 +33,10 @@
|
|||||||
<h1>{{ assignment }}</h1>
|
<h1>{{ assignment }}</h1>
|
||||||
<p>{{ assignment.description|linebreaks }}</p>
|
<p>{{ assignment.description|linebreaks }}</p>
|
||||||
|
|
||||||
|
{% if assignment.status != "fin" %}
|
||||||
<h3>{% trans "Candidates" %}</h3>
|
<h3>{% trans "Candidates" %}</h3>
|
||||||
<ol>
|
<ol>
|
||||||
{% for person in assignment.candidates %}
|
{% for person in assignment.get_participants %}
|
||||||
<li>
|
<li>
|
||||||
{{ person }}
|
{{ person }}
|
||||||
{% if perms.assignment.can_manage_assignment %}
|
{% if perms.assignment.can_manage_assignment %}
|
||||||
@ -43,6 +44,14 @@
|
|||||||
<a href="{% url assignment_delother assignment.id person.person_id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Remove candidate' %}"></a>
|
<a href="{% url assignment_delother assignment.id person.person_id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Remove candidate' %}"></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if person in assignment.elected %}
|
||||||
|
| <b>{% trans "elected" %}</b>
|
||||||
|
{% if perms.assignment.can_manage_assignment %}
|
||||||
|
{% if assignment.status == "sea" or assignment.status == "vot" %}
|
||||||
|
<a href="{% url assignment_user_not_elected assignment.id person.person_id %}"><img src="{% static 'images/icons/dialog-cancel.png' %}" title="{% trans 'Mark candidate as not elected' %}"></a>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
</li>
|
</li>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<li style="list-style: none outside none;"><i>{% trans "No candidates available." %}</i></li>
|
<li style="list-style: none outside none;"><i>{% trans "No candidates available." %}</i></li>
|
||||||
@ -85,27 +94,11 @@
|
|||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<h3>{% trans "Elected Candidates" %}</h3>
|
{% if perms.assignment.can_manage_assignments and blocked_candidates and assignment.status != "fin" %}
|
||||||
<ul>
|
|
||||||
{% for person in assignment.elected %}
|
|
||||||
<li>
|
|
||||||
{{ person }}
|
|
||||||
{% if perms.assignment.can_manage_assignment %}
|
|
||||||
{% if assignment.status == "sea" or assignment.status == "vot" %}
|
|
||||||
<a href="{% url assignment_user_not_elected assignment.id person.person_id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Remove candidate' %}"></a>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</li>
|
|
||||||
{% empty %}
|
|
||||||
<li>{% trans "No elected candidates available." %}</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
{% if perms.assignment.can_manage_assignments %}
|
|
||||||
<h3>{% trans "Blocked Candidates" %}</h3>
|
<h3>{% trans "Blocked Candidates" %}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{% for person in blocked_candidates %}
|
{% for person in blocked_candidates %}
|
||||||
@ -118,20 +111,11 @@
|
|||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if assignment.status != "sea" %}
|
||||||
<h3>{% trans "Election results" %}</h3>
|
<h3>{% trans "Election results" %}</h3>
|
||||||
|
|
||||||
{% if polls.exists %}
|
{% if polls.exists %}
|
||||||
<table id="election_table" style="width: auto;">
|
<table id="election_table" style="width: auto;">
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th></th>
|
|
||||||
{% with ballotnumber=polls.count %}
|
|
||||||
<th colspan="{{ ballotnumber|add:'1' }}" style="text-align: center;">
|
|
||||||
{% trans "ballot" %}
|
|
||||||
</th>
|
|
||||||
{% endwith %}
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th>{% trans "Candidates" %}</th>
|
<th>{% trans "Candidates" %}</th>
|
||||||
{% for poll in polls %}
|
{% for poll in polls %}
|
||||||
@ -161,7 +145,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
{% for candidate, poll_list in vote_results.items %}
|
{% for candidate, poll_list in vote_results.items %}
|
||||||
<tr class="{% cycle 'odd' '' %}">
|
<tr class="{% cycle 'odd' '' as rowcolors %}">
|
||||||
<td class="candidate">
|
<td class="candidate">
|
||||||
{% if candidate in assignment.elected %}
|
{% if candidate in assignment.elected %}
|
||||||
{% if perms.assignment.can_manage_assignment %}
|
{% if perms.assignment.can_manage_assignment %}
|
||||||
@ -198,8 +182,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<tr class="{% cycle rowcolors %}">
|
||||||
<tr>
|
|
||||||
<td>{% trans 'Invalid votes' %}</td>
|
<td>{% trans 'Invalid votes' %}</td>
|
||||||
{% for poll in polls %}
|
{% for poll in polls %}
|
||||||
{% if poll.published or perms.assignment.can_manage_assignment %}
|
{% if poll.published or perms.assignment.can_manage_assignment %}
|
||||||
@ -215,7 +198,6 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="total">
|
<tr class="total">
|
||||||
<td><strong>{% trans 'Votes cast' %}</strong></td>
|
<td><strong>{% trans 'Votes cast' %}</strong></td>
|
||||||
{% for poll in polls %}
|
{% for poll in polls %}
|
||||||
@ -233,11 +215,8 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
{% else %}
|
||||||
{% else %}
|
<i>{% trans "No results available." %}</i>
|
||||||
|
|
||||||
<i>{% trans "No ballots available." %}</i>
|
|
||||||
|
|
||||||
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
|
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
|
||||||
<p><a href='{% url assignment_gen_poll assignment.id %}'>
|
<p><a href='{% url assignment_gen_poll assignment.id %}'>
|
||||||
<span class="button">
|
<span class="button">
|
||||||
@ -245,9 +224,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</a></p>
|
</a></p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
{% for candidate, poll_list in vote_results.items %}
|
{% for candidate, poll_list in vote_results.items %}
|
||||||
<tr class="{% cycle 'odd' '' %}">
|
<tr class="{% cycle 'odd' '' as rowcolors %}">
|
||||||
<td class="candidate{% if candidate in assignment.elected %} elected{% endif %}">
|
<td class="candidate{% if candidate in assignment.elected %} elected{% endif %}">
|
||||||
{% if candidate in assignment.elected %}
|
{% if candidate in assignment.elected %}
|
||||||
<a class="elected">
|
<a class="elected">
|
||||||
@ -92,8 +92,7 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<tr class="{% cycle rowcolors %}">
|
||||||
<tr>
|
|
||||||
<td>{% trans 'Invalid votes' %}</td>
|
<td>{% trans 'Invalid votes' %}</td>
|
||||||
{% for poll in polls %}
|
{% for poll in polls %}
|
||||||
<td style="white-space:nowrap;">
|
<td style="white-space:nowrap;">
|
||||||
@ -105,7 +104,6 @@
|
|||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="total">
|
<tr class="total">
|
||||||
<td>
|
<td>
|
||||||
<strong>{% trans 'Votes cast' %}</strong>
|
<strong>{% trans 'Votes cast' %}</strong>
|
||||||
@ -120,12 +118,6 @@
|
|||||||
</td>
|
</td>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
{% elif some_polls_available %}
|
|
||||||
<i>{% trans "Vote results are not published yet." %}</i>
|
|
||||||
{% elif assignment.candidates %}
|
|
||||||
<i>{% trans "No ballots available." %}</i>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<br>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -56,13 +56,13 @@ class GeneralConfigForm(forms.Form, CssClassMixin):
|
|||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
frontpage_title = forms.CharField(
|
welcome_title = forms.CharField(
|
||||||
widget=forms.TextInput(),
|
widget=forms.TextInput(),
|
||||||
label=_("Title"),
|
label=_("Title"),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
frontpage_welcometext = forms.CharField(
|
welcome_text = forms.CharField(
|
||||||
widget=forms.Textarea(),
|
widget=forms.Textarea(),
|
||||||
label=_("Welcome text"),
|
label=_("Welcome text"),
|
||||||
required=False,
|
required=False,
|
||||||
|
@ -86,8 +86,8 @@ def default_config(sender, key, **kwargs):
|
|||||||
'event_location': '',
|
'event_location': '',
|
||||||
'event_organizer': '',
|
'event_organizer': '',
|
||||||
'presentation': '',
|
'presentation': '',
|
||||||
'frontpage_title': _('Welcome to OpenSlides'),
|
'welcome_title': _('Welcome to OpenSlides'),
|
||||||
'frontpage_welcometext': _('[Place for your welcome text.]'),
|
'welcome_text': _('[Place for your welcome text.]'),
|
||||||
'system_enable_anonymous': False,
|
'system_enable_anonymous': False,
|
||||||
}.get(key)
|
}.get(key)
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
<p></p>
|
<p></p>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{% trans "Frontpage" %}</legend>
|
<legend>{% trans "Welcome Widget" %}</legend>
|
||||||
{% for field in form %}
|
{% for field in form %}
|
||||||
{% if "id_frontpage" in field.label_tag %}
|
{% if "id_welcome" in field.label_tag %}
|
||||||
<p>
|
<p>
|
||||||
{{ field.errors }}
|
{{ field.errors }}
|
||||||
{{ field.required }}
|
{{ field.required }}
|
||||||
|
@ -41,8 +41,8 @@ class GeneralConfig(FormView):
|
|||||||
'event_date': config['event_date'],
|
'event_date': config['event_date'],
|
||||||
'event_location': config['event_location'],
|
'event_location': config['event_location'],
|
||||||
'event_organizer': config['event_organizer'],
|
'event_organizer': config['event_organizer'],
|
||||||
'frontpage_title': config['frontpage_title'],
|
'welcome_title': config['welcome_title'],
|
||||||
'frontpage_welcometext': config['frontpage_welcometext'],
|
'welcome_text': config['welcome_text'],
|
||||||
'system_enable_anonymous': config['system_enable_anonymous'],
|
'system_enable_anonymous': config['system_enable_anonymous'],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,10 +54,9 @@ class GeneralConfig(FormView):
|
|||||||
config['event_location'] = form.cleaned_data['event_location']
|
config['event_location'] = form.cleaned_data['event_location']
|
||||||
config['event_organizer'] = form.cleaned_data['event_organizer']
|
config['event_organizer'] = form.cleaned_data['event_organizer']
|
||||||
|
|
||||||
# frontpage
|
# welcome widget
|
||||||
config['frontpage_title'] = form.cleaned_data['frontpage_title']
|
config['welcome_title'] = form.cleaned_data['welcome_title']
|
||||||
config['frontpage_welcometext'] = \
|
config['welcome_text'] = form.cleaned_data['welcome_text']
|
||||||
form.cleaned_data['frontpage_welcometext']
|
|
||||||
|
|
||||||
# system
|
# system
|
||||||
if form.cleaned_data['system_enable_anonymous']:
|
if form.cleaned_data['system_enable_anonymous']:
|
||||||
|
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: OpenSlides 1.x\n"
|
"Project-Id-Version: OpenSlides 1.x\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2012-11-08 09:41+0100\n"
|
"POT-Creation-Date: 2012-11-20 12:34+0100\n"
|
||||||
"PO-Revision-Date: 2012-07-28 11:07+0200\n"
|
"PO-Revision-Date: 2012-07-28 11:07+0200\n"
|
||||||
"Last-Translator: Emanuel Schuetze <emanuel@intevation.de>\n"
|
"Last-Translator: Emanuel Schuetze <emanuel@intevation.de>\n"
|
||||||
"Language-Team: support@openslides.de\n"
|
"Language-Team: support@openslides.de\n"
|
||||||
@ -27,7 +27,7 @@ msgstr "Englisch"
|
|||||||
|
|
||||||
#: global_settings.py:38
|
#: global_settings.py:38
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr "Französisch"
|
||||||
|
|
||||||
#: agenda/forms.py:28
|
#: agenda/forms.py:28
|
||||||
msgid "Parent item"
|
msgid "Parent item"
|
||||||
@ -185,7 +185,7 @@ msgstr "Abbrechen"
|
|||||||
#: agenda/templates/agenda/edit.html:27
|
#: agenda/templates/agenda/edit.html:27
|
||||||
#: assignment/templates/assignment/edit.html:29
|
#: assignment/templates/assignment/edit.html:29
|
||||||
#: assignment/templates/assignment/poll_view.html:69
|
#: assignment/templates/assignment/poll_view.html:69
|
||||||
#: assignment/templates/assignment/view.html:83
|
#: assignment/templates/assignment/view.html:92
|
||||||
#: motion/templates/motion/edit.html:29
|
#: motion/templates/motion/edit.html:29
|
||||||
#: motion/templates/motion/poll_view.html:55
|
#: motion/templates/motion/poll_view.html:55
|
||||||
#: participant/templates/participant/edit.html:34
|
#: participant/templates/participant/edit.html:34
|
||||||
@ -227,8 +227,8 @@ msgid "Do you want to save the changed order of agenda items?"
|
|||||||
msgstr "Möchten Sie die geänderte Reihenfolge der Einträge speichern?"
|
msgstr "Möchten Sie die geänderte Reihenfolge der Einträge speichern?"
|
||||||
|
|
||||||
#: agenda/templates/agenda/overview.html:46 assignment/models.py:302
|
#: agenda/templates/agenda/overview.html:46 assignment/models.py:302
|
||||||
#: assignment/views.py:577 assignment/templates/assignment/view.html:184
|
#: assignment/views.py:577 assignment/templates/assignment/view.html:168
|
||||||
#: assignment/templates/assignment/view.html:188
|
#: assignment/templates/assignment/view.html:172
|
||||||
#: assignment/templates/projector/Assignment.html:78
|
#: assignment/templates/projector/Assignment.html:78
|
||||||
#: assignment/templates/projector/Assignment.html:82 motion/models.py:574
|
#: assignment/templates/projector/Assignment.html:82 motion/models.py:574
|
||||||
#: motion/views.py:804 motion/views.py:855
|
#: motion/views.py:804 motion/views.py:855
|
||||||
@ -239,7 +239,7 @@ msgid "Yes"
|
|||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
#: agenda/templates/agenda/overview.html:47 assignment/models.py:302
|
#: agenda/templates/agenda/overview.html:47 assignment/models.py:302
|
||||||
#: assignment/views.py:578 assignment/templates/assignment/view.html:185
|
#: assignment/views.py:578 assignment/templates/assignment/view.html:169
|
||||||
#: assignment/templates/projector/Assignment.html:79 motion/models.py:574
|
#: assignment/templates/projector/Assignment.html:79 motion/models.py:574
|
||||||
#: motion/views.py:804 motion/views.py:856
|
#: motion/views.py:804 motion/views.py:856
|
||||||
#: motion/templates/motion/view.html:80
|
#: motion/templates/motion/view.html:80
|
||||||
@ -299,7 +299,7 @@ msgid "Preview"
|
|||||||
msgstr "Vorschau"
|
msgstr "Vorschau"
|
||||||
|
|
||||||
#: agenda/templates/agenda/widget.html:23
|
#: agenda/templates/agenda/widget.html:23
|
||||||
#: assignment/templates/assignment/view.html:148
|
#: assignment/templates/assignment/view.html:132
|
||||||
#: assignment/templates/assignment/widget.html:11
|
#: assignment/templates/assignment/widget.html:11
|
||||||
#: motion/templates/motion/widget.html:11
|
#: motion/templates/motion/widget.html:11
|
||||||
#: participant/templates/participant/group_widget.html:11
|
#: participant/templates/participant/group_widget.html:11
|
||||||
@ -309,7 +309,7 @@ msgid "Delete"
|
|||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: agenda/templates/agenda/widget.html:26
|
#: agenda/templates/agenda/widget.html:26
|
||||||
#: assignment/templates/assignment/view.html:147
|
#: assignment/templates/assignment/view.html:131
|
||||||
#: assignment/templates/assignment/widget.html:14
|
#: assignment/templates/assignment/widget.html:14
|
||||||
#: motion/templates/motion/widget.html:14
|
#: motion/templates/motion/widget.html:14
|
||||||
#: participant/templates/participant/group_widget.html:14
|
#: participant/templates/participant/group_widget.html:14
|
||||||
@ -484,7 +484,7 @@ msgid "Election was successfully modified."
|
|||||||
msgstr "Wahl wurde erfolgreich geändert."
|
msgstr "Wahl wurde erfolgreich geändert."
|
||||||
|
|
||||||
#: assignment/views.py:138 motion/views.py:257 motion/views.py:663
|
#: assignment/views.py:138 motion/views.py:257 motion/views.py:663
|
||||||
#: participant/views.py:492 participant/views.py:515 utils/views.py:225
|
#: participant/views.py:506 participant/views.py:529 utils/views.py:225
|
||||||
#: utils/views.py:243 utils/views.py:267
|
#: utils/views.py:243 utils/views.py:267
|
||||||
msgid "Please check the form for errors."
|
msgid "Please check the form for errors."
|
||||||
msgstr "Bitte kontrollieren Sie das Formular nach Fehlern."
|
msgstr "Bitte kontrollieren Sie das Formular nach Fehlern."
|
||||||
@ -553,7 +553,7 @@ msgid "not elected"
|
|||||||
msgstr "nicht gewählt"
|
msgstr "nicht gewählt"
|
||||||
|
|
||||||
#: assignment/views.py:298 assignment/views.py:481
|
#: assignment/views.py:298 assignment/views.py:481
|
||||||
#: assignment/templates/assignment/overview.html:35
|
#: assignment/templates/assignment/view.html:48
|
||||||
msgid "elected"
|
msgid "elected"
|
||||||
msgstr "gewählt"
|
msgstr "gewählt"
|
||||||
|
|
||||||
@ -565,7 +565,7 @@ msgstr "Abstimmung wurde erfolgreich gelöscht."
|
|||||||
msgid "Assignment"
|
msgid "Assignment"
|
||||||
msgstr "Wahl"
|
msgstr "Wahl"
|
||||||
|
|
||||||
#: assignment/views.py:358 assignment/templates/assignment/overview.html:58
|
#: assignment/views.py:358 assignment/templates/assignment/overview.html:59
|
||||||
#: assignment/templates/assignment/widget.html:23
|
#: assignment/templates/assignment/widget.html:23
|
||||||
msgid "No assignments available."
|
msgid "No assignments available."
|
||||||
msgstr "Keine Wahlen vorhanden."
|
msgstr "Keine Wahlen vorhanden."
|
||||||
@ -578,8 +578,8 @@ msgstr "Wahlen: %s"
|
|||||||
#: assignment/views.py:389 assignment/views.py:422
|
#: assignment/views.py:389 assignment/views.py:422
|
||||||
#: assignment/templates/assignment/overview.html:26
|
#: assignment/templates/assignment/overview.html:26
|
||||||
#: assignment/templates/assignment/poll_view.html:18
|
#: assignment/templates/assignment/poll_view.html:18
|
||||||
#: assignment/templates/assignment/view.html:36
|
#: assignment/templates/assignment/view.html:37
|
||||||
#: assignment/templates/assignment/view.html:136
|
#: assignment/templates/assignment/view.html:120
|
||||||
#: assignment/templates/projector/Assignment.html:38
|
#: assignment/templates/projector/Assignment.html:38
|
||||||
#: assignment/templates/projector/Assignment.html:56
|
#: assignment/templates/projector/Assignment.html:56
|
||||||
msgid "Candidates"
|
msgid "Candidates"
|
||||||
@ -594,8 +594,7 @@ msgstr "Abstimmungsergebnis"
|
|||||||
#: assignment/templates/assignment/base_assignment.html:71
|
#: assignment/templates/assignment/base_assignment.html:71
|
||||||
#: assignment/templates/assignment/poll_view.html:5
|
#: assignment/templates/assignment/poll_view.html:5
|
||||||
#: assignment/templates/assignment/poll_view.html:8
|
#: assignment/templates/assignment/poll_view.html:8
|
||||||
#: assignment/templates/assignment/view.html:130
|
#: assignment/templates/assignment/view.html:123
|
||||||
#: assignment/templates/assignment/view.html:139
|
|
||||||
#: assignment/templates/projector/Assignment.html:59
|
#: assignment/templates/projector/Assignment.html:59
|
||||||
msgid "ballot"
|
msgid "ballot"
|
||||||
msgstr "Wahlgang"
|
msgstr "Wahlgang"
|
||||||
@ -616,17 +615,17 @@ msgstr ""
|
|||||||
"E: %(ABSTAIN)s"
|
"E: %(ABSTAIN)s"
|
||||||
|
|
||||||
#: assignment/views.py:454 assignment/templates/assignment/poll_view.html:35
|
#: assignment/views.py:454 assignment/templates/assignment/poll_view.html:35
|
||||||
#: assignment/templates/assignment/view.html:203
|
#: assignment/templates/assignment/view.html:186
|
||||||
#: assignment/templates/projector/Assignment.html:97
|
#: assignment/templates/projector/Assignment.html:96
|
||||||
#: motion/templates/motion/poll_view.html:31
|
#: motion/templates/motion/poll_view.html:31
|
||||||
msgid "Invalid votes"
|
msgid "Invalid votes"
|
||||||
msgstr "Ungültige Stimmen"
|
msgstr "Ungültige Stimmen"
|
||||||
|
|
||||||
#: assignment/views.py:461 assignment/templates/assignment/poll_view.html:45
|
#: assignment/views.py:461 assignment/templates/assignment/poll_view.html:45
|
||||||
#: assignment/templates/assignment/view.html:220
|
#: assignment/templates/assignment/view.html:202
|
||||||
#: assignment/templates/assignment/view.html:225
|
#: assignment/templates/assignment/view.html:207
|
||||||
#: assignment/templates/projector/Assignment.html:111
|
#: assignment/templates/projector/Assignment.html:109
|
||||||
#: assignment/templates/projector/Assignment.html:117 motion/views.py:804
|
#: assignment/templates/projector/Assignment.html:115 motion/views.py:804
|
||||||
#: motion/templates/motion/poll_view.html:35
|
#: motion/templates/motion/poll_view.html:35
|
||||||
#: motion/templates/motion/view.html:84
|
#: motion/templates/motion/view.html:84
|
||||||
#: motion/templates/projector/Motion.html:42 poll/models.py:76
|
#: motion/templates/projector/Motion.html:42 poll/models.py:76
|
||||||
@ -660,7 +659,7 @@ msgid_plural "%d available posts"
|
|||||||
msgstr[0] "%d verfügbare Posten"
|
msgstr[0] "%d verfügbare Posten"
|
||||||
msgstr[1] "%d verfügbare Posten"
|
msgstr[1] "%d verfügbare Posten"
|
||||||
|
|
||||||
#: assignment/views.py:578 assignment/templates/assignment/view.html:186
|
#: assignment/views.py:578 assignment/templates/assignment/view.html:170
|
||||||
#: assignment/templates/projector/Assignment.html:80 motion/views.py:804
|
#: assignment/templates/projector/Assignment.html:80 motion/views.py:804
|
||||||
#: motion/views.py:857 motion/templates/motion/view.html:81
|
#: motion/views.py:857 motion/templates/motion/view.html:81
|
||||||
#: motion/templates/projector/Motion.html:39
|
#: motion/templates/projector/Motion.html:39
|
||||||
@ -692,17 +691,17 @@ msgstr "Wahl anzeigen"
|
|||||||
#: assignment/templates/assignment/base_assignment.html:39
|
#: assignment/templates/assignment/base_assignment.html:39
|
||||||
#: assignment/templates/assignment/edit.html:8
|
#: assignment/templates/assignment/edit.html:8
|
||||||
#: assignment/templates/assignment/edit.html:17
|
#: assignment/templates/assignment/edit.html:17
|
||||||
#: assignment/templates/assignment/overview.html:49
|
#: assignment/templates/assignment/overview.html:50
|
||||||
msgid "Edit election"
|
msgid "Edit election"
|
||||||
msgstr "Wahl bearbeiten"
|
msgstr "Wahl bearbeiten"
|
||||||
|
|
||||||
#: assignment/templates/assignment/base_assignment.html:44
|
#: assignment/templates/assignment/base_assignment.html:44
|
||||||
#: assignment/templates/assignment/overview.html:50
|
#: assignment/templates/assignment/overview.html:51
|
||||||
msgid "Delete election"
|
msgid "Delete election"
|
||||||
msgstr "Wahl löschen"
|
msgstr "Wahl löschen"
|
||||||
|
|
||||||
#: assignment/templates/assignment/base_assignment.html:50
|
#: assignment/templates/assignment/base_assignment.html:50
|
||||||
#: assignment/templates/assignment/overview.html:52
|
#: assignment/templates/assignment/overview.html:53
|
||||||
msgid "Election as PDF"
|
msgid "Election as PDF"
|
||||||
msgstr "Wahl als PDF"
|
msgstr "Wahl als PDF"
|
||||||
|
|
||||||
@ -739,14 +738,21 @@ msgstr[0] "Wahl"
|
|||||||
msgstr[1] "Wahlen"
|
msgstr[1] "Wahlen"
|
||||||
|
|
||||||
#: assignment/templates/assignment/overview.html:35
|
#: assignment/templates/assignment/overview.html:35
|
||||||
msgid "posts"
|
#, python-format
|
||||||
msgstr "Posten"
|
msgid "posts: %(posts)s"
|
||||||
|
msgstr "Posten: %(posts)s"
|
||||||
|
|
||||||
#: assignment/templates/assignment/overview.html:37
|
#: assignment/templates/assignment/overview.html:37
|
||||||
msgid "candidates"
|
#, python-format
|
||||||
msgstr "Kandidaten/innen"
|
msgid "candidates: %(candidates)s"
|
||||||
|
msgstr "Kandidaten/innen: %(candidates)s"
|
||||||
|
|
||||||
#: assignment/templates/assignment/overview.html:44
|
#: assignment/templates/assignment/overview.html:39
|
||||||
|
#, python-format
|
||||||
|
msgid "elected: %(elected)s"
|
||||||
|
msgstr "Gewählt: %(elected)s"
|
||||||
|
|
||||||
|
#: assignment/templates/assignment/overview.html:45
|
||||||
msgid "Activate election"
|
msgid "Activate election"
|
||||||
msgstr "Wahl projizieren"
|
msgstr "Wahl projizieren"
|
||||||
|
|
||||||
@ -779,84 +785,74 @@ msgstr "Stimmzettel als PDF"
|
|||||||
msgid "Change status"
|
msgid "Change status"
|
||||||
msgstr "Status ändern"
|
msgstr "Status ändern"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:43
|
#: assignment/templates/assignment/view.html:44
|
||||||
#: assignment/templates/assignment/view.html:99
|
#: assignment/templates/assignment/view.html:106
|
||||||
#: assignment/templates/assignment/view.html:113
|
|
||||||
msgid "Remove candidate"
|
msgid "Remove candidate"
|
||||||
msgstr "Kandidate/in entfernen"
|
msgstr "Kandidate/in entfernen"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:48
|
#: assignment/templates/assignment/view.html:51
|
||||||
|
msgid "Mark candidate as not elected"
|
||||||
|
msgstr "Kandidat/in als nicht gewählt markieren"
|
||||||
|
|
||||||
|
#: assignment/templates/assignment/view.html:57
|
||||||
#: assignment/templates/projector/Assignment.html:44
|
#: assignment/templates/projector/Assignment.html:44
|
||||||
msgid "No candidates available."
|
msgid "No candidates available."
|
||||||
msgstr "Keine Kandidaten/innen vorhanden."
|
msgstr "Keine Kandidaten/innen vorhanden."
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:60
|
#: assignment/templates/assignment/view.html:69
|
||||||
msgid "Withdraw self candidature"
|
msgid "Withdraw self candidature"
|
||||||
msgstr "Eigene Kandidatur zurückziehen"
|
msgstr "Eigene Kandidatur zurückziehen"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:66
|
#: assignment/templates/assignment/view.html:75
|
||||||
msgid "Self candidature"
|
msgid "Self candidature"
|
||||||
msgstr "Selbst kandidieren"
|
msgstr "Selbst kandidieren"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:77
|
#: assignment/templates/assignment/view.html:86
|
||||||
msgid "Add new participant"
|
msgid "Add new participant"
|
||||||
msgstr "Neue/n Teilnehmer/in hinzufügen"
|
msgstr "Neue/n Teilnehmer/in hinzufügen"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:92
|
#: assignment/templates/assignment/view.html:102
|
||||||
msgid "Elected Candidates"
|
|
||||||
msgstr "Gewählte Kandidaten/innen"
|
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:104
|
|
||||||
msgid "No elected candidates available."
|
|
||||||
msgstr "Keine gewählten Kandidaten/innen vorhanden."
|
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:109
|
|
||||||
msgid "Blocked Candidates"
|
msgid "Blocked Candidates"
|
||||||
msgstr "Blockierte Kandidaten/innen"
|
msgstr "Blockierte Kandidaten/innen"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:116
|
#: assignment/templates/assignment/view.html:109
|
||||||
msgid "No blocked candidates available."
|
msgid "No blocked candidates available."
|
||||||
msgstr "Keine blockierten Kandidaten/innen vorhanden."
|
msgstr "Keine blockierten Kandidaten/innen vorhanden."
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:121
|
#: assignment/templates/assignment/view.html:115
|
||||||
#: assignment/templates/projector/Assignment.html:52
|
#: assignment/templates/projector/Assignment.html:52
|
||||||
msgid "Election results"
|
msgid "Election results"
|
||||||
msgstr "Wahlergebnisse"
|
msgstr "Wahlergebnisse"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:144
|
#: assignment/templates/assignment/view.html:128
|
||||||
msgid "Publish/unpublish results"
|
msgid "Publish/unpublish results"
|
||||||
msgstr "Ergebnisse veröffentlichen/unveröffentlichen"
|
msgstr "Ergebnisse veröffentlichen/unveröffentlichen"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:156
|
#: assignment/templates/assignment/view.html:140
|
||||||
#: assignment/templates/assignment/view.html:244
|
#: assignment/templates/assignment/view.html:223
|
||||||
msgid "New ballot"
|
msgid "New ballot"
|
||||||
msgstr "Neuer Wahlgang"
|
msgstr "Neuer Wahlgang"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:171
|
#: assignment/templates/assignment/view.html:155
|
||||||
#: assignment/templates/projector/Assignment.html:69
|
#: assignment/templates/projector/Assignment.html:69
|
||||||
msgid "Candidate is elected"
|
msgid "Candidate is elected"
|
||||||
msgstr "Kandidat/in ist gewählt"
|
msgstr "Kandidat/in ist gewählt"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:190
|
#: assignment/templates/assignment/view.html:174
|
||||||
#: assignment/templates/projector/Assignment.html:84
|
#: assignment/templates/projector/Assignment.html:84
|
||||||
msgid "was not a <br> candidate"
|
msgid "was not a <br> candidate"
|
||||||
msgstr "war kein Kandidat"
|
msgstr "war kein Kandidat"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:208
|
#: assignment/templates/assignment/view.html:191
|
||||||
#: assignment/templates/projector/Assignment.html:101 motion/views.py:804
|
#: assignment/templates/projector/Assignment.html:100 motion/views.py:804
|
||||||
#: motion/templates/motion/view.html:82
|
#: motion/templates/motion/view.html:82
|
||||||
#: motion/templates/projector/Motion.html:40
|
#: motion/templates/projector/Motion.html:40
|
||||||
msgid "Invalid"
|
msgid "Invalid"
|
||||||
msgstr "Ungültig"
|
msgstr "Ungültig"
|
||||||
|
|
||||||
#: assignment/templates/assignment/view.html:239
|
#: assignment/templates/assignment/view.html:219
|
||||||
#: assignment/templates/projector/Assignment.html:128
|
msgid "No results available."
|
||||||
msgid "No ballots available."
|
msgstr "Keine Ergebnisse vorhanden."
|
||||||
msgstr "Keine Wahlgänge vorhanden."
|
|
||||||
|
|
||||||
#: assignment/templates/projector/Assignment.html:126
|
|
||||||
msgid "Vote results are not published yet."
|
|
||||||
msgstr "Wahlergebnisse sind noch nicht veröffentlicht."
|
|
||||||
|
|
||||||
#: config/forms.py:24
|
#: config/forms.py:24
|
||||||
msgid "Event name"
|
msgid "Event name"
|
||||||
@ -902,23 +898,18 @@ msgstr "Willkommen bei OpenSlides"
|
|||||||
msgid "[Place for your welcome text.]"
|
msgid "[Place for your welcome text.]"
|
||||||
msgstr "[Platz für Ihren Begrüßungstext.]"
|
msgstr "[Platz für Ihren Begrüßungstext.]"
|
||||||
|
|
||||||
#: config/models.py:92
|
#: config/models.py:103
|
||||||
#, python-format
|
|
||||||
msgid "Get professional support for OpenSlides on %s."
|
|
||||||
msgstr "Professionelle Unterstützung für OpenSlides gibt es unter %s."
|
|
||||||
|
|
||||||
#: config/models.py:107
|
|
||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Allgemein"
|
msgstr "Allgemein"
|
||||||
|
|
||||||
#: config/models.py:131 config/templates/config/version.html:5
|
#: config/models.py:127 config/templates/config/version.html:5
|
||||||
#: config/templates/config/version.html:8
|
#: config/templates/config/version.html:8
|
||||||
#: config/templates/config/version.html:11 motion/views.py:789
|
#: config/templates/config/version.html:11 motion/views.py:789
|
||||||
#: motion/templates/motion/view.html:214 motion/templates/motion/view.html:244
|
#: motion/templates/motion/view.html:214 motion/templates/motion/view.html:244
|
||||||
msgid "Version"
|
msgid "Version"
|
||||||
msgstr "Version"
|
msgstr "Version"
|
||||||
|
|
||||||
#: config/views.py:79
|
#: config/views.py:78
|
||||||
msgid ""
|
msgid ""
|
||||||
"Anonymous access enabled. Please modify the \"Anonymous\" group to fit your "
|
"Anonymous access enabled. Please modify the \"Anonymous\" group to fit your "
|
||||||
"required permissions."
|
"required permissions."
|
||||||
@ -926,11 +917,11 @@ msgstr ""
|
|||||||
"Anonymer Zugriff aktiviert. Bitte setzen Sie die Rechte der Gruppe "
|
"Anonymer Zugriff aktiviert. Bitte setzen Sie die Rechte der Gruppe "
|
||||||
"\"Anonymous\" passend zum gewünschten Zugriffslevel."
|
"\"Anonymous\" passend zum gewünschten Zugriffslevel."
|
||||||
|
|
||||||
#: config/views.py:85
|
#: config/views.py:84
|
||||||
msgid "General settings successfully saved."
|
msgid "General settings successfully saved."
|
||||||
msgstr "Allgemeine Einstellungen erfolgreich gespeichert."
|
msgstr "Allgemeine Einstellungen erfolgreich gespeichert."
|
||||||
|
|
||||||
#: config/views.py:120 config/templates/config/base_config.html:7
|
#: config/views.py:119 config/templates/config/base_config.html:7
|
||||||
msgid "Configuration"
|
msgid "Configuration"
|
||||||
msgstr "Konfiguration"
|
msgstr "Konfiguration"
|
||||||
|
|
||||||
@ -944,8 +935,8 @@ msgid "Event"
|
|||||||
msgstr "Veranstaltung"
|
msgstr "Veranstaltung"
|
||||||
|
|
||||||
#: config/templates/config/general.html:26
|
#: config/templates/config/general.html:26
|
||||||
msgid "Frontpage"
|
msgid "Welcome Widget"
|
||||||
msgstr "Startseite"
|
msgstr "Willkommens-Widget"
|
||||||
|
|
||||||
#: config/templates/config/general.html:41
|
#: config/templates/config/general.html:41
|
||||||
msgid "System"
|
msgid "System"
|
||||||
@ -1706,7 +1697,7 @@ msgstr "Keine Abstimmungsergebnisse vorhanden."
|
|||||||
msgid "Participant"
|
msgid "Participant"
|
||||||
msgstr "Teilnehmer"
|
msgstr "Teilnehmer"
|
||||||
|
|
||||||
#: participant/forms.py:26 participant/views.py:590
|
#: participant/forms.py:26 participant/views.py:604
|
||||||
#: participant/templates/participant/group_overview.html:7
|
#: participant/templates/participant/group_overview.html:7
|
||||||
#: participant/templates/participant/group_overview.html:10
|
#: participant/templates/participant/group_overview.html:10
|
||||||
#: participant/templates/participant/user_detail.html:14
|
#: participant/templates/participant/user_detail.html:14
|
||||||
@ -1718,7 +1709,7 @@ msgstr "Gruppen"
|
|||||||
msgid "Permissions"
|
msgid "Permissions"
|
||||||
msgstr "Rechte"
|
msgstr "Rechte"
|
||||||
|
|
||||||
#: participant/forms.py:47 participant/views.py:530 participant/views.py:576
|
#: participant/forms.py:47 participant/views.py:544 participant/views.py:590
|
||||||
#: participant/templates/participant/base_participant.html:12
|
#: participant/templates/participant/base_participant.html:12
|
||||||
#: participant/templates/participant/overview.html:7
|
#: participant/templates/participant/overview.html:7
|
||||||
#: participant/templates/participant/overview.html:18
|
#: participant/templates/participant/overview.html:18
|
||||||
@ -1777,8 +1768,8 @@ msgstr "Gast"
|
|||||||
|
|
||||||
#: participant/models.py:44 participant/templates/participant/overview.html:30
|
#: participant/models.py:44 participant/templates/participant/overview.html:30
|
||||||
#: participant/templates/participant/overview.html:68
|
#: participant/templates/participant/overview.html:68
|
||||||
msgid "Detail"
|
msgid "Structure level"
|
||||||
msgstr "Detail"
|
msgstr "Gliederungsebene"
|
||||||
|
|
||||||
#: participant/models.py:45
|
#: participant/models.py:45
|
||||||
msgid "Will be shown after the name."
|
msgid "Will be shown after the name."
|
||||||
@ -1798,7 +1789,7 @@ msgstr "Nur zum Filtern der Teilnehmerliste."
|
|||||||
msgid "Typ"
|
msgid "Typ"
|
||||||
msgstr "Typ"
|
msgstr "Typ"
|
||||||
|
|
||||||
#: participant/models.py:53 participant/views.py:245
|
#: participant/models.py:53 participant/views.py:259
|
||||||
#: participant/templates/participant/overview.html:45
|
#: participant/templates/participant/overview.html:45
|
||||||
#: participant/templates/participant/overview.html:70
|
#: participant/templates/participant/overview.html:70
|
||||||
#: participant/templates/participant/user_detail.html:34
|
#: participant/templates/participant/user_detail.html:34
|
||||||
@ -1843,81 +1834,97 @@ msgstr "Zum Beispiel als Antragsteller."
|
|||||||
msgid "Welcome to OpenSlides!"
|
msgid "Welcome to OpenSlides!"
|
||||||
msgstr "Willkommen bei OpenSlides!"
|
msgstr "Willkommen bei OpenSlides!"
|
||||||
|
|
||||||
#: participant/views.py:240
|
#: participant/views.py:210
|
||||||
|
msgid "You can not delete yourself."
|
||||||
|
msgstr "Sie dürfen sich nicht selbst löschen."
|
||||||
|
|
||||||
|
#: participant/views.py:212
|
||||||
|
msgid "You can not delete the administrator."
|
||||||
|
msgstr "Sie dürfen den Administrator nicht löschen."
|
||||||
|
|
||||||
|
#: participant/views.py:232
|
||||||
|
msgid "You can not deactivate yourself."
|
||||||
|
msgstr "Sie dürfen sich nicht selbst deaktivieren."
|
||||||
|
|
||||||
|
#: participant/views.py:235
|
||||||
|
msgid "You can not deactivate the administrator."
|
||||||
|
msgstr "Sie dürfen den Administrator nicht deaktivieren."
|
||||||
|
|
||||||
|
#: participant/views.py:254
|
||||||
msgid "Participant-list"
|
msgid "Participant-list"
|
||||||
msgstr "Teilnehmerliste"
|
msgstr "Teilnehmerliste"
|
||||||
|
|
||||||
#: participant/views.py:241
|
#: participant/views.py:255
|
||||||
msgid "List of Participants"
|
msgid "List of Participants"
|
||||||
msgstr "Teilnehmerliste"
|
msgstr "Teilnehmerliste"
|
||||||
|
|
||||||
#: participant/views.py:244 participant/templates/participant/overview.html:67
|
#: participant/views.py:258 participant/templates/participant/overview.html:67
|
||||||
msgid "Last Name"
|
msgid "Last Name"
|
||||||
msgstr "Nachname"
|
msgstr "Nachname"
|
||||||
|
|
||||||
#: participant/views.py:244 participant/templates/participant/overview.html:66
|
#: participant/views.py:258 participant/templates/participant/overview.html:66
|
||||||
msgid "First Name"
|
msgid "First Name"
|
||||||
msgstr "Vorname"
|
msgstr "Vorname"
|
||||||
|
|
||||||
#: participant/views.py:244
|
#: participant/views.py:258
|
||||||
#: participant/templates/participant/group_overview.html:13
|
#: participant/templates/participant/group_overview.html:13
|
||||||
msgid "Group"
|
msgid "Group"
|
||||||
msgstr "Gruppe"
|
msgstr "Gruppe"
|
||||||
|
|
||||||
#: participant/views.py:244 participant/templates/participant/overview.html:37
|
#: participant/views.py:258 participant/templates/participant/overview.html:37
|
||||||
#: participant/templates/participant/overview.html:69
|
#: participant/templates/participant/overview.html:69
|
||||||
#: participant/templates/participant/user_detail.html:29
|
#: participant/templates/participant/user_detail.html:29
|
||||||
#: participant/templates/projector/UserSlide.html:24
|
#: participant/templates/projector/UserSlide.html:24
|
||||||
msgid "Type"
|
msgid "Type"
|
||||||
msgstr "Typ"
|
msgstr "Typ"
|
||||||
|
|
||||||
#: participant/views.py:276
|
#: participant/views.py:290
|
||||||
msgid "Participant-passwords"
|
msgid "Participant-passwords"
|
||||||
msgstr "Teilnehmer-Passwoerter"
|
msgstr "Teilnehmer-Passwoerter"
|
||||||
|
|
||||||
#: participant/views.py:298
|
#: participant/views.py:312
|
||||||
msgid "Account for OpenSlides"
|
msgid "Account for OpenSlides"
|
||||||
msgstr "Zugang für OpenSlides"
|
msgstr "Zugang für OpenSlides"
|
||||||
|
|
||||||
#: participant/views.py:300
|
#: participant/views.py:314
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "for %s"
|
msgid "for %s"
|
||||||
msgstr "für %s"
|
msgstr "für %s"
|
||||||
|
|
||||||
#: participant/views.py:303
|
#: participant/views.py:317
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User: %s"
|
msgid "User: %s"
|
||||||
msgstr "Nutzername: %s"
|
msgstr "Nutzername: %s"
|
||||||
|
|
||||||
#: participant/views.py:307
|
#: participant/views.py:321
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Password: %s"
|
msgid "Password: %s"
|
||||||
msgstr "Passwort: %s"
|
msgstr "Passwort: %s"
|
||||||
|
|
||||||
#: participant/views.py:312
|
#: participant/views.py:326
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "URL: %s"
|
msgid "URL: %s"
|
||||||
msgstr "URL: %s"
|
msgstr "URL: %s"
|
||||||
|
|
||||||
#: participant/views.py:354
|
#: participant/views.py:368
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%d new participants were successfully imported."
|
msgid "%d new participants were successfully imported."
|
||||||
msgstr "%d neue Teilnehmer/innen wurden erfolgreich importiert."
|
msgstr "%d neue Teilnehmer/innen wurden erfolgreich importiert."
|
||||||
|
|
||||||
#: participant/views.py:365
|
#: participant/views.py:379
|
||||||
msgid "Do you really want to reset the password?"
|
msgid "Do you really want to reset the password?"
|
||||||
msgstr "Soll das Passwort wirklich zurückgesetzt werden?"
|
msgstr "Soll das Passwort wirklich zurückgesetzt werden?"
|
||||||
|
|
||||||
#: participant/views.py:378
|
#: participant/views.py:392
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The Password for %s was successfully reset."
|
msgid "The Password for %s was successfully reset."
|
||||||
msgstr "Das Passwort für %s wurde erfolgreich zurückgesetzt."
|
msgstr "Das Passwort für %s wurde erfolgreich zurückgesetzt."
|
||||||
|
|
||||||
#: participant/views.py:457
|
#: participant/views.py:471
|
||||||
msgid "Participants settings successfully saved."
|
msgid "Participants settings successfully saved."
|
||||||
msgstr "Teilnehmer/innen-Einstellungen wurden erfolgreich gespeichert."
|
msgstr "Teilnehmer/innen-Einstellungen wurden erfolgreich gespeichert."
|
||||||
|
|
||||||
#: participant/views.py:467
|
#: participant/views.py:481
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Installation was successfully! Use %(user)s (password: %(password)s) for "
|
"Installation was successfully! Use %(user)s (password: %(password)s) for "
|
||||||
@ -1930,15 +1937,15 @@ msgstr ""
|
|||||||
"Sie das Passwort nach der ersten Anmeldung! Anderenfalls erscheint diese "
|
"Sie das Passwort nach der ersten Anmeldung! Anderenfalls erscheint diese "
|
||||||
"Meldung weiterhin für alle und ist ein Sicherheitsrisiko."
|
"Meldung weiterhin für alle und ist ein Sicherheitsrisiko."
|
||||||
|
|
||||||
#: participant/views.py:490
|
#: participant/views.py:504
|
||||||
msgid "User settings successfully saved."
|
msgid "User settings successfully saved."
|
||||||
msgstr "Nutzereinstellungen wurden erfolgreich gespeichert."
|
msgstr "Nutzereinstellungen wurden erfolgreich gespeichert."
|
||||||
|
|
||||||
#: participant/views.py:512
|
#: participant/views.py:526
|
||||||
msgid "Password successfully changed."
|
msgid "Password successfully changed."
|
||||||
msgstr "Passwort wurde erfolgreich geändert."
|
msgstr "Passwort wurde erfolgreich geändert."
|
||||||
|
|
||||||
#: participant/views.py:562
|
#: participant/views.py:576
|
||||||
msgid "My motions and elections"
|
msgid "My motions and elections"
|
||||||
msgstr "Meine Anträge und Wahlen"
|
msgstr "Meine Anträge und Wahlen"
|
||||||
|
|
||||||
@ -1988,7 +1995,7 @@ msgid "Edit participant"
|
|||||||
msgstr "Teilnehmer/in bearbeiten"
|
msgstr "Teilnehmer/in bearbeiten"
|
||||||
|
|
||||||
#: participant/templates/participant/base_participant.html:50
|
#: participant/templates/participant/base_participant.html:50
|
||||||
#: participant/templates/participant/overview.html:97
|
#: participant/templates/participant/overview.html:98
|
||||||
msgid "Delete participant"
|
msgid "Delete participant"
|
||||||
msgstr "Teilnehmer/in löschen"
|
msgstr "Teilnehmer/in löschen"
|
||||||
|
|
||||||
@ -2092,15 +2099,15 @@ msgstr "von"
|
|||||||
msgid "Last Login"
|
msgid "Last Login"
|
||||||
msgstr "Letzer Login"
|
msgstr "Letzer Login"
|
||||||
|
|
||||||
#: participant/templates/participant/overview.html:99
|
#: participant/templates/participant/overview.html:100
|
||||||
msgid "Change status to inactive"
|
msgid "Change status to inactive"
|
||||||
msgstr "Status ändern auf inaktiv"
|
msgstr "Status ändern auf inaktiv"
|
||||||
|
|
||||||
#: participant/templates/participant/overview.html:102
|
#: participant/templates/participant/overview.html:103
|
||||||
msgid "Change status to active"
|
msgid "Change status to active"
|
||||||
msgstr "Status ändern auf aktiv"
|
msgstr "Status ändern auf aktiv"
|
||||||
|
|
||||||
#: participant/templates/participant/overview.html:111
|
#: participant/templates/participant/overview.html:113
|
||||||
#: participant/templates/participant/user_widget.html:22
|
#: participant/templates/participant/user_widget.html:22
|
||||||
msgid "No participants available."
|
msgid "No participants available."
|
||||||
msgstr "Keine Teilnehmer/innen vorhanden."
|
msgstr "Keine Teilnehmer/innen vorhanden."
|
||||||
@ -2171,31 +2178,28 @@ msgstr "Darf den Projektor sehen"
|
|||||||
msgid "Can see the dashboard"
|
msgid "Can see the dashboard"
|
||||||
msgstr "Darf das Dashboard sehen"
|
msgstr "Darf das Dashboard sehen"
|
||||||
|
|
||||||
#: projector/views.py:204
|
#: projector/views.py:206
|
||||||
msgid "Errors in the form"
|
msgid "Errors in the form"
|
||||||
msgstr "Fehler im Formular"
|
msgstr "Fehler im Formular"
|
||||||
|
|
||||||
#: projector/views.py:383 projector/templates/projector/dashboard.html:17
|
#: projector/views.py:384 projector/templates/projector/base_projector.html:7
|
||||||
|
#: projector/templates/projector/base_projector.html:12
|
||||||
|
#: projector/templates/projector/dashboard.html:17
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Dashboard"
|
msgstr "Dashboard"
|
||||||
|
|
||||||
#: projector/views.py:411
|
#: projector/views.py:412
|
||||||
msgid "Projector live view"
|
msgid "Projector live view"
|
||||||
msgstr "Projektor-Live-Ansicht"
|
msgstr "Projektor-Live-Ansicht"
|
||||||
|
|
||||||
#: projector/views.py:437
|
#: projector/views.py:439
|
||||||
msgid "Overlays"
|
msgid "Overlays"
|
||||||
msgstr "Einblendungen"
|
msgstr "Einblendungen"
|
||||||
|
|
||||||
#: projector/views.py:450
|
#: projector/views.py:452
|
||||||
msgid "Custom Slides"
|
msgid "Custom Slides"
|
||||||
msgstr "Benutzerdefinierte Folien"
|
msgstr "Benutzerdefinierte Folien"
|
||||||
|
|
||||||
#: projector/templates/projector/base_projector.html:7
|
|
||||||
#: projector/templates/projector/base_projector.html:12
|
|
||||||
msgid "Projector"
|
|
||||||
msgstr "Projektor"
|
|
||||||
|
|
||||||
#: projector/templates/projector/base_projector.html:15
|
#: projector/templates/projector/base_projector.html:15
|
||||||
msgid "Overview"
|
msgid "Overview"
|
||||||
msgstr "Übersicht"
|
msgstr "Übersicht"
|
||||||
@ -2207,7 +2211,6 @@ msgid "Select widgets"
|
|||||||
msgstr "Widgets auswählen"
|
msgstr "Widgets auswählen"
|
||||||
|
|
||||||
#: projector/templates/projector/base_projector.html:22
|
#: projector/templates/projector/base_projector.html:22
|
||||||
#: templates/front_page.html:25
|
|
||||||
msgid "Projector view"
|
msgid "Projector view"
|
||||||
msgstr "Projektor-Ansicht"
|
msgstr "Projektor-Ansicht"
|
||||||
|
|
||||||
@ -2245,27 +2248,23 @@ msgstr "Willkommensseite"
|
|||||||
msgid "New slide"
|
msgid "New slide"
|
||||||
msgstr "Neue Folie"
|
msgstr "Neue Folie"
|
||||||
|
|
||||||
#: projector/templates/projector/dashboard.html:21
|
#: projector/templates/projector/live_view_widget.html:10
|
||||||
msgid "Adjust projector view"
|
|
||||||
msgstr "Projektor-Ansicht anpassen"
|
|
||||||
|
|
||||||
#: projector/templates/projector/dashboard.html:22
|
|
||||||
msgid "Zoom in"
|
msgid "Zoom in"
|
||||||
msgstr "Vergrößern"
|
msgstr "Vergrößern"
|
||||||
|
|
||||||
#: projector/templates/projector/dashboard.html:25
|
#: projector/templates/projector/live_view_widget.html:13
|
||||||
msgid "Zoom out"
|
msgid "Zoom out"
|
||||||
msgstr "Verkleinern"
|
msgstr "Verkleinern"
|
||||||
|
|
||||||
#: projector/templates/projector/dashboard.html:28
|
#: projector/templates/projector/live_view_widget.html:18
|
||||||
msgid "Scroll text up"
|
msgid "Scroll text up"
|
||||||
msgstr "Text nach oben scrollen"
|
msgstr "Text nach oben scrollen"
|
||||||
|
|
||||||
#: projector/templates/projector/dashboard.html:31
|
#: projector/templates/projector/live_view_widget.html:21
|
||||||
msgid "Scroll text down"
|
msgid "Scroll text down"
|
||||||
msgstr "Text nach unten scrollen"
|
msgstr "Text nach unten scrollen"
|
||||||
|
|
||||||
#: projector/templates/projector/dashboard.html:34
|
#: projector/templates/projector/live_view_widget.html:26
|
||||||
msgid "Reset projector view"
|
msgid "Reset projector view"
|
||||||
msgstr "Projektor-Ansicht zurücksetzen"
|
msgstr "Projektor-Ansicht zurücksetzen"
|
||||||
|
|
||||||
@ -2286,8 +2285,7 @@ msgstr "Seite nicht gefunden."
|
|||||||
msgid "Server Error"
|
msgid "Server Error"
|
||||||
msgstr "Serverfehler"
|
msgstr "Serverfehler"
|
||||||
|
|
||||||
#: templates/base.html:21 templates/front_page.html:6
|
#: templates/base.html:21
|
||||||
#: templates/front_page.html.py:22
|
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Startseite"
|
msgstr "Startseite"
|
||||||
|
|
||||||
@ -2299,20 +2297,20 @@ msgstr "Abmelden"
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Willkommen"
|
msgstr "Willkommen"
|
||||||
|
|
||||||
#: templates/front_page.html:12
|
#: templates/base.html:79
|
||||||
msgid "You have access to the following pages:"
|
msgid ""
|
||||||
msgstr "Sie haben Zugriff auf folgende Seiten:"
|
"Get <a href='http://openslides.org/support' target='_blank'>professional "
|
||||||
|
"support</a> for OpenSlides."
|
||||||
|
msgstr ""
|
||||||
|
"Nutzen Sie unseren <a href='http://openslides.org/support' "
|
||||||
|
"target='_blank'>professionellen Support</a> für OpenSlides."
|
||||||
|
|
||||||
#: utils/pdf.py:225
|
#: utils/pdf.py:227
|
||||||
msgid "%Y-%m-%d %H:%Mh"
|
|
||||||
msgstr "%d.%m.%Y %H:%Mh"
|
|
||||||
|
|
||||||
#: utils/pdf.py:226
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Printed: %s"
|
msgid "As of: %s"
|
||||||
msgstr "Gedruckt am: %s"
|
msgstr "Stand: %s"
|
||||||
|
|
||||||
#: utils/pdf.py:237 utils/pdf.py:246
|
#: utils/pdf.py:238 utils/pdf.py:247
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Page %s"
|
msgid "Page %s"
|
||||||
msgstr "Seite %s"
|
msgstr "Seite %s"
|
||||||
@ -2356,3 +2354,9 @@ msgstr "undefinierter-dateiname"
|
|||||||
#: utils/jsonfield/fields.py:21
|
#: utils/jsonfield/fields.py:21
|
||||||
msgid "Enter valid JSON"
|
msgid "Enter valid JSON"
|
||||||
msgstr "Gebe valides JSON ein"
|
msgstr "Gebe valides JSON ein"
|
||||||
|
|
||||||
|
#~ msgid "posts"
|
||||||
|
#~ msgstr "Posten"
|
||||||
|
|
||||||
|
#~ msgid "candidates"
|
||||||
|
#~ msgstr "Kandidaten/innen"
|
||||||
|
@ -615,7 +615,7 @@ def motion_import(request):
|
|||||||
user.last_name = last_name
|
user.last_name = last_name
|
||||||
user.first_name = first_name
|
user.first_name = first_name
|
||||||
user.username = gen_username(first_name, last_name)
|
user.username = gen_username(first_name, last_name)
|
||||||
user.detail = ''
|
user.structure_level = ''
|
||||||
user.committee = ''
|
user.committee = ''
|
||||||
user.gender = ''
|
user.gender = ''
|
||||||
user.type = ''
|
user.type = ''
|
||||||
|
@ -71,7 +71,7 @@ def import_users(csv_file):
|
|||||||
dialect=dialect)):
|
dialect=dialect)):
|
||||||
if line_no:
|
if line_no:
|
||||||
try:
|
try:
|
||||||
(first_name, last_name, gender, detail, type, committee, comment) = line[:7]
|
(first_name, last_name, gender, structure_level, type, committee, comment) = line[:7]
|
||||||
except ValueError:
|
except ValueError:
|
||||||
error_messages.append(_('Ignoring malformed line %d in import file.') % line_no + 1)
|
error_messages.append(_('Ignoring malformed line %d in import file.') % line_no + 1)
|
||||||
continue
|
continue
|
||||||
@ -80,7 +80,7 @@ def import_users(csv_file):
|
|||||||
user.first_name = first_name
|
user.first_name = first_name
|
||||||
user.username = gen_username(first_name, last_name)
|
user.username = gen_username(first_name, last_name)
|
||||||
user.gender = gender
|
user.gender = gender
|
||||||
user.detail = detail
|
user.structure_level = structure_level
|
||||||
user.type = type
|
user.type = type
|
||||||
user.committee = committee
|
user.committee = committee
|
||||||
user.comment = comment
|
user.comment = comment
|
||||||
|
@ -27,7 +27,7 @@ class UserCreateForm(forms.ModelForm, CssClassMixin):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ('first_name', 'last_name', 'is_active', 'groups', 'detail',
|
fields = ('first_name', 'last_name', 'is_active', 'groups', 'structure_level',
|
||||||
'gender', 'type', 'committee', 'about_me', 'comment', 'default_password')
|
'gender', 'type', 'committee', 'about_me', 'comment', 'default_password')
|
||||||
|
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ class UserUpdateForm(UserCreateForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ('username', 'first_name', 'last_name', 'is_active', 'groups',
|
fields = ('username', 'first_name', 'last_name', 'is_active', 'groups',
|
||||||
'detail', 'gender', 'type', 'committee', 'about_me', 'comment',
|
'structure_level', 'gender', 'type', 'committee', 'about_me', 'comment',
|
||||||
'default_password')
|
'default_password')
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,8 +40,8 @@ class User(DjangoUser, PersonMixin, Person, SlideMixin):
|
|||||||
)
|
)
|
||||||
|
|
||||||
django_user = models.OneToOneField(DjangoUser, editable=False, parent_link=True)
|
django_user = models.OneToOneField(DjangoUser, editable=False, parent_link=True)
|
||||||
detail = models.CharField(
|
structure_level = models.CharField(
|
||||||
max_length=100, blank=True, default='', verbose_name=_("Detail"),
|
max_length=100, blank=True, default='', verbose_name=_("Structure level"),
|
||||||
help_text=_('Will be shown after the name.'))
|
help_text=_('Will be shown after the name.'))
|
||||||
gender = models.CharField(
|
gender = models.CharField(
|
||||||
max_length=50, choices=GENDER_CHOICES, blank=True,
|
max_length=50, choices=GENDER_CHOICES, blank=True,
|
||||||
@ -67,10 +67,10 @@ class User(DjangoUser, PersonMixin, Person, SlideMixin):
|
|||||||
return self.get_full_name() or self.username
|
return self.get_full_name() or self.username
|
||||||
|
|
||||||
def get_name_suffix(self):
|
def get_name_suffix(self):
|
||||||
return self.detail
|
return self.structure_level
|
||||||
|
|
||||||
def set_name_suffix(self, value):
|
def set_name_suffix(self, value):
|
||||||
self.detail = value
|
self.structure_level = value
|
||||||
|
|
||||||
name_suffix = property(get_name_suffix, set_name_suffix)
|
name_suffix = property(get_name_suffix, set_name_suffix)
|
||||||
|
|
||||||
|
@ -26,11 +26,11 @@
|
|||||||
<option value="female"{% if 'female' in sortfilter.gender %} selected{% endif %}>{% trans "Female" %}</option>
|
<option value="female"{% if 'female' in sortfilter.gender %} selected{% endif %}>{% trans "Female" %}</option>
|
||||||
<option value=""{% if '' in sortfilter.gender %} selected{% endif %}>{% trans "Not specified" %}</option>
|
<option value=""{% if '' in sortfilter.gender %} selected{% endif %}>{% trans "Not specified" %}</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="default-input" name="detail" onchange="document.forms['filter'].submit()">
|
<select class="default-input" name="structure_level" onchange="document.forms['filter'].submit()">
|
||||||
<option value="---">-- {% trans "Detail" %} --</option>
|
<option value="---">-- {% trans "Structure level" %} --</option>
|
||||||
{% for detail in details %}
|
{% for level in structure_levels %}
|
||||||
<option value="{{ detail }}"{% if detail in sortfilter.detail %} selected{% endif %}>
|
<option value="{{ level }}"{% if level in sortfilter.structure_level %} selected{% endif %}>
|
||||||
{{ detail }}</option>
|
{{ level }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
<select class="default-input" name="type" onchange="document.forms['filter'].submit()">
|
<select class="default-input" name="type" onchange="document.forms['filter'].submit()">
|
||||||
@ -65,7 +65,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th><a href="?sort=first_name&reverse={% if 'first_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "First Name" %}</a></th>
|
<th><a href="?sort=first_name&reverse={% if 'first_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "First Name" %}</a></th>
|
||||||
<th><a href="?sort=last_name&reverse={% if 'last_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Last Name" %}</a></th>
|
<th><a href="?sort=last_name&reverse={% if 'last_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Last Name" %}</a></th>
|
||||||
<th><a href="?sort=detail&reverse={% if 'detail' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Detail" %}</a></th>
|
<th><a href="?sort=structure_level&reverse={% if 'structure_level' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Structure level" %}</a></th>
|
||||||
<th><a href="?sort=type&reverse={% if 'type' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Type" %}</a></th>
|
<th><a href="?sort=type&reverse={% if 'type' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Type" %}</a></th>
|
||||||
<th><a href="?sort=committee&reverse={% if 'committee' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Committee" %}</a></th>
|
<th><a href="?sort=committee&reverse={% if 'committee' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Committee" %}</a></th>
|
||||||
{% if perms.participant.can_manage_participant %}
|
{% if perms.participant.can_manage_participant %}
|
||||||
@ -78,7 +78,7 @@
|
|||||||
<tr class="{% cycle '' 'odd' %}">
|
<tr class="{% cycle '' 'odd' %}">
|
||||||
<td><a href="{% model_url user 'view' %}">{{ user.first_name }}</a></td>
|
<td><a href="{% model_url user 'view' %}">{{ user.first_name }}</a></td>
|
||||||
<td><a href="{% model_url user 'view' %}">{{ user.last_name }}</a></td>
|
<td><a href="{% model_url user 'view' %}">{{ user.last_name }}</a></td>
|
||||||
<td>{{ user.detail }}</td>
|
<td>{{ user.structure_level }}</td>
|
||||||
<td>{{ user.get_type_display }}</td>
|
<td>{{ user.get_type_display }}</td>
|
||||||
<td>{{ user.committee }}</td>
|
<td>{{ user.committee }}</td>
|
||||||
{% if perms.participant.can_manage_participant %}
|
{% if perms.participant.can_manage_participant %}
|
||||||
|
@ -38,7 +38,7 @@ class UserTest(TestCase):
|
|||||||
self.assertEqual(unicode(self.user1), 'Max Mustermann')
|
self.assertEqual(unicode(self.user1), 'Max Mustermann')
|
||||||
|
|
||||||
def test_name_suffix(self):
|
def test_name_suffix(self):
|
||||||
self.user1.detail = 'München'
|
self.user1.structure_level = 'München'
|
||||||
self.user1.save()
|
self.user1.save()
|
||||||
self.assertEqual(unicode(self.user1), 'Max Mustermann (München)')
|
self.assertEqual(unicode(self.user1), 'Max Mustermann (München)')
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ class UserOverview(ListView):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
sortfilter = {}
|
sortfilter = {}
|
||||||
|
|
||||||
for value in ['gender', 'detail', 'type', 'committee', 'status',
|
for value in ['gender', 'structure_level', 'type', 'committee', 'status',
|
||||||
'sort', 'reverse']:
|
'sort', 'reverse']:
|
||||||
if value in self.request.REQUEST:
|
if value in self.request.REQUEST:
|
||||||
if self.request.REQUEST[value] == '---':
|
if self.request.REQUEST[value] == '---':
|
||||||
@ -85,8 +85,8 @@ class UserOverview(ListView):
|
|||||||
query = User.objects
|
query = User.objects
|
||||||
if 'gender' in sortfilter:
|
if 'gender' in sortfilter:
|
||||||
query = query.filter(gender__iexact=sortfilter['gender'][0])
|
query = query.filter(gender__iexact=sortfilter['gender'][0])
|
||||||
if 'detail' in sortfilter:
|
if 'structure_level' in sortfilter:
|
||||||
query = query.filter(detail__iexact=sortfilter['detail'][0])
|
query = query.filter(structure_level__iexact=sortfilter['structure_level'][0])
|
||||||
if 'type' in sortfilter:
|
if 'type' in sortfilter:
|
||||||
query = query.filter(type__iexact=sortfilter['type'][0])
|
query = query.filter(type__iexact=sortfilter['type'][0])
|
||||||
if 'committee' in sortfilter:
|
if 'committee' in sortfilter:
|
||||||
@ -97,7 +97,7 @@ class UserOverview(ListView):
|
|||||||
if sortfilter['sort'][0] in ['first_name', 'last_name', 'last_login']:
|
if sortfilter['sort'][0] in ['first_name', 'last_name', 'last_login']:
|
||||||
query = query.order_by(sortfilter['sort'][0])
|
query = query.order_by(sortfilter['sort'][0])
|
||||||
elif (sortfilter['sort'][0] in
|
elif (sortfilter['sort'][0] in
|
||||||
['detail', 'type', 'committee', 'comment']):
|
['structure_level', 'type', 'committee', 'comment']):
|
||||||
query = query.order_by(
|
query = query.order_by(
|
||||||
'%s' % sortfilter['sort'][0])
|
'%s' % sortfilter['sort'][0])
|
||||||
else:
|
else:
|
||||||
@ -125,8 +125,8 @@ class UserOverview(ListView):
|
|||||||
percent = 0
|
percent = 0
|
||||||
|
|
||||||
# list of all existing categories
|
# list of all existing categories
|
||||||
details = [p['detail'] for p in User.objects.values('detail')
|
structure_levels = [p['structure_level'] for p in User.objects.values('structure_level')
|
||||||
.exclude(detail='').distinct()]
|
.exclude(structure_level='').distinct()]
|
||||||
# list of all existing committees
|
# list of all existing committees
|
||||||
committees = [p['committee'] for p in User.objects.values('committee')
|
committees = [p['committee'] for p in User.objects.values('committee')
|
||||||
.exclude(committee='').distinct()]
|
.exclude(committee='').distinct()]
|
||||||
@ -135,7 +135,7 @@ class UserOverview(ListView):
|
|||||||
'allusers': all_users,
|
'allusers': all_users,
|
||||||
'request_user': self.request.user,
|
'request_user': self.request.user,
|
||||||
'percent': round(percent, 1),
|
'percent': round(percent, 1),
|
||||||
'details': details,
|
'structure_levels': structure_levels,
|
||||||
'committees': committees,
|
'committees': committees,
|
||||||
'cookie': ['participant_sortfilter', urlencode(decodedict(self.sortfilter),
|
'cookie': ['participant_sortfilter', urlencode(decodedict(self.sortfilter),
|
||||||
doseq=True)],
|
doseq=True)],
|
||||||
@ -268,8 +268,8 @@ class ParticipantsListPDF(PDFView):
|
|||||||
counter,
|
counter,
|
||||||
Paragraph(user.last_name, stylesheet['Tablecell']),
|
Paragraph(user.last_name, stylesheet['Tablecell']),
|
||||||
Paragraph(user.first_name, stylesheet['Tablecell']),
|
Paragraph(user.first_name, stylesheet['Tablecell']),
|
||||||
Paragraph(user.detail, stylesheet['Tablecell']),
|
Paragraph(user.structure_level, stylesheet['Tablecell']),
|
||||||
Paragraph(user.type, stylesheet['Tablecell']),
|
Paragraph(user.get_type_display(), stylesheet['Tablecell']),
|
||||||
Paragraph(user.committee, stylesheet['Tablecell'])])
|
Paragraph(user.committee, stylesheet['Tablecell'])])
|
||||||
t = LongTable(data, style=[
|
t = LongTable(data, style=[
|
||||||
('VALIGN', (0, 0), (-1, -1), 'TOP'),
|
('VALIGN', (0, 0), (-1, -1), 'TOP'),
|
||||||
|
@ -15,27 +15,6 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% trans 'Dashboard' %}</h1>
|
<h1>{% trans 'Dashboard' %}</h1>
|
||||||
{% if perms.projector.can_manage_projector %}
|
|
||||||
<div style="text-align: right; padding: 0 10px 5px 0; margin-top:-20px;">
|
|
||||||
<!-- control projector view -->
|
|
||||||
{% trans "Adjust projector view" %}:
|
|
||||||
<a class="projector_edit" href="{% url projector_bigger %}" title="{% trans 'Zoom in' %}">
|
|
||||||
<img src="{% static 'images/icons/zoom-in.png' %}" />
|
|
||||||
</a>
|
|
||||||
<a class="projector_edit" href="{% url projector_smaller %}" title="{% trans 'Zoom out' %}">
|
|
||||||
<img src="{% static 'images/icons/zoom-out.png' %}" />
|
|
||||||
</a>
|
|
||||||
<a class="projector_edit" href="{% url projector_up %}" title="{% trans 'Scroll text up' %}">
|
|
||||||
<img src="{% static 'images/icons/go-up.png' %}" />
|
|
||||||
</a>
|
|
||||||
<a class="projector_edit" href="{% url projector_down %}" title="{% trans 'Scroll text down' %}">
|
|
||||||
<img src="{% static 'images/icons/go-down.png' %}" />
|
|
||||||
</a>
|
|
||||||
<a class="projector_edit" href="{% url projector_clean %}" title="{% trans 'Reset projector view' %}">
|
|
||||||
<img src="{% static 'images/icons/view-reset.png' %}" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="column" id="col1">
|
<div class="column" id="col1">
|
||||||
{% for name, widget in widgets.items %}
|
{% for name, widget in widgets.items %}
|
||||||
|
@ -4,6 +4,5 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% get_config 'frontpage_title' %}</h1>
|
<div class="item_fullscreen">{% get_config 'welcome_title' %}</div>
|
||||||
{% get_config 'frontpage_welcometext' %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -1,7 +1,36 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load tags %}
|
{% load tags %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- projector control buttons -->
|
||||||
|
{% if perms.projector.can_manage_projector %}
|
||||||
|
<div style="float: right;">
|
||||||
|
<p>
|
||||||
|
<a class="projector_edit" href="{% url projector_bigger %}" title="{% trans 'Zoom in' %}">
|
||||||
|
<img src="{% static 'images/icons/zoom-in.png' %}" />
|
||||||
|
</a><br>
|
||||||
|
<a class="projector_edit" href="{% url projector_smaller %}" title="{% trans 'Zoom out' %}">
|
||||||
|
<img src="{% static 'images/icons/zoom-out.png' %}" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="projector_edit" href="{% url projector_up %}" title="{% trans 'Scroll text up' %}">
|
||||||
|
<img src="{% static 'images/icons/go-up.png' %}" />
|
||||||
|
</a><br>
|
||||||
|
<a class="projector_edit" href="{% url projector_down %}" title="{% trans 'Scroll text down' %}">
|
||||||
|
<img src="{% static 'images/icons/go-down.png' %}" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="projector_edit" href="{% url projector_clean %}" title="{% trans 'Reset projector view' %}">
|
||||||
|
<img src="{% static 'images/icons/view-reset.png' %}" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- projector view -->
|
||||||
<a href="{% url projector_show %}" target="_blank">
|
<a href="{% url projector_show %}" target="_blank">
|
||||||
<div id="iframewrapper">
|
<div id="iframewrapper">
|
||||||
<iframe id="iframe" src="{% url projector_show %}" frameborder="0"></iframe>
|
<iframe id="iframe" src="{% url projector_show %}" frameborder="0"></iframe>
|
||||||
|
@ -22,6 +22,7 @@ from django.db import transaction
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
|
from django.template import RequestContext
|
||||||
from django.utils.datastructures import SortedDict
|
from django.utils.datastructures import SortedDict
|
||||||
from django.utils.importlib import import_module
|
from django.utils.importlib import import_module
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
@ -396,10 +397,10 @@ def get_widgets(request):
|
|||||||
|
|
||||||
# welcome widget
|
# welcome widget
|
||||||
context = {
|
context = {
|
||||||
'welcometext': config['frontpage_welcometext']}
|
'welcometext': config['welcome_text']}
|
||||||
widgets.append(Widget(
|
widgets.append(Widget(
|
||||||
name='welcome',
|
name='welcome',
|
||||||
display_name=config['frontpage_title'],
|
display_name=config['welcome_title'],
|
||||||
template='projector/welcome_widget.html',
|
template='projector/welcome_widget.html',
|
||||||
context=context,
|
context=context,
|
||||||
permission_required='projector.can_see_dashboard',
|
permission_required='projector.can_see_dashboard',
|
||||||
@ -410,6 +411,7 @@ def get_widgets(request):
|
|||||||
name='live_view',
|
name='live_view',
|
||||||
display_name=_('Projector live view'),
|
display_name=_('Projector live view'),
|
||||||
template='projector/live_view_widget.html',
|
template='projector/live_view_widget.html',
|
||||||
|
context = RequestContext(request, {}),
|
||||||
permission_required='projector.can_see_projector',
|
permission_required='projector.can_see_projector',
|
||||||
default_column=2))
|
default_column=2))
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<small>
|
<small>
|
||||||
© Copyright 2011-2012 | Powered by <a href="http://openslides.org" target="_blank">OpenSlides</a> | Get <a href="http://openslides.org/support" target="_blank">professional support</a> for OpenSlides.
|
© Copyright 2011-2012 | Powered by <a href="http://openslides.org" target="_blank">OpenSlides</a> | {% trans "Get <a href='http://openslides.org/support' target='_blank'>professional support</a> for OpenSlides." %}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
{% extends "base.html" %}
|
|
||||||
|
|
||||||
{% load i18n %}
|
|
||||||
{% load staticfiles %}
|
|
||||||
|
|
||||||
{% block title %}{{ block.super }} – {% trans "Home" %}{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h1>{{ title }}</h1>
|
|
||||||
<p>{{ welcometext|safe|linebreaks }}</p>
|
|
||||||
|
|
||||||
{% trans "You have access to the following pages:" %}
|
|
||||||
<ul>
|
|
||||||
{% for app in apps %}
|
|
||||||
<li><a href="{{ app.url }}">{{ app.title }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block submenu %}
|
|
||||||
{% if perms.projector.can_see_projector %}
|
|
||||||
<h4 class="sectiontitle">{% trans "Home" %}</h4>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="{% url projector_show %}"><img src="{% static 'images/icons/projector.png' %}"> {% trans 'Projector view' %}</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
@ -13,17 +13,17 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls.defaults import patterns, url, include
|
from django.conf.urls.defaults import patterns, url, include
|
||||||
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
||||||
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.utils.importlib import import_module
|
from django.utils.importlib import import_module
|
||||||
|
|
||||||
from openslides.utils.views import FrontPage
|
from openslides.utils.views import RedirectView
|
||||||
|
|
||||||
|
|
||||||
handler500 = 'openslides.utils.views.server_error'
|
handler500 = 'openslides.utils.views.server_error'
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
# frontpage
|
# Redirect to dashboard URL
|
||||||
(r'^$', FrontPage.as_view()),
|
url(r'^$', RedirectView.as_view(url=reverse_lazy('dashboard')), name='home',),
|
||||||
|
|
||||||
(r'^agenda/', include('openslides.agenda.urls')),
|
(r'^agenda/', include('openslides.agenda.urls')),
|
||||||
(r'^motion/', include('openslides.motion.urls')),
|
(r'^motion/', include('openslides.motion.urls')),
|
||||||
|
@ -20,6 +20,7 @@ from reportlab.pdfbase.ttfonts import TTFont
|
|||||||
from reportlab.rl_config import defaultPageSize
|
from reportlab.rl_config import defaultPageSize
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.utils import formats
|
||||||
# Import gettext for python 2.5 support
|
# Import gettext for python 2.5 support
|
||||||
from django.utils.translation import ugettext as _, gettext
|
from django.utils.translation import ugettext as _, gettext
|
||||||
|
|
||||||
@ -222,8 +223,8 @@ def firstPage(canvas, doc):
|
|||||||
|
|
||||||
# time
|
# time
|
||||||
canvas.setFont('Ubuntu', 7)
|
canvas.setFont('Ubuntu', 7)
|
||||||
time = datetime.now().strftime(gettext("%Y-%m-%d %H:%Mh"))
|
time = formats.date_format(datetime.now(), 'DATETIME_FORMAT')
|
||||||
canvas.drawString(15 * cm, 28 * cm, _("Printed: %s") % time)
|
canvas.drawString(15 * cm, 28 * cm, _("As of: %s") % time)
|
||||||
|
|
||||||
# title
|
# title
|
||||||
if doc.title:
|
if doc.title:
|
||||||
|
@ -358,33 +358,6 @@ class PDFView(PermissionMixin, View):
|
|||||||
return self.render_to_response(self.get_filename())
|
return self.render_to_response(self.get_filename())
|
||||||
|
|
||||||
|
|
||||||
class FrontPage(TemplateView):
|
|
||||||
template_name = 'front_page.html'
|
|
||||||
|
|
||||||
def has_permission(self, request):
|
|
||||||
if request.user.is_authenticated() or config['system_enable_anonymous']:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
|
||||||
context = super(FrontPage, self).get_context_data(**kwargs)
|
|
||||||
apps = []
|
|
||||||
for app in settings.INSTALLED_APPS:
|
|
||||||
try:
|
|
||||||
mod = import_module(app + '.views')
|
|
||||||
tab = mod.register_tab(self.request)
|
|
||||||
except (ImportError, AttributeError):
|
|
||||||
continue
|
|
||||||
if tab.permission:
|
|
||||||
apps.append(tab)
|
|
||||||
context.update({
|
|
||||||
'apps': apps,
|
|
||||||
'title': config['frontpage_title'],
|
|
||||||
'welcometext': config['frontpage_welcometext'],
|
|
||||||
})
|
|
||||||
return context
|
|
||||||
|
|
||||||
|
|
||||||
def server_error(request, template_name='500.html'):
|
def server_error(request, template_name='500.html'):
|
||||||
"""
|
"""
|
||||||
500 error handler.
|
500 error handler.
|
||||||
|
Loading…
Reference in New Issue
Block a user