This commit is contained in:
parent
aad0d2f02b
commit
de62241dc7
@ -10,7 +10,7 @@
|
||||
:license: GNU GPL, see LICENSE for more details.
|
||||
"""
|
||||
|
||||
from django.forms import ModelForm, Form, CharField, Textarea, TextInput, ModelMultipleChoiceField, ModelChoiceField
|
||||
from django.forms import ModelForm, Form, CharField, Textarea, TextInput, ModelMultipleChoiceField, ModelChoiceField, BooleanField, FileField, FileInput
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
@ -41,7 +41,7 @@ class ApplicationForm(Form):
|
||||
title = CharField(widget=TextInput(), label=_("Title"))
|
||||
text = CharField(widget=Textarea(), label=_("Text"))
|
||||
reason = CharField(widget=Textarea(), required=False, label=_("Reason"))
|
||||
|
||||
trivial_change = BooleanField(required=False, label=_("Trivial change"), help_text=_("Trivial changes don't create a new version."))
|
||||
|
||||
class ApplicationManagerForm(ModelForm):
|
||||
error_css_class = 'error'
|
||||
@ -54,3 +54,9 @@ class ApplicationManagerForm(ModelForm):
|
||||
class Meta:
|
||||
model = Application
|
||||
exclude = ('number', 'status', 'permitted', 'log')
|
||||
|
||||
class ApplicationImportForm(Form):
|
||||
error_css_class = 'error'
|
||||
required_css_class = 'required'
|
||||
|
||||
csvfile = FileField(widget=FileInput(attrs={'size':'50'}), label=_("CSV File"))
|
||||
|
@ -159,7 +159,7 @@ class Application(models.Model):
|
||||
else:
|
||||
return 0
|
||||
|
||||
def save(self, user=None, nonewversion=False):
|
||||
def save(self, user=None, nonewversion=False, trivial_change=False):
|
||||
"""
|
||||
Save the Application, and create a new AVersion if necessary
|
||||
"""
|
||||
@ -173,6 +173,14 @@ class Application(models.Model):
|
||||
and last_version.reason == self.reason):
|
||||
return # No changes
|
||||
try:
|
||||
if trivial_change and last_version is not None:
|
||||
last_version.text = self.text
|
||||
last_version.title = self.title
|
||||
last_version.reason = self.reason
|
||||
last_version.save()
|
||||
self.writelog(_("Version %s modified") % last_version.aid, user)
|
||||
return # Done
|
||||
|
||||
if self.title != "":
|
||||
version = AVersion(title=getattr(self, 'title', ''),
|
||||
text=getattr(self, 'text', ''),
|
||||
|
@ -8,6 +8,7 @@
|
||||
<li class="{% if request.path == url_applicationoverview %}selected{% endif %}"><a href="{% url application_overview %}">{%trans "All applications" %}</a></li>
|
||||
{% if perms.application.can_create_application or perms.application.can_manage_application %}
|
||||
<li class="{% active request '/application/new' %}"><a href="{% url application_new %}">{%trans "New application" %}</a></li>
|
||||
<li class="{% active request '/application/import' %}"><a href="{% url application_import %}">{%trans 'Import applications' %}</a></li>
|
||||
{% endif %}
|
||||
<li><a href="{% url print_applications %}"><img src="/static/images/icons/application-pdf.png"> {%trans 'Print all applications' %}</a></li>
|
||||
</ul>
|
||||
|
21
openslides/application/templates/application/import.html
Normal file
21
openslides/application/templates/application/import.html
Normal file
@ -0,0 +1,21 @@
|
||||
{% extends "application/base_application.html" %}
|
||||
{% block title %}{{ block.super }} - {%trans "Import applications" %} {% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Import</h1>
|
||||
<p>{% trans 'Select a CSV file to import applications!' %}</p>
|
||||
|
||||
<p>{% trans '(Required comma separated values: <code>number, title, text, reason, first_name, last_name</code> - <code>number</code> and <code>reason</code> are optional and may be empty)' %} </p>
|
||||
<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button type="submit">
|
||||
<span class="icon import">{%trans 'Import' %}</span>
|
||||
</button>
|
||||
<a href="{% url application_overview%}">
|
||||
<button type="button">
|
||||
<span class="icon cancel">{%trans 'Cancel' %}</span>
|
||||
</button>
|
||||
</a>
|
||||
</form>
|
||||
</p>
|
||||
{% endblock %}
|
@ -25,6 +25,9 @@ urlpatterns = patterns('application.views',
|
||||
url(r'^application/new$', 'edit', \
|
||||
name='application_new'),
|
||||
|
||||
url(r'^application/import$', 'application_import', \
|
||||
name='application_import'),
|
||||
|
||||
url(r'^application/(?P<application_id>\d+)/edit$', 'edit', \
|
||||
name='application_edit'),
|
||||
|
||||
|
@ -10,16 +10,22 @@
|
||||
:license: GNU GPL, see LICENSE for more details.
|
||||
"""
|
||||
|
||||
import csv
|
||||
|
||||
from django.shortcuts import redirect
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ungettext
|
||||
from django.db import transaction
|
||||
|
||||
from openslides.agenda.models import Item
|
||||
from openslides.application.models import Application, AVersion
|
||||
from openslides.application.forms import ApplicationForm, \
|
||||
ApplicationManagerForm
|
||||
ApplicationManagerForm, \
|
||||
ApplicationImportForm
|
||||
from openslides.participant.models import Profile
|
||||
from openslides.poll.models import Poll
|
||||
from openslides.poll.forms import OptionResultForm, PollForm
|
||||
@ -28,6 +34,7 @@ from openslides.utils.utils import template, permission_required, \
|
||||
from openslides.utils.pdf import print_application, print_application_poll
|
||||
from openslides.system.api import config_get
|
||||
|
||||
from openslides.participant.api import gen_username
|
||||
|
||||
@permission_required('application.can_see_application')
|
||||
@template('application/overview.html')
|
||||
@ -135,7 +142,7 @@ def edit(request, application_id=None):
|
||||
application.title = dataform.cleaned_data['title']
|
||||
application.text = dataform.cleaned_data['text']
|
||||
application.reason = dataform.cleaned_data['reason']
|
||||
application.save(request.user)
|
||||
application.save(request.user, trivial_change=dataform.cleaned_data['trivial_change'])
|
||||
if is_manager:
|
||||
# log added supporters
|
||||
supporters_added = []
|
||||
@ -425,3 +432,104 @@ def reject_version(request, aversion_id):
|
||||
gen_confirm_form(request, _('Do you really want to reject version <b>%s</b>?') % aversion.aid, reverse('application_version_reject', args=[aversion.id]))
|
||||
return redirect(reverse('application_view', args=[application.id]))
|
||||
|
||||
@permission_required('application.can_manage_applications')
|
||||
@template('application/import.html')
|
||||
def application_import(request):
|
||||
try:
|
||||
request.user.profile
|
||||
messages.error(request, _('The import function is available for the superuser (without user profile) only.'))
|
||||
return redirect(reverse('application_overview'))
|
||||
except Profile.DoesNotExist:
|
||||
pass
|
||||
|
||||
if request.method == 'POST':
|
||||
form = ApplicationImportForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
try:
|
||||
users_generated = 0
|
||||
applications_generated = 0
|
||||
applications_modified = 0
|
||||
with transaction.commit_on_success():
|
||||
for (lno, line) in enumerate(csv.reader(request.FILES['csvfile'])):
|
||||
# basic input verification
|
||||
if lno < 1:
|
||||
continue
|
||||
try:
|
||||
(number, title, text, reason, first_name, last_name) = line[:6]
|
||||
except ValueError:
|
||||
messages.error(request, _('Ignoring malformed line %d in import file.') % (lno + 1))
|
||||
continue
|
||||
form = ApplicationForm({ 'title':title, 'text':text, 'reason':reason })
|
||||
if not form.is_valid():
|
||||
messages.error(request, _('Ignoring malformed line %d in import file.') % (lno + 1))
|
||||
continue
|
||||
if number:
|
||||
try:
|
||||
number = abs(long(number))
|
||||
if number < 1:
|
||||
messages.error(request, _('Ignoring malformed line %d in import file.') % (lno + 1))
|
||||
continue
|
||||
except ValueError:
|
||||
messages.error(request, _('Ignoring malformed line %d in import file.') % (lno + 1))
|
||||
continue
|
||||
# fetch existing users or create new users as needed
|
||||
try:
|
||||
user = User.objects.get(first_name=first_name, last_name=last_name)
|
||||
except User.DoesNotExist:
|
||||
user = None
|
||||
if user is None:
|
||||
user = User()
|
||||
user.last_name = last_name
|
||||
user.first_name = first_name
|
||||
user.username = gen_username(first_name, last_name)
|
||||
user.save()
|
||||
profile = Profile()
|
||||
profile.user = user
|
||||
profile.group = ''
|
||||
profile.committee = ''
|
||||
profile.gender = 'none'
|
||||
profile.type = 'guest'
|
||||
profile.save()
|
||||
users_generated += 1
|
||||
# create / modify the application
|
||||
application = None
|
||||
if number:
|
||||
try:
|
||||
application = Application.objects.get(number=number)
|
||||
applications_modified += 1
|
||||
except Application.DoesNotExist:
|
||||
application = None
|
||||
if application is None:
|
||||
application = Application(submitter=user)
|
||||
if number:
|
||||
application.number = number
|
||||
applications_generated += 1
|
||||
|
||||
application.title = form.cleaned_data['title']
|
||||
application.text = form.cleaned_data['text']
|
||||
application.reason = form.cleaned_data['reason']
|
||||
application.save(user, trivial_change=True)
|
||||
|
||||
if applications_generated:
|
||||
messages.success(request, ungettext('%d application was successfully imported.',
|
||||
'%d applications were successfully imported.', applications_generated) % applications_generated)
|
||||
if applications_modified:
|
||||
messages.success(request, ungettext('%d application was successfully modified.',
|
||||
'%d applications were successfully modified.', applications_modified) % applications_modified)
|
||||
if users_generated:
|
||||
messages.success(request, ungettext('%d new user was added.', '%d new users were added.', users_generated) % users_generated)
|
||||
return redirect(reverse('application_overview'))
|
||||
|
||||
except csv.Error:
|
||||
message.error(request, _('Import aborted because of severe errors in the input file.'))
|
||||
else:
|
||||
messages.error(request, _('Please check the form for errors.'))
|
||||
else:
|
||||
messages.warning(request, _("Attention: Existing applications will be modified if you import new applications with the same number."))
|
||||
messages.warning(request, _("Attention: Importing an application without a number multiple times will create duplicates."))
|
||||
form = ApplicationImportForm()
|
||||
return {
|
||||
'form': form,
|
||||
}
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-01 08:21+0100\n"
|
||||
"POT-Creation-Date: 2011-11-09 20:57+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -32,8 +32,8 @@ msgstr "Englisch"
|
||||
#: application/templates/application/poll_view.html:28
|
||||
#: application/templates/application/view.html:74
|
||||
#: assignment/templates/assignment/poll_view.html:16
|
||||
#: assignment/templates/assignment/view.html:179
|
||||
#: assignment/templates/assignment/view.html:183 poll/forms.py:45
|
||||
#: assignment/templates/assignment/view.html:186
|
||||
#: assignment/templates/assignment/view.html:190 poll/forms.py:45
|
||||
#: utils/pdf.py:403 utils/pdf.py:483 utils/pdf.py:703 utils/utils.py:35
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
@ -48,7 +48,7 @@ msgstr "Ja, mit allen Kindelementen."
|
||||
#: application/templates/application/poll_view.html:32
|
||||
#: application/templates/application/view.html:75
|
||||
#: assignment/templates/assignment/poll_view.html:17
|
||||
#: assignment/templates/assignment/view.html:180 poll/forms.py:46
|
||||
#: assignment/templates/assignment/view.html:187 poll/forms.py:46
|
||||
#: utils/pdf.py:403 utils/pdf.py:484 utils/pdf.py:703 utils/utils.py:35
|
||||
msgid "No"
|
||||
msgstr "Nein"
|
||||
@ -64,7 +64,7 @@ msgid "Parent item"
|
||||
msgstr "Elternelement"
|
||||
|
||||
#: agenda/models.py:35 application/forms.py:41
|
||||
#: application/templates/application/view.html:246
|
||||
#: application/templates/application/view.html:253
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
@ -86,7 +86,7 @@ msgid "No Form for itemtype %s"
|
||||
msgstr "Kein Formular für Eintrag %s"
|
||||
|
||||
#: agenda/models.py:189 application/forms.py:42
|
||||
#: application/templates/application/view.html:247 poll/models.py:136
|
||||
#: application/templates/application/view.html:254 poll/models.py:136
|
||||
msgid "Text"
|
||||
msgstr "Text"
|
||||
|
||||
@ -94,7 +94,7 @@ msgstr "Text"
|
||||
#: agenda/templates/agenda/overview.html:209
|
||||
#: application/templates/application/edit.html:2
|
||||
#: application/templates/application/view.html:2
|
||||
#: application/templates/application/view.html:213 poll/models.py:23
|
||||
#: application/templates/application/view.html:220 poll/models.py:23
|
||||
#: poll/models.py:138 system/templates/system/general.html:13 utils/pdf.py:458
|
||||
#: utils/pdf.py:470
|
||||
msgid "Application"
|
||||
@ -144,9 +144,9 @@ msgstr "Eintrag wurde erfolgreich geändert."
|
||||
msgid "Agenda item modified"
|
||||
msgstr "Tagesordnungseintrag geändert"
|
||||
|
||||
#: agenda/views.py:256 participant/views.py:141 participant/views.py:227
|
||||
#: participant/views.py:256 participant/views.py:313 system/views.py:32
|
||||
#: system/views.py:71
|
||||
#: agenda/views.py:256 application/views.py:532 participant/views.py:141
|
||||
#: participant/views.py:227 participant/views.py:256 participant/views.py:313
|
||||
#: system/views.py:32 system/views.py:71
|
||||
msgid "Please check the form for errors."
|
||||
msgstr "Bitte kontrollieren Sie das Formular nach Fehlern."
|
||||
|
||||
@ -218,7 +218,7 @@ msgstr "Speichern"
|
||||
#: application/templates/application/poll_view.html:53
|
||||
#: assignment/templates/assignment/edit.html:18
|
||||
#: assignment/templates/assignment/poll_view.html:59
|
||||
#: assignment/templates/assignment/view.html:104
|
||||
#: assignment/templates/assignment/view.html:111
|
||||
#: participant/templates/participant/edit.html:21
|
||||
#: participant/templates/participant/group_edit.html:17
|
||||
msgid "Apply"
|
||||
@ -226,6 +226,7 @@ msgstr "Übernehmen"
|
||||
|
||||
#: agenda/templates/agenda/edit.html:34
|
||||
#: application/templates/application/edit.html:24
|
||||
#: application/templates/application/import.html:16
|
||||
#: application/templates/application/poll_view.html:57
|
||||
#: assignment/templates/assignment/edit.html:22
|
||||
#: assignment/templates/assignment/poll_view.html:63
|
||||
@ -331,7 +332,7 @@ msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#: agenda/templates/beamer/ItemApplication.html:19 application/forms.py:51
|
||||
#: application/models.py:45 application/templates/application/overview.html:35
|
||||
#: application/models.py:46 application/templates/application/overview.html:35
|
||||
#: application/templates/application/view.html:9 utils/pdf.py:350
|
||||
msgid "Submitter"
|
||||
msgstr "Antragsteller/in"
|
||||
@ -352,7 +353,7 @@ msgstr "Abstimmung"
|
||||
#: agenda/templates/beamer/ItemAssignment.html:69
|
||||
#: application/templates/application/view.html:76
|
||||
#: assignment/templates/assignment/poll_view.html:18
|
||||
#: assignment/templates/assignment/view.html:181 poll/forms.py:35
|
||||
#: assignment/templates/assignment/view.html:188 poll/forms.py:35
|
||||
#: poll/forms.py:47 utils/pdf.py:403 utils/pdf.py:485 utils/pdf.py:703
|
||||
msgid "Abstention"
|
||||
msgstr "Enthaltung"
|
||||
@ -360,7 +361,7 @@ msgstr "Enthaltung"
|
||||
#: agenda/templates/beamer/ItemApplication.html:33
|
||||
#: agenda/templates/beamer/ItemAssignment.html:88
|
||||
#: application/templates/application/view.html:77
|
||||
#: assignment/templates/assignment/view.html:198 poll/forms.py:24
|
||||
#: assignment/templates/assignment/view.html:205 poll/forms.py:24
|
||||
#: utils/pdf.py:403
|
||||
msgid "Invalid"
|
||||
msgstr "Ungültig"
|
||||
@ -371,8 +372,8 @@ msgstr "Ungültig"
|
||||
#: application/templates/application/poll_view.html:44
|
||||
#: application/templates/application/view.html:79
|
||||
#: assignment/templates/assignment/poll_view.html:40
|
||||
#: assignment/templates/assignment/view.html:206
|
||||
#: assignment/templates/assignment/view.html:209 poll/forms.py:23
|
||||
#: assignment/templates/assignment/view.html:213
|
||||
#: assignment/templates/assignment/view.html:216 poll/forms.py:23
|
||||
#: poll/models.py:26 utils/pdf.py:403 utils/pdf.py:602
|
||||
msgid "Votes cast"
|
||||
msgstr "Abgegebene Stimmen"
|
||||
@ -384,14 +385,14 @@ msgstr "Keine Abstimmungen vorhanden."
|
||||
#: agenda/templates/beamer/ItemApplication.html:50
|
||||
#: application/templates/application/poll_view.html:8
|
||||
#: application/templates/application/poll_view.html:16
|
||||
#: application/templates/application/view.html:211 utils/pdf.py:342
|
||||
#: application/templates/application/view.html:218 utils/pdf.py:342
|
||||
#: utils/pdf.py:344 utils/pdf.py:445 utils/pdf.py:447 utils/pdf.py:479
|
||||
msgid "Application No."
|
||||
msgstr "Antrag Nr."
|
||||
|
||||
#: agenda/templates/beamer/ItemApplication.html:56 application/forms.py:43
|
||||
#: application/templates/application/view.html:229
|
||||
#: application/templates/application/view.html:249 utils/pdf.py:421
|
||||
#: application/templates/application/view.html:236
|
||||
#: application/templates/application/view.html:256 utils/pdf.py:421
|
||||
msgid "Reason"
|
||||
msgstr "Begründung"
|
||||
|
||||
@ -403,43 +404,43 @@ msgstr "Anzahl der zur Wahl stehenden Posten"
|
||||
#: agenda/templates/beamer/ItemAssignment.html:30
|
||||
#: agenda/templates/beamer/ItemAssignment.html:48
|
||||
#: assignment/templates/assignment/overview.html:22
|
||||
#: assignment/templates/assignment/view.html:55
|
||||
#: assignment/templates/assignment/view.html:126 utils/pdf.py:543
|
||||
#: assignment/templates/assignment/view.html:62
|
||||
#: assignment/templates/assignment/view.html:133 utils/pdf.py:543
|
||||
#: utils/pdf.py:563
|
||||
msgid "Candidates"
|
||||
msgstr "Kandidaten/innen"
|
||||
|
||||
#: agenda/templates/beamer/ItemAssignment.html:36
|
||||
#: assignment/templates/assignment/view.html:66
|
||||
#: assignment/templates/assignment/view.html:73
|
||||
msgid "No candidates available."
|
||||
msgstr "Keine Kandidaten/innen vorhanden."
|
||||
|
||||
#: agenda/templates/beamer/ItemAssignment.html:45
|
||||
#: assignment/templates/assignment/view.html:114
|
||||
#: assignment/templates/assignment/view.html:121
|
||||
msgid "Election results"
|
||||
msgstr "Wahlergebnisse"
|
||||
|
||||
#: agenda/templates/beamer/ItemAssignment.html:51
|
||||
#: assignment/templates/assignment/poll_view.html:6
|
||||
#: assignment/templates/assignment/view.html:122
|
||||
#: assignment/templates/assignment/view.html:130 utils/pdf.py:687
|
||||
#: assignment/templates/assignment/view.html:129
|
||||
#: assignment/templates/assignment/view.html:137 utils/pdf.py:687
|
||||
msgid "ballot"
|
||||
msgstr "Wahlgang"
|
||||
|
||||
#: agenda/templates/beamer/ItemAssignment.html:60
|
||||
#: assignment/templates/assignment/view.html:166
|
||||
#: assignment/templates/assignment/view.html:173
|
||||
msgid "Candidate is elected"
|
||||
msgstr "Kandidat/in ist gewählt"
|
||||
|
||||
#: agenda/templates/beamer/ItemAssignment.html:81
|
||||
#: assignment/templates/assignment/view.html:220
|
||||
#: assignment/templates/assignment/view.html:227
|
||||
msgid "No ballots available."
|
||||
msgstr "Keine Wahlgänge vorhanden."
|
||||
|
||||
#: agenda/templates/beamer/ItemAssignment.html:85
|
||||
#: application/templates/application/poll_view.html:40
|
||||
#: assignment/templates/assignment/poll_view.html:36
|
||||
#: assignment/templates/assignment/view.html:195 utils/pdf.py:594
|
||||
#: assignment/templates/assignment/view.html:202 utils/pdf.py:594
|
||||
msgid "Invalid votes"
|
||||
msgstr "Ungültige Stimmen"
|
||||
|
||||
@ -447,11 +448,23 @@ msgstr "Ungültige Stimmen"
|
||||
msgid "Poll about"
|
||||
msgstr "Abstimmung über"
|
||||
|
||||
#: application/forms.py:52 application/models.py:47
|
||||
#: application/forms.py:44
|
||||
msgid "Trivial change"
|
||||
msgstr "Triviale Änderung"
|
||||
|
||||
#: application/forms.py:44
|
||||
msgid "Trivial changes don't create a new version."
|
||||
msgstr "Triviale Änderungen erzeugen keine neue Version."
|
||||
|
||||
#: application/forms.py:52 application/models.py:48
|
||||
#: application/templates/application/view.html:23 utils/pdf.py:363
|
||||
msgid "Supporters"
|
||||
msgstr "Unterstützer/innen"
|
||||
|
||||
#: application/forms.py:62 participant/forms.py:72
|
||||
msgid "CSV File"
|
||||
msgstr "CSV-Datei"
|
||||
|
||||
#: application/models.py:26
|
||||
msgid "Published"
|
||||
msgstr "Veröffentlicht"
|
||||
@ -461,12 +474,12 @@ msgid "Permitted"
|
||||
msgstr "Zugelassen"
|
||||
|
||||
#: application/models.py:28 application/templates/application/overview.html:20
|
||||
#: application/templates/application/view.html:168
|
||||
#: application/templates/application/view.html:175
|
||||
msgid "Accepted"
|
||||
msgstr "Angenommen"
|
||||
|
||||
#: application/models.py:29 application/templates/application/overview.html:21
|
||||
#: application/templates/application/view.html:173
|
||||
#: application/templates/application/view.html:180
|
||||
msgid "Rejected"
|
||||
msgstr "Abgelehnt"
|
||||
|
||||
@ -474,17 +487,17 @@ msgstr "Abgelehnt"
|
||||
msgid "Withdrawed"
|
||||
msgstr "Zurückgezogen"
|
||||
|
||||
#: application/models.py:31 application/templates/application/view.html:181
|
||||
#: application/models.py:31 application/templates/application/view.html:188
|
||||
msgid "Adjourned"
|
||||
msgstr "Vertagt"
|
||||
|
||||
# please check!
|
||||
#: application/models.py:32 application/templates/application/view.html:184
|
||||
#: application/models.py:32 application/templates/application/view.html:191
|
||||
msgid "Not Concerned"
|
||||
msgstr "Nicht befasst"
|
||||
|
||||
# please check!
|
||||
#: application/models.py:33 application/templates/application/view.html:187
|
||||
#: application/models.py:33 application/templates/application/view.html:194
|
||||
msgid "Commited a bill"
|
||||
msgstr "Verwiesen (in Ausschuss)"
|
||||
|
||||
@ -492,84 +505,89 @@ msgstr "Verwiesen (in Ausschuss)"
|
||||
msgid "Rejected (not permitted)"
|
||||
msgstr "Verworfen (nicht zulässig)"
|
||||
|
||||
#: application/models.py:116
|
||||
#: application/models.py:117
|
||||
msgid "Searching for supporters."
|
||||
msgstr "Auf Unterstützersuche."
|
||||
|
||||
#: application/models.py:118
|
||||
#: application/models.py:119
|
||||
msgid "Not yet permitted."
|
||||
msgstr "Noch nicht zugelassen."
|
||||
|
||||
#: application/models.py:120
|
||||
#: application/models.py:121
|
||||
msgid "Not yet permitted changes."
|
||||
msgstr "Noch nicht zugelassene Änderungen."
|
||||
|
||||
#: application/models.py:181
|
||||
#, python-format
|
||||
msgid "Version %s modified"
|
||||
msgstr "Version %s bearbeitet"
|
||||
|
||||
#: application/models.py:190
|
||||
#, python-format
|
||||
msgid "Version %s created"
|
||||
msgstr "Version %s erstellt"
|
||||
|
||||
#: application/models.py:190
|
||||
#: application/models.py:199
|
||||
msgid "Supporters removed"
|
||||
msgstr "Unterstützer/innen gelöscht"
|
||||
|
||||
#: application/models.py:199
|
||||
#: application/models.py:208
|
||||
#, python-format
|
||||
msgid "Status reseted to: %s"
|
||||
msgstr "Status zurückgesetzt auf: %s"
|
||||
|
||||
#: application/models.py:212 application/views.py:149
|
||||
#: application/models.py:221 application/views.py:157
|
||||
#, python-format
|
||||
msgid "Supporter: +%s"
|
||||
msgstr "Unterstützer/in: +%s"
|
||||
|
||||
#: application/models.py:222 application/views.py:160
|
||||
#: application/models.py:231 application/views.py:168
|
||||
#, python-format
|
||||
msgid "Supporter: -%s"
|
||||
msgstr "Unterstützer/in: -%s"
|
||||
|
||||
#: application/models.py:238
|
||||
#: application/models.py:247
|
||||
#, python-format
|
||||
msgid "Number set: %s"
|
||||
msgstr "Nummer gesetzt: %s"
|
||||
|
||||
#: application/models.py:251
|
||||
#: application/models.py:260
|
||||
#, python-format
|
||||
msgid "Version %s permitted"
|
||||
msgstr "Version %s zugelassen"
|
||||
|
||||
#: application/models.py:265
|
||||
#: application/models.py:274
|
||||
#, python-format
|
||||
msgid "Version %s not permitted"
|
||||
msgstr "Version %s nicht zugelassen"
|
||||
|
||||
#: application/models.py:291
|
||||
#: application/models.py:300
|
||||
msgid "Status modified"
|
||||
msgstr "Status geändert"
|
||||
|
||||
#: application/models.py:407
|
||||
#: application/models.py:419
|
||||
msgid "Poll created"
|
||||
msgstr "Abstimmung erstellt"
|
||||
|
||||
#: application/views.py:102
|
||||
#: application/views.py:110
|
||||
msgid "You have not the necessary rights to create or edit applications."
|
||||
msgstr ""
|
||||
"Sie haben nicht die nötigen Rechte, um Anträge zu erstellen oder zu "
|
||||
"bearbeiten."
|
||||
|
||||
#: application/views.py:107
|
||||
#: application/views.py:115
|
||||
msgid "You can not edit this application. You are not the submitter."
|
||||
msgstr "Sie dürfen keine Anträge von anderen bearbeiten."
|
||||
|
||||
#: application/views.py:162
|
||||
#: application/views.py:170
|
||||
msgid "New application was successfully created."
|
||||
msgstr "Neuer Antrag wurde erfolgreich angelegt."
|
||||
|
||||
#: application/views.py:164
|
||||
#: application/views.py:172
|
||||
msgid "Application was successfully modified."
|
||||
msgstr "Antrag wurde erfolgreich geändert."
|
||||
|
||||
#: application/views.py:176
|
||||
#: application/views.py:184
|
||||
msgid ""
|
||||
"Attention: Do you really want to edit this application? The supporters will "
|
||||
"<b>not</b> be removed automatically because you can manage applications. "
|
||||
@ -579,7 +597,7 @@ msgstr ""
|
||||
"werden <b>nicht</b> automatisch entfernt, da Sie Anträge verwalten dürfen. "
|
||||
"Prüfen Sie, ob die Unterstützungen noch gültig sind."
|
||||
|
||||
#: application/views.py:178
|
||||
#: application/views.py:186
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Attention: Do you really want to edit this application? All <b>%s</b> "
|
||||
@ -588,86 +606,140 @@ msgstr ""
|
||||
"Wollen Sie den Antrag wirklich ändern? Alle <b>%s</b> Unterstützer/innen "
|
||||
"werden dann automatisch entfernt. Versuchen Sie diese erneut zu gewinnen."
|
||||
|
||||
#: application/views.py:208
|
||||
#: application/views.py:216
|
||||
#, python-format
|
||||
msgid "You can not delete application <b>%s</b>."
|
||||
msgstr "Sie können Antrag <b>%s</b> nicht löschen."
|
||||
|
||||
#: application/views.py:214
|
||||
#: application/views.py:222
|
||||
#, python-format
|
||||
msgid "Application <b>%s</b> was successfully deleted."
|
||||
msgstr "Antrag <b>%s</b> wurde erfolgreich gelöscht."
|
||||
|
||||
#: application/views.py:230
|
||||
#: application/views.py:238
|
||||
msgid "Application number was successfully set."
|
||||
msgstr "Antragsnummer wurde erfolgreich gesetzt."
|
||||
|
||||
#: application/views.py:246
|
||||
#: application/views.py:254
|
||||
msgid "Application was successfully permitted."
|
||||
msgstr "Antrag wurde erfolgreich zugelassen."
|
||||
|
||||
#: application/views.py:259
|
||||
#: application/views.py:267
|
||||
msgid "Application was successfully rejected."
|
||||
msgstr "Antrag wurde erfolgreich verworfen."
|
||||
|
||||
#: application/views.py:273
|
||||
#: application/views.py:281
|
||||
#, python-format
|
||||
msgid "Application status was set to: <b>%s</b>."
|
||||
msgstr "Antragsstatus wurde gesetzt auf: <b>%s</b>"
|
||||
|
||||
#: application/views.py:287
|
||||
#: application/views.py:295
|
||||
msgid "Application status was reset."
|
||||
msgstr "Antragsstatus wurde zurückgesetzt."
|
||||
|
||||
#: application/views.py:301
|
||||
#: application/views.py:309
|
||||
msgid "You have support the application successfully."
|
||||
msgstr "Sie haben den Antrag erfolgreich unterstützt."
|
||||
|
||||
#: application/views.py:315
|
||||
#: application/views.py:323
|
||||
msgid "You have unsupport the application successfully."
|
||||
msgstr "Sie haben dem Antrag erfolgreich Ihre Unterstützung entzogen."
|
||||
|
||||
#: application/views.py:329
|
||||
#: application/views.py:344
|
||||
msgid "New vote was successfully created."
|
||||
msgstr "Neue Abstimmung erfolgreich angelegt."
|
||||
|
||||
#: application/views.py:345
|
||||
#: application/views.py:360
|
||||
msgid "Poll was successfully deleted."
|
||||
msgstr "Abstimmung wurde erfolgreich gelöscht."
|
||||
|
||||
#: application/views.py:347
|
||||
#: application/views.py:362
|
||||
#, python-format
|
||||
msgid "the %s. poll"
|
||||
msgstr "die %s. Abstimmung"
|
||||
|
||||
#: application/views.py:377 assignment/views.py:220
|
||||
#: application/views.py:392 assignment/views.py:227
|
||||
msgid "Votes are successfully saved."
|
||||
msgstr "Stimmen erfolgreich gespeichert."
|
||||
|
||||
#: application/views.py:401
|
||||
#: application/views.py:416
|
||||
#, python-format
|
||||
msgid "Version <b>%s</b> accepted."
|
||||
msgstr "Version <b>%s</b> akzeptiert."
|
||||
|
||||
#: application/views.py:403
|
||||
#: application/views.py:418
|
||||
#, python-format
|
||||
msgid "Do you really want to permit version <b>%s</b>?"
|
||||
msgstr "Soll Version <b>%s</b> wirklich zugelassen werden?"
|
||||
|
||||
#: application/views.py:413
|
||||
#: application/views.py:428
|
||||
#, python-format
|
||||
msgid "Version <b>%s</b> rejected."
|
||||
msgstr "Version <b>%s</b> zurückgewiesen."
|
||||
|
||||
#: application/views.py:415
|
||||
#: application/views.py:430
|
||||
msgid "ERROR by rejecting the version."
|
||||
msgstr "FEHLER beim Zurückweisen der Version."
|
||||
|
||||
#: application/views.py:417
|
||||
#: application/views.py:432
|
||||
#, python-format
|
||||
msgid "Do you really want to reject version <b>%s</b>?"
|
||||
msgstr "Soll Version <b>%s</b> wirklich zurückgewiesen werden?"
|
||||
|
||||
#: application/views.py:441 participant/views.py:272
|
||||
msgid ""
|
||||
"The import function is available for the superuser (without user profile) "
|
||||
"only."
|
||||
msgstr ""
|
||||
"Die Importfunktion ist nur für den 'superuser' (ohne Nutzerprofil) verfügbar."
|
||||
|
||||
#: application/views.py:458 application/views.py:462 application/views.py:468
|
||||
#: application/views.py:471
|
||||
#, python-format
|
||||
msgid "Ignoring malformed line %d in import file."
|
||||
msgstr "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert."
|
||||
|
||||
#: application/views.py:520
|
||||
#, python-format
|
||||
msgid "%d application was successfully imported."
|
||||
msgid_plural "%d applications were successfully imported."
|
||||
msgstr[0] "%d Antrag wurde erfolgreich importiert."
|
||||
msgstr[1] "%d Anträge wurden erfolgreich importiert."
|
||||
|
||||
#: application/views.py:523
|
||||
#, python-format
|
||||
msgid "%d application was successfully modified."
|
||||
msgid_plural "%d applications were successfully modified."
|
||||
msgstr[0] "%d Antrag wurde erfolgreich geändert."
|
||||
msgstr[1] "%d Anträge wurden erfolgreich geändert."
|
||||
|
||||
#: application/views.py:526
|
||||
#, python-format
|
||||
msgid "%d new user was added."
|
||||
msgid_plural "%d new users were added."
|
||||
msgstr[0] "%d neuer Nutzer wurde erstellt."
|
||||
msgstr[1] "%d neue Nutzer wurden erstellt."
|
||||
|
||||
#: application/views.py:530
|
||||
msgid "Import aborted because of severe errors in the input file."
|
||||
msgstr "Import auf Grund von schweren Fehlern in der Quelldatei abgebrochen."
|
||||
|
||||
#: application/views.py:534
|
||||
msgid ""
|
||||
"Attention: Existing applications will be modified if you import new "
|
||||
"applications with the same number."
|
||||
msgstr ""
|
||||
"Achtung: Existierende Anträge werden geändert wenn Sie neue Anträge mit "
|
||||
"identischer Nummer importieren."
|
||||
|
||||
#: application/views.py:535
|
||||
msgid ""
|
||||
"Attention: Importing an application without a number multiple times will "
|
||||
"create duplicates."
|
||||
msgstr ""
|
||||
"Achtung: Bei mehrfachem Import eines Antrags ohne Nummer können Duplikate "
|
||||
"entstehen."
|
||||
|
||||
#: application/templates/application/base_application.html:6
|
||||
#: application/templates/application/overview.html:2
|
||||
#: application/templates/application/overview.html:6
|
||||
@ -685,7 +757,12 @@ msgstr "Alle Anträge"
|
||||
msgid "New application"
|
||||
msgstr "Neuer Antrag"
|
||||
|
||||
#: application/templates/application/base_application.html:12
|
||||
#: application/templates/application/base_application.html:11
|
||||
#: application/templates/application/import.html:2
|
||||
msgid "Import applications"
|
||||
msgstr "Anträge importieren"
|
||||
|
||||
#: application/templates/application/base_application.html:13
|
||||
msgid "Print all applications"
|
||||
msgstr "Alle Anträge drucken"
|
||||
|
||||
@ -697,6 +774,25 @@ msgstr "Antrag bearbeiten"
|
||||
msgid "required"
|
||||
msgstr "erforderlich"
|
||||
|
||||
#: application/templates/application/import.html:6
|
||||
msgid "Select a CSV file to import applications!"
|
||||
msgstr "Wählen Sie eine CSV-Datei zum Importieren von Anträgen aus!"
|
||||
|
||||
#: application/templates/application/import.html:8
|
||||
msgid ""
|
||||
"(Required comma separated values: <code>number, title, text, reason, "
|
||||
"first_name, last_name</code> - <code>number</code> and <code>reason</code> "
|
||||
"are optional and may be empty)"
|
||||
msgstr ""
|
||||
"(Erfordert kommaseparierte Werte: <code>Nummer, Titel, Text, Begründung, "
|
||||
"Vorname, Nachname</code> - <code>Nummer</code> und <code>Begründung</code> "
|
||||
"sind optional und können auch leer sein)"
|
||||
|
||||
#: application/templates/application/import.html:12
|
||||
#: participant/templates/participant/import.html:12
|
||||
msgid "Import"
|
||||
msgstr "Importiern"
|
||||
|
||||
#: application/templates/application/overview.html:8
|
||||
#: assignment/templates/assignment/overview.html:8
|
||||
#: participant/templates/participant/overview.html:9
|
||||
@ -850,70 +946,76 @@ msgstr "Setze Nummer"
|
||||
msgid "New agenda item"
|
||||
msgstr "Neuer Tagesordnungseintrag"
|
||||
|
||||
#: application/templates/application/view.html:165
|
||||
#: application/templates/application/view.html:167
|
||||
#: assignment/templates/assignment/view.html:48
|
||||
#, fuzzy
|
||||
msgid "Show agenda item"
|
||||
msgstr "Neuer Tagesordnungseintrag"
|
||||
|
||||
#: application/templates/application/view.html:172
|
||||
msgid "Result after vote"
|
||||
msgstr "Ergebnis nach der Abstimmung"
|
||||
|
||||
#: application/templates/application/view.html:179
|
||||
#: application/templates/application/view.html:186
|
||||
msgid "Result after debate"
|
||||
msgstr "Ergebnis nach der Debatte"
|
||||
|
||||
#: application/templates/application/view.html:190
|
||||
#: application/templates/application/view.html:197
|
||||
msgid "Withdrawed by Submitter"
|
||||
msgstr "Zurückgezogen durch Antragsteller/in"
|
||||
|
||||
#: application/templates/application/view.html:196
|
||||
#: application/templates/application/view.html:203
|
||||
msgid "For Administration only:"
|
||||
msgstr "Nur zur Administration:"
|
||||
|
||||
#: application/templates/application/view.html:198
|
||||
#: application/templates/application/view.html:205
|
||||
msgid "Reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: application/templates/application/view.html:216
|
||||
#: application/templates/application/view.html:244
|
||||
#: application/templates/application/view.html:223
|
||||
#: application/templates/application/view.html:251
|
||||
msgid "Version"
|
||||
msgstr "Version"
|
||||
|
||||
#: application/templates/application/view.html:219
|
||||
#: application/templates/application/view.html:226
|
||||
msgid "Show newest Version"
|
||||
msgstr "Neuste Version anzeigen"
|
||||
|
||||
#: application/templates/application/view.html:221
|
||||
#: application/templates/application/view.html:228
|
||||
msgid "Show permitted Version"
|
||||
msgstr "Zugelassene Version anzeigen"
|
||||
|
||||
#: application/templates/application/view.html:239
|
||||
#: application/templates/application/view.html:246
|
||||
msgid "Version History"
|
||||
msgstr "Versionshistorie"
|
||||
|
||||
#: application/templates/application/view.html:245
|
||||
#: application/templates/application/view.html:252
|
||||
msgid "Time"
|
||||
msgstr "Zeit"
|
||||
|
||||
#: application/templates/application/view.html:256
|
||||
#: application/templates/application/view.html:263
|
||||
msgid "Version accepted"
|
||||
msgstr "Version akzeptiert"
|
||||
|
||||
#: application/templates/application/view.html:259
|
||||
#: application/templates/application/view.html:266
|
||||
msgid "Accept Version"
|
||||
msgstr "Zugelassene Version"
|
||||
|
||||
#: application/templates/application/view.html:262
|
||||
#: application/templates/application/view.html:269
|
||||
msgid "Reject Version"
|
||||
msgstr "Verion zurückweisen"
|
||||
|
||||
#: application/templates/application/view.html:266
|
||||
#: application/templates/application/view.html:273
|
||||
msgid "Version rejected"
|
||||
msgstr "Version zurückgewiesen"
|
||||
|
||||
#: application/templates/application/view.html:276
|
||||
#: application/templates/application/view.html:283
|
||||
#: application/templates/application/view.html:290
|
||||
#: application/templates/application/view.html:297
|
||||
msgid "unchanged"
|
||||
msgstr "unverändert"
|
||||
|
||||
#: application/templates/application/view.html:299
|
||||
#: application/templates/application/view.html:306
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
@ -967,84 +1069,84 @@ msgstr "<b>%s</b> ist bereits ein/e Kandidat/in."
|
||||
msgid "%s is no candidate"
|
||||
msgstr "%s ist kein/e Kandidat/in"
|
||||
|
||||
#: assignment/views.py:61
|
||||
#: assignment/views.py:62
|
||||
#, python-format
|
||||
msgid "Candidate <b>%s</b> was nominated successfully."
|
||||
msgstr "Kandidat/in <b>%s</b> wurde erfolgreich vorgeschlagen."
|
||||
|
||||
#: assignment/views.py:109
|
||||
#: assignment/views.py:110
|
||||
msgid "New election was successfully created."
|
||||
msgstr "Neue Wahl wurde erfolgreich angelegt."
|
||||
|
||||
#: assignment/views.py:111
|
||||
#: assignment/views.py:112
|
||||
msgid "Election was successfully modified."
|
||||
msgstr "Wahl wurde erfolgreich geändert."
|
||||
|
||||
#: assignment/views.py:129
|
||||
#: assignment/views.py:130
|
||||
#, python-format
|
||||
msgid "Election <b>%s</b> was successfully deleted."
|
||||
msgstr "Wahl <b>%s</b> wurde erfolgreich gelöscht."
|
||||
|
||||
#: assignment/views.py:142
|
||||
#: assignment/views.py:143
|
||||
#, python-format
|
||||
msgid "Election status was set to: <b>%s</b>."
|
||||
msgstr "Wahlstatus wurde gesetzt auf: <b>%s</b>."
|
||||
|
||||
#: assignment/views.py:153
|
||||
#: assignment/views.py:154
|
||||
msgid "You have set your candidature successfully."
|
||||
msgstr "Sie haben Ihre Kandidatur erfolgreich gesetzt."
|
||||
|
||||
#: assignment/views.py:158
|
||||
#: assignment/views.py:159
|
||||
msgid "You can't candidate. Your user account is only for administration."
|
||||
msgstr ""
|
||||
"Sie können nicht kandidieren. Ihr Nutzerkonto ist nur zur Administration."
|
||||
|
||||
#: assignment/views.py:166
|
||||
#: assignment/views.py:167
|
||||
msgid "You have withdrawn your candidature successfully."
|
||||
msgstr "Sie haben Ihre Kandidatur erfolgreich zurückgezogen."
|
||||
|
||||
#: assignment/views.py:177
|
||||
#: assignment/views.py:178
|
||||
#, python-format
|
||||
msgid "Candidate <b>%s</b> was withdrawn successfully."
|
||||
msgstr "Die Kandidatur von <b>%s</b> wurde erfolgreich zurückgezogen."
|
||||
|
||||
#: assignment/views.py:180
|
||||
#: assignment/views.py:181
|
||||
#, python-format
|
||||
msgid "Do you really want to withdraw <b>%s</b> from the election?"
|
||||
msgstr "Soll <b>%s</b> wirklich von der Wahl zurückgezogen werden?"
|
||||
|
||||
#: assignment/views.py:189
|
||||
#: assignment/views.py:196
|
||||
msgid "New ballot was successfully created."
|
||||
msgstr "Neuer Wahlgang erfolgreich angelegt."
|
||||
|
||||
#: assignment/views.py:244
|
||||
#: assignment/views.py:251
|
||||
msgid "Poll successfully set to published."
|
||||
msgstr "Abstimmung wurde erfolgreich veröffentlicht."
|
||||
|
||||
#: assignment/views.py:246
|
||||
#: assignment/views.py:253
|
||||
msgid "Poll successfully set to unpublished."
|
||||
msgstr "Abstimmung wurde erfolgreich unveröffentlicht."
|
||||
|
||||
#: assignment/views.py:248
|
||||
#: assignment/views.py:255
|
||||
#, python-format
|
||||
msgid "Poll ID %d does not exist."
|
||||
msgstr "Abstimmungs-ID %d existiert nicht."
|
||||
|
||||
#: assignment/views.py:258
|
||||
#: assignment/views.py:265
|
||||
#, python-format
|
||||
msgid "The %s. ballot was successfully deleted."
|
||||
msgstr "Der %s. Wahlgang wurde erfolgreich gelöscht."
|
||||
|
||||
#: assignment/views.py:260
|
||||
#: assignment/views.py:267
|
||||
#, python-format
|
||||
msgid "the %s. ballot"
|
||||
msgstr "der %s. Wahlgang"
|
||||
|
||||
#: assignment/views.py:272
|
||||
#: assignment/views.py:279
|
||||
msgid "not elected"
|
||||
msgstr "nicht gewählt"
|
||||
|
||||
#: assignment/views.py:275 utils/pdf.py:623
|
||||
#: assignment/views.py:282 utils/pdf.py:623
|
||||
msgid "elected"
|
||||
msgstr "gewählt"
|
||||
|
||||
@ -1126,36 +1228,36 @@ msgstr "Status ändern"
|
||||
msgid "Finish"
|
||||
msgstr "Abschließen"
|
||||
|
||||
#: assignment/templates/assignment/view.html:61
|
||||
#: assignment/templates/assignment/view.html:68
|
||||
msgid "Remove candidate"
|
||||
msgstr "Kandidate/in entfernen"
|
||||
|
||||
#: assignment/templates/assignment/view.html:79
|
||||
#: assignment/templates/assignment/view.html:86
|
||||
msgid "Withdraw self candidature"
|
||||
msgstr "Eigene Kandidatur zurückziehen"
|
||||
|
||||
#: assignment/templates/assignment/view.html:86
|
||||
#: assignment/templates/assignment/view.html:93
|
||||
msgid "Self candidature"
|
||||
msgstr "Selbst kandidieren"
|
||||
|
||||
#: assignment/templates/assignment/view.html:98
|
||||
#: assignment/templates/assignment/view.html:105
|
||||
msgid "Add new participant"
|
||||
msgstr "Neue/n Teilnehmer/in hinzufügen"
|
||||
|
||||
#: assignment/templates/assignment/view.html:136
|
||||
#: assignment/templates/assignment/view.html:143
|
||||
msgid "Unpublish results"
|
||||
msgstr "Ergebnisse unveröffentlichen"
|
||||
|
||||
#: assignment/templates/assignment/view.html:140
|
||||
#: assignment/templates/assignment/view.html:147
|
||||
msgid "Publish results"
|
||||
msgstr "Ergebnisse veröffentlichen"
|
||||
|
||||
#: assignment/templates/assignment/view.html:142
|
||||
#: assignment/templates/assignment/view.html:149
|
||||
msgid "Delete Poll"
|
||||
msgstr "Abstimmung löschen"
|
||||
|
||||
#: assignment/templates/assignment/view.html:151
|
||||
#: assignment/templates/assignment/view.html:225
|
||||
#: assignment/templates/assignment/view.html:158
|
||||
#: assignment/templates/assignment/view.html:232
|
||||
msgid "New ballot"
|
||||
msgstr "Neuer Wahlgang"
|
||||
|
||||
@ -1167,10 +1269,6 @@ msgstr "Vorname"
|
||||
msgid "Last name"
|
||||
msgstr "Nachname"
|
||||
|
||||
#: participant/forms.py:72
|
||||
msgid "CSV File"
|
||||
msgstr "CSV-Datei"
|
||||
|
||||
#: participant/models.py:22 participant/templates/participant/overview.html:14
|
||||
msgid "Not specified"
|
||||
msgstr "Nicht angegeben"
|
||||
@ -1271,13 +1369,6 @@ msgstr "Gruppe <b>%s</b> wurde erfolgreich gelöscht."
|
||||
msgid "User settings successfully saved."
|
||||
msgstr "Nutzereinstellungen wurden erfolgreich gespeichert."
|
||||
|
||||
#: participant/views.py:272
|
||||
msgid ""
|
||||
"The import function is available for the superuser (without user profile) "
|
||||
"only."
|
||||
msgstr ""
|
||||
"Die Importfunktion ist nur für den 'superuser' (ohne Nutzerprofil) verfügbar."
|
||||
|
||||
#: participant/views.py:311
|
||||
#, python-format
|
||||
msgid "%d new participants were successfully imported."
|
||||
@ -1417,10 +1508,6 @@ msgstr ""
|
||||
"(Erfordert kommaseparierte Werte: <code>Vorname, Nachname, Geschlecht, "
|
||||
"Gruppe, Typ, Amt</code>)"
|
||||
|
||||
#: participant/templates/participant/import.html:12
|
||||
msgid "Import"
|
||||
msgstr "Importiern"
|
||||
|
||||
#: participant/templates/participant/login.html:5
|
||||
#: participant/templates/participant/login.html:13
|
||||
#: participant/templates/participant/login.html:43 templates/base.html:26
|
||||
|
Loading…
Reference in New Issue
Block a user