Merge pull request #6 from ostcar/translation

Translation
This commit is contained in:
Oskar Hahn 2012-08-13 09:30:17 -07:00
commit 5178363127
18 changed files with 335 additions and 329 deletions

View File

@ -54,7 +54,7 @@ class Overview(TemplateView):
context = self.get_context_data(**kwargs) context = self.get_context_data(**kwargs)
if not request.user.has_perm('agenda.can_manage_agenda'): if not request.user.has_perm('agenda.can_manage_agenda'):
messages.error(request, 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) return self.render_to_response(context)
transaction.commit() transaction.commit()
for item in Item.objects.all(): for item in Item.objects.all():

View File

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

View File

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

View File

@ -6,16 +6,16 @@
{% block submenu %} {% block submenu %}
{% url application_overview as url_applicationoverview %} {% url application_overview as url_applicationoverview %}
<h4>{% trans "Applications" %}</h4> <h4>{% trans "Motions" %}</h4>
<ul> <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 %} {% 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 %} {% endif %}
{% if perms.application.can_manage_application %} {% 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 %} {% 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> </ul>
{# second submenu #} {# second submenu #}
@ -31,18 +31,18 @@
<ul> <ul>
{# view application #} {# view application #}
{% url application_view application.id as url_applicationview %} {% 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 #} {# edit application #}
{% if "edit" in actions %} {% if "edit" in actions %}
{% url application_edit application.id as url_applicationedit %} {% 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 %} {% endif %}
{# delete application #} {# delete application #}
{% if "delete" in actions %} {% 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 %} {% endif %}
{# PDF #} {# 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 #} {# activate and polls #}
{% if perms.projector.can_manage_projector %} {% if perms.projector.can_manage_projector %}
<li> <li>

View File

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

View File

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

View File

@ -4,11 +4,11 @@
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
{% block title %}{{ block.super }} {% trans "Applications" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Motions" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Applications" %}</h1> <h1>{% trans "Motions" %}</h1>
<p><form action="{{request.url}}" name="filter" method="get"> <p><form action="{{ request.url }}" name="filter" method="get">
{% trans "Filter" %}: {% trans "Filter" %}:
{% if min_supporters > 0 %} {% if min_supporters > 0 %}
<input type="checkbox" name="needsup" onchange="document.forms['filter'].submit()" <input type="checkbox" name="needsup" onchange="document.forms['filter'].submit()"
@ -19,21 +19,21 @@
<input type="checkbox" name="status" onchange="document.forms['filter'].submit()" <input type="checkbox" name="status" onchange="document.forms['filter'].submit()"
{% if 'on' in request.GET.status %}checked{% endif %}> {% trans "Status" %}: {% 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 %}"> <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="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 "Permitted" %}</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="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="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> <option value="rev" {% if 'rev' in request.GET.statusvalue %}selected{% endif %}>{% trans "Needs Review" %}</option>
</select> </select>
</form> </form>
</p> </p>
{{ applications|length }} {{ applications|length }}
{% blocktrans count counter=applications|length %}application{% plural %}applications{% endblocktrans %} {% blocktrans count counter=applications|length %}motion{% plural %}motions{% endblocktrans %}
<table> <table>
<tr> <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=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 %} {% 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> <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 %} {% endif %}
@ -64,24 +64,24 @@
<td> <td>
<span style="width: 1px; white-space: nowrap;"> <span style="width: 1px; white-space: nowrap;">
{% if perms.projector.can_manage_projector %} {% 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> <span></span>
</a> </a>
{% endif %} {% endif %}
{% if perms.application.can_manage_application %} {% 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 %} {% 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 %}
{% 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> </span>
</td> </td>
</tr> </tr>
{% endwith %} {% endwith %}
{% empty %} {% empty %}
<tr> <tr>
<td colspan="7"><i>{% trans "No applications available." %}</i></td> <td colspan="7"><i>{% trans "No motions available." %}</i></td>
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>

View File

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

View File

@ -4,7 +4,7 @@
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
{% block title %}{{ block.super }} {% trans "Application" %} "{{ version.title }}"{% endblock %} {% block title %}{{ block.super }} {% trans "Motion" %} "{{ version.title }}"{% endblock %}
{% block submenu %} {% block submenu %}
@ -143,7 +143,7 @@
{% if perms.application.can_manage_application %} {% if perms.application.can_manage_application %}
<div class="box"> <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 %} {% if "pub" in actions or "per" in actions or "nop" in actions or "setnumber" in actions %}
<h4>{% trans "Formal validation" %}:</h4> <h4>{% trans "Formal validation" %}:</h4>
@ -206,7 +206,7 @@
<div id="main"> <div id="main">
<h1> <h1>
{{ version.title }} {{ version.title }}
({% trans "Application" %} ({% trans "Motion" %}
{% if application.number != None %} {% if application.number != None %}
{{ application.number }}) {{ application.number }})
{% else %} {% else %}
@ -221,11 +221,11 @@
{% if version == application.public_version %} {% 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> {% 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 %} {% 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 %}
{% endif %} {% endif %}
<h2>{% trans "Application" %}:</h2> <h2>{% trans "Motion" %}:</h2>
{{ version.text|linebreaks }} {{ version.text|linebreaks }}
@ -256,7 +256,7 @@
<td style="white-space:nowrap;"> <td style="white-space:nowrap;">
{% if application.status != "pub" %} {% if application.status != "pub" %}
{% if revision == application.permitted %} {% 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 %} {% else %}
{% if perms.application.can_manage_application %} {% 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> <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' %}"> <a href="{% model_url application 'view' %}">
{{ application.public_version.title }} {{ application.public_version.title }}
</a> </a>
({% trans 'Application' %} ({% trans "motion" %}
{% if application.number %} {% if application.number %}
{{ application.number }}) {{ application.number }})
{% else %} {% else %}
@ -28,7 +28,7 @@
{% endif %} {% endif %}
</li> </li>
{% empty %} {% empty %}
<li>{% trans 'No applications available.' %}</li> <li>{% trans 'No motion available.' %}</li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

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

View File

@ -176,12 +176,12 @@ def edit(request, application_id=None):
if not is_manager \ if not is_manager \
and not request.user.has_perm('application.can_create_application'): 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')) return redirect(reverse('application_overview'))
if application_id is not None: if application_id is not None:
application = Application.objects.get(id=application_id) application = Application.objects.get(id=application_id)
if not request.user == application.submitter and not is_manager: 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])) return redirect(reverse('application_view', args=[application.id]))
actions = application.get_allowed_actions(user=request.user) actions = application.get_allowed_actions(user=request.user)
else: else:
@ -241,9 +241,9 @@ def edit(request, application_id=None):
application.unsupport(supporter) application.unsupport(supporter)
if application_id is None: if application_id is None:
messages.success(request, _('New application was successfully created.')) messages.success(request, _('New motion was successfully created.'))
else: else:
messages.success(request, _('Application was successfully modified.')) messages.success(request, _('Motion was successfully modified.'))
if not 'apply' in request.POST: if not 'apply' in request.POST:
return redirect(reverse('application_view', args=[application.id])) return redirect(reverse('application_view', args=[application.id]))
@ -257,9 +257,9 @@ def edit(request, application_id=None):
else: else:
if application.status == "pub" and application.supporter.exists(): if application.status == "pub" and application.supporter.exists():
if request.user.has_perm('application.can_manage_application'): 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: 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, initial = {'title': application.title,
'text': application.text, 'text': application.text,
'reason': application.reason} 'reason': application.reason}
@ -290,7 +290,7 @@ def set_number(request, application_id):
""" """
try: try:
Application.objects.get(pk=application_id).set_number(user=request.user) 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: except Application.DoesNotExist:
pass pass
except NameError: except NameError:
@ -306,7 +306,7 @@ def permit(request, application_id):
""" """
try: try:
Application.objects.get(pk=application_id).permit(user=request.user) 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: except Application.DoesNotExist:
pass pass
except NameError, e: except NameError, e:
@ -321,7 +321,7 @@ def notpermit(request, application_id):
""" """
try: try:
Application.objects.get(pk=application_id).notpermit(user=request.user) 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: except Application.DoesNotExist:
pass pass
except NameError, e: except NameError, e:
@ -337,7 +337,7 @@ def set_status(request, application_id=None, status=None):
if status is not None: if status is not None:
application = Application.objects.get(pk=application_id) application = Application.objects.get(pk=application_id)
application.set_status(user=request.user, status=status) 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: except Application.DoesNotExist:
pass pass
except NameError, e: except NameError, e:
@ -353,7 +353,7 @@ def reset(request, application_id):
""" """
try: try:
Application.objects.get(pk=application_id).reset(user=request.user) 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: except Application.DoesNotExist:
pass pass
return redirect(reverse('application_view', args=[application_id])) return redirect(reverse('application_view', args=[application_id]))
@ -367,7 +367,7 @@ def support(request, application_id):
""" """
try: try:
Application.objects.get(pk=application_id).support(user=request.user) 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: except Application.DoesNotExist:
pass pass
return redirect(reverse('application_view', args=[application_id])) return redirect(reverse('application_view', args=[application_id]))
@ -381,7 +381,7 @@ def unsupport(request, application_id):
""" """
try: try:
Application.objects.get(pk=application_id).unsupport(user=request.user) 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: except Application.DoesNotExist:
pass pass
return redirect(reverse('application_view', args=[application_id])) return redirect(reverse('application_view', args=[application_id]))
@ -452,20 +452,20 @@ class ApplicationDelete(DeleteView):
if len(self.applications): if len(self.applications):
for application in self.applications: for application in self.applications:
if not 'delete' in application.get_allowed_actions(user=request.user): 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 continue
title = application.title title = application.title
application.delete(force=True) 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: elif self.object:
if not 'delete' in self.object.get_allowed_actions(user=request.user): 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: else:
title = self.object.title title = self.object.title
self.object.delete(force=True) 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: else:
messages.error(request, _("Invalid request")) messages.error(request, _("Invalid request"))
@ -486,7 +486,7 @@ class ApplicationDelete(DeleteView):
self.object = self.get_object() self.object = self.get_object()
if len(self.applications): 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: else:
self.gen_confirm_form(request, _('Do you really want to delete <b>%s</b>?') % self.object, self.object.get_absolute_url('delete')) 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) application.accept_version(aversion, user = request.user)
messages.success(request, _("Version <b>%s</b> accepted.") % (aversion.aid)) messages.success(request, _("Version <b>%s</b> accepted.") % (aversion.aid))
else: 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])) return redirect(reverse('application_view', args=[application.id]))
@ -644,11 +644,11 @@ def application_import(request):
application.save(user, trivial_change=True) application.save(user, trivial_change=True)
if applications_generated: if applications_generated:
messages.success(request, ungettext('%d application was successfully imported.', messages.success(request, ungettext('%d motion was successfully imported.',
'%d applications were successfully imported.', applications_generated) % applications_generated) '%d motions were successfully imported.', applications_generated) % applications_generated)
if applications_modified: if applications_modified:
messages.success(request, ungettext('%d application was successfully modified.', messages.success(request, ungettext('%d motion was successfully modified.',
'%d applications were successfully modified.', applications_modified) % applications_modified) '%d motions were successfully modified.', applications_modified) % applications_modified)
if users_generated: if users_generated:
messages.success(request, ungettext('%d new user was added.', '%d new users were added.', users_generated) % 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')) return redirect(reverse('application_overview'))
@ -660,8 +660,8 @@ def application_import(request):
else: else:
messages.error(request, _('Please check the form for errors.')) messages.error(request, _('Please check the form for errors.'))
else: else:
messages.warning(request, _("Attention: Existing applications will be modified if you import new applications with the same number.")) messages.warning(request, _("Attention: Existing motions will be modified if you import new motions with the same number."))
messages.warning(request, _("Attention: Importing an application without a number multiple times will create duplicates.")) messages.warning(request, _("Attention: Importing an motions without a number multiple times will create duplicates."))
form = ApplicationImportForm() form = ApplicationImportForm()
return { return {
'form': form, 'form': form,
@ -708,14 +708,14 @@ class ApplicationPDF(PDFView):
story.append(Spacer(0,0.75*cm)) story.append(Spacer(0,0.75*cm))
applications = Application.objects.order_by('number') applications = Application.objects.order_by('number')
if not applications: # No applications existing 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 else: # Print all Applications
# List of applications # List of applications
for application in applications: for application in applications:
if application.number: 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: 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) # Applications details (each application on single page)
for application in applications: for application in applications:
story.append(PageBreak()) story.append(PageBreak())
@ -727,9 +727,9 @@ class ApplicationPDF(PDFView):
def get_application(self, application, story): def get_application(self, application, story):
# application number # application number
if 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: else:
story.append(Paragraph(_("Application No."), stylesheet['Heading1'])) story.append(Paragraph(_("Motion No."), stylesheet['Heading1']))
# submitter # submitter
cell1a = [] cell1a = []
@ -909,7 +909,7 @@ class Config(FormView):
config['application_pdf_title'] = form.cleaned_data['application_pdf_title'] config['application_pdf_title'] = form.cleaned_data['application_pdf_title']
config['application_pdf_preamble'] = form.cleaned_data['application_pdf_preamble'] config['application_pdf_preamble'] = form.cleaned_data['application_pdf_preamble']
config['application_allow_trivial_change'] = form.cleaned_data['application_allow_trivial_change'] 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) return super(Config, self).form_valid(form)

View File

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

View File

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

View File

@ -59,6 +59,10 @@ USE_I18N = True
# calendars according to the current locale # calendars according to the current locale
USE_L10N = True USE_L10N = True
LOCALE_PATHS = (
_fs2unicode(os.path.join(SITE_ROOT, 'locale'))
)
# Absolute path to the directory that holds media. # Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/" # Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = _fs2unicode(os.path.join(SITE_ROOT, './static/')) MEDIA_ROOT = _fs2unicode(os.path.join(SITE_ROOT, './static/'))

View File

@ -21,9 +21,9 @@ from openslides.participant.models import Profile
USER_APPLICATION_IMPORT_OPTIONS = [ USER_APPLICATION_IMPORT_OPTIONS = [
('REASSIGN', _('Keep applications, try to reassign submitter')), ('REASSIGN', _('Keep motions, try to reassign submitter')),
('INREVIEW', _('Keep applications, set status to "needs review"')), ('INREVIEW', _('Keep motions, set status to "needs review"')),
('DISCARD' , _('Discard applications')) ('DISCARD' , _('Discard motions'))
] ]
@ -93,7 +93,7 @@ class UserImportForm(forms.Form, CssClassMixin):
application_handling = forms.ChoiceField( application_handling = forms.ChoiceField(
required=True, required=True,
choices=USER_APPLICATION_IMPORT_OPTIONS, 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) application.writelog(_('Reassigned to "%s" after (re)importing users.') % ("%s %s" % (user.first_name, user.last_name)), user=request.user)
applications_mapped += 1 applications_mapped += 1
except Application.DoesNotExist: 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] del old_users[skey]
if old_users: if old_users:
@ -515,17 +515,17 @@ def user_import(request):
application.set_status(user=request.user, status='rev', force=True) application.set_status(user=request.user, status='rev', force=True)
applications_review += 1 applications_review += 1
except Application.DoesNotExist: 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: if applications_review:
messages.warning(request, ungettext('%d application could not be reassigned and needs a review!', messages.warning(request, ungettext('%d motion could not be reassigned and needs a review!',
'%d applications could not be reassigned and need a review!', applications_review) % applications_review) '%d motions could not be reassigned and need a review!', applications_review) % applications_review)
if applications_mapped: if applications_mapped:
messages.success(request, ungettext('%d application was successfully reassigned.', messages.success(request, ungettext('%d motion was successfully reassigned.',
'%d applications were successfully reassigned.', applications_mapped) % applications_mapped) '%d motions were successfully reassigned.', applications_mapped) % applications_mapped)
if applications_removed: if applications_removed:
messages.warning(request, ungettext('%d application was discarded.', messages.warning(request, ungettext('%d motion was discarded.',
'%d applications were discarded.', applications_removed) % applications_removed) '%d motions were discarded.', applications_removed) % applications_removed)
if i > 0: if i > 0:
messages.success(request, _('%d new participants were successfully imported.') % i) messages.success(request, _('%d new participants were successfully imported.') % i)
@ -539,8 +539,8 @@ def user_import(request):
else: else:
messages.warning(request, _("Attention: All existing participants will be removed if you import new participants.")) messages.warning(request, _("Attention: All existing participants will be removed if you import new participants."))
if Application.objects.all(): if Application.objects.all():
messages.warning(request, _("Attention: Supporters from all existing applications will be removed.")) messages.warning(request, _("Attention: Supporters from all existing motions 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: Motions which can't be mapped to new users will be set to 'Needs Review'."))
form = UserImportForm() form = UserImportForm()
return { return {
'form': form, 'form': form,