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