changed application to motion and permitted to authorized in message-strings

This commit is contained in:
Oskar Hahn 2012-08-05 22:31:20 +02:00
parent 008c743650
commit c52f8f3ca7
17 changed files with 331 additions and 329 deletions

View File

@ -54,7 +54,7 @@ class Overview(TemplateView):
context = self.get_context_data(**kwargs)
if not request.user.has_perm('agenda.can_manage_agenda'):
messages.error(request,
_('You are not permitted to manage the agenda.'))
_('You are not authorized to manage the agenda.'))
return self.render_to_response(context)
transaction.commit()
for item in Item.objects.all():

View File

@ -76,16 +76,16 @@ class ApplicationImportForm(forms.Form, CssClassMixin):
)
import_permitted = forms.BooleanField(
required=False,
label=_("Import applications with status \"permitted\""),
help_text=_('Set the initial status for each application to '
'"permitted"'),
label=_("Import motions with status \"authorized\""),
help_text=_('Set the initial status for each motion to '
'"authorized"'),
)
class ConfigForm(forms.Form, CssClassMixin):
application_min_supporters = forms.IntegerField(
widget=forms.TextInput(attrs={'class':'small-input'}),
label=_("Number of (minimum) required supporters for a application"),
label=_("Number of (minimum) required supporters for a motion"),
initial=4,
min_value=0,
max_value=8,
@ -94,7 +94,7 @@ class ConfigForm(forms.Form, CssClassMixin):
application_preamble = forms.CharField(
widget=forms.TextInput(),
required=False,
label=_("Application preamble")
label=_("Motion preamble")
)
application_pdf_ballot_papers_selection = forms.ChoiceField(
widget=forms.Select(),
@ -115,17 +115,17 @@ class ConfigForm(forms.Form, CssClassMixin):
application_pdf_title = forms.CharField(
widget=forms.TextInput(),
required=False,
label=_("Title for PDF document (all applications)")
label=_("Title for PDF document (all motions)")
)
application_pdf_preamble = forms.CharField(
widget=forms.Textarea(),
required=False,
label=_("Preamble text for PDF document (all applications)")
label=_("Preamble text for PDF document (all motions)")
)
application_allow_trivial_change = forms.BooleanField(
label=_("Allow trivial changes"),
help_text=_('Warning: Trivial changes undermine the application ' \
'permission system.'),
help_text=_('Warning: Trivial changes undermine the motions '
'autorisation system.'),
required=False,
)

View File

@ -47,7 +47,7 @@ class Application(models.Model, SlideMixin):
('adj', _('Adjourned')),
('noc', _('Not Concerned')),
('com', _('Commited a bill')),
('nop', _('Rejected (not permitted)')),
('nop', _('Rejected (not authorized)')),
('rev', _('Needs Review')), # Where is this status used?
#additional actions:
# edit
@ -99,14 +99,14 @@ class Application(models.Model, SlideMixin):
self.save(nonewversion=True)
version.rejected = False
version.save()
self.writelog(_("Version %d permitted") % (version.aid, ),
self.writelog(_("Version %d authorized") % (version.aid, ),
user)
def reject_version(self, version, user = None):
if version.id > self.permitted.id:
version.rejected = True
version.save()
self.writelog(pgettext("Rejected means not permitted", "Version %d rejected")
self.writelog(pgettext("Rejected means not authorized", "Version %d rejected")
% (version.aid, ), user)
return True
return False
@ -137,9 +137,9 @@ class Application(models.Model, SlideMixin):
if self.status == "pub" and not self.enough_supporters:
note.append(_("Searching for supporters."))
if self.status == "pub" and self.permitted is None:
note.append(_("Not yet permitted."))
note.append(_("Not yet authorized."))
elif self.unpermitted_changes and self.permitted:
note.append(_("Not yet permitted changes."))
note.append(_("Not yet authorized changes."))
return note
@property
@ -286,7 +286,7 @@ class Application(models.Model, SlideMixin):
self.set_number()
self.permitted = aversion
self.save()
self.writelog(_("Version %s permitted") % (aversion.aid), user)
self.writelog(_("Version %s authorized") % (aversion.aid), user)
return self.permitted
def notpermit(self, user=None):
@ -300,7 +300,7 @@ class Application(models.Model, SlideMixin):
if self.number is None:
self.set_number()
self.save()
self.writelog(_("Version %s not permitted") % (self.last_version.aid), user)
self.writelog(_("Version %s not authorized") % (self.last_version.aid), user)
def set_status(self, user, status, force=False):
"""
@ -312,19 +312,22 @@ class Application(models.Model, SlideMixin):
error = False
break
if error:
#TODO: Use the Right Error
raise NameError(_('%s is not a valid status.') % status)
if self.status == status:
raise NameError(_('The application status is already \'%s.\'') \
#TODO: Use the Right Error
raise NameError(_('The motion status is already \'%s.\'') \
% self.status)
actions = []
actions = self.get_allowed_actions(user)
if status not in actions and not force:
raise NameError(_('The application status is: \'%(currentstatus)s\'. '\
'You can not set the status to \'%(newstatus)s\'.') % {
'currentstatus': self.status,
'newstatus': status
})
#TODO: Use the Right Error
raise NameError(_(
'The motion status is: \'%(currentstatus)s\'. '
'You can not set the status to \'%(newstatus)s\'.') % {
'currentstatus': self.status,
'newstatus': status})
oldstatus = self.get_status_display()
self.status = status
@ -444,7 +447,7 @@ class Application(models.Model, SlideMixin):
def get_agenda_title_supplement(self):
number = self.number or '<i>[%s]</i>' % ugettext('no number')
return '(%s %s)' % (ugettext('Application'), number)
return '(%s %s)' % (ugettext('motion'), number)
def __getattr__(self, name):
"""
@ -520,10 +523,10 @@ class Application(models.Model, SlideMixin):
class Meta:
permissions = (
('can_see_application', ugettext_noop("Can see application")),
('can_create_application', ugettext_noop("Can create application")),
('can_support_application', ugettext_noop("Can support application")),
('can_manage_application', ugettext_noop("Can manage application")),
('can_see_application', ugettext_noop("Can see motions")),
('can_create_application', ugettext_noop("Can create motions")),
('can_support_application', ugettext_noop("Can support motions")),
('can_manage_application', ugettext_noop("Can manage motions")),
)
@ -592,7 +595,7 @@ def default_config(sender, key, **kwargs):
'application_preamble': _('The Assembly may decide,'),
'application_pdf_ballot_papers_selection': 'CUSTOM_NUMBER',
'application_pdf_ballot_papers_number': '8',
'application_pdf_title': _('Applications'),
'application_pdf_title': _('Motions'),
'application_pdf_preamble': '',
'application_allow_trivial_change': False,
}.get(key)

View File

@ -6,16 +6,16 @@
{% block submenu %}
{% url application_overview as url_applicationoverview %}
<h4>{% trans "Applications" %}</h4>
<h4>{% trans "Motions" %}</h4>
<ul>
<li class="{% if request.path == url_applicationoverview %}selected{% endif %}"><a href="{% url application_overview %}">{% trans "All applications" %}</a></li>
<li class="{% if request.path == url_applicationoverview %}selected{% endif %}"><a href="{% url application_overview %}">{% trans "All motions" %}</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/new' %}"><a href="{% url application_new %}">{% trans "New motion" %}</a></li>
{% endif %}
{% if perms.application.can_manage_application %}
<li class="{% active request '/application/import' %}"><a href="{% url application_import %}">{% trans 'Import applications' %}</a></li>
<li class="{% active request '/application/import' %}"><a href="{% url application_import %}">{% trans 'Import motions' %}</a></li>
{% endif %}
<li><a href="{% url print_applications %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'All applications as PDF' %}</a></li>
<li><a href="{% url print_applications %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'All motions as PDF' %}</a></li>
</ul>
{# second submenu #}
@ -31,18 +31,18 @@
<ul>
{# view application #}
{% url application_view application.id as url_applicationview %}
<li class="{% if request.path == url_applicationview %}selected{% endif %}"><a href="{% url application_view application.id %}">{% trans 'View application' %}</a></li>
<li class="{% if request.path == url_applicationview %}selected{% endif %}"><a href="{% url application_view application.id %}">{% trans 'View motion' %}</a></li>
{# edit application #}
{% if "edit" in actions %}
{% url application_edit application.id as url_applicationedit %}
<li class="{% if request.path == url_applicationedit %}selected{% endif %}"><a href="{% url application_edit application.id %}"><img src="{% static 'images/icons/edit.png' %}"> {% trans 'Edit application' %}</a></li>
<li class="{% if request.path == url_applicationedit %}selected{% endif %}"><a href="{% url application_edit application.id %}"><img src="{% static 'images/icons/edit.png' %}"> {% trans 'Edit motion' %}</a></li>
{% endif %}
{# delete application #}
{% if "delete" in actions %}
<li><a href="{% url application_delete application.id %}"><img src="{% static 'images/icons/delete.png' %}"> {% trans 'Delete application' %}</a></li>
<li><a href="{% url application_delete application.id %}"><img src="{% static 'images/icons/delete.png' %}"> {% trans 'Delete motion' %}</a></li>
{% endif %}
{# PDF #}
<li><a href="{% url print_application application.id %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'Application as PDF' %}</a></li>
<li><a href="{% url print_application application.id %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'Motion as PDF' %}</a></li>
{# activate and polls #}
{% if perms.projector.can_manage_projector %}
<li>

View File

@ -5,17 +5,17 @@
{% block title %}
{{ block.super }}
{% if application %}
{% trans "Edit application" %}
{% trans "Edit motion" %}
{% else %}
{% trans "New application" %}
{% trans "New motion" %}
{% endif %}
{% endblock %}
{% block content %}
{% if application %}
<h1>{% trans "Edit application" %}</h1>
<h1>{% trans "Edit motion" %}</h1>
{% else %}
<h1>{% trans "New application" %}</h1>
<h1>{% trans "New motion" %}</h1>
{% endif %}
<form action="" method="post">{% csrf_token %}

View File

@ -2,11 +2,11 @@
{% load i18n %}
{% block title %}{{ block.super }} {% trans "Import applications" %} {% endblock %}
{% block title %}{{ block.super }} {% trans "Import motions" %} {% endblock %}
{% block content %}
<h1>{% trans "Import applications" %}</h1>
<p>{% trans 'Select a CSV file to import applications!' %}</p>
<h1>{% trans "Import motions" %}</h1>
<p>{% trans 'Select a CSV file to import motions!' %}</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)' %}
<br>

View File

@ -4,11 +4,11 @@
{% load i18n %}
{% load staticfiles %}
{% block title %}{{ block.super }} {% trans "Applications" %}{% endblock %}
{% block title %}{{ block.super }} {% trans "Motions" %}{% endblock %}
{% block content %}
<h1>{% trans "Applications" %}</h1>
<p><form action="{{request.url}}" name="filter" method="get">
<h1>{% trans "Motions" %}</h1>
<p><form action="{{ request.url }}" name="filter" method="get">
{% trans "Filter" %}:
{% if min_supporters > 0 %}
<input type="checkbox" name="needsup" onchange="document.forms['filter'].submit()"
@ -19,21 +19,21 @@
<input type="checkbox" name="status" onchange="document.forms['filter'].submit()"
{% if 'on' in request.GET.status %}checked{% endif %}> {% trans "Status" %}:
<select class="default-input" name="statusvalue" onchange="{% if 'on' in request.GET.status %}document.forms['filter'].submit(){% endif %}">
<option value="pub" {% if 'pub' in request.GET.statusvalue %}selected{% endif %}>{% trans "Not yet permitted" %}</option>
<option value="per" {% if 'on' in request.GET.status and 'per' in request.GET.statusvalue %}selected{% endif %}>{% trans "Permitted" %}</option>
<option value="pub" {% if 'pub' in request.GET.statusvalue %}selected{% endif %}>{% trans "Not yet authorized" %}</option>
<option value="per" {% if 'on' in request.GET.status and 'per' in request.GET.statusvalue %}selected{% endif %}>{% trans "Authorized" %}</option>
<option value="acc" {% if 'on' in request.GET.status and 'acc' in request.GET.statusvalue %}selected{% endif %}>{% trans "Accepted" %}</option>
<option value="rej" {% if 'on' in request.GET.status and 'rej' in request.GET.statusvalue %}selected{% endif %}>{% trans "Rejected" %}</option>
<option value="wit" {% if 'on' in request.GET.status and 'wit' in request.GET.statusvalue %}selected{% endif %}>{% trans "Withdrawed (by submitter)" %}</option>
<option value="wit" {% if 'on' in request.GET.status and 'wit' in request.GET.statusvalue %}selected{% endif %}>{% trans "Withdrawen (by submitter)" %}</option>
<option value="rev" {% if 'rev' in request.GET.statusvalue %}selected{% endif %}>{% trans "Needs Review" %}</option>
</select>
</form>
</p>
{{ applications|length }}
{% blocktrans count counter=applications|length %}application{% plural %}applications{% endblocktrans %}
{% blocktrans count counter=applications|length %}motion{% plural %}motions{% endblocktrans %}
<table>
<tr>
<th><a href="?sort=number{% if 'number' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Number" %}</a></th>
<th><a href="?sort=title{% if 'title' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Application title" %}</a></th>
<th><a href="?sort=title{% if 'title' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Motion title" %}</a></th>
{% if min_supporters > 0 %}
<th><a href="?sort=supporter{% if 'supporter' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Number of supporters" %}</a></th>
{% endif %}
@ -64,24 +64,24 @@
<td>
<span style="width: 1px; white-space: nowrap;">
{% if perms.projector.can_manage_projector %}
<a class="activate_link {% if application.active %}active{% endif %}" href="{% url projector_activate_slide application.sid %}" title="{% trans 'Activate application' %}">
<a class="activate_link {% if application.active %}active{% endif %}" href="{% url projector_activate_slide application.sid %}" title="{% trans 'Activate motion' %}">
<span></span>
</a>
{% endif %}
{% if perms.application.can_manage_application %}
<a href="{% url application_edit application.id %}"><img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit application' %}"></a>
<a href="{% url application_edit application.id %}"><img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit motion' %}"></a>
{% if "delete" in useractions %}
<a href="{% url application_delete application.id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete application' %}"></a>
<a href="{% url application_delete application.id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete motion' %}"></a>
{% endif %}
{% endif %}
<a href="{% url print_application application.id %}" title="{% trans 'Application as PDF' %}"><img src="{% static 'images/icons/pdf.png' %}"></a>
<a href="{% url print_application application.id %}" title="{% trans 'Motion as PDF' %}"><img src="{% static 'images/icons/pdf.png' %}"></a>
</span>
</td>
</tr>
{% endwith %}
{% empty %}
<tr>
<td colspan="7"><i>{% trans "No applications available." %}</i></td>
<td colspan="7"><i>{% trans "No motions available." %}</i></td>
</tr>
{% endfor %}
</table>

View File

@ -4,12 +4,12 @@
{% load staticfiles %}
{% block title %}
{{ block.super }} {% trans "Application" %} "{{ application.public_version.title }}"
{{ block.super }} {% trans "Motion" %} "{{ application.public_version.title }}"
{{ ballot }}. {% trans "Vote" %}
{% endblock %}
{% block content %}
<h1>{{ application.public_version.title }} ({% trans "Application" %}
<h1>{{ application.public_version.title }} ({% trans "Motion" %}
{{ application.number }}) {{ ballot }}. {% trans "Vote" %}</h1>
<i class="helptext">{% trans "Special values" %}: -1 = {% trans 'majority' %}; -2 = {% trans 'undocumented' %}</i>
<form action="" method="post" class="small-form">{% csrf_token %}

View File

@ -4,7 +4,7 @@
{% load i18n %}
{% load staticfiles %}
{% block title %}{{ block.super }} {% trans "Application" %} "{{ version.title }}"{% endblock %}
{% block title %}{{ block.super }} {% trans "Motion" %} "{{ version.title }}"{% endblock %}
{% block submenu %}
@ -143,7 +143,7 @@
{% if perms.application.can_manage_application %}
<div class="box">
<h4><b>{% trans "Manage application" %}</b></h4>
<h4><b>{% trans "Manage motion" %}</b></h4>
{% if "pub" in actions or "per" in actions or "nop" in actions or "setnumber" in actions %}
<h4>{% trans "Formal validation" %}:</h4>
@ -206,7 +206,7 @@
<div id="main">
<h1>
{{ version.title }}
({% trans "Application" %}
({% trans "Motion" %}
{% if application.number != None %}
{{ application.number }})
{% else %}
@ -221,11 +221,11 @@
{% if version == application.public_version %}
{% trans "This is not the newest version." %} <a href="{% url application_view_newest application.id %}">{% trans "Go to version" %} {{ application.last_version.aid }}.</a>
{% else %}
{% trans "This is not the permitted version." %} <a href="{% url application_view application.id %}">{% trans "Go to version" %} {{ application.public_version.aid }}.</a>
{% trans "This is not the authorized version." %} <a href="{% url application_view application.id %}">{% trans "Go to version" %} {{ application.public_version.aid }}.</a>
{% endif %}
{% endif %}
<h2>{% trans "Application" %}:</h2>
<h2>{% trans "Motion" %}:</h2>
{{ version.text|linebreaks }}
@ -256,7 +256,7 @@
<td style="white-space:nowrap;">
{% if application.status != "pub" %}
{% if revision == application.permitted %}
<img title="{% trans 'Version permitted' %}" src="{% static 'images/icons/accept.png' %}">
<img title="{% trans 'Version authorized' %}" src="{% static 'images/icons/accept.png' %}">
{% else %}
{% if perms.application.can_manage_application %}
<a href="{% url application_version_permit revision.id %}"><img title="{% trans 'Permit Version' %}" src="{% static 'images/icons/accept-grey.png' %}"></a>

View File

@ -20,7 +20,7 @@
<a href="{% model_url application 'view' %}">
{{ application.public_version.title }}
</a>
({% trans 'Application' %}
({% trans "motion" %}
{% if application.number %}
{{ application.number }})
{% else %}
@ -28,7 +28,7 @@
{% endif %}
</li>
{% empty %}
<li>{% trans 'No applications available.' %}</li>
<li>{% trans 'No motion available.' %}</li>
{% endfor %}
</ul>

View File

@ -4,7 +4,7 @@
{% load i18n %}
{% load staticfiles %}
{% block title %}{{ block.super }} - {% trans "Application" %} {{ application.number }}{% endblock %}
{% block title %}{{ block.super }} - {% trans "Motion" %} {{ application.number }}{% endblock %}
{% block content %}
<div id="sidebar">
<div class="box">
@ -60,9 +60,9 @@
<h1>
{% if application.number != None %}
{% trans "Application No." %} {{ application.number }}
{% trans "Motion No." %} {{ application.number }}
{% else %}
{% trans "Application" %} <i>[{% trans "no number" %}]</i>
{% trans "Motion" %} <i>[{% trans "no number" %}]</i>
{% endif %}
</h1>
<b>{{ application.public_version.title }}</b>

View File

@ -176,12 +176,12 @@ def edit(request, application_id=None):
if not is_manager \
and not request.user.has_perm('application.can_create_application'):
messages.error(request, _("You have not the necessary rights to create or edit applications."))
messages.error(request, _("You have not the necessary rights to create or edit motions."))
return redirect(reverse('application_overview'))
if application_id is not None:
application = Application.objects.get(id=application_id)
if not request.user == application.submitter and not is_manager:
messages.error(request, _("You can not edit this application. You are not the submitter."))
messages.error(request, _("You can not edit this motion. You are not the submitter."))
return redirect(reverse('application_view', args=[application.id]))
actions = application.get_allowed_actions(user=request.user)
else:
@ -241,9 +241,9 @@ def edit(request, application_id=None):
application.unsupport(supporter)
if application_id is None:
messages.success(request, _('New application was successfully created.'))
messages.success(request, _('New motion was successfully created.'))
else:
messages.success(request, _('Application was successfully modified.'))
messages.success(request, _('Motion was successfully modified.'))
if not 'apply' in request.POST:
return redirect(reverse('application_view', args=[application.id]))
@ -257,9 +257,9 @@ def edit(request, application_id=None):
else:
if application.status == "pub" and application.supporter.exists():
if request.user.has_perm('application.can_manage_application'):
messages.warning(request, _("Attention: Do you really want to edit this application? The supporters will <b>not</b> be removed automatically because you can manage applications. Please check if the supports are valid after your changing!"))
messages.warning(request, _("Attention: Do you really want to edit this motion? The supporters will <b>not</b> be removed automatically because you can manage motions. Please check if the supports are valid after your changing!"))
else:
messages.warning(request, _("Attention: Do you really want to edit this application? All <b>%s</b> supporters will be removed! Try to convince the supporters again.") % application.supporter.count() )
messages.warning(request, _("Attention: Do you really want to edit this motion? All <b>%s</b> supporters will be removed! Try to convince the supporters again.") % application.supporter.count() )
initial = {'title': application.title,
'text': application.text,
'reason': application.reason}
@ -290,7 +290,7 @@ def set_number(request, application_id):
"""
try:
Application.objects.get(pk=application_id).set_number(user=request.user)
messages.success(request, _("Application number was successfully set."))
messages.success(request, _("Motion number was successfully set."))
except Application.DoesNotExist:
pass
except NameError:
@ -306,7 +306,7 @@ def permit(request, application_id):
"""
try:
Application.objects.get(pk=application_id).permit(user=request.user)
messages.success(request, _("Application was successfully permitted."))
messages.success(request, _("Motion was successfully authorized."))
except Application.DoesNotExist:
pass
except NameError, e:
@ -321,7 +321,7 @@ def notpermit(request, application_id):
"""
try:
Application.objects.get(pk=application_id).notpermit(user=request.user)
messages.success(request, _("Application was successfully rejected."))
messages.success(request, _("Motion was successfully rejected."))
except Application.DoesNotExist:
pass
except NameError, e:
@ -337,7 +337,7 @@ def set_status(request, application_id=None, status=None):
if status is not None:
application = Application.objects.get(pk=application_id)
application.set_status(user=request.user, status=status)
messages.success(request, _("Application status was set to: <b>%s</b>.") % application.get_status_display())
messages.success(request, _("Motion status was set to: <b>%s</b>.") % application.get_status_display())
except Application.DoesNotExist:
pass
except NameError, e:
@ -353,7 +353,7 @@ def reset(request, application_id):
"""
try:
Application.objects.get(pk=application_id).reset(user=request.user)
messages.success(request, _("Application status was reset.") )
messages.success(request, _("Motion status was reset.") )
except Application.DoesNotExist:
pass
return redirect(reverse('application_view', args=[application_id]))
@ -367,7 +367,7 @@ def support(request, application_id):
"""
try:
Application.objects.get(pk=application_id).support(user=request.user)
messages.success(request, _("You have support the application successfully.") )
messages.success(request, _("You have support the motion successfully.") )
except Application.DoesNotExist:
pass
return redirect(reverse('application_view', args=[application_id]))
@ -381,7 +381,7 @@ def unsupport(request, application_id):
"""
try:
Application.objects.get(pk=application_id).unsupport(user=request.user)
messages.success(request, _("You have unsupport the application successfully.") )
messages.success(request, _("You have unsupport the motion successfully.") )
except Application.DoesNotExist:
pass
return redirect(reverse('application_view', args=[application_id]))
@ -452,20 +452,20 @@ class ApplicationDelete(DeleteView):
if len(self.applications):
for application in self.applications:
if not 'delete' in application.get_allowed_actions(user=request.user):
messages.error(request, _("You can not delete application <b>%s</b>.") % application)
messages.error(request, _("You can not delete motion <b>%s</b>.") % application)
continue
title = application.title
application.delete(force=True)
messages.success(request, _("Application <b>%s</b> was successfully deleted.") % title)
messages.success(request, _("Motion <b>%s</b> was successfully deleted.") % title)
elif self.object:
if not 'delete' in self.object.get_allowed_actions(user=request.user):
messages.error(request, _("You can not delete application <b>%s</b>.") % self.object)
messages.error(request, _("You can not delete motion <b>%s</b>.") % self.object)
else:
title = self.object.title
self.object.delete(force=True)
messages.success(request, _("Application <b>%s</b> was successfully deleted.") % title)
messages.success(request, _("Motion <b>%s</b> was successfully deleted.") % title)
else:
messages.error(request, _("Invalid request"))
@ -486,7 +486,7 @@ class ApplicationDelete(DeleteView):
self.object = self.get_object()
if len(self.applications):
self.gen_confirm_form(request, _('Do you really want to delete multiple applications?') % self.object.get_absolute_url('delete'))
self.gen_confirm_form(request, _('Do you really want to delete multiple motions?') % self.object.get_absolute_url('delete'))
else:
self.gen_confirm_form(request, _('Do you really want to delete <b>%s</b>?') % self.object, self.object.get_absolute_url('delete'))
@ -531,7 +531,7 @@ def permit_version(request, aversion_id):
application.accept_version(aversion, user = request.user)
messages.success(request, _("Version <b>%s</b> accepted.") % (aversion.aid))
else:
gen_confirm_form(request, _('Do you really want to permit version <b>%s</b>?') % aversion.aid, reverse('application_version_permit', args=[aversion.id]))
gen_confirm_form(request, _('Do you really want to authorize version <b>%s</b>?') % aversion.aid, reverse('application_version_permit', args=[aversion.id]))
return redirect(reverse('application_view', args=[application.id]))
@ -644,11 +644,11 @@ def application_import(request):
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)
messages.success(request, ungettext('%d motion was successfully imported.',
'%d motions 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)
messages.success(request, ungettext('%d motion was successfully modified.',
'%d motions 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'))
@ -660,8 +660,8 @@ def application_import(request):
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."))
messages.warning(request, _("Attention: Existing motions will be modified if you import new motions with the same number."))
messages.warning(request, _("Attention: Importing an motions without a number multiple times will create duplicates."))
form = ApplicationImportForm()
return {
'form': form,
@ -708,14 +708,14 @@ class ApplicationPDF(PDFView):
story.append(Spacer(0,0.75*cm))
applications = Application.objects.order_by('number')
if not applications: # No applications existing
story.append(Paragraph(_("No applications available."), stylesheet['Heading3']))
story.append(Paragraph(_("No motions available."), stylesheet['Heading3']))
else: # Print all Applications
# List of applications
for application in applications:
if application.number:
story.append(Paragraph(_("Application No.")+" %s: %s" % (application.number, application.title), stylesheet['Heading3']))
story.append(Paragraph(_("Motion No.")+" %s: %s" % (application.number, application.title), stylesheet['Heading3']))
else:
story.append(Paragraph(_("Application No.")+"&nbsp;&nbsp;&nbsp;: %s" % (application.title), stylesheet['Heading3']))
story.append(Paragraph(_("Motion No.")+"&nbsp;&nbsp;&nbsp;: %s" % (application.title), stylesheet['Heading3']))
# Applications details (each application on single page)
for application in applications:
story.append(PageBreak())
@ -727,9 +727,9 @@ class ApplicationPDF(PDFView):
def get_application(self, application, story):
# application number
if application.number:
story.append(Paragraph(_("Application No.")+" %s" % application.number, stylesheet['Heading1']))
story.append(Paragraph(_("Motion No.")+" %s" % application.number, stylesheet['Heading1']))
else:
story.append(Paragraph(_("Application No."), stylesheet['Heading1']))
story.append(Paragraph(_("Motion No."), stylesheet['Heading1']))
# submitter
cell1a = []
@ -909,7 +909,7 @@ class Config(FormView):
config['application_pdf_title'] = form.cleaned_data['application_pdf_title']
config['application_pdf_preamble'] = form.cleaned_data['application_pdf_preamble']
config['application_allow_trivial_change'] = form.cleaned_data['application_allow_trivial_change']
messages.success(self.request, _('Application settings successfully saved.'))
messages.success(self.request, _('Motion settings successfully saved.'))
return super(Config, self).form_valid(form)

View File

@ -81,7 +81,7 @@ def default_config(sender, key, **kwargs):
return {
'event_name': 'OpenSlides',
'event_description':
_('Presentation system for agenda, applications and elections'),
_('Presentation system for agenda, motions and elections'),
'event_date': '',
'event_location': '',
'event_organizer': '',

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenSlides 1.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-28 11:02+0200\n"
"POT-Creation-Date: 2012-08-05 22:16+0200\n"
"PO-Revision-Date: 2012-07-28 11:07+0200\n"
"Last-Translator: Oskar Hahn <mail@oshahn.de>\n"
"Language-Team: Deutsch <mail@oshahn.de>\n"
@ -29,13 +29,13 @@ msgstr "Englisch"
msgid "Parent item"
msgstr "Elternelement"
#: agenda/models.py:42 application/forms.py:40 application/models.py:531
#: agenda/models.py:42 application/forms.py:40 application/models.py:534
#: application/templates/application/view.html:249 config/forms.py:61
#: projector/models.py:32
msgid "Title"
msgstr "Titel"
#: agenda/models.py:43 application/forms.py:41 application/models.py:532
#: agenda/models.py:43 application/forms.py:41 application/models.py:535
#: application/templates/application/view.html:250 projector/models.py:33
msgid "Text"
msgstr "Text"
@ -54,15 +54,15 @@ msgstr "Abgeschlossen"
msgid "Weight"
msgstr "Gewichtung"
#: agenda/models.py:173
#: agenda/models.py:180
msgid "Can see agenda"
msgstr "Darf die Tagesordnung sehen"
#: agenda/models.py:174
#: agenda/models.py:181
msgid "Can manage agenda"
msgstr "Darf die Tagesordung verwalten"
#: agenda/models.py:182 agenda/slides.py:20 agenda/views.py:239
#: agenda/models.py:189 agenda/slides.py:20 agenda/views.py:239
#: agenda/views.py:240 agenda/views.py:259
#: agenda/templates/agenda/base_agenda.html:10
#: agenda/templates/agenda/overview.html:8
@ -74,7 +74,7 @@ msgid "Agenda"
msgstr "Tagesordnung"
#: agenda/views.py:57
msgid "You are not permitted to manage the agenda."
msgid "You are not authorized to manage the agenda."
msgstr "Sie sind nicht berechtigt die Tagesordnung zu ändern."
#: agenda/views.py:73
@ -102,8 +102,8 @@ msgid "Item %s was successfully deleted."
msgstr "Eintrag %s wurde erfolgreich gelöscht."
#: agenda/views.py:196 agenda/views.py:211
#: agenda/templates/agenda/overview.html:46 application/models.py:565
#: application/views.py:493 application/views.py:818 application/views.py:869
#: agenda/templates/agenda/overview.html:46 application/models.py:568
#: application/views.py:481 application/views.py:806 application/views.py:857
#: application/templates/application/view.html:82
#: application/templates/projector/Application.html:37
#: assignment/models.py:240 assignment/views.py:557
@ -116,8 +116,8 @@ msgid "Yes"
msgstr "Ja"
#: agenda/views.py:197 agenda/views.py:212
#: agenda/templates/agenda/overview.html:47 application/models.py:565
#: application/views.py:493 application/views.py:818 application/views.py:870
#: agenda/templates/agenda/overview.html:47 application/models.py:568
#: application/views.py:481 application/views.py:806 application/views.py:858
#: application/templates/application/view.html:83
#: application/templates/projector/Application.html:38
#: assignment/models.py:240 assignment/views.py:558
@ -324,7 +324,7 @@ msgstr "Löschen"
msgid "Edit"
msgstr "Bearbeiten"
#: application/forms.py:43 application/models.py:533 application/views.py:837
#: application/forms.py:43 application/models.py:536 application/views.py:825
#: application/templates/application/view.html:232
#: application/templates/application/view.html:252
#: application/templates/projector/Application.html:77
@ -339,14 +339,14 @@ msgstr "Triviale Änderung"
msgid "Trivial changes don't create a new version."
msgstr "Triviale Änderungen erzeugen keine neue Version."
#: application/forms.py:56 application/models.py:63 application/views.py:749
#: application/forms.py:56 application/models.py:63 application/views.py:737
#: application/templates/application/overview.html:41
#: application/templates/application/view.html:18
#: application/templates/projector/Application.html:55
msgid "Submitter"
msgstr "Antragsteller/in"
#: application/forms.py:68 application/models.py:65 application/views.py:768
#: application/forms.py:68 application/models.py:65 application/views.py:756
#: application/templates/application/view.html:25
msgid "Supporters"
msgstr "Unterstützer/innen"
@ -356,15 +356,15 @@ msgid "CSV File"
msgstr "CSV-Datei"
#: application/forms.py:79
msgid "Import applications with status \"permitted\""
msgid "Import motions with status \"authorized\""
msgstr "Anträge als \"Zugelassen\" importieren"
#: application/forms.py:80
msgid "Set the initial status for each application to \"permitted\""
msgid "Set the initial status for each motion to \"authorized\""
msgstr "Setzt den initialen Status für jeden Antrag auf \"zugelassen\""
#: application/forms.py:88
msgid "Number of (minimum) required supporters for a application"
msgid "Number of (minimum) required supporters for a motion"
msgstr "Mindestanzahl erforderlicher Unterstützer/innen für einen Antrag"
#: application/forms.py:92
@ -372,7 +372,7 @@ msgid "Choose 0 to disable the supporting system"
msgstr "Wähle 0 um das Unterstützersystem zu deaktivieren"
#: application/forms.py:97
msgid "Application preamble"
msgid "Motion preamble"
msgstr "Antragseinleitung"
#: application/forms.py:102 assignment/forms.py:48
@ -396,19 +396,19 @@ msgid "Custom number of ballot papers"
msgstr "Benutzerdefinierte Anzahl von Stimmzetteln"
#: application/forms.py:118
msgid "Title for PDF document (all applications)"
msgid "Title for PDF document (all motions)"
msgstr "Titel für PDF-Dokument (alle Anträge)"
#: application/forms.py:123
msgid "Preamble text for PDF document (all applications)"
msgstr "Einleitungstext für PDF-Dokument (alle Anträge)"
msgid "Preamble text for PDF document (all motions)"
msgstr "Einleitungstext für PDF-Dokument (alle Wahlen) "
#: application/forms.py:127
msgid "Allow trivial changes"
msgstr "Triviale Änderungen erlauben"
#: application/forms.py:128
msgid "Warning: Trivial changes undermine the application permission system."
msgid "Warning: Trivial changes undermine the motions autorisation system."
msgstr ""
"Warnung: Triviale Änderungen unterlaufen das Zulassungssystem von Anträgen."
@ -416,7 +416,7 @@ msgstr ""
msgid "Published"
msgstr "Veröffentlicht"
#: application/models.py:43 application/templates/application/overview.html:23
#: application/models.py:43
msgid "Permitted"
msgstr "Zugelassen"
@ -449,7 +449,7 @@ msgid "Commited a bill"
msgstr "Verwiesen (in Ausschuss)"
#: application/models.py:50
msgid "Rejected (not permitted)"
msgid "Rejected (not authorized)"
msgstr "Verworfen (nicht zulässig)"
#: application/models.py:51 application/templates/application/overview.html:27
@ -457,13 +457,11 @@ msgid "Needs Review"
msgstr "Benötigt Review"
#: application/models.py:102
#, python-format
msgid "Version %d permitted"
msgid "Version %d authorized"
msgstr "Version %d zugelassen"
#: application/models.py:109
#, python-format
msgctxt "Rejected means not permitted"
msgctxt "Rejected means not authorized"
msgid "Version %d rejected"
msgstr "Version %d verworfen"
@ -472,11 +470,11 @@ msgid "Searching for supporters."
msgstr "Auf Unterstützersuche."
#: application/models.py:140
msgid "Not yet permitted."
msgid "Not yet authorized."
msgstr "Noch nicht zugelassen."
#: application/models.py:142
msgid "Not yet permitted changes."
msgid "Not yet authorized changes."
msgstr "Noch nicht zugelassene Änderungen."
#: application/models.py:208
@ -501,12 +499,12 @@ msgstr "Unterstützer/innen gelöscht"
msgid "Status reseted to: %s"
msgstr "Status zurückgesetzt auf: %s"
#: application/models.py:250 application/views.py:242
#: application/models.py:250
#, python-format
msgid "Supporter: +%s"
msgstr "Unterstützer/in: +%s"
#: application/models.py:260 application/views.py:253
#: application/models.py:260
#, python-format
msgid "Supporter: -%s"
msgstr "Unterstützer/in: -%s"
@ -517,308 +515,297 @@ msgid "Number set: %s"
msgstr "Nummer gesetzt: %s"
#: application/models.py:289
#, python-format
msgid "Version %s permitted"
msgid "Version %s authorized"
msgstr "Version %s zugelassen"
#: application/models.py:303
#, python-format
msgid "Version %s not permitted"
msgid "Version %s not authorized"
msgstr "Version %s nicht zugelassen"
#: application/models.py:315 assignment/models.py:59
#: application/models.py:316 assignment/models.py:59
#, python-format
msgid "%s is not a valid status."
msgstr "%s ist kein gültiger Status."
#: application/models.py:317
#, python-format
msgid "The application status is already '%s.'"
#: application/models.py:319
msgid "The motion status is already '%s.'"
msgstr "Der Antragsstatus ist bereits '%s'."
#: application/models.py:323
#, python-format
#: application/models.py:327
msgid ""
"The application status is: '%(currentstatus)s'. You can not set the status "
"to '%(newstatus)s'."
"The motion status is: '%(currentstatus)s'. You can not set the status to "
"'%(newstatus)s'."
msgstr ""
"Der Antragsstatus ist: '%(currentstatus)s'. Sie können den Status nicht auf "
"'%(newstatus)s' setzen."
#: application/models.py:332
#: application/models.py:335
msgid "Status modified"
msgstr "Status geändert"
#: application/models.py:438
#: application/models.py:441
msgid "by"
msgstr "von"
#: application/models.py:446 application/templates/application/view.html:213
#: application/models.py:449 application/templates/application/view.html:213
#: application/templates/application/widget.html:27
#: application/templates/projector/Application.html:65
msgid "no number"
msgstr "ohne Nummer"
#: application/models.py:447 application/views.py:709 application/views.py:851
#: application/templates/application/poll_view.html:7
#: application/templates/application/poll_view.html:12
#: application/templates/application/view.html:7
#: application/templates/application/view.html:209
#: application/templates/application/view.html:228
#: application/models.py:450
#: application/templates/application/overview.html:32
#: application/templates/application/widget.html:23
#: application/templates/projector/Application.html:7
#: application/templates/projector/Application.html:65
msgid "Application"
msgstr "Antrag"
msgid "motion"
msgstr "antrag"
#: application/models.py:472
#: application/models.py:475
msgid "Poll created"
msgstr "Abstimmung erstellt"
#: application/models.py:523
msgid "Can see application"
#: application/models.py:526
msgid "Can see motions"
msgstr "Darf Anträge sehen"
#: application/models.py:524
msgid "Can create application"
#: application/models.py:527
msgid "Can create motions"
msgstr "Darf Anträge erstellen"
#: application/models.py:525
msgid "Can support application"
#: application/models.py:528
msgid "Can support motions"
msgstr "Darf Anträge unterstützen"
#: application/models.py:526
msgid "Can manage application"
#: application/models.py:529
msgid "Can manage motions"
msgstr "Darf Anträge verwalten"
#: application/models.py:566 assignment/models.py:241
#: application/models.py:569 assignment/models.py:241
msgid "Abstain"
msgstr "Enthaltung"
#: application/models.py:592
#: application/models.py:595
msgid "The Assembly may decide,"
msgstr "Die Versammlung möge beschließen,"
#: application/models.py:595 application/views.py:702 application/views.py:931
#: application/models.py:598
#: application/templates/application/base_application.html:9
#: application/templates/application/overview.html:7
#: application/templates/application/overview.html:10
msgid "Applications"
msgid "Motions"
msgstr "Anträge"
#: application/views.py:179
msgid "You have not the necessary rights to create or edit applications."
msgid "You have not the necessary rights to create or edit motions."
msgstr ""
"Sie haben nicht die nötigen Rechte, um Anträge zu erstellen oder zu "
"bearbeiten."
#: application/views.py:184
msgid "You can not edit this application. You are not the submitter."
msgstr "Sie dürfen keine Anträge von anderen bearbeiten."
msgid "You can not edit this motion. You are not the submitter."
msgstr "Sie dürfen diesen Antrag nicht bearbeiten. Sie sind nicht der Antragsteller"
#: application/views.py:255
msgid "New application was successfully created."
#: application/views.py:244
msgid "New motion was successfully created."
msgstr "Neuer Antrag wurde erfolgreich angelegt."
#: application/views.py:257
msgid "Application was successfully modified."
#: application/views.py:246
msgid "Motion was successfully modified."
msgstr "Antrag wurde erfolgreich geändert."
#: application/views.py:264 application/views.py:673 assignment/views.py:129
#: application/views.py:253 application/views.py:661 assignment/views.py:129
#: participant/views.py:185 participant/views.py:316 participant/views.py:354
#: participant/views.py:377 participant/views.py:538 utils/views.py:166
#: utils/views.py:184 utils/views.py:208
msgid "Please check the form for errors."
msgstr "Bitte kontrollieren Sie das Formular nach Fehlern."
#: application/views.py:271
#: application/views.py:260
msgid ""
"Attention: Do you really want to edit this application? The supporters will "
"<b>not</b> be removed automatically because you can manage applications. "
"Please check if the supports are valid after your changing!"
"Attention: Do you really want to edit this motion? The supporters will "
"<b>not</b> be removed automatically because you can manage motions. Please "
"check if the supports are valid after your changing!"
msgstr ""
"Achtung: Wollen Sie den Antrag wirklich ändern? Die Unterstützer/innen "
"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:273
#, python-format
#: application/views.py:262
msgid ""
"Attention: Do you really want to edit this application? All <b>%s</b> "
"supporters will be removed! Try to convince the supporters again."
"Attention: Do you really want to edit this motion? All <b>%s</b> supporters "
"will be removed! Try to convince the supporters again."
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:305
msgid "Application number was successfully set."
#: application/views.py:293
msgid "Motion number was successfully set."
msgstr "Antragsnummer wurde erfolgreich gesetzt."
#: application/views.py:321
msgid "Application was successfully permitted."
#: application/views.py:309
msgid "Motion was successfully authorized."
msgstr "Antrag wurde erfolgreich zugelassen."
#: application/views.py:336
msgid "Application was successfully rejected."
#: application/views.py:324
msgid "Motion was successfully rejected."
msgstr "Antrag wurde erfolgreich verworfen."
#: application/views.py:352
#, python-format
msgid "Application status was set to: <b>%s</b>."
msgstr "Antragsstatus wurde gesetzt auf: <b>%s</b>"
#: application/views.py:340
msgid "Motion status was set to: <b>%s</b>."
msgstr "Antragsstatus wurde gesetzt auf: <b>%s</b>."
#: application/views.py:368
msgid "Application status was reset."
#: application/views.py:356
msgid "Motion status was reset."
msgstr "Antragsstatus wurde zurückgesetzt."
#: application/views.py:382
msgid "You have support the application successfully."
#: application/views.py:370
msgid "You have support the motion successfully."
msgstr "Sie haben den Antrag erfolgreich unterstützt."
#: application/views.py:396
msgid "You have unsupport the application successfully."
#: application/views.py:384
msgid "You have unsupport the motion successfully."
msgstr "Sie haben dem Antrag erfolgreich Ihre Unterstützung entzogen."
#: application/views.py:410
#: application/views.py:398
msgid "New vote was successfully created."
msgstr "Neue Abstimmung erfolgreich angelegt."
#: application/views.py:426
#: application/views.py:414
msgid "Poll deleted"
msgstr "Abstimmung gelöscht"
#: application/views.py:427
#: application/views.py:415
msgid "Poll was successfully deleted."
msgstr "Abstimmung wurde erfolgreich gelöscht."
#: application/views.py:429
#: application/views.py:417
#, python-format
msgid "the %s. poll"
msgstr "die %s. Abstimmung"
#: application/views.py:467 application/views.py:476
#, python-format
msgid "You can not delete application <b>%s</b>."
#: application/views.py:455 application/views.py:464
msgid "You can not delete motion <b>%s</b>."
msgstr "Sie können Antrag <b>%s</b> nicht löschen."
#: application/views.py:472 application/views.py:480
#, python-format
msgid "Application <b>%s</b> was successfully deleted."
#: application/views.py:460 application/views.py:468
msgid "Motion <b>%s</b> was successfully deleted."
msgstr "Antrag <b>%s</b> wurde erfolgreich gelöscht."
#: application/views.py:482
#: application/views.py:470
msgid "Invalid request"
msgstr "Ungültige Anfrage"
#: application/views.py:501
msgid "Do you really want to delete multiple applications?"
msgstr "Soll <b>%s</b> wirklich gelöscht werden?"
#: application/views.py:489
msgid "Do you really want to delete multiple motions?"
msgstr "Wollen Sie wirklich mehrere Anträge löschen?"
#: application/views.py:503 participant/views.py:214 participant/views.py:337
#: application/views.py:491 participant/views.py:214 participant/views.py:337
#, python-format
msgid "Do you really want to delete <b>%s</b>?"
msgstr "Soll <b>%s</b> wirklich gelöscht werden?"
#: application/views.py:527
#: application/views.py:515
msgid "Poll was updated"
msgstr "Abstimmung wurde aktualisiert"
#: application/views.py:544
#: application/views.py:532
#, python-format
msgid "Version <b>%s</b> accepted."
msgstr "Version <b>%s</b> akzeptiert."
#: application/views.py:546
#, python-format
msgid "Do you really want to permit version <b>%s</b>?"
#: application/views.py:534
msgid "Do you really want to authorize version <b>%s</b>?"
msgstr "Soll Version <b>%s</b> wirklich zugelassen werden?"
#: application/views.py:556
#: application/views.py:544
#, python-format
msgid "Version <b>%s</b> rejected."
msgstr "Version <b>%s</b> zurückgewiesen."
#: application/views.py:558
#: application/views.py:546
msgid "ERROR by rejecting the version."
msgstr "FEHLER beim Zurückweisen der Version."
#: application/views.py:560
#: application/views.py:548
#, 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:569 participant/views.py:395
#: application/views.py:557 participant/views.py:395
msgid ""
"The import function is available for the admin (without user profile) only."
msgstr ""
"Die Importfunktion ist nur für den superuser (ohne Nutzerprofil) verfügbar."
#: application/views.py:600 application/views.py:604 application/views.py:610
#: application/views.py:613 participant/views.py:464
#: application/views.py:588 application/views.py:592 application/views.py:598
#: application/views.py:601 participant/views.py:464
#, python-format
msgid "Ignoring malformed line %d in import file."
msgstr "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert."
#: application/views.py:659
#, python-format
msgid "%d application was successfully imported."
msgid_plural "%d applications were successfully imported."
#: application/views.py:647
msgid "%d motion was successfully imported."
msgid_plural "%d motions were successfully imported."
msgstr[0] "%d Antrag wurde erfolgreich importiert."
msgstr[1] "%d Anträge wurden erfolgreich importiert."
#: application/views.py:662
#, python-format
msgid "%d application was successfully modified."
msgid_plural "%d applications were successfully modified."
#: application/views.py:650
msgid "%d motion was successfully modified."
msgid_plural "%d motions were successfully modified."
msgstr[0] "%d Antrag wurde erfolgreich geändert."
msgstr[1] "%d Anträge wurden erfolgreich geändert."
#: application/views.py:665
#: application/views.py:653
#, 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:669 participant/views.py:534
#: application/views.py:657 participant/views.py:534
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:671 participant/views.py:536
#: application/views.py:659 participant/views.py:536
msgid "Import file has wrong character encoding, only UTF-8 is supported!"
msgstr ""
"Die Quelldatei benutzt eine ungültige Zeichenkodierung, es wird nur UTF-8 "
"wird unterstützt!"
#: application/views.py:675
#: application/views.py:663
msgid ""
"Attention: Existing applications will be modified if you import new "
"applications with the same number."
"Attention: Existing motions will be modified if you import new motions with "
"the same number."
msgstr ""
"Achtung: Existierende Anträge werden geändert wenn Sie neue Anträge mit "
"identischer Nummer importieren."
#: application/views.py:676
#: application/views.py:664
msgid ""
"Attention: Importing an application without a number multiple times will "
"create duplicates."
"Attention: Importing an motions without a number multiple times will create "
"duplicates."
msgstr ""
"Achtung: Bei mehrfachem Import eines Antrags ohne Nummer können Duplikate "
"entstehen."
#: application/views.py:723 application/templates/application/overview.html:84
#: application/templates/application/widget.html:31
msgid "No applications available."
#: application/views.py:690 application/views.py:919
msgid "Applications"
msgstr "Anträge"
#: application/views.py:697 application/views.py:839
msgid "Application"
msgstr "Antrag"
#: application/views.py:711 application/templates/application/overview.html:84
msgid "No motions available."
msgstr "Keine Anträge vorhanden."
#: application/views.py:728 application/views.py:730 application/views.py:742
#: application/views.py:744
#: application/templates/application/base_application.html:24
#: application/views.py:716 application/views.py:718 application/views.py:730
#: application/views.py:732
#: application/templates/projector/Application.html:63
msgid "Application No."
msgid "Motion No."
msgstr "Antrag Nr."
#: application/views.py:782 application/templates/application/overview.html:20
#: application/views.py:770 application/templates/application/overview.html:20
#: application/templates/application/overview.html:40
#: application/templates/application/view.html:37
#: application/templates/projector/Application.html:11
@ -830,7 +817,7 @@ msgstr "Antrag Nr."
msgid "Status"
msgstr "Status"
#: application/views.py:801 application/templates/application/view.html:217
#: application/views.py:789 application/templates/application/view.html:217
#: application/templates/application/view.html:247 config/models.py:131
#: config/templates/config/version.html:5
#: config/templates/config/version.html:8
@ -838,12 +825,12 @@ msgstr "Status"
msgid "Version"
msgstr "Version"
#: application/views.py:811 application/templates/application/view.html:47
#: application/views.py:799 application/templates/application/view.html:47
#: assignment/views.py:391
msgid "Vote results"
msgstr "Abstimmungsergebnis"
#: application/views.py:817
#: application/views.py:805
#: application/templates/application/base_application.html:55
#: application/templates/application/poll_view.html:8
#: application/templates/application/poll_view.html:13
@ -853,7 +840,7 @@ msgstr "Abstimmungsergebnis"
msgid "Vote"
msgstr "Abstimmung"
#: application/views.py:818 application/views.py:871
#: application/views.py:806 application/views.py:859
#: application/templates/application/view.html:84
#: application/templates/projector/Application.html:39 assignment/views.py:558
#: assignment/templates/assignment/view.html:160
@ -861,14 +848,14 @@ msgstr "Abstimmung"
msgid "Abstention"
msgstr "Enthaltung"
#: application/views.py:818 application/templates/application/view.html:85
#: application/views.py:806 application/templates/application/view.html:85
#: application/templates/projector/Application.html:40
#: assignment/templates/assignment/view.html:182
#: assignment/templates/projector/Assignment.html:101
msgid "Invalid"
msgstr "Ungültig"
#: application/views.py:818
#: application/views.py:806
#: application/templates/application/poll_view.html:35
#: application/templates/application/view.html:87
#: application/templates/projector/Application.html:42 assignment/views.py:442
@ -880,63 +867,67 @@ msgstr "Ungültig"
msgid "Votes cast"
msgstr "Abgegebene Stimmen"
#: application/views.py:851
#: application/views.py:839
msgid "Poll"
msgstr "Abstimmung"
#: application/views.py:865
#: application/views.py:853
#, python-format
msgid "Application No. %s"
msgstr "Antrag Nr. %s"
#: application/views.py:867
#: application/views.py:855
#, python-format
msgid "%d. Vote"
msgstr "%d. Abstimmung"
#: application/views.py:924
msgid "Application settings successfully saved."
msgstr "Antrags-Einstellungen erfolgreich gespeichert."
#: application/views.py:912
msgid "Motion settings successfully saved."
msgstr "Antrags-Einstellungen wurden erfolgreich gespeichert."
#: application/templates/application/base_application.html:11
msgid "All applications"
msgid "All motions"
msgstr "Alle Anträge"
#: application/templates/application/base_application.html:13
#: application/templates/application/edit.html:10
#: application/templates/application/edit.html:18
msgid "New application"
msgid "New motion"
msgstr "Neuer Antrag"
#: application/templates/application/base_application.html:16
#: application/templates/application/import.html:5
#: application/templates/application/import.html:8
msgid "Import applications"
msgid "Import motions"
msgstr "Anträge importieren"
#: application/templates/application/base_application.html:18
msgid "All applications as PDF"
msgid "All motions as PDF"
msgstr "Alle Anträge als PDF"
#: application/templates/application/base_application.html:24
msgid "Application No."
msgstr "Antrag Nr."
#: application/templates/application/base_application.html:34
msgid "View application"
msgid "View motion"
msgstr "Antrag anzeigen"
#: application/templates/application/base_application.html:38
#: application/templates/application/edit.html:8
#: application/templates/application/edit.html:16
#: application/templates/application/overview.html:72
msgid "Edit application"
msgid "Edit motion"
msgstr "Antrag bearbeiten"
#: application/templates/application/base_application.html:42
#: application/templates/application/overview.html:74
msgid "Delete application"
msgid "Delete motion"
msgstr "Antrag löschen"
#: application/templates/application/base_application.html:45
#: application/templates/application/overview.html:77
msgid "Application as PDF"
msgid "Motion as PDF"
msgstr "Antrag als PDF"
#: application/templates/application/base_application.html:49
@ -954,7 +945,7 @@ msgid "Application settings"
msgstr "Antrags-Einstellungen"
#: application/templates/application/import.html:9
msgid "Select a CSV file to import applications!"
msgid "Select a CSV file to import motions!"
msgstr "Wählen Sie eine CSV-Datei zum Importieren von Anträgen aus!"
#: application/templates/application/import.html:11
@ -991,25 +982,23 @@ msgid "Without number"
msgstr "Ohne Nummer"
#: application/templates/application/overview.html:22
msgid "Not yet permitted"
msgid "Not yet authorized"
msgstr "Noch nicht zugelassen"
#: application/templates/application/overview.html:26
msgid "Withdrawed (by submitter)"
msgstr "Zurückgezogen (durch Antragsteller/in)"
#: application/templates/application/overview.html:23
msgid "Authorized"
msgstr "Zugelassen"
#: application/templates/application/overview.html:32
msgid "application"
msgid_plural "applications"
msgstr[0] "Antrag"
msgstr[1] "Anträge"
#: application/templates/application/overview.html:26
msgid "Withdrawen (by submitter)"
msgstr "Zurückgezogen (durch Antragsteller/in)"
#: application/templates/application/overview.html:35
msgid "Number"
msgstr "Nummer"
#: application/templates/application/overview.html:36
msgid "Application title"
msgid "Motion title"
msgstr "Antragstitel"
#: application/templates/application/overview.html:38
@ -1022,9 +1011,19 @@ msgid "Creation Time"
msgstr "Erstellungszeit"
#: application/templates/application/overview.html:67
msgid "Activate application"
msgid "Activate motion"
msgstr "Antrag projizieren"
#: application/templates/application/poll_view.html:7
#: application/templates/application/poll_view.html:12
#: application/templates/application/view.html:7
#: application/templates/application/view.html:209
#: application/templates/application/view.html:228
#: application/templates/projector/Application.html:7
#: application/templates/projector/Application.html:65
msgid "Motion"
msgstr "Antrag"
#: application/templates/application/poll_view.html:14
#: assignment/templates/assignment/poll_view.html:12
msgid "Special values"
@ -1099,8 +1098,8 @@ msgid "minimum required supporters"
msgstr "minimal erforderliche Unterstützer/innen"
#: application/templates/application/view.html:146
msgid "Manage application"
msgstr "Antrag verwalten"
msgid "Manage motion"
msgstr "Antrag Verwalten"
#: application/templates/application/view.html:149
msgid "Formal validation"
@ -1152,7 +1151,7 @@ msgid "Go to version"
msgstr "Gehe zu Version"
#: application/templates/application/view.html:224
msgid "This is not the permitted version."
msgid "This is not the authorized version."
msgstr "Dies ist nicht die zugelassene Version."
#: application/templates/application/view.html:242
@ -1164,8 +1163,8 @@ msgid "Time"
msgstr "Zeit"
#: application/templates/application/view.html:259
msgid "Version permitted"
msgstr "Version zugelassen"
msgid "Version authorized"
msgstr "Version %d zugelassen"
#: application/templates/application/view.html:262
msgid "Permit Version"
@ -1189,6 +1188,10 @@ msgstr "unverändert"
msgid "Log"
msgstr "Log"
#: application/templates/application/widget.html:31
msgid "No motion available."
msgstr "Keine Antrag vorhanden."
#: application/templates/projector/Application.html:29
msgid "Poll result"
msgstr "Abstimmungsergebnis"
@ -1612,7 +1615,7 @@ msgid "Can manage configuration"
msgstr "Darf die Konfiguration verwalten"
#: config/models.py:84
msgid "Presentation system for agenda, applications and elections"
msgid "Presentation system for agenda, motions and elections"
msgstr "Präsentationssystem für Tagesordnung, Anträge und Wahlen"
#: config/models.py:89 templates/base.html:30
@ -1670,15 +1673,15 @@ msgid "Participant"
msgstr "Teilnehmer"
#: participant/forms.py:24
msgid "Keep applications, try to reassign submitter"
msgid "Keep motions, try to reassign submitter"
msgstr "Anträge beibehalten, versuchen Antragssteller erneut zuzuweisen"
#: participant/forms.py:25
msgid "Keep applications, set status to \"needs review\""
msgid "Keep motions, set status to \"needs review\""
msgstr "Anträge beibehalten, Status auf \"Benötigt Review\" setzen"
#: participant/forms.py:26
msgid "Discard applications"
msgid "Discard motions"
msgstr "Alle Anträge löschen"
#: participant/forms.py:31 participant/forms.py:45
@ -1705,7 +1708,7 @@ msgid "Persmissions"
msgstr "Rechte"
#: participant/forms.py:96
msgid "For existing applications"
msgid "For existing motions"
msgstr "Bei existierenden Anträgen"
#: participant/forms.py:104
@ -1848,34 +1851,30 @@ msgid "Reassigned to \"%s\" after (re)importing users."
msgstr "Nach Benutzerimport erneut \"%s\" zugeordnet."
#: participant/views.py:504 participant/views.py:518
#, python-format
msgid "Could not reassing application %d - object not found!"
msgid "Could not reassing motion %d - object not found!"
msgstr ""
"Antrag Id#%d konnte nicht neu zugewiesen werden - Das Objekt wurde nicht "
"Antrag %d konnte nicht neu zugewiesen werden - Das Objekt wurde nicht "
"gefunden!"
#: participant/views.py:521
#, python-format
msgid "%d application could not be reassigned and needs a review!"
msgid_plural "%d applications could not be reassigned and need a review!"
msgid "%d motion could not be reassigned and needs a review!"
msgid_plural "%d motions could not be reassigned and need a review!"
msgstr[0] ""
"%d Antrag konnte nicht neu zugewiesen werden and benötigt ein Review!"
msgstr[1] ""
"%d Anträge konnten nicht neu zugewiesen werden und benötigen ein Review!"
#: participant/views.py:524
#, python-format
msgid "%d application was successfully reassigned."
msgid_plural "%d applications were successfully reassigned."
msgid "%d motion was successfully reassigned."
msgid_plural "%d motions were successfully reassigned."
msgstr[0] "%d Antrag wurde erfolgreich neu zugewiesen."
msgstr[1] "%d Anträge wurden erfolgreich neu zugewiesen."
#: participant/views.py:527
#, python-format
msgid "%d application was discarded."
msgid_plural "%d applications were discarded."
msgstr[0] "%d Antrag wurde gelöscht."
msgstr[1] "%d Anträge wurden gelöscht."
msgid "%d motion was discarded."
msgid_plural "%d motions were discarded."
msgstr[0] "%d Antrag wurde verworfen."
msgstr[1] "%d Anträge wurden verworfen."
#: participant/views.py:531
#, python-format
@ -1891,14 +1890,14 @@ msgstr ""
"Teilnehmer/innen importieren."
#: participant/views.py:542
msgid "Attention: Supporters from all existing applications will be removed."
msgid "Attention: Supporters from all existing motions will be removed."
msgstr ""
"Achtung: Alle Unterstützer/innen werden von existiernden Anträgen gelöscht."
#: participant/views.py:543
msgid ""
"Attention: Applications which can't be mapped to new users will be set to "
"'Needs Review'."
"Attention: Motions which can't be mapped to new users will be set to 'Needs "
"Review'."
msgstr ""
"Achtung: Anträge welche keinem Nutzer zugeordnet werden können bekommen "
"automatisch den Status \"Benötigt Review\"."

View File

@ -21,9 +21,9 @@ from openslides.participant.models import Profile
USER_APPLICATION_IMPORT_OPTIONS = [
('REASSIGN', _('Keep applications, try to reassign submitter')),
('INREVIEW', _('Keep applications, set status to "needs review"')),
('DISCARD' , _('Discard applications'))
('REASSIGN', _('Keep motions, try to reassign submitter')),
('INREVIEW', _('Keep motions, set status to "needs review"')),
('DISCARD' , _('Discard motions'))
]
@ -93,7 +93,7 @@ class UserImportForm(forms.Form, CssClassMixin):
application_handling = forms.ChoiceField(
required=True,
choices=USER_APPLICATION_IMPORT_OPTIONS,
label=_("For existing applications"),
label=_("For existing motions"),
)

View File

@ -501,7 +501,7 @@ def user_import(request):
application.writelog(_('Reassigned to "%s" after (re)importing users.') % ("%s %s" % (user.first_name, user.last_name)), user=request.user)
applications_mapped += 1
except Application.DoesNotExist:
messages.error(request, _('Could not reassing application %d - object not found!') % appid)
messages.error(request, _('Could not reassing motion %d - object not found!') % appid)
del old_users[skey]
if old_users:
@ -515,17 +515,17 @@ def user_import(request):
application.set_status(user=request.user, status='rev', force=True)
applications_review += 1
except Application.DoesNotExist:
messages.error(request, _('Could not reassing application %d - object not found!') % appid)
messages.error(request, _('Could not reassing motion %d - object not found!') % appid)
if applications_review:
messages.warning(request, ungettext('%d application could not be reassigned and needs a review!',
'%d applications could not be reassigned and need a review!', applications_review) % applications_review)
messages.warning(request, ungettext('%d motion could not be reassigned and needs a review!',
'%d motions could not be reassigned and need a review!', applications_review) % applications_review)
if applications_mapped:
messages.success(request, ungettext('%d application was successfully reassigned.',
'%d applications were successfully reassigned.', applications_mapped) % applications_mapped)
messages.success(request, ungettext('%d motion was successfully reassigned.',
'%d motions were successfully reassigned.', applications_mapped) % applications_mapped)
if applications_removed:
messages.warning(request, ungettext('%d application was discarded.',
'%d applications were discarded.', applications_removed) % applications_removed)
messages.warning(request, ungettext('%d motion was discarded.',
'%d motions were discarded.', applications_removed) % applications_removed)
if i > 0:
messages.success(request, _('%d new participants were successfully imported.') % i)
@ -539,8 +539,8 @@ def user_import(request):
else:
messages.warning(request, _("Attention: All existing participants will be removed if you import new participants."))
if Application.objects.all():
messages.warning(request, _("Attention: Supporters from all existing applications will be removed."))
messages.warning(request, _("Attention: Applications which can't be mapped to new users will be set to 'Needs Review'."))
messages.warning(request, _("Attention: Supporters from all existing motions will be removed."))
messages.warning(request, _("Attention: Motions which can't be mapped to new users will be set to 'Needs Review'."))
form = UserImportForm()
return {
'form': form,