Merge branch 'master' of github.com:OpenSlides/OpenSlides

This commit is contained in:
Oskar Hahn 2012-11-09 09:52:00 +01:00
commit 6719cca7e1
11 changed files with 126 additions and 63 deletions

View File

@ -226,6 +226,7 @@ def get_widgets(request):
return [
Widget(
name='agenda',
display_name=_('Agenda'),
template='agenda/widget.html',
context={
'agenda': SLIDE['agenda'],

View File

@ -223,7 +223,7 @@ def delother(request, assignment_id, user_id):
if not is_blocked:
message = _("Do you really want to withdraw <b>%s</b> from the election?") % person
else:
message = _("Do you really want to unblock <b>%s</b> from the election?") % person
message = _("Do you really want to unblock <b>%s</b> for the election?") % person
gen_confirm_form(request, message, reverse('assignment_delother', args=[assignment_id, user_id]))
return redirect(reverse('assignment_view', args=[assignment_id]))
@ -674,7 +674,8 @@ def register_tab(request):
def get_widgets(request):
return [
Widget(
name=_('Assignments'),
name='assignments',
display_name=_('Elections'),
template='assignment/widget.html',
context={'assignments': Assignment.objects.all()},
permission_required='assignment.can_manage_assignment')]

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenSlides 1.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-07 22:14+0100\n"
"POT-Creation-Date: 2012-11-08 09:41+0100\n"
"PO-Revision-Date: 2012-07-28 11:07+0200\n"
"Last-Translator: Emanuel Schuetze <emanuel@intevation.de>\n"
"Language-Team: support@openslides.de\n"
@ -25,6 +25,10 @@ msgstr "Deutsch"
msgid "English"
msgstr "Englisch"
#: global_settings.py:38
msgid "French"
msgstr ""
#: agenda/forms.py:28
msgid "Parent item"
msgstr "Elternelement"
@ -41,7 +45,7 @@ msgid "Text"
msgstr "Text"
#: agenda/models.py:44 agenda/templates/agenda/overview.html:65
#: agenda/templates/agenda/view.html:13 participant/models.py:56
#: agenda/templates/agenda/view.html:13 participant/models.py:59
#: participant/templates/participant/overview.html:72
#: participant/templates/participant/user_detail.html:45
msgid "Comment"
@ -65,7 +69,7 @@ msgid "Can manage agenda"
msgstr "Darf die Tagesordung verwalten"
#: agenda/models.py:189 agenda/slides.py:20 agenda/views.py:194
#: agenda/views.py:195 agenda/views.py:214
#: agenda/views.py:195 agenda/views.py:214 agenda/views.py:229
#: agenda/templates/agenda/base_agenda.html:10
#: agenda/templates/agenda/overview.html:8
#: agenda/templates/agenda/overview.html:52
@ -392,7 +396,7 @@ msgstr "Abgeschlossen"
msgid "Name"
msgstr "Name"
#: assignment/models.py:55 participant/models.py:120
#: assignment/models.py:55 participant/models.py:133
msgid "Description"
msgstr "Beschreibung"
@ -459,6 +463,7 @@ msgid "Ballot %d"
msgstr "Wahlgang %d"
#: assignment/models.py:331 assignment/views.py:340 assignment/views.py:664
#: assignment/views.py:678
#: assignment/templates/assignment/base_assignment.html:14
#: assignment/templates/assignment/overview.html:6
#: assignment/templates/assignment/overview.html:9
@ -523,7 +528,7 @@ msgstr "Soll <b>%s</b> wirklich von der Wahl zurückgezogen werden?"
#: assignment/views.py:226
#, python-format
msgid "Do you really want to unblock <b>%s</b> from the election?"
msgid "Do you really want to unblock <b>%s</b> for the election?"
msgstr "Soll <b>%s</b> wirklich für die Wahl freigegeben werden?"
#: assignment/views.py:241
@ -666,10 +671,6 @@ msgstr "Enthaltung"
msgid "Election settings successfully saved."
msgstr "Wahl-Einstellungen wurden erfolgreich gespeichert."
#: assignment/views.py:677
msgid "Assignments"
msgstr "Wahlen"
#: assignment/templates/assignment/base_assignment.html:16
msgid "All elections"
msgstr "Alle Wahlen"
@ -1191,7 +1192,7 @@ msgid "The assembly may decide,"
msgstr "Die Versammlung möge beschließen,"
#: motion/models.py:604 motion/views.py:692 motion/views.py:917
#: motion/templates/motion/base_motion.html:9
#: motion/views.py:928 motion/templates/motion/base_motion.html:9
#: motion/templates/motion/overview.html:7
#: motion/templates/motion/overview.html:10
msgid "Motions"
@ -1621,7 +1622,7 @@ msgid "Not permit (reject)"
msgstr "Nicht zulassen (verwerfen)"
#: motion/templates/motion/view.html:157
msgid "Set Number"
msgid "Set number"
msgstr "Setze Nummer"
#: motion/templates/motion/view.html:164
@ -1633,7 +1634,7 @@ msgid "Result after debate"
msgstr "Ergebnis nach der Debatte"
#: motion/templates/motion/view.html:189
msgid "Withdrawed by Submitter"
msgid "Withdrawed by submitter"
msgstr "Zurückgezogen durch Antragsteller/in"
#: motion/templates/motion/view.html:194
@ -1709,6 +1710,7 @@ msgstr "Teilnehmer"
#: participant/templates/participant/group_overview.html:7
#: participant/templates/participant/group_overview.html:10
#: participant/templates/participant/user_detail.html:14
#: participant/templates/projector/UserSlide.html:12
msgid "Groups"
msgstr "Gruppen"
@ -1716,7 +1718,7 @@ msgstr "Gruppen"
msgid "Permissions"
msgstr "Rechte"
#: participant/forms.py:47 participant/views.py:530
#: participant/forms.py:47 participant/views.py:530 participant/views.py:576
#: participant/templates/participant/base_participant.html:12
#: participant/templates/participant/overview.html:7
#: participant/templates/participant/overview.html:18
@ -1749,93 +1751,95 @@ msgstr "Teilnehmer/innen nach Vornamen sortieren"
msgid "Disable for sorting by last name"
msgstr "Deaktivieren für Sortierung nach Nachnamen"
#: participant/models.py:29 participant/templates/participant/overview.html:25
#: participant/models.py:32 participant/templates/participant/overview.html:25
msgid "Male"
msgstr "Männlich"
#: participant/models.py:30 participant/templates/participant/overview.html:26
#: participant/models.py:33 participant/templates/participant/overview.html:26
msgid "Female"
msgstr "Weiblich"
#: participant/models.py:33 participant/templates/participant/overview.html:38
#: participant/models.py:36 participant/templates/participant/overview.html:38
msgid "Delegate"
msgstr "Delegierter"
#: participant/models.py:34 participant/templates/participant/overview.html:39
#: participant/models.py:37 participant/templates/participant/overview.html:39
msgid "Observer"
msgstr "Beobachter"
#: participant/models.py:35 participant/templates/participant/overview.html:40
#: participant/models.py:38 participant/templates/participant/overview.html:40
msgid "Staff"
msgstr "Mitarbeiter"
#: participant/models.py:36 participant/templates/participant/overview.html:41
#: participant/models.py:39 participant/templates/participant/overview.html:41
msgid "Guest"
msgstr "Gast"
#: participant/models.py:41 participant/templates/participant/overview.html:30
#: participant/models.py:44 participant/templates/participant/overview.html:30
#: participant/templates/participant/overview.html:68
msgid "Detail"
msgstr "Detail"
#: participant/models.py:42
#: participant/models.py:45
msgid "Will be shown after the name."
msgstr "Wird nach dem Namen angezeigt."
#: participant/models.py:45 participant/templates/participant/overview.html:24
#: participant/models.py:48 participant/templates/participant/overview.html:24
#: participant/templates/participant/user_detail.html:24
#: participant/templates/projector/UserSlide.html:20
msgid "Gender"
msgstr "Geschlecht"
#: participant/models.py:45 participant/models.py:48 participant/models.py:51
#: participant/models.py:48 participant/models.py:51 participant/models.py:54
msgid "Only for filtering the participant list."
msgstr "Nur zum Filtern der Teilnehmerliste."
#: participant/models.py:48
#: participant/models.py:51
msgid "Typ"
msgstr "Typ"
#: participant/models.py:50 participant/views.py:245
#: participant/models.py:53 participant/views.py:245
#: participant/templates/participant/overview.html:45
#: participant/templates/participant/overview.html:70
#: participant/templates/participant/user_detail.html:34
#: participant/templates/projector/UserSlide.html:28
msgid "Committee"
msgstr "Amt"
#: participant/models.py:53
#: participant/models.py:56
#: participant/templates/participant/user_detail.html:39
msgid "About me"
msgstr "Über mich"
#: participant/models.py:54
#: participant/models.py:57
msgid "Your profile text"
msgstr "Ihr Profiltext"
#: participant/models.py:57
#: participant/models.py:60
msgid "Only for notes."
msgstr "Nur für Notizen."
#: participant/models.py:60
#: participant/models.py:63
msgid "Default password"
msgstr "Vorgegebenes Passwort"
#: participant/models.py:108
#: participant/models.py:111
msgid "Can see participant"
msgstr "Darf die Teilnehmer/inen sehen"
#: participant/models.py:110
#: participant/models.py:113
msgid "Can manage participant"
msgstr "Darf die Teilnehmer/inen verwalten"
#: participant/models.py:119
#: participant/models.py:132
msgid "Use this group as participant"
msgstr "Verwende diese Gruppe als Teilnehmer/in"
#: participant/models.py:119
#: participant/models.py:132
msgid "For example as submitter of a motion."
msgstr "Zum Beispiel als Antragsteller."
#: participant/models.py:201
#: participant/models.py:214
msgid "Welcome to OpenSlides!"
msgstr "Willkommen bei OpenSlides!"
@ -1863,6 +1867,7 @@ msgstr "Gruppe"
#: participant/views.py:244 participant/templates/participant/overview.html:37
#: participant/templates/participant/overview.html:69
#: participant/templates/participant/user_detail.html:29
#: participant/templates/projector/UserSlide.html:24
msgid "Type"
msgstr "Typ"
@ -1937,10 +1942,6 @@ msgstr "Passwort wurde erfolgreich geändert."
msgid "My motions and elections"
msgstr "Meine Anträge und Wahlen"
#: participant/views.py:576
msgid "Users"
msgstr "Benutzer"
#: participant/templates/participant/base_participant.html:15
msgid "All participants"
msgstr "Alle Teilnehmer/innen"
@ -2142,6 +2143,7 @@ msgid "I am candidate for the following elections:"
msgstr "Ich bin Kandidat/in bei folgenden Wahlen:"
#: participant/templates/participant/user_detail.html:19
#: participant/templates/projector/UserSlide.html:16
msgid "The participant is not member of any group."
msgstr "Teilnehmer/in ist kein Mitglied einer Gruppe."

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenSlides 1.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-07 21:58+0100\n"
"POT-Creation-Date: 2012-11-07 22:35+0100\n"
"PO-Revision-Date: 2012-07-28 21:36+0200\n"
"Last-Translator: Moira Brülisauer <moosline@gmail.com>\n"
"Language-Team: Französisch <>\n"
@ -27,8 +27,11 @@ msgstr "Allemand"
msgid "English"
msgstr "Anglais"
#: global_settings.py:38
msgid "French"
msgstr ""
#: agenda/forms.py:28
#, fuzzy
msgid "Parent item"
msgstr "Elément parent"
@ -424,6 +427,7 @@ msgid "The candidate list is already closed."
msgstr "La liste des candidats est déjà fermée"
#: assignment/models.py:94
#, python-format
msgid "%s does not want to be a candidate."
msgstr "%s ne veut pas etre un candidat"
@ -510,20 +514,23 @@ msgstr ""
"nominer comme candidat"
#: assignment/views.py:218
#, python-format
msgid "Candidate <b>%s</b> was withdrawn successfully."
msgstr "Le candidat <b>%s</b> a été rejeté avec succès."
#: assignment/views.py:220
#, python-format
msgid "<b>%s</b> was unblocked successfully."
msgstr "Le candidat <b>%s</b> a été nominé avec succès."
#: assignment/views.py:224
#, python-format
msgid "Do you really want to withdraw <b>%s</b> from the election?"
msgstr "Voulez-vous vraiment exclure <b>%s</b> de cette élection?"
#: assignment/views.py:226
#, fuzzy, python-format
msgid "Do you really want to unblock <b>%s</b> from the election?"
#, python-format
msgid "Do you really want to unblock <b>%s</b> for the election?"
msgstr ""
"Voulez-vous vraiment repermettre a participer <b>%s</b> à cette élection?"
@ -652,6 +659,7 @@ msgstr[0] "%d candidat"
msgstr[1] "%d candidats"
#: assignment/views.py:545
#, python-format
msgid "%d available post"
msgid_plural "%d available posts"
msgstr[0] "%d postes disponibles"
@ -1118,6 +1126,7 @@ msgid "Supporter: -%s"
msgstr "Partisants: -%s"
#: motion/models.py:295
#, python-format
msgid "Number set: %s"
msgstr "Numéro inséré: %s"
@ -1277,7 +1286,6 @@ msgstr ""
"Vous supportez maintenant cette motion, vous avez vous ajouté avec succès."
#: motion/views.py:417
msgid "You have unsupported this motion successfully."
msgstr "Vous avez retiré votre support pour cette motion avec succès. "
@ -1432,6 +1440,7 @@ msgid "Poll"
msgstr "Sondage"
#: motion/views.py:851
#, python-format
msgid "Motion No. %s"
msgstr "Motion No %s"
@ -1624,7 +1633,7 @@ msgid "Not permit (reject)"
msgstr "Non autorisé (rejeter)"
#: motion/templates/motion/view.html:157
msgid "Set Number"
msgid "Set number"
msgstr "Insérer un numéro"
#: motion/templates/motion/view.html:164
@ -1636,7 +1645,7 @@ msgid "Result after debate"
msgstr "Résultat après la discussion"
#: motion/templates/motion/view.html:189
msgid "Withdrawed by Submitter"
msgid "Withdrawed by submitter"
msgstr "Retiré par le requérant"
#: motion/templates/motion/view.html:194
@ -1746,12 +1755,10 @@ msgstr ""
"Imprimé dans le PDF avec la liste des premiers mots de passe seulement."
#: participant/forms.py:118
#, fuzzy
msgid "Sort participants by first name"
msgstr ""
#: participant/forms.py:119
#, fuzzy
msgid "Disable for sorting by last name"
msgstr ""
@ -1834,7 +1841,6 @@ msgid "Can manage participant"
msgstr "Peut gérer des participants"
#: participant/models.py:119
#, fuzzy
msgid "Use this group as participant"
msgstr ""
@ -1911,6 +1917,7 @@ msgid "Do you really want to reset the password?"
msgstr "Voulez-vous vraiment reinitialser le mot de passe?"
#: participant/views.py:378
#, python-format
msgid "The Password for %s was successfully reset."
msgstr "Le mot de passe de %s a été initialisé avec succès"
@ -1921,6 +1928,7 @@ msgstr ""
"succès"
#: participant/views.py:467
#, python-format
msgid ""
"Installation was successfully! Use %(user)s (password: %(password)s) for "
"first login.<br><strong>Important:</strong> Please change the password after "
@ -1942,7 +1950,6 @@ msgid "Password successfully changed."
msgstr "Le mot de passe a été changé avec succès."
#: participant/views.py:562
#, fuzzy
msgid "My motions and elections"
msgstr ""
@ -1985,9 +1992,8 @@ msgid "First time passwords as PDF"
msgstr "La liste des premiers mots de passe en PDF"
#: participant/templates/participant/base_participant.html:38
#, fuzzy
msgid "View participant"
msgstr "Nouveau participant"
msgstr "Afficher participant"
#: participant/templates/participant/base_participant.html:45
#: participant/templates/participant/edit.html:8
@ -2002,9 +2008,8 @@ msgid "Delete participant"
msgstr "Supprimer le participant"
#: participant/templates/participant/base_participant.html:60
#, fuzzy
msgid "View group"
msgstr "Modifier le groupe"
msgstr "Afficher le groupe"
#: participant/templates/participant/base_participant.html:65
#: participant/templates/participant/group_edit.html:8
@ -2135,7 +2140,6 @@ msgid "Personal Settings"
msgstr "Paramètres personnels"
#: participant/templates/participant/personal_info_widget.html:5
#, fuzzy
msgid "I submitted the following motions:"
msgstr ""
@ -2146,12 +2150,10 @@ msgid "None"
msgstr ""
#: participant/templates/participant/personal_info_widget.html:24
#, fuzzy
msgid "I support the following motions:"
msgstr ""
#: participant/templates/participant/personal_info_widget.html:43
#, fuzzy
msgid "I am candidate for the following elections:"
msgstr ""

View File

@ -154,7 +154,7 @@
<a href='{% url motion_notpermit motion.id %}'><span class="button"><span class="icon reject">{% trans 'Not permit (reject)' %}</span></span></a>
{% endif %}
{% if "setnumber" in actions %}
<a href='{% url motion_set_number motion.id %}'><span class="button"><span class="icon number">{% trans 'Set Number' %}</span></span></a>
<a href='{% url motion_set_number motion.id %}'><span class="button"><span class="icon number">{% trans 'Set number' %}</span></span></a>
{% endif %}
</p>
{% endif %}
@ -186,7 +186,7 @@
<a href='{% url motion_set_status motion.id 'com' %}'><span class="button">{% trans 'Commited a bill' %}</span></a><br>
{% endif %}
{% if "wit" in actions %}
<a href='{% url motion_set_status motion.id 'wit' %}'><span class="button">{% trans 'Withdrawed by Submitter' %}</span></a>
<a href='{% url motion_set_status motion.id 'wit' %}'><span class="button">{% trans 'Withdrawed by submitter' %}</span></a>
{% endif %}
{% endif %}
<p></p>

View File

@ -925,6 +925,7 @@ def get_widgets(request):
return [
Widget(
name='motions',
display_name=_('Motions'),
template='motion/widget.html',
context={'motions': Motion.objects.all()},
permission_required='motion.can_manage_motion')]

View File

@ -22,8 +22,11 @@ from openslides.utils.person.signals import receive_persons
from openslides.config.models import config
from openslides.config.signals import default_config_value
from openslides.projector.api import register_slidemodel
from openslides.projector.projector import SlideMixin
class User(DjangoUser, PersonMixin, Person):
class User(DjangoUser, PersonMixin, Person, SlideMixin):
prefix = 'user' # This is for the slides
person_prefix = 'user'
GENDER_CHOICES = (
('male', _('Male')),
@ -111,6 +114,16 @@ class User(DjangoUser, PersonMixin, Person):
)
ordering = ('last_name',)
def slide(self):
"""
Returns a map with the data for the slides.
"""
return {
'shown_user': self,
'title': self.clean_name,
'template': 'projector/UserSlide.html'}
register_slidemodel(User)
class Group(DjangoGroup, PersonMixin, Person):
person_prefix = 'group'

View File

@ -0,0 +1,43 @@
{% extends "base-projector.html" %}
{% load i18n %}
{% load tags %}
{% block title %}{{ block.super }} - {{ title }}{% endblock %}
{% block content %}
<div id='sidebar'>
<div class='box'>
<p><strong>{% trans "Groups" %}</strong><br />
{% for group in shown_user.groups.all %}
{{ group }},
{% empty %}
{% trans "The participant is not member of any group." %}
{% endfor %}
</p>
{% if shown_user.get_gender_display %}
<p><strong>{% trans "Gender" %}</strong><br />{{ shown_user.get_gender_display }}</p>
{% endif %}
{% if shown_user.get_type_display %}
<p><strong>{% trans "Type" %}</strong><br />{{ shown_user.get_type_display }}</p>
{% endif %}
{% if shown_user.committee %}
<p><strong>{% trans "Committee" %}</strong><br />{{ shown_user.committee }}</p>
{% endif %}
</div>
</div>
<h1>{{ shown_user }}</h1>
<p>{{ shown_user.email }}</p>
{% endblock %}
{% block scrollcontent %}
<p>
<div class="text">{{ shown_user.about_me|linebreaks }}</div>
</p>
{% endblock %}

View File

@ -255,7 +255,7 @@ class ParticipantsListPDF(PDFView):
Paragraph(user.last_name, stylesheet['Tablecell']),
Paragraph(user.first_name, stylesheet['Tablecell']),
Paragraph(user.detail, stylesheet['Tablecell']),
Paragraph(_(user.type), stylesheet['Tablecell']),
Paragraph(user.type, stylesheet['Tablecell']),
Paragraph(user.committee, stylesheet['Tablecell'])])
t = LongTable(data, style=[
('VALIGN', (0, 0), (-1, -1), 'TOP'),
@ -573,7 +573,7 @@ def get_user_widget(request):
"""
return Widget(
name='user',
display_name=_('Users'),
display_name=_('Participants'),
template='participant/user_widget.html',
context={'users': User.objects.all(),},
permission_required='projector.can_manage_projector',