Automated merge with ssh://openslides.org/openslides

This commit is contained in:
Emanuel Schuetze 2012-04-15 10:10:35 +02:00
commit 5f2c778880
14 changed files with 95 additions and 158 deletions

View File

@ -8,7 +8,14 @@
<h1>{%trans "Import applications" %}</h1>
<p>{% trans 'Select a CSV file to import applications!' %}</p>
<p>{% trans '(Required comma separated values: <code>number, title, text, reason, first_name, last_name</code> - <code>number</code> and <code>reason</code> are optional and may be empty)' %} </p>
<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>
{% trans 'Required CSV file encoding: UTF-8 (Unicode).' %}
</p>
<p><a href="http://dev.openslides.org/wiki/CSVImport" target="_blank">{% trans 'A CSV example file is available in OpenSlides Wiki.' %}</a>
</p>
<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
{{ form.as_p }}
<button class="button" type="submit">

View File

@ -22,7 +22,7 @@
{% blocktrans count counter=assignments|length %}election{% plural %}elections{% endblocktrans %}
<table>
<tr>
<th><a href="?sort=name{% if 'name' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{%trans "Elections" %}</a></th>
<th><a href="?sort=name{% if 'name' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{%trans "Election" %}</a></th>
<th>{%trans "Candidates" %}</th>
<th><a href="?sort=status{% if 'status' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{%trans "Status" %}</a></th>
{% if perms.assignment.can_manage_assignment %}

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-14 19:22+0200\n"
"POT-Creation-Date: 2012-04-15 10:06+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -116,7 +116,7 @@ msgid "Yes, with all child items."
msgstr "Ja, mit allen Kindelementen."
#: agenda/views.py:183 agenda/views.py:185 participant/views.py:187
#: participant/views.py:300 utils/utils.py:47 utils/views.py:200
#: participant/views.py:281 utils/utils.py:47 utils/views.py:200
#, python-format
msgid "Do you really want to delete <b>%s</b>?"
msgstr "Soll <b>%s</b> wirklich gelöscht werden?"
@ -165,7 +165,7 @@ msgstr "Speichern"
#: agenda/templates/agenda/config.html:17 agenda/templates/agenda/edit.html:19
#: application/templates/application/config.html:17
#: application/templates/application/edit.html:28
#: application/templates/application/import.html:19
#: application/templates/application/import.html:26
#: application/templates/application/poll_view.html:56
#: assignment/templates/assignment/config.html:17
#: assignment/templates/assignment/edit.html:24
@ -174,7 +174,7 @@ msgstr "Speichern"
#: config/templates/config/general.html:17
#: participant/templates/participant/edit.html:28
#: participant/templates/participant/group_edit.html:24
#: participant/templates/participant/import.html:21
#: participant/templates/participant/import.html:26
#: participant/templates/participant/settings.html:22
#: projector/templates/projector/new.html:20
msgid "Cancel"
@ -224,6 +224,7 @@ msgstr "Erledigt"
#: agenda/templates/agenda/overview.html:58
#: assignment/templates/assignment/overview.html:29
#: participant/templates/participant/group_overview.html:13
#: participant/templates/participant/overview.html:71
msgid "Actions"
msgstr "Aktionen"
@ -466,8 +467,8 @@ msgid "Application was successfully modified."
msgstr "Antrag wurde erfolgreich geändert."
#: application/views.py:198 application/views.py:597 assignment/views.py:129
#: config/views.py:53 participant/views.py:164 participant/views.py:285
#: participant/views.py:314 participant/views.py:472 utils/views.py:153
#: config/views.py:53 participant/views.py:164 participant/views.py:266
#: participant/views.py:295 participant/views.py:453 utils/views.py:153
msgid "Please check the form for errors."
msgstr "Bitte kontrollieren Sie das Formular nach Fehlern."
@ -570,7 +571,7 @@ msgstr "FEHLER beim Zurückweisen der Version."
msgid "Do you really want to reject version <b>%s</b>?"
msgstr "Soll Version <b>%s</b> wirklich zurückgewiesen werden?"
#: application/views.py:493 participant/views.py:330
#: application/views.py:493 participant/views.py:311
msgid ""
"The import function is available for the superuser (without user profile) "
"only."
@ -578,7 +579,7 @@ msgstr ""
"Die Importfunktion ist nur für den 'superuser' (ohne Nutzerprofil) verfügbar."
#: application/views.py:524 application/views.py:528 application/views.py:534
#: application/views.py:537 participant/views.py:399
#: application/views.py:537 participant/views.py:380
#, python-format
msgid "Ignoring malformed line %d in import file."
msgstr "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert."
@ -604,11 +605,11 @@ msgid_plural "%d new users were added."
msgstr[0] "%d neuer Nutzer wurde erstellt."
msgstr[1] "%d neue Nutzer wurden erstellt."
#: application/views.py:593 participant/views.py:468
#: application/views.py:593 participant/views.py:449
msgid "Import aborted because of severe errors in the input file."
msgstr "Import auf Grund von schweren Fehlern in der Quelldatei abgebrochen."
#: application/views.py:595 participant/views.py:470
#: application/views.py:595 participant/views.py:451
msgid "Import file has wrong character encoding, only UTF-8 is supported!"
msgstr ""
"Die Quelldatei benutzt eine ungültige Zeichenkodierung, es wird nur UTF-8 "
@ -743,16 +744,26 @@ msgstr "Wählen Sie eine CSV-Datei zum Importieren von Anträgen aus!"
#: application/templates/application/import.html:11
msgid ""
"(Required comma separated values: <code>number, title, text, reason, "
"first_name, last_name</code> - <code>number</code> and <code>reason</code> "
"Required comma separated values: <code>{number, title, text, reason, "
"first_name, last_name}</code> (<code>number</code> and <code>reason</code> "
"are optional and may be empty)"
msgstr ""
"(Erfordert kommaseparierte Werte: <code>Nummer, Titel, Text, Begründung, "
"Vorname, Nachname</code> - <code>Nummer</code> und <code>Begründung</code> "
"Erforderliche kommaseparierte Werte: <code>{Nummer, Titel, Text, Begründung, "
"Vorname, Nachname}</code> (<code>Nummer</code> und <code>Begründung</code> "
"sind optional und können auch leer sein)"
#: application/templates/application/import.html:15
#: participant/templates/participant/import.html:17
#: application/templates/application/import.html:13
#: participant/templates/participant/import.html:13
msgid "Required CSV file encoding: UTF-8 (Unicode)."
msgstr "Erforderliches CSV-Datei-Encoding: UTF-8 (Unicode)."
#: application/templates/application/import.html:16
#: participant/templates/participant/import.html:16
msgid "A CSV example file is available in OpenSlides Wiki."
msgstr "Eine CSV-Beispiel-Datei gibt es im OpenSlides Wiki."
#: application/templates/application/import.html:22
#: participant/templates/participant/import.html:22
msgid "Import"
msgstr "Importieren"
@ -1073,7 +1084,6 @@ msgstr "Darf Wahlen verwalten"
#: assignment/templates/assignment/base_assignment.html:14
#: assignment/templates/assignment/overview.html:6
#: assignment/templates/assignment/overview.html:9
#: assignment/templates/assignment/overview.html:25
msgid "Elections"
msgstr "Wahlen"
@ -1153,6 +1163,7 @@ msgid "Assignment"
msgstr "Wahl"
#: assignment/views.py:317 assignment/templates/assignment/edit.html:5
#: assignment/templates/assignment/overview.html:25
#: assignment/templates/projector/Assignment.html:13 utils/pdf.py:304
#: utils/pdf.py:313
msgid "Election"
@ -1483,50 +1494,50 @@ msgstr "Teilnehmer/in wurde erfolgreich geändert."
msgid "Participant <b>%s</b> was successfully deleted."
msgstr "Teilnehmer/in <b>%s</b> wurde erfolgreich gelöscht."
#: participant/views.py:198 participant/views.py:217
#: participant/views.py:198
#, python-format
msgid "Participant %d does not exist."
msgstr "Teilnehmer/in %d existiert nicht."
#: participant/views.py:263
#: participant/views.py:244
#, python-format
msgid "Group name \"%s\" is reserved for internal use."
msgstr "Der Gruppenname \"%s\" ist für interne Verwendung reserviert."
#: participant/views.py:277
#: participant/views.py:258
msgid "New group was successfully created."
msgstr "Neue Gruppe wurde erfolgreich angelegt."
#: participant/views.py:279
#: participant/views.py:260
msgid "Group was successfully modified."
msgstr "Gruppe wurde erfolgreich geändert."
#: participant/views.py:298
#: participant/views.py:279
#, python-format
msgid "Group <b>%s</b> was successfully deleted."
msgstr "Gruppe <b>%s</b> wurde erfolgreich gelöscht."
#: participant/views.py:312
#: participant/views.py:293
msgid "User settings successfully saved."
msgstr "Nutzereinstellungen wurden erfolgreich gespeichert."
#: participant/views.py:382
#: participant/views.py:363
msgid "Supporters removed after user import."
msgstr "Unterstützer/innen nach Benutzerimport zurückgesetzt."
#: participant/views.py:435
#: participant/views.py:416
#, python-format
msgid "Reassigned to \"%s\" after (re)importing users."
msgstr "Nach Benutzerimport erneut \"%s\" zugeordnet."
#: participant/views.py:438 participant/views.py:452
#: participant/views.py:419 participant/views.py:433
#, python-format
msgid "Could not reassing application %d - object not found!"
msgstr ""
"Antrag Id#%d konnte nicht neu zugewiesen werden - Das Objekt wurde nicht "
"gefunden!"
#: participant/views.py:455
#: participant/views.py:436
#, python-format
msgid "%d application could not be reassigned and needs a review!"
msgid_plural "%d applications could not be reassigned and need a review!"
@ -1535,26 +1546,26 @@ msgstr[0] ""
msgstr[1] ""
"%d Anträge konnten nicht neu zugewiesen werden und benötigen ein Review!"
#: participant/views.py:458
#: participant/views.py:439
#, python-format
msgid "%d application was successfully reassigned."
msgid_plural "%d applications were successfully reassigned."
msgstr[0] "%d Antrag wurde erfolgreich neu zugewiesen."
msgstr[1] "%d Anträge wurden erfolgreich neu zugewiesen."
#: participant/views.py:461
#: participant/views.py:442
#, python-format
msgid "%d application was discarded."
msgid_plural "%d applications were discarded."
msgstr[0] "%d Antrag wurde gelöscht."
msgstr[1] "%d Anträge wurden gelöscht."
#: participant/views.py:465
#: participant/views.py:446
#, python-format
msgid "%d new participants were successfully imported."
msgstr "%d neue Teilnehmer/innen wurden erfolgreich importiert."
#: participant/views.py:474
#: participant/views.py:455
msgid ""
"Attention: All existing participants will be removed if you import new "
"participants."
@ -1562,12 +1573,12 @@ msgstr ""
"Achtung: Alle existierenden Teilnehmer/innen werden gelöscht, wenn Sie neue "
"Teilnehmer/innen importieren."
#: participant/views.py:476
#: participant/views.py:457
msgid "Attention: Supporters from all existing applications will be removed."
msgstr ""
"Achtung: Alle Unterstützer/innen werden von existiernden Anträgen gelöscht."
#: participant/views.py:477
#: participant/views.py:458
msgid ""
"Attention: Applications which can't be mapped to new users will be set to "
"'Needs Review'."
@ -1575,17 +1586,17 @@ msgstr ""
"Achtung: Anträge welche keinem Nutzer zugeordnet werden können bekommen "
"automatisch den Status \"Benötigt Review\"."
#: participant/views.py:489
#: participant/views.py:470
#, python-format
msgid "The Password for <b>%s</b> was successfully reset."
msgstr "Das Passwort für <b>%s</b> wurde erfolgreich zurückgesetzt."
#: participant/views.py:491
#: participant/views.py:472
#, python-format
msgid "Do you really want to reset the password for <b>%s</b>?"
msgstr "Soll das Passwort für <b>%s</b> wirklich zurückgesetzt werden?"
#: participant/views.py:499
#: participant/views.py:480
#: participant/templates/participant/base_participant.html:12
#: participant/templates/participant/overview.html:6
#: participant/templates/participant/overview.html:16
@ -1605,12 +1616,12 @@ msgstr "Neue/r Teilnehmer/in"
#: participant/templates/participant/base_participant.html:19
msgid "All user groups"
msgstr "Alle Benutzergruppen"
msgstr "Alle Benutzerrollen"
#: participant/templates/participant/base_participant.html:20
#: participant/templates/participant/group_edit.html:11
msgid "New user group"
msgstr "Neue Benutzergruppe"
msgstr "Neue Benutzerrolle"
#: participant/templates/participant/base_participant.html:21
#: participant/templates/participant/import.html:5
@ -1642,11 +1653,11 @@ msgstr "Auf Erst-Passwort zurücksetzen"
#: participant/templates/participant/group_edit.html:5
#: participant/templates/participant/group_overview.html:12
msgid "User Group"
msgstr "Benutzergruppe"
msgstr "Benutzerrolle"
#: participant/templates/participant/group_edit.html:9
msgid "Edit user group"
msgstr "Benutzergruppe bearbeiten"
msgstr "Benutzerrolle bearbeiten"
#: participant/templates/participant/group_overview.html:6
msgid "Groups"
@ -1654,22 +1665,18 @@ msgstr "Gruppen"
#: participant/templates/participant/group_overview.html:9
msgid "User groups"
msgstr "Benutzergruppen"
#: participant/templates/participant/group_overview.html:13
msgid "Action"
msgstr "Aktionen"
msgstr "Benutzerrollen"
#: participant/templates/participant/group_overview.html:18
msgid "Edit group"
msgstr "Benutzergruppe bearbeiten"
msgstr "Benutzerrolle bearbeiten"
#: participant/templates/participant/group_overview.html:20
msgid "Delete group"
msgstr "Benutzergruppe löschen"
msgstr "Benutzerrolle löschen"
#: participant/templates/participant/group_overview.html:26
#: participant/templates/participant/overview.html:105
#: participant/templates/participant/overview.html:100
msgid "No participants available."
msgstr "Keine Teilnehmer/innen vorhanden."
@ -1679,15 +1686,11 @@ msgstr "Wählen Sie eine CSV-Datei zum Importieren von Teilnehmer/innen aus!"
#: participant/templates/participant/import.html:11
msgid ""
"Required comma separated values: <code>first_name, last_name, gender, group, "
"type, committee, comment</code>"
"Required comma separated values: <code>{first_name, last_name, gender, "
"group, type, committee, comment}</code>"
msgstr ""
"(Erfordert kommaseparierte Werte: <code>Vorname, Nachname, Geschlecht, "
"Gruppe, Typ, Amt, Kommentar</code>)"
#: participant/templates/participant/import.html:12
msgid "CSV file encoding: UTF-8 (Unicode)."
msgstr "CSV-Datei-Encoding: UTF-8 (Unicode)."
"Erforderliche kommaseparierte Werte: <code>{Vorname, Nachname, Geschlecht, "
"Gruppe, Typ, Amt, Kommentar}</code>"
#: participant/templates/participant/login.html:8
#: participant/templates/participant/login.html:16
@ -1720,11 +1723,11 @@ msgstr "Typ"
#: participant/templates/participant/overview.html:51 projector/models.py:35
msgid "Active"
msgstr "Aktiv (anwesend)"
msgstr "Aktiv"
#: participant/templates/participant/overview.html:52
msgid "Inactive"
msgstr "Inaktiv (abwesend)"
msgstr "Inaktiv"
#: participant/templates/participant/overview.html:59
msgid "of"
@ -1750,10 +1753,6 @@ msgstr "Teilnehmer/in löschen"
msgid "Change status (active/inactive)"
msgstr "Status ändern (aktiv/inaktiv)"
#: participant/templates/participant/overview.html:96
msgid "Change administrator rights (Superuser/Normal user)"
msgstr "Adminstratorrechte ändern (Superuser/normaler Nutzer)"
#: participant/templates/participant/settings.html:5
#: participant/templates/participant/settings.html:11
msgid "Your Settings"
@ -1779,11 +1778,11 @@ msgstr "Darf den Beamer sehen"
msgid "Projector Slide"
msgstr "Beamer-Folie"
#: projector/projector.py:73
#: projector/projector.py:79
msgid "Countdown"
msgstr "Countdown"
#: projector/views.py:192 projector/templates/projector/base_projector.html:7
#: projector/views.py:203 projector/templates/projector/base_projector.html:7
#: projector/templates/projector/base_projector.html:12
#: projector/templates/projector/control.html:36
msgid "Projector"
@ -1827,40 +1826,39 @@ msgstr "Text nach unten scrollen"
msgid "Reset projector view"
msgstr "Beamer-Ansicht zurücksetzen"
#: projector/templates/projector/control.html:73
#: projector/templates/projector/control.html:124
msgid "Select item overview"
msgstr "Wähle Eintragsübersicht"
#: projector/templates/projector/control.html:97
#: projector/templates/projector/control.html:83
msgid "Projector Live View"
msgstr "Beamer-Live-Ansicht"
#: projector/templates/projector/control.html:100
#: projector/templates/projector/control.html:86
msgid "Open Projector view"
msgstr "Beamer-Ansicht öffnen"
#: projector/templates/projector/control.html:112
#: projector/templates/projector/control.html:98
msgid "Static Slides"
msgstr "Statische Folien"
#: projector/templates/projector/control.html:145
#: projector/templates/projector/control.html:110
msgid "Select item overview"
msgstr "Wähle Eintragsübersicht"
#: projector/templates/projector/control.html:131
msgid "Messages"
msgstr "Nachrichten"
#: projector/templates/projector/control.html:156
#: projector/templates/projector/control.html:142
msgid "sec"
msgstr "s"
#: projector/templates/projector/control.html:157
#: projector/templates/projector/control.html:143
msgid "Reset countdown"
msgstr "Countdown zurücksetzen"
#: projector/templates/projector/control.html:160
#: projector/templates/projector/control.html:146
msgid "Start countdown"
msgstr "Countdown starten"
#: projector/templates/projector/control.html:163
#: projector/templates/projector/control.html:149
msgid "Stop countdown"
msgstr "Countdown stoppen"
@ -1947,4 +1945,3 @@ msgstr "Bedaure, Sie haben keine Berechtigung diese Seite zu sehen."
#: utils/views.py:207
msgid "undefined-filename"
msgstr "undefinierter-dateiname"

View File

@ -35,7 +35,7 @@ class UserNewForm(ModelForm, CssClassMixin):
class Meta:
model = User
exclude = ('username', 'password', 'is_staff', 'last_login', 'date_joined', 'user_permissions')
exclude = ('username', 'password', 'is_staff', 'is_superuser', 'last_login', 'date_joined', 'user_permissions')
class UserEditForm(ModelForm, CssClassMixin):
@ -44,7 +44,7 @@ class UserEditForm(ModelForm, CssClassMixin):
class Meta:
model = User
exclude = ('password', 'is_staff', 'last_login', 'date_joined', 'user_permissions')
exclude = ('password', 'is_staff', 'is_superuser', 'last_login', 'date_joined', 'user_permissions')
class UsernameForm(ModelForm, CssClassMixin):

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 752 B

View File

@ -17,23 +17,4 @@ $(function() {
}
});
});
$('.superuser_link').click(function(event) {
event.preventDefault();
link = $(this);
$.ajax({
type: 'GET',
url: link.attr('href'),
dataType: 'json',
success: function(data) {
if (data.superuser) {
newclass = 'superuser';
} else {
newclass = 'normaluser';
}
link.removeClass('superuser normaluser').addClass(newclass);
link.attr('href', data.link);
}
});
});
});

View File

@ -14,20 +14,3 @@ a.status_link.inactive span {
height: 16px;
display: inline-block;
}
a.superuser_link.superuser span {
background-image: url(../images/icons/meeting-chair.png);
background-repeat: no-repeat;
background-position: center;
width: 16px;
height: 16px;
display: inline-block;
}
a.superuser_link.normaluser span {
background-image: url(../images/icons/im-user.png);
background-repeat: no-repeat;
background-position: center;
width: 16px;
height: 16px;
display: inline-block;
}

View File

@ -10,7 +10,7 @@
<table>
<tr>
<th>{%trans "User Group" %}</th>
<th>{%trans "Action" %}</th>
<th>{%trans "Actions" %}</th>
</tr>
{% for group in groups %}
<tr class="{% cycle '' 'odd' %}">

View File

@ -8,9 +8,14 @@
<h1>{% trans 'Import participants' %}</h1>
<p>{% trans 'Select a CSV file to import participants!' %}</p>
<p>{% trans 'Required comma separated values: <code>first_name, last_name, gender, group, type, committee, comment</code>' %}<br>
{% trans 'CSV file encoding: UTF-8 (Unicode).' %}
<p>{% trans 'Required comma separated values: <code>{first_name, last_name, gender, group, type, committee, comment}</code>' %}
<br>
{% trans 'Required CSV file encoding: UTF-8 (Unicode).' %}
</p>
<p><a href="http://dev.openslides.org/wiki/CSVImport" target="_blank">{% trans 'A CSV example file is available in OpenSlides Wiki.' %}</a>
</p>
<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
{{ form.as_p }}
<button class="button" type="submit">

View File

@ -91,11 +91,6 @@
title="{%trans 'Change status (active/inactive)' %}">
<span></span>
</a>
<a class="superuser_link {% if user.is_superuser %}superuser{% else %}normaluser{% endif %}"
href="{% if user.is_superuser %}{% url user_normaluser user.id %}{% else %}{% url user_superuser user.id %}{% endif %}"
title="{%trans 'Change administrator rights (Superuser/Normal user)' %}">
<span></span>
</a>
</span>
</td>
{% endif %}

View File

@ -51,18 +51,6 @@ urlpatterns = patterns('participant.views',
name='user_inactive',
),
url(r'^(?P<user_id>\d+)/superuser/$',
'user_set_superuser',
{'superuser': True},
name='user_superuser',
),
url(r'^(?P<user_id>\d+)/normaluser/$',
'user_set_superuser',
{'superuser': False},
name='user_normaluser',
),
url(r'^import$',
'user_import',
name='user_import',

View File

@ -187,25 +187,6 @@ def user_delete(request, user_id):
gen_confirm_form(request, _('Do you really want to delete <b>%s</b>?') % user, reverse('user_delete', args=[user_id]))
return redirect(reverse('user_overview'))
@permission_required('participant.can_manage_participant')
@template('confirm.html')
def user_set_superuser(request, user_id, superuser=True):
try:
user = User.objects.get(pk=user_id)
user.is_superuser = superuser
user.save()
except User.DoesNotExist:
messages.error(request, _('Participant %d does not exist.') % int(user_id))
if request.is_ajax():
if superuser:
link = reverse('user_normaluser', args=[user.id])
else:
link = reverse('user_superuser', args=[user.id])
return ajax_request({'superuser': superuser,
'link': link})
return redirect(reverse('user_overview'))
@permission_required('participant.can_manage_participant')
@template('confirm.html')
def user_set_active(request, user_id, active=True):