From abad75c12968f574dd21d7a700a5c82582967de6 Mon Sep 17 00:00:00 2001 From: Emanuel Schuetze Date: Mon, 22 Apr 2013 19:59:05 +0200 Subject: [PATCH 1/3] A lot of template improvements and translation fixes - Fixed agenda widget for special slide views (e.g. list of speakers, summary). - Fixed back to motion(s) link - Set icon for list of speakers widget. - Fixed overlay widget layout of form elements. - Added submenu with other config_pages to version.html. - Updated completly DE translations, fixed EN strings. - Coding style: Use correct ugettext and ugettext_lazy strings. Use "as _" for ugettext only. Updated translation. - Improved projector template (clock image, fixed facicon, added subtitle for list of speakers) - Changed permission strings ('oneself'). Added check if group(pk=3) exists. - Added event name and description to base template. Some minor template layout fixes. - Use static subtile (no context var). Show last 2 old_speakers for projector. - Cut old_speakers. - Projektor template style changes (e.g. overlay list of speakers). --- openslides/account/views.py | 1 - openslides/agenda/models.py | 35 +- openslides/agenda/signals.py | 4 +- openslides/agenda/slides.py | 4 +- .../agenda/overlay_speaker_projector.html | 19 +- .../templates/agenda/speaker_widget.html | 2 +- openslides/agenda/templates/agenda/view.html | 16 +- .../agenda/templates/agenda/widget.html | 21 +- .../projector/agenda_list_of_speaker.html | 23 +- openslides/agenda/views.py | 14 +- openslides/assignment/forms.py | 6 +- openslides/assignment/models.py | 21 +- openslides/assignment/signals.py | 28 +- openslides/assignment/views.py | 9 +- .../config/templates/config/config_form.html | 3 +- openslides/config/views.py | 4 +- openslides/core/signals.py | 2 +- openslides/core/templates/core/version.html | 15 +- openslides/core/views.py | 8 + openslides/locale/de/LC_MESSAGES/django.mo | Bin 28466 -> 35525 bytes openslides/locale/de/LC_MESSAGES/django.po | 2649 ++++++++--------- openslides/locale/de/LC_MESSAGES/djangojs.mo | Bin 1069 -> 2613 bytes openslides/locale/de/LC_MESSAGES/djangojs.po | 201 +- openslides/mediafile/models.py | 8 +- .../mediafile/static/styles/mediafile.css | 6 +- .../templates/mediafile/mediafile_list.html | 2 +- openslides/motion/forms.py | 20 +- openslides/motion/models.py | 6 +- openslides/motion/pdf.py | 2 +- openslides/motion/signals.py | 36 +- .../templates/motion/category_list.html | 2 +- .../templates/motion/motion_detail.html | 4 +- .../motion/templates/motion/motion_diff.html | 4 +- .../motion/templates/motion/motion_form.html | 6 +- .../motion/templates/motion/motion_list.html | 2 +- openslides/motion/views.py | 8 +- openslides/participant/api.py | 2 +- openslides/participant/forms.py | 4 +- openslides/participant/models.py | 36 +- openslides/participant/signals.py | 14 +- .../templates/participant/group_detail.html | 4 +- .../templates/participant/group_overview.html | 2 +- .../templates/participant/user_detail.html | 73 +- openslides/projector/models.py | 8 +- openslides/projector/signals.py | 1 - ...clock.png => glyphicons_054_clock_big.png} | Bin .../projector/static/styles/dashboard.css | 4 +- .../projector/static/styles/projector.css | 23 +- .../projector/templates/base-projector.html | 2 +- .../projector/overlay_countdown_widget.html | 10 +- .../projector/overlay_message_widget.html | 2 +- openslides/projector/views.py | 2 +- .../static/img/glyphicons_062_paperclip.png | Bin 0 -> 1095 bytes .../img/glyphicons_062_paperclip_white.png | Bin 0 -> 1126 bytes openslides/static/javascript/utils.js | 8 - openslides/static/styles/base.css | 36 +- openslides/templates/base.html | 5 +- openslides/utils/jsonfield/fields.py | 2 +- openslides/utils/person/models.py | 1 + tests/agenda/test_list_of_speakers.py | 4 +- 60 files changed, 1807 insertions(+), 1627 deletions(-) rename openslides/projector/static/img/{glyphicons_054_clock.png => glyphicons_054_clock_big.png} (100%) create mode 100644 openslides/static/img/glyphicons_062_paperclip.png create mode 100644 openslides/static/img/glyphicons_062_paperclip_white.png diff --git a/openslides/account/views.py b/openslides/account/views.py index 5fa151665..0c67c83b3 100644 --- a/openslides/account/views.py +++ b/openslides/account/views.py @@ -45,7 +45,6 @@ def get_personal_info_widget(request): 'submitted_motions': Motion.objects.filter(submitter=request.user), 'config_motion_min_supporters': config['motion_min_supporters'], 'supported_motions': Motion.objects.filter(supporter=request.user)}) - try: from openslides.assignment.models import Assignment except ImportError: diff --git a/openslides/agenda/models.py b/openslides/agenda/models.py index 8abed0914..f21886910 100644 --- a/openslides/agenda/models.py +++ b/openslides/agenda/models.py @@ -14,7 +14,7 @@ from datetime import datetime from django.db import models from django.core.urlresolvers import reverse -from django.utils.translation import ugettext_lazy as _, ugettext_noop, ugettext +from django.utils.translation import ugettext_lazy, ugettext_noop, ugettext as _ from mptt.models import MPTTModel, TreeForeignKey @@ -38,30 +38,30 @@ class Item(MPTTModel, SlideMixin): ORGANIZATIONAL_ITEM = 2 ITEM_TYPE = ( - (AGENDA_ITEM, _('Agenda item')), - (ORGANIZATIONAL_ITEM, _('Organizational item'))) + (AGENDA_ITEM, ugettext_lazy('Agenda item')), + (ORGANIZATIONAL_ITEM, ugettext_lazy('Organizational item'))) - title = models.CharField(null=True, max_length=255, verbose_name=_("Title")) + title = models.CharField(null=True, max_length=255, verbose_name=ugettext_lazy("Title")) """ Title of the agenda item. """ - text = models.TextField(null=True, blank=True, verbose_name=_("Text")) + text = models.TextField(null=True, blank=True, verbose_name=ugettext_lazy("Text")) """ The optional text of the agenda item. """ - comment = models.TextField(null=True, blank=True, verbose_name=_("Comment")) + comment = models.TextField(null=True, blank=True, verbose_name=ugettext_lazy("Comment")) """ Optional comment to the agenda item. Will not be shoun to normal users. """ - closed = models.BooleanField(default=False, verbose_name=_("Closed")) + closed = models.BooleanField(default=False, verbose_name=ugettext_lazy("Closed")) """ Flag, if the item is finished. """ - weight = models.IntegerField(default=0, verbose_name=_("Weight")) + weight = models.IntegerField(default=0, verbose_name=ugettext_lazy("Weight")) """ Weight to sort the item in the agenda. """ @@ -73,7 +73,7 @@ class Item(MPTTModel, SlideMixin): """ type = models.IntegerField(max_length=1, choices=ITEM_TYPE, - default=AGENDA_ITEM, verbose_name=_("Type")) + default=AGENDA_ITEM, verbose_name=ugettext_lazy("Type")) """ Type of the agenda item. @@ -81,7 +81,7 @@ class Item(MPTTModel, SlideMixin): """ duration = models.CharField(null=True, blank=True, max_length=5, - verbose_name=_("Duration (hh:mm)")) + verbose_name=ugettext_lazy("Duration (hh:mm)")) """ The intended duration for the topic. """ @@ -94,7 +94,7 @@ class Item(MPTTModel, SlideMixin): """ speaker_list_closed = models.BooleanField( - default=False, verbose_name=_("List of speakers is closed")) + default=False, verbose_name=ugettext_lazy("List of speakers is closed")) """ True, if the list of speakers is closed. """ @@ -125,7 +125,7 @@ class Item(MPTTModel, SlideMixin): For use in Template ??Why does {% trans item.print_related_type|capfirst %} not work?? """ - return ugettext(self.get_related_type().capitalize()) + return _(self.get_related_type().capitalize()) def get_title(self): """ @@ -158,9 +158,12 @@ class Item(MPTTModel, SlideMixin): } elif config['presentation_argument'] == 'show_list_of_speakers': speakers = Speaker.objects.filter(time=None, item=self.pk).order_by('weight') - data = {'title': _('List of speakers for %s') % self.get_title(), + old_speakers = Speaker.objects.filter(item=self.pk).exclude(time=None).order_by('time') + slice_items = max(0, old_speakers.count()-2) + data = {'title': self.get_title(), 'template': 'projector/agenda_list_of_speaker.html', - 'speakers': speakers} + 'speakers': speakers, + 'old_speakers': old_speakers[slice_items:]} elif self.related_sid: data = self.get_related_slide().slide() else: @@ -244,7 +247,7 @@ class Item(MPTTModel, SlideMixin): class SpeakerManager(models.Manager): def add(self, person, item): if self.filter(person=person, item=item, time=None).exists(): - raise OpenSlidesError(_('%s is already on the list of speakers of item %d.') % (person, item.id)) + raise OpenSlidesError(_('%(person)s is already on the list of speakers of item %(id)s.') % {'person': person, 'id': item.id}) weight = (self.filter(item=item).aggregate( models.Max('weight'))['weight__max'] or 0) return self.create(item=item, person=person, weight=weight + 1) @@ -279,7 +282,7 @@ class Speaker(models.Model): class Meta: permissions = ( - ('can_be_speaker', ugettext_noop('Can be speaker')), + ('can_be_speaker', ugettext_noop('Can put oneself on the list of speakers')), ) def __unicode__(self): diff --git a/openslides/agenda/signals.py b/openslides/agenda/signals.py index 1633aebea..4d9d99527 100644 --- a/openslides/agenda/signals.py +++ b/openslides/agenda/signals.py @@ -12,7 +12,7 @@ from django.dispatch import receiver from django import forms -from django.utils.translation import ugettext_lazy, ugettext_noop, ugettext as _ +from django.utils.translation import ugettext_lazy, ugettext_noop from django.template.loader import render_to_string from openslides.config.signals import config_signal @@ -41,7 +41,7 @@ def setup_agenda_config_page(sender, **kwargs): widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M'), required=False, label=ugettext_lazy('Begin of event'), - help_text=_('Input format: DD.MM.YYYY HH:MM'))) + help_text=ugettext_lazy('Input format: DD.MM.YYYY HH:MM'))) extra_stylefiles = ['styles/timepicker.css', 'styles/jquery-ui/jquery-ui.custom.min.css'] extra_javascript = ['javascript/jquery-ui.custom.min.js', diff --git a/openslides/agenda/slides.py b/openslides/agenda/slides.py index 70e5f9d28..d4129fb3c 100644 --- a/openslides/agenda/slides.py +++ b/openslides/agenda/slides.py @@ -10,7 +10,7 @@ :license: GNU GPL, see LICENSE for more details. """ -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy, ugettext as _ from openslides.projector.api import register_slidemodel, register_slidefunc @@ -26,4 +26,4 @@ def agenda_show(): return data register_slidemodel(Item, control_template='agenda/control_item.html') -register_slidefunc('agenda', agenda_show, weight=-1, name=_('Agenda')) +register_slidefunc('agenda', agenda_show, weight=-1, name=ugettext_lazy('Agenda')) diff --git a/openslides/agenda/templates/agenda/overlay_speaker_projector.html b/openslides/agenda/templates/agenda/overlay_speaker_projector.html index 47a52dacd..e1596a4cb 100644 --- a/openslides/agenda/templates/agenda/overlay_speaker_projector.html +++ b/openslides/agenda/templates/agenda/overlay_speaker_projector.html @@ -1,23 +1,8 @@ {% load i18n %} - - -
+
{% if speakers %} -
{% trans "List of speakers:" %}
+

{% trans "List of speakers" %}:

    {% for speaker in speakers %}
  1. {{ speaker }}
  2. diff --git a/openslides/agenda/templates/agenda/speaker_widget.html b/openslides/agenda/templates/agenda/speaker_widget.html index ee4d0c012..6cf6e3744 100644 --- a/openslides/agenda/templates/agenda/speaker_widget.html +++ b/openslides/agenda/templates/agenda/speaker_widget.html @@ -2,5 +2,5 @@ {% load tags %}
    - {% trans 'Put me on the current list of speakers' %} + {% trans 'Put me on the current list of speakers' %}
    diff --git a/openslides/agenda/templates/agenda/view.html b/openslides/agenda/templates/agenda/view.html index 33bb9f18a..aa8bc0c56 100644 --- a/openslides/agenda/templates/agenda/view.html +++ b/openslides/agenda/templates/agenda/view.html @@ -79,12 +79,14 @@ {% if old_speakers %}
    - {% trans "Last speakers:" %} -
    - -
    + {% trans "Last speakers" %}: + {% if old_speakers|length > 1 %} +
    + +
    + {% endif %}
    {% for speaker in old_speakers %} @@ -139,7 +141,7 @@ {{ forloop.counter }}. {{ speaker }} {% if perms.agenda.can_manage_agenda %} - Finished speech + {% trans "Next speaker" %} diff --git a/openslides/agenda/templates/agenda/widget.html b/openslides/agenda/templates/agenda/widget.html index 455caeaf3..39c820953 100644 --- a/openslides/agenda/templates/agenda/widget.html +++ b/openslides/agenda/templates/agenda/widget.html @@ -3,7 +3,9 @@
    • - +   @@ -16,8 +18,10 @@
        {% for item in items %}
      • - - + +   @@ -25,9 +29,16 @@ + + + {% if not item.is_leaf_node %} - - + + {% endif %} {% for p in item.get_ancestors %} diff --git a/openslides/agenda/templates/projector/agenda_list_of_speaker.html b/openslides/agenda/templates/projector/agenda_list_of_speaker.html index 7d667dc6f..edd00ae2f 100644 --- a/openslides/agenda/templates/projector/agenda_list_of_speaker.html +++ b/openslides/agenda/templates/projector/agenda_list_of_speaker.html @@ -4,28 +4,27 @@ {% block title %}{{ block.super }} - {{ item }}{% endblock %} -{% block header %} - -{% endblock %} - {% block content %}

        {{ title }}

        +

        {% trans 'List of speakers' %}

        {% endblock %} {% block scrollcontent %} + {% if old_speakers|length > 0 %} +
          + {% for speaker in old_speakers %} +
        • {{ speaker }}
        • + {% endfor %} +
        + {% endif %} + {% if speakers %} -
          +
            {% for speaker in speakers %}
          1. {{ speaker }}
          2. {% endfor %}
          {% else %} - {% trans 'The list of speakers is empty' %} +

          {% trans 'The list of speakers is empty.' %}

          {% endif %} {% endblock %} diff --git a/openslides/agenda/views.py b/openslides/agenda/views.py index c8afc4da3..234be94b0 100644 --- a/openslides/agenda/views.py +++ b/openslides/agenda/views.py @@ -266,7 +266,7 @@ class SpeakerAppendView(SingleObjectMixin, RedirectView): def pre_redirect(self, request, *args, **kwargs): self.object = self.get_object() if self.object.speaker_list_closed: - messages.error(request, _('List of speakers is closed.')) + messages.error(request, _('The list of speakers is closed.')) else: try: Speaker.objects.add(item=self.object, person=request.user) @@ -337,8 +337,10 @@ class SpeakerSpeakView(SingleObjectMixin, RedirectView): item=self.object.pk).exclude( weight=None).get() except Speaker.DoesNotExist: - messages.error(self.request, _('Person %s is not on the list of item %s.' - % (kwargs['person_id'], self.object))) + messages.error( + self.request, + _('%(person)s is not on the list of %(item)s.') + % {'person': kwargs['person_id'], 'item': self.object}) else: speaker.speak() @@ -439,7 +441,7 @@ class CurrentListOfSpeakersView(RedirectView): if item is None: messages.error(request, _( 'There is no list of speakers for the current slide. ' - 'Please choose your agenda item manually from the agenda.')) + 'Please choose the agenda item manually from the agenda.')) return reverse('dashboard') if self.request.user.has_perm('agenda.can_be_speaker'): @@ -483,7 +485,9 @@ def get_widgets(request): template='agenda/widget.html', context={ 'agenda': SLIDE['agenda'], - 'items': Item.objects.all()}, + 'items': Item.objects.all(), + 'summary': config['presentation_argument'] == 'summary', + 'speakers': config['presentation_argument'] == 'show_list_of_speakers'}, permission_required='projector.can_manage_projector'), Widget( diff --git a/openslides/assignment/forms.py b/openslides/assignment/forms.py index a0a0f5818..b66a649a8 100644 --- a/openslides/assignment/forms.py +++ b/openslides/assignment/forms.py @@ -11,7 +11,7 @@ """ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext_lazy from openslides.utils.forms import CssClassMixin from openslides.utils.person import PersonFormField @@ -21,7 +21,7 @@ from openslides.assignment.models import Assignment class AssignmentForm(forms.ModelForm, CssClassMixin): posts = forms.IntegerField( - min_value=1, initial=1, label=_("Number of available posts")) + min_value=1, initial=1, label=ugettext_lazy("Number of available posts")) class Meta: model = Assignment @@ -31,5 +31,5 @@ class AssignmentForm(forms.ModelForm, CssClassMixin): class AssignmentRunForm(forms.Form, CssClassMixin): candidate = PersonFormField( widget=forms.Select(attrs={'class': 'medium-input'}), - label=_("Nominate a participant"), + label=ugettext_lazy("Nominate a participant"), ) diff --git a/openslides/assignment/models.py b/openslides/assignment/models.py index 0f89d61a6..a2b528e21 100644 --- a/openslides/assignment/models.py +++ b/openslides/assignment/models.py @@ -12,7 +12,7 @@ from django.core.urlresolvers import reverse from django.db import models -from django.utils.translation import ugettext_lazy as _, ugettext_noop # TODO Change this in the code +from django.utils.translation import ugettext as _, ugettext_lazy, ugettext_noop from openslides.utils.person import PersonField from openslides.config.api import config @@ -39,17 +39,17 @@ class AssignmentCandidate(models.Model): class Assignment(models.Model, SlideMixin): prefix = 'assignment' STATUS = ( - ('sea', _('Searching for candidates')), - ('vot', _('Voting')), - ('fin', _('Finished')), + ('sea', ugettext_lazy('Searching for candidates')), + ('vot', ugettext_lazy('Voting')), + ('fin', ugettext_lazy('Finished')), ) - name = models.CharField(max_length=100, verbose_name=_("Name")) - description = models.TextField(null=True, blank=True, verbose_name=_("Description")) - posts = models.PositiveSmallIntegerField(verbose_name=_("Number of available posts")) + name = models.CharField(max_length=100, verbose_name=ugettext_lazy("Name")) + description = models.TextField(null=True, blank=True, verbose_name=ugettext_lazy("Description")) + posts = models.PositiveSmallIntegerField(verbose_name=ugettext_lazy("Number of available posts")) polldescription = models.CharField( max_length=100, null=True, blank=True, - verbose_name=_("Comment on the ballot paper")) + verbose_name=ugettext_lazy("Comment on the ballot paper")) status = models.CharField(max_length=3, choices=STATUS, default='sea') def set_status(self, status): @@ -240,9 +240,8 @@ class Assignment(models.Model, SlideMixin): class Meta: permissions = ( ('can_see_assignment', ugettext_noop("Can see assignment")), - ('can_nominate_other', - ugettext_noop("Can nominate another person")), - ('can_nominate_self', ugettext_noop("Can nominate themselves")), + ('can_nominate_other', ugettext_noop("Can nominate another person")), + ('can_nominate_self', ugettext_noop("Can nominate oneself")), ('can_manage_assignment', ugettext_noop("Can manage assignment")), ) ordering = ('name',) diff --git a/openslides/assignment/signals.py b/openslides/assignment/signals.py index 9f2490d82..e8a7c716e 100644 --- a/openslides/assignment/signals.py +++ b/openslides/assignment/signals.py @@ -12,7 +12,7 @@ from django.dispatch import receiver from django import forms -from django.utils.translation import ugettext_lazy, ugettext_noop, ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy, ugettext_noop from openslides.config.signals import config_signal from openslides.config.api import ConfigVariable, ConfigPage @@ -28,19 +28,19 @@ def setup_assignment_config_page(sender, **kwargs): default_value=False, form_field=forms.BooleanField( required=False, - label=_('Only publish voting results for selected winners ' - '(Projector view only)'))) + label=ugettext_lazy('Only publish voting results for selected ' + 'winners (Projector view only)'))) assignment_pdf_ballot_papers_selection = ConfigVariable( name='assignment_pdf_ballot_papers_selection', default_value='CUSTOM_NUMBER', form_field=forms.ChoiceField( widget=forms.Select(), required=False, - label=_('Number of ballot papers (selection)'), + label=ugettext_lazy('Number of ballot papers (selection)'), choices=( - ('NUMBER_OF_DELEGATES', _('Number of all delegates')), - ('NUMBER_OF_ALL_PARTICIPANTS', _('Number of all participants')), - ('CUSTOM_NUMBER', _('Use the following custom number'))))) + ('NUMBER_OF_DELEGATES', ugettext_lazy('Number of all delegates')), + ('NUMBER_OF_ALL_PARTICIPANTS', ugettext_lazy('Number of all participants')), + ('CUSTOM_NUMBER', ugettext_lazy('Use the following custom number'))))) assignment_pdf_ballot_papers_number = ConfigVariable( name='assignment_pdf_ballot_papers_number', default_value=8, @@ -48,32 +48,32 @@ def setup_assignment_config_page(sender, **kwargs): widget=forms.TextInput(attrs={'class': 'small-input'}), required=False, min_value=1, - label=_('Custom number of ballot papers'))) + label=ugettext_lazy('Custom number of ballot papers'))) assignment_pdf_title = ConfigVariable( name='assignment_pdf_title', default_value=_('Elections'), form_field=forms.CharField( widget=forms.TextInput(), required=False, - label=_('Title for PDF document (all elections)'))) + label=ugettext_lazy('Title for PDF document (all elections)'))) assignment_pdf_preamble = ConfigVariable( name='assignment_pdf_preamble', default_value='', form_field=forms.CharField( widget=forms.Textarea(), required=False, - label=_('Preamble text for PDF document (all elections)'))) + label=ugettext_lazy('Preamble text for PDF document (all elections)'))) assignment_poll_vote_values = ConfigVariable( name='assignment_poll_vote_values', default_value='auto', form_field=forms.ChoiceField( widget=forms.Select(), required=False, - label=_('Election method'), + label=ugettext_lazy('Election method'), choices=( - ('auto', _('Automatic assign of method.')), - ('votes', _('Always one option per candidate.')), - ('yesnoabstain', _('Always Yes-No-Abstain per candidate.'))))) + ('auto', ugettext_lazy('Automatic assign of method')), + ('votes', ugettext_lazy('Always one option per candidate')), + ('yesnoabstain', ugettext_lazy('Always Yes-No-Abstain per candidate'))))) return ConfigPage(title=ugettext_noop('Elections'), url='assignment', diff --git a/openslides/assignment/views.py b/openslides/assignment/views.py index c8582bca7..a4bee73c5 100644 --- a/openslides/assignment/views.py +++ b/openslides/assignment/views.py @@ -31,7 +31,7 @@ from openslides.utils.utils import ( from openslides.utils.views import FormView, DeleteView, PDFView, RedirectView from openslides.utils.person import get_person from openslides.config.api import config -from openslides.participant.models import User +from openslides.participant.models import User, Group from openslides.projector.projector import Widget from openslides.poll.views import PollFormView from openslides.agenda.models import Item @@ -564,7 +564,12 @@ class AssignmentPollPDF(PDFView): # set number of ballot papers if ballot_papers_selection == "NUMBER_OF_DELEGATES": - number = User.objects.filter(type__iexact="delegate").count() + try: + if Group.objects.get(pk=3): + number = User.objects.filter(groups__pk=3).count() + except Group.DoesNotExist: + number = 0 + elif ballot_papers_selection == "NUMBER_OF_ALL_PARTICIPANTS": number = int(User.objects.count()) else: # ballot_papers_selection == "CUSTOM_NUMBER" diff --git a/openslides/config/templates/config/config_form.html b/openslides/config/templates/config/config_form.html index 75291cf54..0fc66c08d 100644 --- a/openslides/config/templates/config/config_form.html +++ b/openslides/config/templates/config/config_form.html @@ -1,7 +1,6 @@ {% extends 'base.html' %} {% load i18n %} - {% load staticfiles %} {% block content %} @@ -12,7 +11,7 @@
          diff --git a/openslides/config/views.py b/openslides/config/views.py index 3b9782a15..1f140845f 100644 --- a/openslides/config/views.py +++ b/openslides/config/views.py @@ -13,7 +13,7 @@ from django import forms from django.core.urlresolvers import reverse from django.contrib import messages -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy from openslides.utils.views import FormView from openslides.utils.template import Tab @@ -115,7 +115,7 @@ class ConfigView(FormView): """ for key in form.cleaned_data: config[key] = form.cleaned_data[key] - messages.success(self.request, _('%s settings successfully saved.' % self.config_page.title)) + messages.success(self.request, _('%s settings successfully saved.') % _(self.config_page.title)) return super(ConfigView, self).form_valid(form) diff --git a/openslides/core/signals.py b/openslides/core/signals.py index 4f7da8405..75b52a853 100644 --- a/openslides/core/signals.py +++ b/openslides/core/signals.py @@ -12,7 +12,7 @@ from django.dispatch import Signal, receiver from django import forms -from django.utils.translation import ugettext_lazy, ugettext_noop, ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy, ugettext_noop from openslides.config.signals import config_signal from openslides.config.api import ConfigVariable, ConfigGroup, ConfigGroupedPage diff --git a/openslides/core/templates/core/version.html b/openslides/core/templates/core/version.html index 5cb717756..00a730a16 100644 --- a/openslides/core/templates/core/version.html +++ b/openslides/core/templates/core/version.html @@ -5,7 +5,20 @@ {% block title %}{{ block.super }} – {% trans 'Version' %}{% endblock %} {% block content %} -

          {% trans 'Versions' %}

          +

          + {% trans 'Version' %} + {% trans active_config_page.title %} + +
          +
          + {% for config_page_dict in config_pages_list %} + {% trans config_page_dict.config_page.title %} + {% endfor %} + {% trans 'Version' %} +
          +
          +
          +

          {% for version in versions %}

          {{ version.0 }} {% trans "Version" %}: {{ version.1 }}

          {% endfor %} diff --git a/openslides/core/views.py b/openslides/core/views.py index 8d0384deb..90434f3c3 100644 --- a/openslides/core/views.py +++ b/openslides/core/views.py @@ -15,6 +15,7 @@ from django.utils.importlib import import_module from openslides import get_version, get_git_commit_id, RELEASE from openslides.utils.views import TemplateView +from .signals import config_signal class VersionView(TemplateView): @@ -35,6 +36,13 @@ class VersionView(TemplateView): openslides_version_string += ' Commit: %s' % get_git_commit_id() context['versions'] = [('OpenSlides', openslides_version_string)] + # collect other config pages + config_pages_list = [] + for receiver, config_page in config_signal.send(sender=self): + if config_page.is_shown(): + config_pages_list.append({'config_page': config_page}) + context['config_pages_list'] = sorted(config_pages_list, key=lambda config_page_dict: config_page_dict['config_page'].weight) + # Versions of plugins. for plugin in settings.INSTALLED_PLUGINS: try: diff --git a/openslides/locale/de/LC_MESSAGES/django.mo b/openslides/locale/de/LC_MESSAGES/django.mo index 37edec9d41c283ae11b40016624d7d2d7d90dd51..d030ece5642de5cdab69fcab062c8ee3c4791754 100644 GIT binary patch literal 35525 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 YiLjIVWkOU@~Nys)CGFc!jdd{4lGlx0L(0$Gf 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 diff --git a/openslides/locale/de/LC_MESSAGES/django.po b/openslides/locale/de/LC_MESSAGES/django.po index 7519c4249..d9ddec3b5 100644 --- a/openslides/locale/de/LC_MESSAGES/django.po +++ b/openslides/locale/de/LC_MESSAGES/django.po @@ -1,13 +1,13 @@ # German translations for OpenSlides package. # Copyright (C) 2011-2013 by OpenSlides team, see AUTHORS. # This file is distributed under the same license as the OpenSlides package. -# Oskar Hahn , 2012. +# Emanuel Schütze , 2013. # msgid "" msgstr "" "Project-Id-Version: OpenSlides 1.x\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-02-11 22:34+0100\n" +"POT-Creation-Date: 2013-04-23 21:38+0200\n" "PO-Revision-Date: 2012-07-28 11:07+0200\n" "Last-Translator: Emanuel Schuetze \n" "Language-Team: support@openslides.de\n" @@ -17,22 +17,55 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: global_settings.py:32 -msgid "default" -msgstr "" - -#: global_settings.py:36 +#: global_settings.py:33 msgid "German" msgstr "Deutsch" -#: global_settings.py:37 +#: global_settings.py:34 msgid "English" msgstr "Englisch" -#: global_settings.py:38 +#: global_settings.py:35 msgid "French" msgstr "Französisch" +#: account/views.py:60 +msgid "My motions and elections" +msgstr "Meine Anträge und Wahlen" + +#: account/templates/account/personal_info_widget.html:5 +msgid "I submitted the following motions:" +msgstr "Ich habe folgende Anträge gestellt:" + +#: account/templates/account/personal_info_widget.html:9 +#: account/templates/account/personal_info_widget.html:28 +#: motion/templates/motion/widget.html:19 +msgid "motion" +msgstr "Antrag" + +#: account/templates/account/personal_info_widget.html:13 +#: account/templates/account/personal_info_widget.html:32 +#: motion/templates/motion/motion_detail.html:17 +#: motion/templates/motion/motion_diff.html:22 +#: motion/templates/motion/widget.html:23 +#: motion/templates/projector/Motion.html:65 +msgid "no number" +msgstr "ohne Nummer" + +#: account/templates/account/personal_info_widget.html:17 +#: account/templates/account/personal_info_widget.html:36 +#: account/templates/account/personal_info_widget.html:47 +msgid "None" +msgstr "Keine" + +#: account/templates/account/personal_info_widget.html:24 +msgid "I support the following motions:" +msgstr "Ich unterstütze folgende Anträge:" + +#: account/templates/account/personal_info_widget.html:43 +msgid "I am candidate for the following elections:" +msgstr "Ich bin Kandidat/in bei folgenden Wahlen:" + #: agenda/forms.py:29 msgid "Parent item" msgstr "Elternelement" @@ -41,71 +74,102 @@ msgstr "Elternelement" msgid "Invalid format. Hours from 0 to 99 and minutes from 00 to 59" msgstr "Ungültiges Format. Stunden von 0 bis 99 und Minuten von 00 bis 59" -#: agenda/forms.py:36 agenda/models.py:52 +#: agenda/forms.py:36 agenda/models.py:84 msgid "Duration (hh:mm)" msgstr "Dauer (hh:mm)" -#: agenda/forms.py:70 -msgid "Begin of event" -msgstr "Beginn der Veranstaltung" +#: agenda/forms.py:69 +msgid "Add participant" +msgstr "Neue/n Teilnehmer/in hinzufügen" -#: agenda/models.py:38 +#: agenda/forms.py:82 +#, python-format +msgid "%s is already on the list of speakers." +msgstr "%s ist bereits auf der Rednerliste" + +#: agenda/models.py:41 msgid "Agenda item" msgstr "Tagesordnungseintrag" -#: agenda/models.py:39 +#: agenda/models.py:42 msgid "Organizational item" msgstr "Organisatorischer Eintrag" -#: agenda/models.py:42 config/forms.py:59 motion/forms.py:31 -#: motion/models.py:466 projector/models.py:29 +#: agenda/models.py:44 core/signals.py:76 mediafile/models.py:32 +#: mediafile/templates/mediafile/mediafile_list.html:18 motion/forms.py:33 +#: motion/models.py:565 participant/models.py:39 participant/views.py:182 +#: participant/templates/participant/overview.html:62 projector/models.py:27 msgid "Title" msgstr "Titel" -#: agenda/models.py:43 motion/forms.py:34 motion/models.py:469 -#: projector/models.py:30 +#: agenda/models.py:49 motion/forms.py:38 motion/models.py:568 +#: projector/models.py:28 msgid "Text" msgstr "Text" -#: agenda/models.py:44 agenda/templates/agenda/overview.html:90 -#: agenda/templates/agenda/view.html:37 participant/models.py:60 -#: participant/templates/participant/overview.html:106 -#: participant/templates/participant/user_detail.html:49 +#: agenda/models.py:54 agenda/templates/agenda/overview.html:90 +#: agenda/templates/agenda/view.html:56 participant/models.py:51 +#: participant/templates/participant/overview.html:69 +#: participant/templates/participant/user_detail.html:47 msgid "Comment" msgstr "Kommentar" -#: agenda/models.py:45 +#: agenda/models.py:59 msgid "Closed" msgstr "Abgeschlossen" -#: agenda/models.py:46 agenda/templates/agenda/overview.html:99 -#: projector/models.py:31 +#: agenda/models.py:64 agenda/templates/agenda/overview.html:99 +#: projector/models.py:29 msgid "Weight" msgstr "Gewichtung" -#: agenda/models.py:50 participant/views.py:245 -#: participant/templates/participant/overview.html:69 -#: participant/templates/participant/overview.html:103 -#: participant/templates/participant/user_detail.html:33 +#: agenda/models.py:76 mediafile/templates/mediafile/mediafile_list.html:19 msgid "Type" msgstr "Typ" -#: agenda/models.py:185 +#: agenda/models.py:97 +msgid "List of speakers is closed" +msgstr "Rednerliste ist geschlossen" + +#: agenda/models.py:162 +#: agenda/templates/agenda/overlay_speaker_projector.html:20 +#: agenda/templates/agenda/overlay_speaker_widget.html:5 +#: agenda/templates/agenda/view.html:62 +msgid "List of speakers" +msgstr "Rednerliste" + +#: agenda/models.py:236 msgid "Can see agenda" msgstr "Darf die Tagesordnung sehen" -#: agenda/models.py:186 +#: agenda/models.py:237 msgid "Can manage agenda" msgstr "Darf die Tagesordung verwalten" -#: agenda/models.py:187 +#: agenda/models.py:238 msgid "Can see orga items and time scheduling of agenda" msgstr "Darf Organisationspunkte und Tagesordnung-Zeitplan sehen" -#: agenda/models.py:195 agenda/slides.py:20 agenda/views.py:210 -#: agenda/views.py:211 agenda/views.py:248 agenda/views.py:262 -#: agenda/templates/agenda/config.html:68 -#: agenda/templates/agenda/overview.html:8 +#: agenda/models.py:248 +#, python-format +msgid "%(person)s is already on the list of speakers of item %(id)s." +msgstr "%(person)s ist bereits auf der Rednerliste von Eintrag %(id)s." + +#: agenda/models.py:283 +msgid "Can put oneself on the list of speakers" +msgstr "Darf sich selbst auf die Rednerliste setzen" + +#: agenda/signals.py:43 +msgid "Begin of event" +msgstr "Beginn der Veranstaltung" + +#: agenda/signals.py:44 +msgid "Input format: DD.MM.YYYY HH:MM" +msgstr "Eingabeformat: TT.MM.JJJJ HH:MM" + +#: agenda/signals.py:52 agenda/slides.py:23 agenda/slides.py:29 +#: agenda/views.py:243 agenda/views.py:244 agenda/views.py:469 +#: agenda/views.py:484 agenda/templates/agenda/overview.html:8 #: agenda/templates/agenda/overview.html:55 #: agenda/templates/agenda/overview.html:105 #: agenda/templates/projector/AgendaSummary.html:6 @@ -113,257 +177,90 @@ msgstr "Darf Organisationspunkte und Tagesordnung-Zeitplan sehen" msgid "Agenda" msgstr "Tagesordnung" -#: agenda/views.py:90 +#: agenda/views.py:93 msgid "You are not authorized to manage the agenda." msgstr "Sie sind nicht berechtigt die Tagesordnung zu ändern." -#: agenda/views.py:106 +#: agenda/views.py:109 msgid "Errors when reordering of the agenda" msgstr "Fehler beim Neusortieren der Tagesordnung" -#: agenda/views.py:188 +#: agenda/views.py:219 msgid "Yes, with all child items." msgstr "Ja, mit allen Kindelementen." -#: agenda/views.py:196 +#: agenda/views.py:228 #, python-format msgid "Item %s and his children were successfully deleted." msgstr "Eintrag %s und seine Kindelemente wurde erfolgreich gelöscht." -#: agenda/views.py:201 +#: agenda/views.py:234 #, python-format msgid "Item %s was successfully deleted." msgstr "Eintrag %s wurde erfolgreich gelöscht." -#: agenda/views.py:239 -msgid "Agenda settings successfully saved." -msgstr "Tagesordnung Einstellungen erfolgreich gespeichert." +#: agenda/views.py:269 +msgid "The list of speakers is closed." +msgstr "Die Rednerliste ist geschlossen." -#: agenda/templates/agenda/config.html:20 -msgid "January" -msgstr "Januar" +#: agenda/views.py:298 +msgid "You are not on the list of speakers." +msgstr "Sie stehen nicht auf der Rednerliste." -#: agenda/templates/agenda/config.html:20 -msgid "February" -msgstr "Februar" +#: agenda/views.py:321 +msgid "Do you really want to remove yourself from the list of speakers?" +msgstr "Wollen Sie sich wirklich von der Rednerliste entfernen?" -#: agenda/templates/agenda/config.html:20 -msgid "March" -msgstr "März" +#: agenda/views.py:342 +#, python-format +msgid "%(person)s is not on the list of %(item)s." +msgstr "%(person)s ist nicht auf der Rednerliste von %(item)s." -#: agenda/templates/agenda/config.html:21 -msgid "April" -msgstr "April" +#: agenda/views.py:407 +msgid "Could not change order. Invalid data." +msgstr "Die Reihenfolge kann nicht verändert werden. Ungültige Daten." -#: agenda/templates/agenda/config.html:21 -#: agenda/templates/agenda/config.html:27 -msgid "May" -msgstr "Mai" +#: agenda/views.py:443 +msgid "" +"There is no list of speakers for the current slide. Please choose the agenda " +"item manually from the agenda." +msgstr "" +"Es existiert keine Rednerliste für die aktuelle Folie. Bitte wähle den " +"Tagesordnungseintrag manuell von der Tagesordnung." -#: agenda/templates/agenda/config.html:21 -msgid "June" -msgstr "Juni" +#: agenda/views.py:451 +msgid "You are already on the list of speakers." +msgstr "Sie stehen bereits auf der Rednerliste." -#: agenda/templates/agenda/config.html:22 -msgid "July" -msgstr "Juli" +#: agenda/views.py:453 +msgid "You are now on the list of speakers." +msgstr "Sie stehen jetzt auf der Rednerliste." -#: agenda/templates/agenda/config.html:22 -msgid "August" -msgstr "August" +#: agenda/views.py:455 +msgid "You can not put yourself on the list of speakers." +msgstr "Sie können sich nicht selbst auf die Rednerliste setzen." -#: agenda/templates/agenda/config.html:22 -msgid "September" -msgstr "September" - -#: agenda/templates/agenda/config.html:23 -msgid "October" -msgstr "Oktober" - -#: agenda/templates/agenda/config.html:23 -msgid "November" -msgstr "November" - -#: agenda/templates/agenda/config.html:23 -msgid "December" -msgstr "Dezember" - -#: agenda/templates/agenda/config.html:26 -msgid "Jan" -msgstr "Jan" - -#: agenda/templates/agenda/config.html:26 -msgid "Feb" -msgstr "Feb" - -#: agenda/templates/agenda/config.html:26 -msgid "Mar" -msgstr "Mär" - -#: agenda/templates/agenda/config.html:27 -msgid "Apr" -msgstr "Apr" - -#: agenda/templates/agenda/config.html:27 -msgid "Jun" -msgstr "Jun" - -#: agenda/templates/agenda/config.html:28 -msgid "Jul" -msgstr "Jul" - -#: agenda/templates/agenda/config.html:28 -msgid "Aug" -msgstr "Aug" - -#: agenda/templates/agenda/config.html:28 -msgid "Sep" -msgstr "Sep" - -#: agenda/templates/agenda/config.html:29 -msgid "Oct" -msgstr "Okt" - -#: agenda/templates/agenda/config.html:29 -msgid "Nov" -msgstr "Nov" - -#: agenda/templates/agenda/config.html:29 -msgid "Dec" -msgstr "Dez" - -#: agenda/templates/agenda/config.html:32 -msgid "Sunday" -msgstr "Sonntag" - -#: agenda/templates/agenda/config.html:32 -msgid "Monday" -msgstr "Montag" - -#: agenda/templates/agenda/config.html:32 -msgid "Tuesdey" -msgstr "Dienstag" - -#: agenda/templates/agenda/config.html:32 -msgid "Wednesday" -msgstr "Mittwoch" - -#: agenda/templates/agenda/config.html:33 -msgid "Thursday" -msgstr "Donnerstag" - -#: agenda/templates/agenda/config.html:33 -msgid "Friday" -msgstr "Freitag" - -#: agenda/templates/agenda/config.html:33 -msgid "Saturday" -msgstr "Samstag" - -#: agenda/templates/agenda/config.html:36 -#: agenda/templates/agenda/config.html:40 -msgid "Su" -msgstr "So" - -#: agenda/templates/agenda/config.html:36 -#: agenda/templates/agenda/config.html:40 -msgid "Mo" -msgstr "Mo" - -#: agenda/templates/agenda/config.html:36 -#: agenda/templates/agenda/config.html:40 -msgid "Tu" -msgstr "Di" - -#: agenda/templates/agenda/config.html:36 -#: agenda/templates/agenda/config.html:40 -msgid "We" -msgstr "Mi" - -#: agenda/templates/agenda/config.html:37 -#: agenda/templates/agenda/config.html:41 -msgid "Th" -msgstr "Do" - -#: agenda/templates/agenda/config.html:37 -#: agenda/templates/agenda/config.html:41 -msgid "Fr" -msgstr "Fr" - -#: agenda/templates/agenda/config.html:37 -#: agenda/templates/agenda/config.html:41 -msgid "Sa" -msgstr "Sa" - -#: agenda/templates/agenda/config.html:52 -msgid "Time" -msgstr "Zeit" - -#: agenda/templates/agenda/config.html:53 -msgid "Hour" -msgstr "Stunde" - -#: agenda/templates/agenda/config.html:54 -msgid "Minute" -msgstr "Minute" - -#: agenda/templates/agenda/config.html:55 -msgid "current time" -msgstr "aktuelle Zeit" - -#: agenda/templates/agenda/config.html:56 -msgid "close" -msgstr "Schließen" - -#: agenda/templates/agenda/config.html:63 -msgid "Agenda settings" -msgstr "Tagesordnungs-Einstellungen" - -#: agenda/templates/agenda/config.html:68 -#: assignment/templates/assignment/config.html:9 config/views.py:111 -#: config/templates/config/general.html:9 -#: motion/templates/motion/config.html:9 -#: participant/templates/participant/config.html:9 -msgid "Configuration" -msgstr "Konfiguration" - -#: agenda/templates/agenda/config.html:75 -#: assignment/templates/assignment/poll_view.html:80 -#: motion/templates/motion/motion_form.html:14 -#: motion/templates/motion/poll_form.html:38 -#: projector/templates/projector/select_widgets.html:28 -#: templates/formbuttons_save.html:4 templates/formbuttons_saveapply.html:4 -msgid "Save" -msgstr "Speichern" - -#: agenda/templates/agenda/config.html:79 agenda/templates/agenda/edit.html:30 -#: assignment/templates/assignment/config.html:18 -#: assignment/templates/assignment/edit.html:31 -#: assignment/templates/assignment/poll_view.html:86 -#: config/templates/config/general.html:70 -#: motion/templates/motion/config.html:18 -#: motion/templates/motion/motion_form.html:21 -#: motion/templates/motion/poll_form.html:44 -#: participant/templates/participant/config.html:18 -#: participant/templates/participant/edit.html:36 -#: participant/templates/participant/group_edit.html:31 -#: participant/templates/participant/import.html:33 -msgid "Cancel" -msgstr "Abbrechen" +#: agenda/views.py:495 +msgid "To the current list of speakers" +msgstr "Zur aktuellen Rednerliste" #: agenda/templates/agenda/edit.html:8 agenda/templates/agenda/edit.html:17 -#: agenda/templates/agenda/view.html:20 +#: agenda/templates/agenda/view.html:37 msgid "Edit item" msgstr "Eintrag bearbeiten" #: agenda/templates/agenda/edit.html:10 agenda/templates/agenda/edit.html:19 -#: agenda/templates/agenda/overview.html:72 +#: agenda/templates/agenda/overview.html:58 msgid "New item" msgstr "Neuer Eintrag" -#: agenda/templates/agenda/edit.html:22 agenda/templates/agenda/view.html:12 +#: agenda/templates/agenda/edit.html:22 agenda/templates/agenda/view.html:29 #: assignment/templates/assignment/edit.html:22 #: assignment/templates/assignment/view.html:20 +#: mediafile/templates/mediafile/mediafile_form.html:22 +#: motion/templates/motion/category_list.html:15 +#: motion/templates/motion/motion_detail.html:24 +#: motion/templates/motion/motion_form.html:37 #: participant/templates/participant/edit.html:22 #: participant/templates/participant/group_detail.html:12 #: participant/templates/participant/group_edit.html:22 @@ -374,16 +271,29 @@ msgstr "Neuer Eintrag" msgid "Back to overview" msgstr "Zurück zur Übersicht" +#: agenda/templates/agenda/edit.html:30 +#: assignment/templates/assignment/edit.html:31 +#: assignment/templates/assignment/poll_view.html:86 +#: config/templates/config/config_form.html:45 +#: mediafile/templates/mediafile/mediafile_form.html:33 +#: motion/templates/motion/category_form.html:28 +#: motion/templates/motion/motion_form.html:46 +#: motion/templates/motion/poll_form.html:73 +#: participant/templates/participant/edit.html:36 +#: participant/templates/participant/group_edit.html:31 +#: participant/templates/participant/import.html:39 +msgid "Cancel" +msgstr "Abbrechen" + #: agenda/templates/agenda/edit.html:33 -#: assignment/templates/assignment/config.html:21 #: assignment/templates/assignment/edit.html:34 -#: config/templates/config/general.html:73 -#: motion/templates/motion/config.html:21 -#: motion/templates/motion/motion_form.html:24 -#: participant/templates/participant/config.html:21 +#: config/templates/config/config_form.html:47 +#: mediafile/templates/mediafile/mediafile_form.html:35 +#: motion/templates/motion/category_form.html:31 +#: motion/templates/motion/motion_form.html:49 #: participant/templates/participant/edit.html:39 #: participant/templates/participant/group_edit.html:34 -#: participant/templates/participant/import.html:36 +#: participant/templates/participant/import.html:42 #: projector/templates/projector/new.html:19 msgid "required" msgstr "erforderlich" @@ -392,20 +302,22 @@ msgstr "erforderlich" msgid "Change status (open/closed)" msgstr "Status ändern (offen/abgeschlossen)" -#: agenda/templates/agenda/item_row.html:32 +#: agenda/templates/agenda/item_row.html:34 msgid "End" msgstr "Ende" #: agenda/templates/agenda/item_row.html:42 #: agenda/templates/agenda/overview.html:117 -#: agenda/templates/agenda/view.html:26 agenda/templates/agenda/widget.html:6 -#: agenda/templates/agenda/widget.html:19 +#: agenda/templates/agenda/view.html:45 agenda/templates/agenda/widget.html:8 +#: agenda/templates/agenda/widget.html:23 #: assignment/templates/assignment/overview.html:54 #: assignment/templates/assignment/widget.html:7 +#: motion/templates/motion/motion_detail.html:129 +#: motion/templates/motion/motion_list.html:82 #: motion/templates/motion/widget.html:7 #: participant/templates/participant/group_overview.html:29 #: participant/templates/participant/group_widget.html:8 -#: participant/templates/participant/overview.html:128 +#: participant/templates/participant/overview.html:115 #: participant/templates/participant/user_widget.html:7 #: projector/templates/projector/custom_slide_widget.html:6 #: projector/templates/projector/custom_slide_widget.html:19 @@ -413,77 +325,99 @@ msgid "Show" msgstr "Anzeigen" #: agenda/templates/agenda/item_row.html:47 -#: agenda/templates/agenda/widget.html:22 +#: agenda/templates/agenda/widget.html:26 #: assignment/templates/assignment/overview.html:59 -#: assignment/templates/assignment/view.html:172 +#: assignment/templates/assignment/view.html:170 #: assignment/templates/assignment/widget.html:10 +#: mediafile/templates/mediafile/mediafile_list.html:37 +#: motion/templates/motion/category_list.html:30 +#: motion/templates/motion/motion_list.html:87 #: motion/templates/motion/widget.html:10 #: participant/templates/participant/group_overview.html:33 #: participant/templates/participant/group_widget.html:11 -#: participant/templates/participant/overview.html:132 +#: participant/templates/participant/overview.html:119 #: participant/templates/participant/user_widget.html:10 #: projector/templates/projector/custom_slide_widget.html:26 msgid "Edit" msgstr "Bearbeiten" #: agenda/templates/agenda/item_row.html:50 +#: agenda/templates/agenda/view.html:100 agenda/templates/agenda/view.html:114 +#: agenda/templates/agenda/view.html:147 #: assignment/templates/assignment/overview.html:62 -#: assignment/templates/assignment/view.html:173 +#: assignment/templates/assignment/view.html:171 +#: mediafile/templates/mediafile/mediafile_list.html:38 +#: motion/templates/motion/category_list.html:33 +#: motion/templates/motion/motion_detail.html:133 +#: motion/templates/motion/motion_list.html:91 #: participant/templates/participant/group_overview.html:37 -#: participant/templates/participant/overview.html:136 +#: participant/templates/participant/overview.html:123 #: projector/templates/projector/custom_slide_widget.html:23 msgid "Delete" msgstr "Löschen" #: agenda/templates/agenda/item_row.html:54 -#: agenda/templates/agenda/widget.html:29 +#: agenda/templates/agenda/widget.html:40 msgid "Show summary for this item" msgstr "Zusammenfassung für diesen Eintrag anzeigen" +#: agenda/templates/agenda/overlay_speaker_projector.html:27 +#: agenda/templates/agenda/view.html:153 +#: agenda/templates/projector/agenda_list_of_speaker.html:32 +msgid "The list of speakers is empty." +msgstr "Die Rednerliste ist leer." + #: agenda/templates/agenda/overview.html:47 msgid "Do you want to save the changed order of agenda items?" msgstr "Möchten Sie die geänderte Reihenfolge der Einträge speichern?" -#: agenda/templates/agenda/overview.html:49 assignment/models.py:291 -#: assignment/views.py:589 assignment/templates/assignment/view.html:206 -#: assignment/templates/assignment/view.html:210 +#: agenda/templates/agenda/overview.html:49 +#: agenda/templates/agenda/view.html:130 assignment/models.py:288 +#: assignment/views.py:593 assignment/templates/assignment/view.html:204 +#: assignment/templates/assignment/view.html:208 #: assignment/templates/projector/Assignment.html:78 -#: assignment/templates/projector/Assignment.html:82 motion/models.py:617 -#: motion/pdf.py:134 motion/templates/motion/motion_detail.html:66 -#: motion/templates/projector/Motion.html:37 utils/utils.py:45 +#: assignment/templates/projector/Assignment.html:82 motion/models.py:725 +#: motion/pdf.py:147 motion/pdf.py:269 +#: motion/templates/motion/motion_detail.html:210 +#: motion/templates/projector/Motion.html:37 utils/utils.py:46 #: utils/views.py:146 msgid "Yes" msgstr "Ja" -#: agenda/templates/agenda/overview.html:50 assignment/models.py:291 -#: assignment/views.py:590 assignment/templates/assignment/view.html:207 -#: assignment/templates/projector/Assignment.html:79 motion/models.py:617 -#: motion/pdf.py:134 motion/templates/motion/motion_detail.html:67 -#: motion/templates/projector/Motion.html:38 utils/utils.py:45 +#: agenda/templates/agenda/overview.html:50 +#: agenda/templates/agenda/view.html:131 assignment/models.py:288 +#: assignment/views.py:594 assignment/templates/assignment/view.html:205 +#: assignment/templates/projector/Assignment.html:79 motion/models.py:725 +#: motion/pdf.py:147 motion/pdf.py:270 +#: motion/templates/motion/motion_detail.html:211 +#: motion/templates/projector/Motion.html:38 utils/utils.py:46 #: utils/views.py:146 msgid "No" msgstr "Nein" -#: agenda/templates/agenda/overview.html:60 -msgid "Start of event" -msgstr "Beginn der Veranstaltung" - -#: agenda/templates/agenda/overview.html:64 -msgid "Estimated end" -msgstr "Voraussichtliches Ende" - -#: agenda/templates/agenda/overview.html:72 +#: agenda/templates/agenda/overview.html:58 #: assignment/templates/assignment/overview.html:12 +#: mediafile/templates/mediafile/mediafile_list.html:12 +#: motion/templates/motion/category_list.html:13 +#: motion/templates/motion/motion_list.html:14 #: participant/templates/participant/group_overview.html:11 -#: participant/templates/participant/overview.html:20 +#: participant/templates/participant/overview.html:26 #: projector/templates/projector/custom_slide_widget.html:39 msgid "New" msgstr "Neu" -#: agenda/templates/agenda/overview.html:74 +#: agenda/templates/agenda/overview.html:60 msgid "Print agenda as PDF" msgstr "Tagesordnung als PDF drucken" +#: agenda/templates/agenda/overview.html:68 +msgid "Start of event" +msgstr "Beginn der Veranstaltung" + +#: agenda/templates/agenda/overview.html:72 +msgid "Estimated end" +msgstr "Voraussichtliches Ende" + #: agenda/templates/agenda/overview.html:79 msgid "Hide closed items" msgstr "Verstecke abgeschlossene Einträge" @@ -499,34 +433,104 @@ msgid "Item" msgstr "Eintrag" #: agenda/templates/agenda/overview.html:93 -#, fuzzy msgid "Duration" -msgstr "Dauer (hh:mm)" +msgstr "Dauer" #: agenda/templates/agenda/overview.html:96 #: assignment/templates/assignment/overview.html:38 +#: mediafile/templates/mediafile/mediafile_list.html:24 +#: motion/templates/motion/category_list.html:23 +#: motion/templates/motion/motion_detail.html:103 +#: motion/templates/motion/motion_list.html:62 #: participant/templates/participant/group_overview.html:19 -#: participant/templates/participant/overview.html:108 +#: participant/templates/participant/overview.html:71 msgid "Actions" msgstr "Aktionen" #: agenda/templates/agenda/overview.html:133 -#: agenda/templates/agenda/widget.html:40 +#: agenda/templates/agenda/widget.html:51 #: projector/templates/projector/custom_slide_widget.html:34 msgid "No items available." msgstr "Keine Einträge vorhanden." -#: agenda/templates/agenda/view.html:15 +#: agenda/templates/agenda/speaker_widget.html:5 +msgid "Put me on the current list of speakers" +msgstr "Auf die aktuelle Rednerliste setzen" + +#: agenda/templates/agenda/view.html:33 #: assignment/templates/assignment/view.html:29 +#: motion/templates/motion/motion_detail.html:34 msgid "More actions" msgstr "Mehr Aktionen" -#: agenda/templates/agenda/view.html:21 +#: agenda/templates/agenda/view.html:38 msgid "Delete item" msgstr "Eintrag löschen" -#: agenda/templates/agenda/widget.html:9 -#: agenda/templates/agenda/widget.html:25 +#: agenda/templates/agenda/view.html:62 +msgid "closed" +msgstr "geschlossen" + +#: agenda/templates/agenda/view.html:66 +msgid "Open list" +msgstr "Liste öffnen" + +#: agenda/templates/agenda/view.html:68 +msgid "Close list" +msgstr "Liste schließen" + +#: agenda/templates/agenda/view.html:74 agenda/templates/agenda/widget.html:34 +msgid "Show list of speakers" +msgstr "Rednerliste projizieren" + +#: agenda/templates/agenda/view.html:76 +msgid "Show list" +msgstr "Liste projizieren" + +#: agenda/templates/agenda/view.html:84 +msgid "Last speakers" +msgstr "Letzte Redner" + +#: agenda/templates/agenda/view.html:88 +msgid "Show all speakers" +msgstr "Alle Redner anzeigen" + +#: agenda/templates/agenda/view.html:127 +msgid "Do you want to save the changed order of speakers?" +msgstr "Möchten Sie die geänderte Reihenfolge der Einträge speichern?" + +#: agenda/templates/agenda/view.html:138 +msgid "Next speakers:" +msgstr "Nächste Redner" + +#: agenda/templates/agenda/view.html:146 +msgid "Next speaker" +msgstr "Nächster Redner" + +#: agenda/templates/agenda/view.html:160 +msgid "Remove me from the list" +msgstr "Entferne mich von der Liste" + +#: agenda/templates/agenda/view.html:162 +msgid "Put me on the list" +msgstr "Setze mich auf die Liste" + +#: agenda/templates/agenda/view.html:173 +#: assignment/templates/assignment/poll_view.html:83 +#: assignment/templates/assignment/view.html:112 +#: motion/templates/motion/poll_form.html:70 +#: projector/templates/projector/overlay_message_widget.html:9 +#: templates/formbuttons_saveapply.html:7 +msgid "Apply" +msgstr "Übernehmen" + +#: agenda/templates/agenda/view.html:175 +#: assignment/templates/assignment/view.html:114 +msgid "Add new participant" +msgstr "Neue/n Teilnehmer/in hinzufügen" + +#: agenda/templates/agenda/widget.html:11 +#: agenda/templates/agenda/widget.html:29 #: assignment/templates/assignment/widget.html:13 #: motion/templates/motion/widget.html:13 #: participant/templates/participant/group_widget.html:14 @@ -536,8 +540,8 @@ msgstr "Eintrag löschen" msgid "Preview" msgstr "Vorschau" -#: assignment/forms.py:24 assignment/models.py:51 assignment/views.py:383 -#: assignment/templates/assignment/view.html:275 +#: assignment/forms.py:24 assignment/models.py:49 assignment/views.py:382 +#: assignment/templates/assignment/view.html:273 #: assignment/templates/projector/Assignment.html:21 msgid "Number of available posts" msgstr "Anzahl der zur Wahl stehenden Posten" @@ -546,181 +550,181 @@ msgstr "Anzahl der zur Wahl stehenden Posten" msgid "Nominate a participant" msgstr "Teilnehmer/in vorschlagen" -#: assignment/forms.py:41 -msgid "Only publish voting results for selected winners (Projector view only)" -msgstr "" -"Wahlergebnisse der nicht gewählten Kandidaten auf dem Projektor verbergen" - -#: assignment/forms.py:46 motion/forms.py:110 -msgid "Number of ballot papers (selection)" -msgstr "Anzahl der Stimmzettel (Vorauswahl)" - -#: assignment/forms.py:48 motion/forms.py:112 -msgid "Number of all delegates" -msgstr "Anzahl aller Delegierten" - -#: assignment/forms.py:49 motion/forms.py:113 -msgid "Number of all participants" -msgstr "Anzahl aller Teilnehmer/innen" - -#: assignment/forms.py:50 motion/forms.py:114 -msgid "Use the following custom number" -msgstr "Verwende die folgende benutzerdefinierte Anzahl" - -#: assignment/forms.py:55 motion/forms.py:121 -msgid "Custom number of ballot papers" -msgstr "Benutzerdefinierte Anzahl von Stimmzetteln" - -#: assignment/forms.py:59 -msgid "Title for PDF document (all elections)" -msgstr "Titel für PDF-Dokument (alle Wahlen)" - -#: assignment/forms.py:63 -msgid "Preamble text for PDF document (all elections)" -msgstr "Einleitungstext für PDF-Dokument (alle Wahlen) " - -#: assignment/forms.py:67 -msgid "Election method" -msgstr "Wahlmethode" - -#: assignment/forms.py:69 -msgid "Automatic assign of method." -msgstr "Automatische Zuordnung der Methode." - -#: assignment/forms.py:70 -msgid "Always one option per candidate." -msgstr "Eine Stimme pro Kandidat/in." - -#: assignment/forms.py:71 -msgid "Always Yes-No-Abstain per candidate." -msgstr "Ja, Nein, Enthaltung pro Kandidat/in." - -#: assignment/models.py:44 assignment/templates/assignment/overview.html:24 -#: assignment/templates/assignment/view.html:284 +#: assignment/models.py:42 assignment/templates/assignment/overview.html:24 +#: assignment/templates/assignment/view.html:282 msgid "Searching for candidates" msgstr "Auf Kandidatensuche" -#: assignment/models.py:45 assignment/templates/assignment/overview.html:25 -#: assignment/templates/assignment/view.html:288 +#: assignment/models.py:43 assignment/templates/assignment/overview.html:25 +#: assignment/templates/assignment/view.html:286 msgid "Voting" msgstr "Im Wahlvorgang" -#: assignment/models.py:46 assignment/templates/assignment/overview.html:26 -#: assignment/templates/assignment/view.html:292 +#: assignment/models.py:44 assignment/templates/assignment/overview.html:26 +#: assignment/templates/assignment/view.html:290 msgid "Finished" msgstr "Abgeschlossen" -#: assignment/models.py:49 +#: assignment/models.py:47 msgid "Name" msgstr "Name" -#: assignment/models.py:50 assignment/templates/assignment/view.html:57 -#: participant/models.py:144 +#: assignment/models.py:48 assignment/templates/assignment/view.html:57 +#: participant/models.py:139 msgid "Description" msgstr "Beschreibung" -#: assignment/models.py:54 +#: assignment/models.py:52 msgid "Comment on the ballot paper" msgstr "Kommentar für den Stimmzettel" -#: assignment/models.py:64 +#: assignment/models.py:62 #, python-format msgid "%s is not a valid status." msgstr "%s ist kein gültiger Status." -#: assignment/models.py:67 +#: assignment/models.py:65 #, python-format msgid "The assignment status is already %s." msgstr "Der Wahlstatus ist bereits %s." -#: assignment/models.py:80 +#: assignment/models.py:78 #, python-format msgid "%s is already a candidate." msgstr "%s ist bereits ein/e Kandidat/in." -#: assignment/models.py:82 assignment/views.py:196 +#: assignment/models.py:80 assignment/views.py:195 msgid "The candidate list is already closed." msgstr "Die Kandidatenliste ist bereits geschlossen." -#: assignment/models.py:89 +#: assignment/models.py:87 #, python-format msgid "%s does not want to be a candidate." msgstr "%s möchte nicht kandidieren." -#: assignment/models.py:103 +#: assignment/models.py:101 #, python-format msgid "%s is no candidate" msgstr "%s ist kein/e Kandidat/in" -#: assignment/models.py:244 +#: assignment/models.py:242 msgid "Can see assignment" msgstr "Darf Wahlen sehen" -#: assignment/models.py:246 +#: assignment/models.py:243 msgid "Can nominate another person" msgstr "Darf andere Personen für Wahlen vorschlagen" -#: assignment/models.py:247 -msgid "Can nominate themselves" +#: assignment/models.py:244 +msgid "Can nominate oneself" msgstr "Darf selbst für Wahlen kandidieren" -#: assignment/models.py:248 +#: assignment/models.py:245 msgid "Can manage assignment" msgstr "Darf Wahlen verwalten" -#: assignment/models.py:291 motion/models.py:617 +#: assignment/models.py:288 motion/models.py:725 msgid "Abstain" msgstr "Enthaltung" -#: assignment/models.py:293 motion/templates/motion/poll_form.html:16 +#: assignment/models.py:290 motion/templates/motion/poll_form.html:38 msgid "Votes" msgstr "Stimmen" -#: assignment/models.py:310 motion/models.py:631 +#: assignment/models.py:307 motion/models.py:739 #, python-format msgid "Ballot %d" msgstr "Wahlgang %d" -#: assignment/models.py:319 assignment/views.py:338 assignment/views.py:678 -#: assignment/views.py:693 assignment/templates/assignment/config.html:10 +#: assignment/signals.py:31 +msgid "Only publish voting results for selected winners (Projector view only)" +msgstr "" +"Wahlergebnisse der nicht gewählten Kandidaten auf dem Projektor verbergen" + +#: assignment/signals.py:39 motion/signals.py:58 +msgid "Number of ballot papers (selection)" +msgstr "Anzahl der Stimmzettel (Vorauswahl)" + +#: assignment/signals.py:41 motion/signals.py:60 +msgid "Number of all delegates" +msgstr "Anzahl aller Delegierten" + +#: assignment/signals.py:42 motion/signals.py:61 +msgid "Number of all participants" +msgstr "Anzahl aller Teilnehmer/innen" + +#: assignment/signals.py:43 motion/signals.py:62 +msgid "Use the following custom number" +msgstr "Verwende die folgende benutzerdefinierte Anzahl" + +#: assignment/signals.py:51 motion/signals.py:70 +msgid "Custom number of ballot papers" +msgstr "Benutzerdefinierte Anzahl von Stimmzetteln" + +#: assignment/signals.py:54 assignment/signals.py:78 assignment/views.py:337 +#: assignment/views.py:643 assignment/views.py:658 #: assignment/templates/assignment/overview.html:5 #: assignment/templates/assignment/overview.html:9 msgid "Elections" msgstr "Wahlen" -#: assignment/views.py:80 +#: assignment/signals.py:58 +msgid "Title for PDF document (all elections)" +msgstr "Titel für PDF-Dokument (alle Wahlen)" + +#: assignment/signals.py:65 +msgid "Preamble text for PDF document (all elections)" +msgstr "Einleitungstext für PDF-Dokument (alle Wahlen) " + +#: assignment/signals.py:72 +msgid "Election method" +msgstr "Wahlmethode" + +#: assignment/signals.py:74 +msgid "Automatic assign of method" +msgstr "Automatische Zuordnung der Methode" + +#: assignment/signals.py:75 +msgid "Always one option per candidate" +msgstr "Eine Stimme pro Kandidat/in" + +#: assignment/signals.py:76 +msgid "Always Yes-No-Abstain per candidate" +msgstr "Ja, Nein, Enthaltung pro Kandidat/in" + +#: assignment/views.py:79 #, python-format msgid "Candidate %s was nominated successfully." msgstr "Kandidat/in %s wurde erfolgreich vorgeschlagen." -#: assignment/views.py:122 +#: assignment/views.py:121 msgid "New election was successfully created." msgstr "Neue Wahl wurde erfolgreich angelegt." -#: assignment/views.py:124 +#: assignment/views.py:123 msgid "Election was successfully modified." msgstr "Wahl wurde erfolgreich geändert." -#: assignment/views.py:130 participant/views.py:501 participant/views.py:525 -#: utils/views.py:259 utils/views.py:281 utils/views.py:291 +#: assignment/views.py:129 participant/views.py:443 participant/views.py:467 +#: utils/views.py:273 utils/views.py:295 utils/views.py:305 msgid "Please check the form for errors." msgstr "Bitte kontrollieren Sie das Formular nach Fehlern." -#: assignment/views.py:150 +#: assignment/views.py:149 #, python-format msgid "Election %s was successfully deleted." msgstr "Wahl %s wurde erfolgreich gelöscht." -#: assignment/views.py:163 +#: assignment/views.py:162 #, python-format msgid "Election status was set to: %s." msgstr "Wahlstatus wurde gesetzt auf: %s." -#: assignment/views.py:176 +#: assignment/views.py:175 msgid "You have set your candidature successfully." msgstr "Sie haben Ihre Kandidatur erfolgreich gesetzt." -#: assignment/views.py:193 +#: assignment/views.py:192 msgid "" "You have withdrawn your candidature successfully. You can not be nominated " "by other participants anymore." @@ -728,98 +732,98 @@ msgstr "" "Sie haben Ihre Kandidatur erfolgreich zurückgezogen. Sie können nun von " "anderen Teilnehmer/innen nicht mehr vorgeschlagen werden." -#: assignment/views.py:215 +#: assignment/views.py:214 #, python-format msgid "Candidate %s was withdrawn successfully." msgstr "Die Kandidatur von %s wurde erfolgreich zurückgezogen." -#: assignment/views.py:217 +#: assignment/views.py:216 #, python-format msgid "%s was unblocked successfully." msgstr "%s wurde erfolgreich freigegeben." -#: assignment/views.py:221 +#: assignment/views.py:220 #, python-format msgid "Do you really want to withdraw %s from the election?" msgstr "Soll %s wirklich von der Wahl zurückgezogen werden?" -#: assignment/views.py:223 +#: assignment/views.py:222 #, python-format msgid "Do you really want to unblock %s for the election?" msgstr "Soll %s wirklich für die Wahl freigegeben werden?" -#: assignment/views.py:238 +#: assignment/views.py:237 msgid "New ballot was successfully created." msgstr "Neuer Wahlgang erfolgreich angelegt." -#: assignment/views.py:270 +#: assignment/views.py:269 #, python-format msgid "Ballot ID %d does not exist." msgstr "Wahlgang-ID %d existiert nicht." -#: assignment/views.py:277 +#: assignment/views.py:276 msgid "Ballot successfully published." msgstr "Wahlgang wurde erfolgreich veröffentlicht." -#: assignment/views.py:279 +#: assignment/views.py:278 msgid "Ballot successfully unpublished." msgstr "Wahlgang wurde erfolgreich unveröffentlicht." -#: assignment/views.py:292 +#: assignment/views.py:291 msgid "not elected" msgstr "nicht gewählt" -#: assignment/views.py:295 assignment/views.py:484 +#: assignment/views.py:294 assignment/views.py:483 #: assignment/templates/assignment/view.html:77 msgid "elected" msgstr "gewählt" -#: assignment/views.py:323 +#: assignment/views.py:322 msgid "Ballot was successfully deleted." msgstr "Abstimmung wurde erfolgreich gelöscht." -#: assignment/views.py:335 +#: assignment/views.py:334 msgid "Assignment" msgstr "Wahl" -#: assignment/views.py:358 assignment/templates/assignment/overview.html:74 +#: assignment/views.py:357 assignment/templates/assignment/overview.html:74 #: assignment/templates/assignment/widget.html:19 msgid "No assignments available." msgstr "Keine Wahlen vorhanden." -#: assignment/views.py:377 +#: assignment/views.py:376 #, python-format msgid "Election: %s" msgstr "Wahlen: %s" -#: assignment/views.py:390 assignment/views.py:426 +#: assignment/views.py:389 assignment/views.py:425 #: assignment/templates/assignment/overview.html:36 #: assignment/templates/assignment/poll_view.html:34 #: assignment/templates/assignment/view.html:66 -#: assignment/templates/assignment/view.html:157 +#: assignment/templates/assignment/view.html:155 #: assignment/templates/projector/Assignment.html:38 #: assignment/templates/projector/Assignment.html:56 msgid "Candidates" msgstr "Kandidaten/innen" -#: assignment/views.py:415 motion/pdf.py:120 -#: motion/templates/motion/motion_detail.html:46 +#: assignment/views.py:414 motion/pdf.py:133 +#: motion/templates/motion/motion_detail.html:197 msgid "Vote results" msgstr "Abstimmungsergebnis" -#: assignment/views.py:419 assignment/templates/assignment/poll_view.html:5 +#: assignment/views.py:418 assignment/templates/assignment/poll_view.html:5 #: assignment/templates/assignment/poll_view.html:11 -#: assignment/templates/assignment/view.html:152 -#: assignment/templates/assignment/view.html:160 +#: assignment/templates/assignment/view.html:150 +#: assignment/templates/assignment/view.html:158 #: assignment/templates/projector/Assignment.html:59 msgid "ballot" msgstr "Wahlgang" -#: assignment/views.py:422 +#: assignment/views.py:421 msgid "ballots" msgstr "Wahlgänge" -#: assignment/views.py:447 +#: assignment/views.py:446 #, python-format msgid "" "Y: %(YES)s\n" @@ -830,25 +834,25 @@ msgstr "" "N: %(NO)s\n" "E: %(ABSTAIN)s" -#: assignment/views.py:458 assignment/templates/assignment/poll_view.html:51 -#: assignment/templates/assignment/view.html:224 +#: assignment/views.py:457 assignment/templates/assignment/poll_view.html:51 +#: assignment/templates/assignment/view.html:222 #: assignment/templates/projector/Assignment.html:96 -#: motion/templates/motion/poll_form.html:25 +#: motion/templates/motion/poll_form.html:47 msgid "Invalid votes" msgstr "Ungültige Stimmen" -#: assignment/views.py:465 assignment/templates/assignment/poll_view.html:61 -#: assignment/templates/assignment/view.html:240 -#: assignment/templates/assignment/view.html:245 +#: assignment/views.py:464 assignment/templates/assignment/poll_view.html:61 +#: assignment/templates/assignment/view.html:238 +#: assignment/templates/assignment/view.html:243 #: assignment/templates/projector/Assignment.html:109 -#: assignment/templates/projector/Assignment.html:115 motion/pdf.py:135 -#: motion/templates/motion/motion_detail.html:71 -#: motion/templates/motion/poll_form.html:29 +#: assignment/templates/projector/Assignment.html:115 motion/pdf.py:148 +#: motion/templates/motion/motion_detail.html:215 +#: motion/templates/motion/poll_form.html:51 #: motion/templates/projector/Motion.html:42 poll/models.py:76 msgid "Votes cast" msgstr "Abgegebene Stimmen" -#: assignment/views.py:525 assignment/views.py:543 +#: assignment/views.py:524 assignment/views.py:542 #: assignment/templates/assignment/overview.html:35 #: assignment/templates/assignment/poll_view.html:5 #: assignment/templates/assignment/view.html:6 @@ -856,40 +860,32 @@ msgstr "Abgegebene Stimmen" msgid "Election" msgstr "Wahl" -#: assignment/views.py:550 +#: assignment/views.py:549 #, python-format msgid "%d. ballot" msgstr "%d. Wahlgang" -#: assignment/views.py:552 +#: assignment/views.py:551 #, python-format msgid "%d candidate" msgid_plural "%d candidates" msgstr[0] "%d Kandidat/in" msgstr[1] "%d Kandidaten/innen" -#: assignment/views.py:554 +#: assignment/views.py:553 #, python-format msgid "%d available post" msgid_plural "%d available posts" msgstr[0] "%d verfügbare Posten" msgstr[1] "%d verfügbare Posten" -#: assignment/views.py:590 assignment/templates/assignment/view.html:208 -#: assignment/templates/projector/Assignment.html:80 motion/pdf.py:134 -#: motion/templates/motion/motion_detail.html:68 +#: assignment/views.py:594 assignment/templates/assignment/view.html:206 +#: assignment/templates/projector/Assignment.html:80 motion/pdf.py:147 +#: motion/pdf.py:271 motion/templates/motion/motion_detail.html:212 #: motion/templates/projector/Motion.html:39 msgid "Abstention" msgstr "Enthaltung" -#: assignment/views.py:671 -msgid "Election settings successfully saved." -msgstr "Wahl-Einstellungen wurden erfolgreich gespeichert." - -#: assignment/templates/assignment/config.html:5 -msgid "Election settings" -msgstr "Wahl-Einstellungen" - #: assignment/templates/assignment/edit.html:8 #: assignment/templates/assignment/edit.html:17 #: assignment/templates/assignment/view.html:34 @@ -907,16 +903,17 @@ msgid "Print all elections as PDF" msgstr "Alle Wahlen als PDF drucken" #: assignment/templates/assignment/overview.html:21 -#: participant/templates/participant/overview.html:53 msgid "Filter" msgstr "Filter" #: assignment/templates/assignment/overview.html:23 #: assignment/templates/assignment/overview.html:37 -#: assignment/templates/assignment/view.html:272 +#: assignment/templates/assignment/view.html:270 #: assignment/templates/projector/Assignment.html:18 +#: motion/templates/motion/motion_detail.html:185 +#: motion/templates/motion/motion_list.html:38 +#: motion/templates/motion/motion_list.html:59 #: motion/templates/projector/Motion.html:11 -#: participant/templates/participant/overview.html:84 msgid "Status" msgstr "Status" @@ -960,33 +957,32 @@ msgid "Short description (for ballot paper)" msgstr "Kurzbeschreibung (für Stimmzettel)" #: assignment/templates/assignment/poll_view.html:29 -#: motion/templates/motion/poll_form.html:9 +#: motion/templates/motion/poll_form.html:30 msgid "Special values" msgstr "Spezielle Werte" #: assignment/templates/assignment/poll_view.html:29 -#: motion/templates/motion/poll_form.html:9 poll/models.py:234 +#: motion/templates/motion/poll_form.html:30 poll/models.py:234 msgid "majority" msgstr "Mehrheit" #: assignment/templates/assignment/poll_view.html:29 -#: motion/templates/motion/poll_form.html:9 poll/models.py:236 +#: motion/templates/motion/poll_form.html:30 poll/models.py:236 #: poll/models.py:238 msgid "undocumented" msgstr "nicht erfasst" #: assignment/templates/assignment/poll_view.html:74 +#: motion/templates/motion/poll_form.html:61 msgid "Ballot paper as PDF" msgstr "Stimmzettel als PDF" -#: assignment/templates/assignment/poll_view.html:83 -#: assignment/templates/assignment/view.html:112 -#: motion/templates/motion/motion_form.html:17 -#: motion/templates/motion/poll_form.html:41 -#: projector/templates/projector/control_overlay_message.html:7 -#: templates/formbuttons_saveapply.html:7 -msgid "Apply" -msgstr "Übernehmen" +#: assignment/templates/assignment/poll_view.html:80 +#: motion/templates/motion/poll_form.html:67 +#: projector/templates/projector/select_widgets.html:28 +#: templates/formbuttons_save.html:4 templates/formbuttons_saveapply.html:4 +msgid "Save" +msgstr "Speichern" #: assignment/templates/assignment/view.html:36 msgid "Delete election" @@ -997,11 +993,12 @@ msgid "Ballot" msgstr "Wahlgang" #: assignment/templates/assignment/view.html:46 +#: motion/templates/motion/motion_detail.html:49 msgid "New agenda item" msgstr "Neuer Tagesordnungseintrag" #: assignment/templates/assignment/view.html:73 -#: assignment/templates/assignment/view.html:132 +#: assignment/templates/assignment/view.html:130 msgid "Remove candidate" msgstr "Kandidate/in entfernen" @@ -1022,446 +1019,762 @@ msgstr "Eigene Kandidatur zurückziehen" msgid "Self candidature" msgstr "Selbst kandidieren" -#: assignment/templates/assignment/view.html:114 -msgid "Add new participant" -msgstr "Neue/n Teilnehmer/in hinzufügen" - -#: assignment/templates/assignment/view.html:127 +#: assignment/templates/assignment/view.html:125 msgid "Blocked Candidates" msgstr "Blockierte Kandidaten/innen" -#: assignment/templates/assignment/view.html:137 +#: assignment/templates/assignment/view.html:135 msgid "No blocked candidates available." msgstr "Keine blockierten Kandidaten/innen vorhanden." -#: assignment/templates/assignment/view.html:145 +#: assignment/templates/assignment/view.html:143 #: assignment/templates/projector/Assignment.html:52 msgid "Election results" msgstr "Wahlergebnisse" -#: assignment/templates/assignment/view.html:165 +#: assignment/templates/assignment/view.html:163 msgid "Publish/unpublish results" msgstr "Ergebnisse veröffentlichen/unveröffentlichen" -#: assignment/templates/assignment/view.html:180 -#: assignment/templates/assignment/view.html:261 +#: assignment/templates/assignment/view.html:178 +#: assignment/templates/assignment/view.html:259 msgid "New ballot" msgstr "Neuer Wahlgang" -#: assignment/templates/assignment/view.html:193 +#: assignment/templates/assignment/view.html:191 #: assignment/templates/projector/Assignment.html:69 msgid "Candidate is elected" msgstr "Kandidat/in ist gewählt" -#: assignment/templates/assignment/view.html:212 +#: assignment/templates/assignment/view.html:210 #: assignment/templates/projector/Assignment.html:84 msgid "was not a
          candidate" msgstr "war kein Kandidat" -#: assignment/templates/assignment/view.html:229 -#: assignment/templates/projector/Assignment.html:100 motion/pdf.py:134 -#: motion/templates/motion/motion_detail.html:69 +#: assignment/templates/assignment/view.html:227 +#: assignment/templates/projector/Assignment.html:100 motion/pdf.py:147 +#: motion/templates/motion/motion_detail.html:213 #: motion/templates/projector/Motion.html:40 msgid "Invalid" msgstr "Ungültig" -#: assignment/templates/assignment/view.html:257 +#: assignment/templates/assignment/view.html:255 msgid "No ballots available." msgstr "Keine Wahlgänge vorhanden." -#: assignment/templates/assignment/view.html:281 +#: assignment/templates/assignment/view.html:279 msgid "Change status" msgstr "Status ändern" -#: config/forms.py:22 -msgid "Event name" -msgstr "Veranstaltungsname" - -#: config/forms.py:28 -msgid "Short description of event" -msgstr "Kurzbeschreibung der Veranstaltung" - -#: config/forms.py:36 -msgid "Event date" -msgstr "Veranstaltungszeitraum" - -#: config/forms.py:42 -msgid "Event location" -msgstr "Veranstaltungsort" - -#: config/forms.py:48 -msgid "Event organizer" -msgstr "Veranstalter" - -#: config/forms.py:53 -msgid "Allow access for anonymous guest users" -msgstr "Erlaube Zugriff für anonyme Gast-Nutzer" - -#: config/forms.py:65 participant/forms.py:126 -msgid "Welcome text" -msgstr "Willkommenstext" - -#: config/models.py:39 +#: config/models.py:31 msgid "Can manage configuration" msgstr "Darf die Konfiguration verwalten" -#: config/models.py:83 -msgid "Presentation and assembly system" -msgstr "Präsentations- und Versammlungssystem" +#: config/views.py:118 +#, python-format +msgid "%s settings successfully saved." +msgstr "Konfiguration '%s' erfolgreich gespeichert." -#: config/models.py:88 -msgid "Welcome to OpenSlides" -msgstr "Willkommen bei OpenSlides" +#: config/views.py:127 config/templates/config/config_form.html:8 +msgid "Configuration" +msgstr "Konfiguration" -#: config/models.py:89 -msgid "[Place for your welcome text.]" -msgstr "[Platz für Ihren Begrüßungstext.]" - -#: config/models.py:102 config/templates/config/general.html:10 -msgid "General" -msgstr "Allgemein" - -#: config/models.py:126 config/templates/config/version.html:5 -#: config/templates/config/version.html:8 -#: config/templates/config/version.html:13 motion/pdf.py:104 +#: config/templates/config/config_form.html:16 +#: core/templates/core/version.html:5 core/templates/core/version.html.py:9 +#: core/templates/core/version.html:17 core/templates/core/version.html:23 +#: motion/pdf.py:117 motion/templates/motion/motion_detail.html:20 +#: motion/templates/motion/motion_diff.html:36 +#: motion/templates/motion/motion_diff.html:40 msgid "Version" msgstr "Version" -#: config/views.py:70 -msgid "General settings successfully saved." -msgstr "Allgemeine Einstellungen erfolgreich gespeichert." +#: core/signals.py:35 +msgid "Event name" +msgstr "Veranstaltungsname" -#: config/templates/config/general.html:5 -msgid "General settings" -msgstr "Allgemeine Einstellungen" +#: core/signals.py:40 +msgid "Presentation and assembly system" +msgstr "Präsentations- und Versammlungssystem" -#: config/templates/config/general.html:15 +#: core/signals.py:43 +msgid "Short description of event" +msgstr "Kurzbeschreibung der Veranstaltung" + +#: core/signals.py:52 +msgid "Event date" +msgstr "Veranstaltungszeitraum" + +#: core/signals.py:60 +msgid "Event location" +msgstr "Veranstaltungsort" + +#: core/signals.py:68 +msgid "Event organizer" +msgstr "Veranstalter" + +#: core/signals.py:73 +msgid "Welcome to OpenSlides" +msgstr "Willkommen bei OpenSlides" + +#: core/signals.py:81 +msgid "[Place for your welcome text.]" +msgstr "[Platz für Ihren Begrüßungstext.]" + +#: core/signals.py:84 participant/signals.py:46 +msgid "Welcome text" +msgstr "Willkommenstext" + +#: core/signals.py:91 +msgid "Allow access for anonymous guest users" +msgstr "Erlaube Zugriff für anonyme Gast-Nutzer" + +#: core/signals.py:95 msgid "Event" msgstr "Veranstaltung" -#: config/templates/config/general.html:33 +#: core/signals.py:99 msgid "Welcome Widget" msgstr "Willkommens-Widget" -#: config/templates/config/general.html:51 +#: core/signals.py:103 msgid "System" msgstr "System" -#: motion/forms.py:38 motion/models.py:472 +#: core/signals.py:107 +msgid "General" +msgstr "Allgemein" + +#: mediafile/models.py:26 +msgid "File" +msgstr "Datei" + +#: mediafile/models.py:35 mediafile/templates/mediafile/mediafile_list.html:22 +msgid "Uploaded by" +msgstr "Hochgeladen durch" + +#: mediafile/models.py:50 +msgid "Can see the list of files" +msgstr "Darf Dateilisten sehen" + +#: mediafile/models.py:51 +msgid "Can upload files" +msgstr "Darf Dateien hochladen" + +#: mediafile/models.py:52 +msgid "Can manage files" +msgstr "Darf Dateien verwalten" + +#: mediafile/models.py:65 mediafile/models.py:67 +msgid "unknown" +msgstr "unbekannt" + +#: mediafile/views.py:101 mediafile/templates/mediafile/mediafile_list.html:6 +#: mediafile/templates/mediafile/mediafile_list.html:9 +msgid "Media" +msgstr "Medien" + +#: mediafile/templates/mediafile/mediafile_form.html:8 +#: mediafile/templates/mediafile/mediafile_form.html:17 +msgid "Edit media" +msgstr "Mediendatei bearbeiten" + +#: mediafile/templates/mediafile/mediafile_form.html:10 +#: mediafile/templates/mediafile/mediafile_form.html:19 +#: mediafile/templates/mediafile/mediafile_list.html:12 +msgid "New media" +msgstr "Neue Mediendatei" + +#: mediafile/templates/mediafile/mediafile_list.html:20 +msgid "Size" +msgstr "Größe" + +#: mediafile/templates/mediafile/mediafile_list.html:21 +msgid "Upload time" +msgstr "Hochladezeitpunkt" + +#: mediafile/templates/mediafile/mediafile_list.html:45 +msgid "No media available." +msgstr "Keine Mediendatei vorhanden." + +#: motion/forms.py:44 motion/models.py:571 motion/pdf.py:170 +#: motion/templates/motion/motion_detail.html:82 +#: motion/templates/motion/motion_diff.html:55 #: motion/templates/projector/Motion.html:77 msgid "Reason" msgstr "Begründung" -#: motion/forms.py:59 motion/pdf.py:42 +#: motion/forms.py:67 motion/pdf.py:55 +#: motion/templates/motion/motion_detail.html:165 +#: motion/templates/motion/motion_list.html:60 #: motion/templates/projector/Motion.html:55 msgid "Submitter" msgstr "Antragsteller/in" -#: motion/forms.py:73 motion/pdf.py:66 +#: motion/forms.py:81 motion/pdf.py:79 +#: motion/templates/motion/motion_detail.html:172 msgid "Supporters" msgstr "Unterstützer/innen" -#: motion/forms.py:88 -msgid "Create new version" -msgstr "" +#: motion/forms.py:96 +msgid "Don't create a new version" +msgstr "Keine neue Version erzeugen" -#: motion/forms.py:89 -msgid "Trivial changes don't create a new version." -msgstr "Triviale Änderungen erzeugen keine neue Version." +#: motion/forms.py:97 +msgid "Don't create a new version. Useful e.g. for trivial changes." +msgstr "Keine neue Version erzeugen. Nützlich z.B. für triviale Änderungen." -#: motion/forms.py:98 -msgid "Number of (minimum) required supporters for a motion" -msgstr "Mindestanzahl erforderlicher Unterstützer/innen für einen Antrag" +#: motion/forms.py:105 motion/templates/motion/motion_detail.html:235 +msgid "Category" +msgstr "Sachgebiet" -#: motion/forms.py:100 -msgid "Choose 0 to disable the supporting system" -msgstr "Zum Deaktivieren des Unterstützersystems '0' eingeben" +#: motion/forms.py:111 motion/signals.py:105 +msgid "Identifier" +msgstr "Bezeichner" -#: motion/forms.py:105 -msgid "Motion preamble" -msgstr "Antragseinleitung" - -#: motion/forms.py:126 -msgid "Title for PDF document (all motions)" -msgstr "Titel für PDF-Dokument (alle Anträge)" - -#: motion/forms.py:131 -msgid "Preamble text for PDF document (all motions)" -msgstr "Einleitungstext für PDF-Dokument (alle Wahlen) " - -#: motion/forms.py:136 -msgid "Create new versions" -msgstr "" - -#: motion/forms.py:139 -msgid "create allways a new versions" -msgstr "" - -#: motion/forms.py:140 -#, fuzzy -msgid "create never a new version" -msgstr "Triviale Änderungen erzeugen keine neue Version." - -#: motion/forms.py:141 -#, fuzzy -msgid "Let the user choose if he wants to create a new version" -msgstr "Triviale Änderungen erzeugen keine neue Version." - -#: motion/forms.py:146 -msgid "Workflow for the motions" -msgstr "" - -#: motion/models.py:75 +#: motion/models.py:90 msgid "Can see motions" msgstr "Darf Anträge sehen" -#: motion/models.py:76 +#: motion/models.py:91 msgid "Can create motions" msgstr "Darf Anträge erstellen" -#: motion/models.py:77 +#: motion/models.py:92 msgid "Can support motions" msgstr "Darf Anträge unterstützen" -#: motion/models.py:78 +#: motion/models.py:93 msgid "Can manage motions" msgstr "Darf Anträge verwalten" -#: motion/models.py:489 -#, fuzzy +#: motion/models.py:588 msgid "new" msgstr "Neu" -#: motion/pdf.py:35 motion/views.py:459 -#, fuzzy, python-format -msgid "Motion: %s" -msgstr "Anträge" +#: motion/models.py:635 motion/templates/motion/category_list.html:22 +msgid "Category name" +msgstr "Sachgebiet" -#: motion/pdf.py:55 +#: motion/models.py:638 motion/templates/motion/category_list.html:21 +msgid "Prefix" +msgstr "Präfix" + +#: motion/pdf.py:48 motion/views.py:614 +#, python-format +msgid "Motion: %s" +msgstr "Antrag: %s" + +#: motion/pdf.py:68 msgid "Signature" msgstr "Unterschrift" -#: motion/pdf.py:95 -#, fuzzy +#: motion/pdf.py:108 msgid "State" msgstr "Status" -#: motion/pdf.py:130 motion/templates/motion/motion_detail.html:53 -#: motion/templates/motion/motion_detail.html:61 +#: motion/pdf.py:143 motion/templates/motion/motion_detail.html:202 +#: motion/templates/motion/poll_form.html:6 +#: motion/templates/motion/poll_form.html:14 #: motion/templates/projector/Motion.html:33 msgid "Vote" msgstr "Abstimmung" -#: motion/pdf.py:151 -#, fuzzy -msgid "Reason:" -msgstr "Begründung" - -#: motion/pdf.py:167 +#: motion/pdf.py:254 motion/templates/motion/motion_list.html:104 msgid "No motions available." msgstr "Keine Anträge vorhanden." -#: motion/signals.py:24 +#: motion/pdf.py:265 +#, python-format +msgid "Motion No. %s" +msgstr "Antrag Nr. %s" + +#: motion/pdf.py:267 +#, python-format +msgid "%d. Vote" +msgstr "%d. Abstimmung" + +#: motion/signals.py:33 +msgid "Stop submitting new motions by non-staff users" +msgstr "" +"Einreichen von neuen Anträgen stoppen für Nutzer ohne Verwaltungsrechte" + +#: motion/signals.py:40 +msgid "Number of (minimum) required supporters for a motion" +msgstr "Mindestanzahl erforderlicher Unterstützer/innen für einen Antrag" + +#: motion/signals.py:44 +msgid "Choose 0 to disable the supporting system" +msgstr "Zum Deaktivieren des Unterstützersystems '0' eingeben" + +#: motion/signals.py:47 msgid "The assembly may decide," msgstr "Die Versammlung möge beschließen," -#: motion/signals.py:27 motion/views.py:457 motion/views.py:509 -#: motion/views.py:524 motion/templates/motion/config.html:10 -#: motion/templates/motion/motion_list.html:7 +#: motion/signals.py:51 +msgid "Motion preamble" +msgstr "Antragseinleitung" + +#: motion/signals.py:73 motion/views.py:612 motion/views.py:663 +#: motion/views.py:677 motion/templates/motion/category_list.html:6 +#: motion/templates/motion/motion_list.html:6 #: motion/templates/motion/motion_list.html:10 msgid "Motions" msgstr "Anträge" -#: motion/views.py:141 -#, fuzzy -msgid "Motion created" -msgstr "Antragseinleitung" +#: motion/signals.py:77 +msgid "Title for PDF document (all motions)" +msgstr "Titel für PDF-Dokument (alle Anträge)" -#: motion/views.py:158 -#, fuzzy -msgid "Motion updated" -msgstr "Antragstext" +#: motion/signals.py:84 +msgid "Preamble text for PDF document (all motions)" +msgstr "Einleitungstext für PDF-Dokument (alle Wahlen) " -#: motion/views.py:194 -#, fuzzy, python-format -msgid "Are you sure you want permit Version %s?" -msgstr "Soll Version %s wirklich zurückgewiesen werden?" +#: motion/signals.py:89 +msgid "Allow to disable versioning" +msgstr "Erlaubt Versionierung zu deaktiveren" -#: motion/views.py:220 -#, fuzzy, python-format -msgid "Are you sure you want reject Version %s?" -msgstr "Soll Version %s wirklich zurückgewiesen werden?" +#: motion/signals.py:96 +msgid "Workflow of new motions" +msgstr "Arbeitsablauf von neuen Anträgen" -#: motion/views.py:252 -msgid "You can not support this motion." -msgstr "Sie dürfen diesen Antrag nicht unterstützen." +#: motion/signals.py:107 +msgid "Set it manually" +msgstr "manuell setzen" -#: motion/views.py:255 -msgid "You can not unsupport this motion." -msgstr "Sie dürfen Ihre Unterstützung für diesen Antrag nicht entziehen." +#: motion/signals.py:108 +msgid "Numbered per category" +msgstr "pro Sachgebiet nummerieren" -#: motion/views.py:263 -msgid "Do you really want to support this motion?" -msgstr "Wollen Sie wirklich diesen Antrag unterstützen?" - -#: motion/views.py:265 -msgid "Do you really want to unsupport this motion?" -msgstr "Wollen Sie wirklich Ihre Unterstützung für diesen Antrag entziehen?" - -#: motion/views.py:277 -#, python-format -msgid "Supporter: +%s" -msgstr "Unterstützer/in: +%s" - -#: motion/views.py:280 -#, python-format -msgid "Supporter: -%s" -msgstr "Unterstützer/in: -%s" - -#: motion/views.py:285 -msgid "You have supported this motion successfully." -msgstr "Sie haben den Antrag erfolgreich unterstützt." - -#: motion/views.py:287 -msgid "You have unsupported this motion successfully." -msgstr "Sie haben dem Antrag erfolgreich Ihre Unterstützung entzogen." - -#: motion/views.py:310 -msgid "Poll created" -msgstr "Abstimmung erstellt" - -#: motion/views.py:311 -msgid "New vote was successfully created." -msgstr "Neue Abstimmung erfolgreich angelegt." - -#: motion/views.py:361 -#, fuzzy -msgid "Poll updated" -msgstr "Abstimmung wurde aktualisiert" - -#: motion/views.py:374 -msgid "Poll deleted" -msgstr "Abstimmung gelöscht" - -#: motion/views.py:404 -#, fuzzy, python-format -msgid "Changed state to %s" -msgstr "Status ändern" - -#: motion/views.py:406 -#, fuzzy, python-format -msgid "Motion status was set to: %s." -msgstr "Antragsstatus wurde gesetzt auf: %s." - -#: motion/views.py:431 -#, fuzzy -msgid "Created Agenda Item" -msgstr "Tagesordnungseintrag" - -#: motion/views.py:500 -msgid "Motion settings successfully saved." -msgstr "Antrags-Einstellungen wurden erfolgreich gespeichert." - -#: motion/workflow.py:128 -msgid "Unknwon state" -msgstr "" - -#: motion/workflow.py:131 -msgid "Published" -msgstr "Veröffentlicht" - -#: motion/workflow.py:136 -msgid "Permitted" -msgstr "Zugelassen" - -#: motion/workflow.py:137 -msgid "Accepted" -msgstr "Angenommen" - -#: motion/workflow.py:138 -msgid "Rejected" -msgstr "Abgelehnt" - -#: motion/workflow.py:139 -msgid "Withdrawed" -msgstr "Zurückgezogen" - -#: motion/workflow.py:140 -msgid "Adjourned" -msgstr "Vertagt" - -# please check! -#: motion/workflow.py:141 -msgid "Not Concerned" -msgstr "Nicht befasst" - -# please check! -#: motion/workflow.py:142 -msgid "Commited a bill" -msgstr "Verwiesen (in Ausschuss)" - -#: motion/workflow.py:143 -msgid "Needs Review" -msgstr "Benötigt Review" - -#: motion/workflow.py:144 -msgid "Rejected (not authorized)" -msgstr "Verworfen (nicht zulässig)" - -#: motion/templates/motion/config.html:5 -msgid "Motion settings" -msgstr "Antrags Einstellungen" +#: motion/signals.py:109 +msgid "Serially numbered" +msgstr "fortlaufend nummerieren" +#: motion/signals.py:111 motion/views.py:523 #: motion/templates/motion/motion_detail.html:7 +#: motion/templates/motion/motion_detail.html:15 +#: motion/templates/motion/motion_diff.html:7 +#: motion/templates/motion/motion_diff.html:20 +#: motion/templates/motion/poll_form.html:6 +#: motion/templates/motion/poll_form.html:14 #: motion/templates/projector/Motion.html:7 #: motion/templates/projector/Motion.html:65 msgid "Motion" msgstr "Antrag" -#: motion/templates/motion/motion_detail.html:54 +#: motion/signals.py:132 +msgid "Simple Workflow" +msgstr "Einfacher Arbeitsablauf" + +#: motion/signals.py:133 +msgid "submitted" +msgstr "eingereicht" + +#: motion/signals.py:138 motion/signals.py:164 +msgid "accepted" +msgstr "angenommen" + +#: motion/signals.py:140 motion/signals.py:166 +msgid "Accept" +msgstr "annehmen" + +#: motion/signals.py:141 motion/signals.py:168 +msgid "rejected" +msgstr "abgelehnt" + +#: motion/signals.py:143 motion/signals.py:170 +msgid "Reject" +msgstr "ablehnen" + +#: motion/signals.py:144 +msgid "not decided" +msgstr "nicht beschlossen" + +#: motion/signals.py:146 +msgid "Do not decide" +msgstr "nicht beschließen" + +#: motion/signals.py:151 +msgid "Complex Workflow" +msgstr "Komplexer Arbeitsablauf" + +#: motion/signals.py:152 +msgid "published" +msgstr "veröffentlicht" + +#: motion/signals.py:157 +msgid "permitted" +msgstr "zugelassen" + +#: motion/signals.py:159 +msgid "Permit" +msgstr "zulassen" + +#: motion/signals.py:172 +msgid "withdrawed" +msgstr "zurückgezogen" + +#: motion/signals.py:174 +msgid "Withdraw" +msgstr "zurückziehen" + +#: motion/signals.py:176 +msgid "adjourned" +msgstr "vertagt" + +#: motion/signals.py:178 +msgid "Adjourn" +msgstr "vertagen" + +# please check! +#: motion/signals.py:180 +msgid "not concerned" +msgstr "nicht befasst" + +# please check! +#: motion/signals.py:182 +msgid "Do not concern" +msgstr "nicht befassen" + +# please check! +#: motion/signals.py:184 +msgid "commited a bill" +msgstr "in Ausschuss verwiesen" + +# please check! +#: motion/signals.py:186 +msgid "Commit a bill" +msgstr "in Ausschuss verweisen" + +#: motion/signals.py:188 +msgid "needs review" +msgstr "Benötigt Review" + +#: motion/signals.py:191 +msgid "rejected (not authorized)" +msgstr "Verworfen (nicht zulässig)" + +#: motion/signals.py:193 +msgid "reject (not authorized)" +msgstr "Verwerfen (nicht zulässig)" + +#: motion/views.py:173 +msgid "Motion created" +msgstr "Antrag erstellt" + +#: motion/views.py:195 +msgid "Motion updated" +msgstr "Antrag aktualisiert" + +#: motion/views.py:221 +msgid "Version successfully permitted." +msgstr "Version erfolgreich zugelassen." + +#: motion/views.py:240 +#, python-format +msgid "Are you sure you want permit Version %s?" +msgstr "Soll Version %s wirklich zugelassen werden?" + +#: motion/views.py:268 +#, python-format +msgid "Are you sure you want reject Version %s?" +msgstr "Soll Version %s wirklich zurückgewiesen werden?" + +#: motion/views.py:294 +msgid "At least one version number is not valid." +msgstr "Mindestens eine Versionsnummer ist ungültig" + +#: motion/views.py:356 +msgid "You can not support this motion." +msgstr "Sie dürfen diesen Antrag nicht unterstützen." + +#: motion/views.py:359 +msgid "You can not unsupport this motion." +msgstr "Sie dürfen Ihre Unterstützung für diesen Antrag nicht entziehen." + +#: motion/views.py:367 +msgid "Do you really want to support this motion?" +msgstr "Wollen Sie wirklich diesen Antrag unterstützen?" + +#: motion/views.py:369 +msgid "Do you really want to unsupport this motion?" +msgstr "Wollen Sie wirklich Ihre Unterstützung für diesen Antrag entziehen?" + +#: motion/views.py:381 +#, python-format +msgid "Supporter: +%s" +msgstr "Unterstützer/in: +%s" + +#: motion/views.py:384 +#, python-format +msgid "Supporter: -%s" +msgstr "Unterstützer/in: -%s" + +#: motion/views.py:389 +msgid "You have supported this motion successfully." +msgstr "Sie haben den Antrag erfolgreich unterstützt." + +#: motion/views.py:391 +msgid "You have unsupported this motion successfully." +msgstr "Sie haben dem Antrag erfolgreich Ihre Unterstützung entzogen." + +#: motion/views.py:414 +msgid "Poll created" +msgstr "Abstimmung erstellt" + +#: motion/views.py:415 +msgid "New vote was successfully created." +msgstr "Neue Abstimmung erfolgreich angelegt." + +#: motion/views.py:479 +msgid "Poll updated" +msgstr "Abstimmung wurde aktualisiert" + +#: motion/views.py:497 +msgid "Poll deleted" +msgstr "Abstimmung gelöscht" + +#: motion/views.py:523 +msgid "Poll" +msgstr "" + +#: motion/views.py:559 +#, python-format +msgid "State changed to %s" +msgstr "Status geändert zu %s" + +#: motion/views.py:561 +#, python-format +msgid "Motion status was set to: %s." +msgstr "Antragsstatus wurde gesetzt auf: %s." + +#: motion/views.py:586 +msgid "Agenda item created" +msgstr "Tagesordnungseintrag angelegt" + +#: motion/templates/motion/category_form.html:9 +#: motion/templates/motion/category_form.html:18 +msgid "Edit category" +msgstr "Sachgebiet bearbeiten" + +#: motion/templates/motion/category_form.html:11 +#: motion/templates/motion/category_form.html:20 +#: motion/templates/motion/category_list.html:13 +msgid "New category" +msgstr "Neues Sachgebiet" + +#: motion/templates/motion/category_list.html:10 +#: motion/templates/motion/motion_list.html:18 +msgid "Categories" +msgstr "Sachgebiete" + +#: motion/templates/motion/category_list.html:41 +msgid "No categories available." +msgstr "Keine Sachgebieter vorhanden." + +#: motion/templates/motion/motion_detail.html:25 +msgid "Print this motion as PDF" +msgstr "Diesen Antrag als PDF drucken" + +#: motion/templates/motion/motion_detail.html:28 +#: motion/templates/motion/poll_form.html:21 +msgid "Show motion" +msgstr "Antrag anzeigen" + +#: motion/templates/motion/motion_detail.html:40 +#: motion/templates/motion/motion_form.html:20 +#: motion/templates/motion/motion_form.html:29 +msgid "Edit motion" +msgstr "Antrag bearbeiten" + +#: motion/templates/motion/motion_detail.html:44 +msgid "Delete motion" +msgstr "Antrag löschen" + +#: motion/templates/motion/motion_detail.html:63 +msgid "This is not the newest version." +msgstr "Dies ist nicht die neuste Version." + +#: motion/templates/motion/motion_detail.html:65 +msgid "Go to last version" +msgstr "Zu letzten Version" + +#: motion/templates/motion/motion_detail.html:70 +msgid "This version is not yet authorized." +msgstr "Diese Version wurde noch nicht zugelassen." + +#: motion/templates/motion/motion_detail.html:72 +msgid "Go to last authorized version" +msgstr "Zur letzten zugelassenen Version" + +#: motion/templates/motion/motion_detail.html:77 +msgid "Motion text" +msgstr "Antragstext" + +#: motion/templates/motion/motion_detail.html:95 +msgid "Version history" +msgstr "Versionshistorie" + +#: motion/templates/motion/motion_detail.html:101 +msgid "Time" +msgstr "Zeit" + +#: motion/templates/motion/motion_detail.html:102 +msgid "Difference" +msgstr "Unterschied" + +#: motion/templates/motion/motion_detail.html:109 +msgid "This version is authorized" +msgstr "Diese Version wurde zugelassen" + +#: motion/templates/motion/motion_detail.html:112 +msgid "Permit this version" +msgstr "Diese Version zulassen" + +#: motion/templates/motion/motion_detail.html:115 +msgid "Reject this version" +msgstr "Diese Version verwerfen" + +#: motion/templates/motion/motion_detail.html:119 +msgid "This version is rejected" +msgstr "Diese Version wurde verworfen" + +#: motion/templates/motion/motion_detail.html:149 +msgid "Show log" +msgstr "Log anzeigen" + +#: motion/templates/motion/motion_detail.html:204 msgid "Edit Vote" msgstr "Abstimmung bearbeiten" -#: motion/templates/motion/motion_detail.html:57 +#: motion/templates/motion/motion_detail.html:205 msgid "Delete Vote" msgstr "Abstimmung löschen" -#: motion/templates/motion/motion_detail.html:77 -#, fuzzy -msgid "Enter result" -msgstr "Abstimmungsergebnis" +#: motion/templates/motion/motion_detail.html:220 +msgid "No results" +msgstr "Keine Ergebnisse" -#: motion/templates/motion/motion_detail.html:87 +#: motion/templates/motion/motion_detail.html:229 msgid "New vote" msgstr "Neue Abstimmung" -#: motion/templates/motion/motion_form.html:7 -#, fuzzy -msgid "Motion Form" -msgstr "Antrag Nr." +#: motion/templates/motion/motion_detail.html:239 +#: motion/templates/motion/motion_list.html:61 +msgid "Creation Time" +msgstr "Erstellungszeit" -#: motion/templates/motion/motion_form.html:10 -#, fuzzy -msgid "Motions Forms" -msgstr "Anträge" +#: motion/templates/motion/motion_detail.html:247 +msgid "Withdraw motion" +msgstr "Antrag zurückziehen" -#: motion/templates/motion/poll_form.html:15 +#: motion/templates/motion/motion_detail.html:256 +msgid "Unsupport" +msgstr "Nicht unterstützen" + +#: motion/templates/motion/motion_detail.html:262 +msgid "Support" +msgstr "Unterstützen" + +#: motion/templates/motion/motion_detail.html:270 +msgid "minimum required supporters" +msgstr "minimal erforderliche Unterstützer/innen" + +#: motion/templates/motion/motion_detail.html:277 +msgid "Manage motion" +msgstr "Antrag verwalten" + +#: motion/templates/motion/motion_detail.html:285 +msgid "For administration only:" +msgstr "Nur zur Administration:" + +#: motion/templates/motion/motion_detail.html:287 +msgid "Reset state" +msgstr "Status zurücksetzen" + +#: motion/templates/motion/motion_diff.html:24 +msgid "Diff view" +msgstr "Änderungsanzeige" + +#: motion/templates/motion/motion_diff.html:28 +#: motion/templates/motion/motion_form.html:35 +#: motion/templates/motion/poll_form.html:18 +msgid "Back to motion" +msgstr "Zurück zum Antrag" + +#: motion/templates/motion/motion_diff.html:37 +#: motion/templates/motion/motion_diff.html:41 +msgid "created" +msgstr "erstellt" + +#: motion/templates/motion/motion_form.html:22 +#: motion/templates/motion/motion_form.html:31 +#: motion/templates/motion/motion_list.html:14 +msgid "New motion" +msgstr "Neuer Antrag" + +#: motion/templates/motion/motion_list.html:21 +msgid "Print all motions as PDF" +msgstr "Alle Anträge als PDF drucken" + +#: motion/templates/motion/motion_list.html:29 +msgid "Need supporters" +msgstr "Benötigt Unterstützer/innen" + +#: motion/templates/motion/motion_list.html:34 +msgid "Without number" +msgstr "Ohne Nummer" + +#: motion/templates/motion/motion_list.html:41 +msgid "Not yet authorized" +msgstr "Noch nicht zugelassen" + +#: motion/templates/motion/motion_list.html:42 +msgid "Authorized" +msgstr "Zugelassen" + +#: motion/templates/motion/motion_list.html:43 +msgid "Accepted" +msgstr "Angenommen" + +#: motion/templates/motion/motion_list.html:44 +msgid "Rejected" +msgstr "Abgelehnt" + +#: motion/templates/motion/motion_list.html:45 +msgid "Withdrawen (by submitter)" +msgstr "Zurückgezogen (durch Antragsteller/in)" + +#: motion/templates/motion/motion_list.html:46 +msgid "Needs Review" +msgstr "Benötigt Review" + +#: motion/templates/motion/motion_list.html:50 +msgctxt "number of motions" +msgid "motion" +msgid_plural "motions" +msgstr[0] "Antrag" +msgstr[1] "Anträge" + +#: motion/templates/motion/motion_list.html:54 +msgid "#" +msgstr "#" + +#: motion/templates/motion/motion_list.html:55 +msgid "Motion title" +msgstr "Antragstitel" + +#: motion/templates/motion/motion_list.html:57 +msgid "Number of supporters" +msgstr "Anzahl der Unterstützer/innen" + +#: motion/templates/motion/motion_list.html:96 +msgid "Print motion as PDF" +msgstr "Antrag als PDF drucken" + +#: motion/templates/motion/poll_form.html:37 msgid "Option" msgstr "Wahlmöglichkeit" -#: motion/templates/motion/widget.html:19 -#: participant/templates/participant/personal_info_widget.html:9 -#: participant/templates/participant/personal_info_widget.html:28 -msgid "motion" -msgstr "Antrag" - -#: motion/templates/motion/widget.html:23 -#: motion/templates/projector/Motion.html:65 -#: participant/templates/participant/personal_info_widget.html:13 -#: participant/templates/participant/personal_info_widget.html:32 -msgid "no number" -msgstr "ohne Nummer" - #: motion/templates/motion/widget.html:27 msgid "No motion available." msgstr "Keine Antrag vorhanden." @@ -1478,250 +1791,256 @@ msgstr "Keine Abstimmungsergebnisse vorhanden." msgid "Motion No." msgstr "Antrag Nr." -#: participant/__init__.py:3 +#: participant/__init__.py:18 participant/signals.py:56 msgid "Participant" msgstr "Teilnehmer" -#: participant/api.py:78 +#: participant/api.py:73 #, python-format msgid "Ignoring malformed line %d in import file." msgstr "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert." -#: participant/api.py:94 +#: participant/api.py:97 +#, python-format +msgid "Ignoring malformed group id in line %d." +msgstr "Fehlerhafte Gruppen-ID in Zeile %d wurde ignoriert." + +#: participant/api.py:100 +#, python-format +msgid "Group id %(id)s does not exists (line %(line)d)." +msgstr "Gruppen-ID %(id)s existiert nicht (Zeile %(line)d)." + +#: participant/api.py:105 msgid "Import aborted because of severe errors in the input file." msgstr "Import auf Grund von schweren Fehlern in der Quelldatei abgebrochen." -#: participant/api.py:96 +#: participant/api.py:107 msgid "Import file has wrong character encoding, only UTF-8 is supported!" msgstr "" "Die Quelldatei benutzt eine ungültige Zeichenkodierung, es wird nur UTF-8 " "wird unterstützt!" -#: participant/forms.py:28 participant/views.py:602 +#: participant/forms.py:28 participant/views.py:520 #: participant/templates/participant/group_overview.html:6 #: participant/templates/participant/group_overview.html:9 -#: participant/templates/participant/overview.html:21 -#: participant/templates/participant/user_detail.html:18 +#: participant/templates/participant/overview.html:27 +#: participant/templates/participant/user_detail.html:34 msgid "Groups" msgstr "Gruppen" -#: participant/forms.py:53 +#: participant/forms.py:72 +msgid "" +"You can not remove the last group containing the permission to manage " +"participants." +msgstr "" +"Sie können nicht die letzte Gruppe löschen, die das Recht zur Verwaltung von " +"Teilnehmern enthält." + +#: participant/forms.py:80 msgid "Permissions" msgstr "Rechte" -#: participant/forms.py:56 participant/views.py:540 participant/views.py:588 -#: participant/templates/participant/config.html:10 +#: participant/forms.py:83 participant/views.py:482 participant/views.py:506 #: participant/templates/participant/overview.html:7 -#: participant/templates/participant/overview.html:16 -#: participant/templates/participant/overview.html:95 +#: participant/templates/participant/overview.html:22 msgid "Participants" msgstr "Teilnehmer/innen" -#: participant/forms.py:93 +#: participant/forms.py:120 msgid "You can not edit the name for this group." msgstr "Sie dürfen den Namen dieser Gruppe nicht bearbeiten." -#: participant/forms.py:97 +#: participant/forms.py:124 #, python-format msgid "Group name \"%s\" is reserved for internal use." msgstr "Der Gruppenname \"%s\" ist für interne Verwendung reserviert." -#: participant/forms.py:114 +#: participant/forms.py:142 msgid "CSV File" msgstr "CSV-Datei" -#: participant/forms.py:121 -msgid "System URL" -msgstr "System URL" - -#: participant/forms.py:122 participant/forms.py:127 -msgid "Printed in PDF of first time passwords only." -msgstr "Erscheint nur im PDF der Erst-Passwörter" - -#: participant/forms.py:130 -msgid "Sort participants by first name" -msgstr "Teilnehmer/innen nach Vornamen sortieren" - -#: participant/forms.py:131 -msgid "Disable for sorting by last name" -msgstr "Deaktivieren für Sortierung nach Nachnamen" - -#: participant/models.py:33 participant/templates/participant/overview.html:57 +#: participant/models.py:30 msgid "Male" msgstr "Männlich" -#: participant/models.py:34 participant/templates/participant/overview.html:58 +#: participant/models.py:31 msgid "Female" msgstr "Weiblich" -#: participant/models.py:37 participant/templates/participant/overview.html:70 -msgid "Delegate" -msgstr "Delegierter" - -#: participant/models.py:38 participant/templates/participant/overview.html:71 -msgid "Observer" -msgstr "Beobachter" - -#: participant/models.py:39 participant/templates/participant/overview.html:72 -msgid "Staff" -msgstr "Mitarbeiter" - -#: participant/models.py:40 participant/templates/participant/overview.html:73 -msgid "Guest" -msgstr "Gast" - -#: participant/models.py:45 participant/templates/participant/overview.html:62 -#: participant/templates/participant/overview.html:102 +#: participant/models.py:36 participant/views.py:183 +#: participant/templates/participant/overview.html:65 +#: participant/templates/participant/user_detail.html:30 msgid "Structure level" msgstr "Gliederungsebene" -#: participant/models.py:46 +#: participant/models.py:37 msgid "Will be shown after the name." msgstr "Wird nach dem Namen angezeigt." -#: participant/models.py:49 participant/templates/participant/overview.html:56 -#: participant/templates/participant/user_detail.html:28 +#: participant/models.py:40 +msgid "Will be shown before the name." +msgstr "Wird vor dem Namen angezeigt." + +#: participant/models.py:43 +#: participant/templates/participant/user_detail.html:20 msgid "Gender" msgstr "Geschlecht" -#: participant/models.py:49 participant/models.py:52 participant/models.py:55 +#: participant/models.py:43 participant/models.py:46 msgid "Only for filtering the participant list." msgstr "Nur zum Filtern der Teilnehmerliste." -#: participant/models.py:52 -msgid "Typ" -msgstr "Typ" - -#: participant/models.py:54 participant/views.py:246 -#: participant/templates/participant/overview.html:77 -#: participant/templates/participant/overview.html:104 -#: participant/templates/participant/user_detail.html:38 +#: participant/models.py:45 participant/views.py:183 +#: participant/templates/participant/overview.html:67 +#: participant/templates/participant/user_detail.html:32 msgid "Committee" msgstr "Amt" -#: participant/models.py:57 -#: participant/templates/participant/user_detail.html:43 +#: participant/models.py:48 +#: participant/templates/participant/user_detail.html:24 msgid "About me" msgstr "Über mich" -#: participant/models.py:58 +#: participant/models.py:49 msgid "Your profile text" msgstr "Ihr Profiltext" -#: participant/models.py:61 +#: participant/models.py:52 msgid "Only for notes." msgstr "Nur für Notizen." -#: participant/models.py:64 +#: participant/models.py:55 msgid "Default password" msgstr "Vorgegebenes Passwort" -#: participant/models.py:118 +#: participant/models.py:113 msgid "Can see participant" msgstr "Darf die Teilnehmer/inen sehen" -#: participant/models.py:120 +#: participant/models.py:115 msgid "Can manage participant" msgstr "Darf die Teilnehmer/inen verwalten" -#: participant/models.py:142 +#: participant/models.py:137 msgid "Use this group as participant" msgstr "Verwende diese Gruppe als Teilnehmer/in" -#: participant/models.py:143 +#: participant/models.py:138 msgid "For example as submitter of a motion." msgstr "Zum Beispiel als Antragsteller." -#: participant/models.py:237 +#: participant/signals.py:38 +msgid "System URL" +msgstr "System URL" + +#: participant/signals.py:39 participant/signals.py:47 +msgid "Printed in PDF of first time passwords only." +msgstr "Erscheint nur im PDF der Erst-Passwörter" + +#: participant/signals.py:42 msgid "Welcome to OpenSlides!" msgstr "Willkommen bei OpenSlides!" -#: participant/views.py:198 +#: participant/signals.py:53 +msgid "Sort participants by first name" +msgstr "Teilnehmer/innen nach Vornamen sortieren" + +#: participant/signals.py:54 +msgid "Disable for sorting by last name" +msgstr "Deaktivieren für Sortierung nach Nachnamen" + +#: participant/signals.py:97 participant/templates/participant/import.html:25 +msgid "Anonymous" +msgstr "Gast" + +#: participant/signals.py:99 participant/templates/participant/import.html:25 +msgid "Registered" +msgstr "Registrierte/r" + +#: participant/signals.py:109 +msgid "Delegates" +msgstr "Delegierte/r" + +#: participant/signals.py:123 participant/templates/participant/import.html:26 +msgid "Staff" +msgstr "Mitarbeiter/in" + +#: participant/views.py:135 msgid "You can not delete yourself." msgstr "Sie dürfen sich nicht selbst löschen." -#: participant/views.py:219 +#: participant/views.py:156 msgid "You can not deactivate yourself." msgstr "Sie dürfen sich nicht selbst deaktivieren." -#: participant/views.py:222 +#: participant/views.py:159 msgid "You can not deactivate the administrator." msgstr "Sie dürfen den Administrator nicht deaktivieren." -#: participant/views.py:241 +#: participant/views.py:178 msgid "Participant-list" msgstr "Teilnehmerliste" -#: participant/views.py:242 +#: participant/views.py:179 msgid "List of Participants" msgstr "Teilnehmerliste" -#: participant/views.py:245 -#: participant/templates/participant/overview.html:101 +#: participant/views.py:182 participant/templates/participant/overview.html:64 msgid "Last Name" msgstr "Nachname" -#: participant/views.py:245 -#: participant/templates/participant/overview.html:100 +#: participant/views.py:182 participant/templates/participant/overview.html:63 msgid "First Name" msgstr "Vorname" -#: participant/views.py:245 +#: participant/views.py:183 #: participant/templates/participant/group_overview.html:18 +#: participant/templates/participant/overview.html:66 msgid "Group" msgstr "Gruppe" -#: participant/views.py:277 +#: participant/views.py:219 msgid "Participant-passwords" msgstr "Teilnehmer-Passwoerter" -#: participant/views.py:299 +#: participant/views.py:249 msgid "Account for OpenSlides" msgstr "Zugang für OpenSlides" -#: participant/views.py:301 +#: participant/views.py:251 #, python-format msgid "for %s" msgstr "für %s" -#: participant/views.py:304 +#: participant/views.py:254 #, python-format msgid "User: %s" msgstr "Nutzername: %s" -#: participant/views.py:308 +#: participant/views.py:258 #, python-format msgid "Password: %s" msgstr "Passwort: %s" -#: participant/views.py:313 -#, python-format -msgid "URL: %s" -msgstr "URL: %s" - -#: participant/views.py:355 +#: participant/views.py:305 #, python-format msgid "%d new participants were successfully imported." msgstr "%d neue Teilnehmer/innen wurden erfolgreich importiert." -#: participant/views.py:366 +#: participant/views.py:316 msgid "Do you really want to reset the password?" msgstr "Soll das Passwort wirklich zurückgesetzt werden?" -#: participant/views.py:379 +#: participant/views.py:329 #, python-format msgid "The Password for %s was successfully reset." msgstr "Das Passwort für %s wurde erfolgreich zurückgesetzt." -#: participant/views.py:434 +#: participant/views.py:404 msgid "You can not delete this Group." msgstr "Sie dürfen diese Gruppe nicht löschen." -#: participant/views.py:463 -msgid "Participants settings successfully saved." -msgstr "Teilnehmer/innen-Einstellungen wurden erfolgreich gespeichert." - -#: participant/views.py:473 +#: participant/views.py:415 #, python-format msgid "" "Installation was successfully! Use %(user)s (password: %(password)s) for " @@ -1734,18 +2053,14 @@ msgstr "" "Sie das Passwort nach der ersten Anmeldung! Anderenfalls erscheint diese " "Meldung weiterhin für alle und ist ein Sicherheitsrisiko." -#: participant/views.py:499 +#: participant/views.py:441 msgid "User settings successfully saved." msgstr "Nutzereinstellungen wurden erfolgreich gespeichert." -#: participant/views.py:522 +#: participant/views.py:464 msgid "Password successfully changed." msgstr "Passwort wurde erfolgreich geändert." -#: participant/templates/participant/config.html:5 -msgid "Participant settings" -msgstr "Teilnehmer/innen-Einstellungen" - #: participant/templates/participant/edit.html:8 #: participant/templates/participant/edit.html:17 msgid "Edit participant" @@ -1753,7 +2068,7 @@ msgstr "Teilnehmer/in bearbeiten" #: participant/templates/participant/edit.html:10 #: participant/templates/participant/edit.html:19 -#: participant/templates/participant/overview.html:20 +#: participant/templates/participant/overview.html:26 msgid "New participant" msgstr "Neue/r Teilnehmer/in" @@ -1790,7 +2105,7 @@ msgstr "Keine Gruppen vorhanden." #: participant/templates/participant/import.html:5 #: participant/templates/participant/import.html:9 -#: participant/templates/participant/overview.html:22 +#: participant/templates/participant/overview.html:28 msgid "Import participants" msgstr "Teilnehmer/innen importieren" @@ -1799,24 +2114,39 @@ msgid "Select a CSV file to import participants!" msgstr "Wählen Sie eine CSV-Datei zum Importieren von Teilnehmer/innen aus!" #: participant/templates/participant/import.html:17 +msgid "Please note" +msgstr "Bitte beachten" + +#: participant/templates/participant/import.html:20 msgid "Required comma separated values" msgstr "Erforderliche kommaseparierte Werte" -#: participant/templates/participant/import.html:18 +#: participant/templates/participant/import.html:21 msgid "" -"first_name, last_name, gender, structure level, type, committee, comment" -msgstr "Vorname, Nachname, Geschlecht, Gliederungsebene, Typ, Amt, Kommentar" +"title, first name, last name, gender, email, group id, structure level, " +"committee, about me, comment, is active" +msgstr "" +"Titel, Vorname, Nachname, Geschlecht, E-Mail, Gruppen-ID, Gliederungsebene, " +"Amt, Über mich, Kommentar, Aktiviert" -#: participant/templates/participant/import.html:20 +#: participant/templates/participant/import.html:24 +msgid "Default groups" +msgstr "Vorgegebene Gruppen" + +#: participant/templates/participant/import.html:26 +msgid "Delegate" +msgstr "Delegierte/r" + +#: participant/templates/participant/import.html:28 msgid "Required CSV file encoding: UTF-8 (Unicode)." msgstr "Erforderliches CSV-Datei-Encoding: UTF-8 (Unicode)." -#: participant/templates/participant/import.html:23 -msgid "A CSV example file is available in OpenSlides Wiki." -msgstr "Eine CSV-Beispiel-Datei gibt es im OpenSlides Wiki." +#: participant/templates/participant/import.html:29 +msgid "Use the CSV example file from OpenSlides Wiki." +msgstr "Verwenden Sie die CSV-Beispiel-Datei vom OpenSlides Wiki." -#: participant/templates/participant/import.html:30 -#: participant/templates/participant/overview.html:22 +#: participant/templates/participant/import.html:36 +#: participant/templates/participant/overview.html:28 msgid "Import" msgstr "Importieren" @@ -1827,6 +2157,7 @@ msgstr "" "erneut." #: participant/templates/participant/login.html:38 +#: participant/templates/participant/user_detail.html:45 msgid "Username" msgstr "Benutzername" @@ -1835,7 +2166,7 @@ msgid "Password" msgstr "Passwort" #: participant/templates/participant/login.html:47 -#: participant/templates/participant/overview.html:37 templates/base.html:46 +#: participant/templates/participant/overview.html:43 templates/base.html:46 msgid "Login" msgstr "Anmelden" @@ -1843,59 +2174,46 @@ msgstr "Anmelden" msgid "Continue as guest" msgstr "Weiter als Gast" -#: participant/templates/participant/overview.html:21 +#: participant/templates/participant/overview.html:27 msgid "All groups" msgstr "Alle Gruppen" -#: participant/templates/participant/overview.html:33 +#: participant/templates/participant/overview.html:39 msgid "List of participants" msgstr "Teilnehmerliste" -#: participant/templates/participant/overview.html:34 +#: participant/templates/participant/overview.html:40 msgid "First time passwords" msgstr "Erst-Passwörter" -#: participant/templates/participant/overview.html:42 +#: participant/templates/participant/overview.html:48 msgid "Print list of participants as PDF" msgstr "Teilnehmerliste als PDF drucken" -#: participant/templates/participant/overview.html:45 +#: participant/templates/participant/overview.html:51 msgid "Print first time passwords as PDF" msgstr "Erst-Passwörter als PDF drucken" -#: participant/templates/participant/overview.html:59 -#: participant/templates/participant/overview.html:74 -msgid "Not specified" -msgstr "Nicht angegeben" +#: participant/templates/participant/overview.html:61 +msgid "Present" +msgstr "Anwesend" -#: participant/templates/participant/overview.html:85 projector/models.py:65 -msgid "Active" -msgstr "Aktiv" - -#: participant/templates/participant/overview.html:86 -msgid "Inactive" -msgstr "Inaktiv" - -#: participant/templates/participant/overview.html:93 -msgid "participant" -msgid_plural "participants" -msgstr[0] "Teilnehmer/in" -msgstr[1] "Teilnehmer/innen" - -#: participant/templates/participant/overview.html:95 -msgid "of" -msgstr "von" - -#: participant/templates/participant/overview.html:107 -#: participant/templates/participant/user_detail.html:53 +#: participant/templates/participant/overview.html:70 +#: participant/templates/participant/user_detail.html:49 msgid "Last Login" msgstr "Letzer Login" -#: participant/templates/participant/overview.html:143 -msgid "Change status (active/inactive)" -msgstr "Status ändern (aktiv/inaktiv)" +#: participant/templates/participant/overview.html:82 +#: participant/templates/participant/overview.html:89 +msgid "present" +msgstr "anwesend" -#: participant/templates/participant/overview.html:153 +#: participant/templates/participant/overview.html:82 +#: participant/templates/participant/overview.html:89 +msgid "absent" +msgstr "abwesend" + +#: participant/templates/participant/overview.html:133 #: participant/templates/participant/user_widget.html:19 msgid "No participants available." msgstr "Keine Teilnehmer/innen vorhanden." @@ -1905,34 +2223,32 @@ msgstr "Keine Teilnehmer/innen vorhanden." msgid "Password Settings" msgstr "Passwort-Einstellungen" -#: participant/templates/participant/personal_info_widget.html:5 -msgid "I submitted the following motions:" -msgstr "Ich habe folgende Anträge gestellt:" - -#: participant/templates/participant/personal_info_widget.html:17 -#: participant/templates/participant/personal_info_widget.html:36 -#: participant/templates/participant/personal_info_widget.html:47 -msgid "None" -msgstr "Keine" - -#: participant/templates/participant/personal_info_widget.html:24 -msgid "I support the following motions:" -msgstr "Ich unterstütze folgende Anträge:" - -#: participant/templates/participant/personal_info_widget.html:43 -msgid "I am candidate for the following elections:" -msgstr "Ich bin Kandidat/in bei folgenden Wahlen:" - #: participant/templates/participant/settings.html:5 #: participant/templates/participant/settings.html:8 templates/base.html:40 msgid "Edit profile" msgstr "Profil bearbeiten" -#: participant/templates/participant/user_detail.html:23 +#: participant/templates/participant/user_detail.html:19 +msgid "Personal data" +msgstr "Persönliche Daten" + +#: participant/templates/participant/user_detail.html:22 +msgid "Email" +msgstr "E-Mail" + +#: participant/templates/participant/user_detail.html:29 +msgid "Event data" +msgstr "Veranstaltungsdaten" + +#: participant/templates/participant/user_detail.html:38 msgid "The participant is not member of any group." msgstr "Teilnehmer/in ist kein Mitglied einer Gruppe." -#: participant/templates/participant/user_detail.html:57 +#: participant/templates/participant/user_detail.html:44 +msgid "Administrative data" +msgstr "Administrative Daten" + +#: participant/templates/participant/user_detail.html:53 msgid "The participant has not logged in yet." msgstr "Teilnehmer/in hat sich noch nicht angemeldet." @@ -1948,63 +2264,38 @@ msgstr "Ungültige Stimmen" msgid "votes" msgstr "Stimmen" -#: projector/models.py:52 +#: projector/models.py:50 msgid "Can manage the projector" msgstr "Darf den Projektor steuern" -#: projector/models.py:53 +#: projector/models.py:51 msgid "Can see the projector" msgstr "Darf den Projektor sehen" -#: projector/models.py:54 +#: projector/models.py:52 msgid "Can see the dashboard" msgstr "Darf das Dashboard sehen" -#: projector/views.py:199 +#: projector/views.py:195 msgid "Errors in the form" msgstr "Fehler im Formular" -#: projector/views.py:373 projector/templates/projector/dashboard.html:18 +#: projector/views.py:364 projector/templates/projector/dashboard.html:18 msgid "Dashboard" msgstr "Dashboard" -#: projector/views.py:401 +#: projector/views.py:392 msgid "Projector live view" msgstr "Projektor-Live-Ansicht" -#: projector/views.py:427 +#: projector/views.py:407 msgid "Overlays" msgstr "Einblendungen" -#: projector/views.py:439 +#: projector/views.py:419 msgid "Custom Slides" msgstr "Benutzerdefinierte Folien" -#: projector/templates/projector/control_countdown.html:7 -msgctxt "seconds" -msgid "s" -msgstr "s" - -#: projector/templates/projector/control_countdown.html:9 -msgid "Save time as default" -msgstr "Zeit als Voreinstellung speichern" - -#: projector/templates/projector/control_countdown.html:12 -msgid "Reset countdown" -msgstr "Countdown zurücksetzen" - -#: projector/templates/projector/control_countdown.html:15 -msgid "Start countdown" -msgstr "Countdown starten" - -#: projector/templates/projector/control_countdown.html:18 -msgid "Stop countdown" -msgstr "Countdown stoppen" - -#: projector/templates/projector/control_overlay_message.html:10 -msgid "Clean message" -msgstr "Message leeren" - #: projector/templates/projector/custom_slide_widget.html:12 msgid "Welcome Page" msgstr "Willkommensseite" @@ -2026,12 +2317,12 @@ msgid "Zoom out" msgstr "Verkleinern" #: projector/templates/projector/live_view_widget.html:16 -msgid "Scroll text up" -msgstr "Text nach oben scrollen" +msgid "Scroll visible view up" +msgstr "Sichtbaren Bereich nach oben scrollen" #: projector/templates/projector/live_view_widget.html:19 -msgid "Scroll text down" -msgstr "Text nach unten scrollen" +msgid "Scroll visible view down" +msgstr "Sichtbaren Bereich nach unten scrollen" #: projector/templates/projector/live_view_widget.html:24 msgid "Reset projector view" @@ -2042,14 +2333,39 @@ msgstr "Projektor-Ansicht zurücksetzen" msgid "Custom slide" msgstr "Benutzerdefinierte Folie" -#: projector/templates/projector/overlay_widget.html:22 +#: projector/templates/projector/overlay_countdown_widget.html:5 msgid "Countdown for speaking time" msgstr "Countdown zur Redezeitbegrenzung" -#: projector/templates/projector/overlay_widget.html:26 +#: projector/templates/projector/overlay_countdown_widget.html:9 +msgctxt "seconds" +msgid "s" +msgstr "s" + +#: projector/templates/projector/overlay_countdown_widget.html:10 +msgid "Save time as default" +msgstr "Zeit als Voreinstellung speichern" + +#: projector/templates/projector/overlay_countdown_widget.html:14 +msgid "Reset countdown" +msgstr "Countdown zurücksetzen" + +#: projector/templates/projector/overlay_countdown_widget.html:17 +msgid "Start countdown" +msgstr "Countdown starten" + +#: projector/templates/projector/overlay_countdown_widget.html:20 +msgid "Stop countdown" +msgstr "Countdown stoppen" + +#: projector/templates/projector/overlay_message_widget.html:5 msgid "Message" msgstr "Mitteilung" +#: projector/templates/projector/overlay_message_widget.html:12 +msgid "Clean message" +msgstr "Message leeren" + #: projector/templates/projector/select_widgets.html:5 #: projector/templates/projector/select_widgets.html:8 msgid "Select widgets" @@ -2079,30 +2395,22 @@ msgstr "Passwort ändern" msgid "Logout" msgstr "Abmelden" -#: templates/base.html:100 -msgid "" -"Get professional " -"support for OpenSlides." -msgstr "" -"Nutzen Sie unseren professionellen Support für OpenSlides." - -#: utils/pdf.py:226 +#: utils/pdf.py:280 #, python-format msgid "As of: %s" msgstr "Stand: %s" -#: utils/pdf.py:237 utils/pdf.py:246 +#: utils/pdf.py:291 utils/pdf.py:300 #, python-format msgid "Page %s" msgstr "Seite %s" -#: utils/utils.py:59 utils/views.py:313 +#: utils/utils.py:60 utils/views.py:328 #, python-format msgid "Do you really want to delete %s?" msgstr "Soll %s wirklich gelöscht werden?" -#: utils/utils.py:106 +#: utils/utils.py:107 msgid "Sorry, you have no rights to see this page." msgstr "Bedaure, Sie haben keine Berechtigung diese Seite zu sehen." @@ -2114,404 +2422,25 @@ msgstr "Sind Sie sicher?" msgid "Thank you for your answer" msgstr "Danke für Ihre Antwort" -#: utils/views.py:285 +#: utils/views.py:299 #, python-format msgid "%s was successfully modified." msgstr "%s wurde erfolgreich bearbeitet." -#: utils/views.py:295 +#: utils/views.py:309 #, python-format msgid "%s was successfully created." msgstr "%s wurde erfolgreich angelegt." -#: utils/views.py:319 +#: utils/views.py:334 #, python-format msgid "%s was successfully deleted." msgstr "%s wurde erfolgreich gelöscht." -#: utils/views.py:329 +#: utils/views.py:347 msgid "undefined-filename" msgstr "undefinierter-dateiname" #: utils/jsonfield/fields.py:22 msgid "Enter valid JSON" msgstr "Gebe valides JSON ein" - -#~ msgid "Item %s was successfully modified." -#~ msgstr "Eintrag %s wurde erfolgreich bearbeitet." - -#~ msgid "Item %s was successfully created." -#~ msgstr "Eintrag %s wurde erfolgreich angelegt." - -#~ msgid "All items" -#~ msgstr "Alle Einträge" - -#~ msgid "Agenda as PDF" -#~ msgstr "Tagesordnung als PDF" - -#~ msgid "View item" -#~ msgstr "Eintrag anzeigen" - -#~ msgid "Show item" -#~ msgstr "Eintrag projizieren" - -#~ msgid "Activate item" -#~ msgstr "Eintrag projizieren" - -#~ msgid "Trivial change" -#~ msgstr "Triviale Änderung" - -#~ msgid "Import motions with status \"authorized\"" -#~ msgstr "Anträge als \"Zugelassen\" importieren" - -#~ msgid "Set the initial status for each motion to \"authorized\"" -#~ msgstr "Setzt den initialen Status für jeden Antrag auf \"zugelassen\"" - -#~ msgid "Allow trivial changes" -#~ msgstr "Triviale Änderungen erlauben" - -#~ msgid "Warning: Trivial changes undermine the motions autorisation system." -#~ msgstr "" -#~ "Warnung: Triviale Änderungen unterlaufen das Zulassungssystem von " -#~ "Anträgen." - -#~ msgid "Version %d authorized" -#~ msgstr "Version %d zugelassen" - -#~ msgctxt "Rejected means not authorized" -#~ msgid "Version %d rejected" -#~ msgstr "Version %d verworfen" - -#~ msgid "Searching for supporters." -#~ msgstr "Auf Unterstützersuche." - -#~ msgid "Not yet authorized." -#~ msgstr "Noch nicht zugelassen." - -#~ msgid "Not yet authorized changes." -#~ msgstr "Noch nicht zugelassene Änderungen." - -#~ msgid "" -#~ "Trivial changes to version %(version)d; changed fields: %(changed_fields)s" -#~ msgstr "" -#~ "Triviale Änderung an Version %(version)d; Geänderte Felder: " -#~ "%(changed_fields)s" - -#~ msgid "Version %s created" -#~ msgstr "Version %s erstellt" - -#~ msgid "Supporters removed" -#~ msgstr "Unterstützer/innen gelöscht" - -#~ msgid "Status reseted to: %s" -#~ msgstr "Status zurückgesetzt auf: %s" - -#~ msgid "Number set: %s" -#~ msgstr "Nummer gesetzt: %s" - -#~ msgid "Version %s authorized" -#~ msgstr "Version %s zugelassen" - -#~ msgid "Version %s not authorized" -#~ msgstr "Version %s nicht zugelassen" - -#~ msgid "The motion status is already '%s.'" -#~ msgstr "Der Antragsstatus ist bereits '%s'." - -#~ msgid "" -#~ "The motion status is: '%(currentstatus)s'. You can not set the status to " -#~ "'%(newstatus)s'." -#~ msgstr "" -#~ "Der Antragsstatus ist: '%(currentstatus)s'. Sie können den Status nicht " -#~ "auf '%(newstatus)s' setzen." - -#~ msgid "Status modified" -#~ msgstr "Status geändert" - -#~ msgid "by" -#~ msgstr "von" - -#~ msgid "You have not the necessary rights to create or edit motions." -#~ msgstr "" -#~ "Sie haben nicht die nötigen Rechte, um Anträge zu erstellen oder zu " -#~ "bearbeiten." - -#~ msgid "You can not edit this motion." -#~ msgstr "Sie dürfen diesen Antrag nicht bearbeiten." - -#~ msgid "New motion was successfully created." -#~ msgstr "Neuer Antrag wurde erfolgreich angelegt." - -#~ msgid "Motion was successfully modified." -#~ msgstr "Antrag wurde erfolgreich geändert." - -#~ msgid "" -#~ "Attention: Do you really want to edit this motion? The supporters will " -#~ "not be removed automatically because you can manage motions. " -#~ "Please check if the supports are valid after your changing!" -#~ msgstr "" -#~ "Achtung: Wollen Sie den Antrag wirklich ändern? Die Unterstützer/innen " -#~ "werden nicht automatisch entfernt, da Sie Anträge verwalten " -#~ "dürfen. Prüfen Sie, ob die Unterstützungen noch gültig sind." - -#~ msgid "" -#~ "Attention: Do you really want to edit this motion? All %s " -#~ "supporters will be removed! Try to convince the supporters again." -#~ msgstr "" -#~ "Wollen Sie den Antrag wirklich ändern? Alle %s Unterstützer/innen " -#~ "werden dann automatisch entfernt. Versuchen Sie diese erneut zu gewinnen." - -#~ msgid "Motion number was successfully set." -#~ msgstr "Antragsnummer wurde erfolgreich gesetzt." - -#~ msgid "Motion was successfully authorized." -#~ msgstr "Antrag wurde erfolgreich zugelassen." - -#~ msgid "Motion was successfully rejected." -#~ msgstr "Antrag wurde erfolgreich verworfen." - -#~ msgid "Motion status was reset." -#~ msgstr "Antragsstatus wurde zurückgesetzt." - -#~ msgid "Poll was successfully deleted." -#~ msgstr "Abstimmung wurde erfolgreich gelöscht." - -#~ msgid "the %s. poll" -#~ msgstr "die %s. Abstimmung" - -#~ msgid "You can not delete motion %s." -#~ msgstr "Sie können Antrag %s nicht löschen." - -#~ msgid "Motion %s was successfully deleted." -#~ msgstr "Antrag %s wurde erfolgreich gelöscht." - -#~ msgid "Invalid request" -#~ msgstr "Ungültige Anfrage" - -#~ msgid "Version %s accepted." -#~ msgstr "Version %s akzeptiert." - -#~ msgid "Do you really want to authorize version %s?" -#~ msgstr "Soll Version %s wirklich zugelassen werden?" - -#~ msgid "Version %s rejected." -#~ msgstr "Version %s zurückgewiesen." - -#~ msgid "ERROR by rejecting the version." -#~ msgstr "FEHLER beim Zurückweisen der Version." - -#~ msgid "Ignoring line %d because the assigned group may not act as a person." -#~ msgstr "" -#~ "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert da die verwendete " -#~ "Gruppe nicht als Person auftreten darf." - -#~ msgid "Created by motion import." -#~ msgstr "Erstellt durch Antragsimport." - -#~ msgid "" -#~ "Ignoring line %d because it contains an incomplete first / last name pair." -#~ msgstr "" -#~ "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert, da Vor- bzw. " -#~ "Nachname Leerstrings enthalten." - -#~ msgid "%d motion was successfully imported." -#~ msgid_plural "%d motions were successfully imported." -#~ msgstr[0] "%d Antrag wurde erfolgreich importiert." -#~ msgstr[1] "%d Anträge wurden erfolgreich importiert." - -#~ msgid "%d motion was successfully modified." -#~ msgid_plural "%d motions were successfully modified." -#~ msgstr[0] "%d Antrag wurde erfolgreich geändert." -#~ msgstr[1] "%d Anträge wurden erfolgreich geändert." - -#~ msgid "%d new user was added." -#~ msgid_plural "%d new users were added." -#~ msgstr[0] "%d neuer Nutzer wurde erstellt." -#~ msgstr[1] "%d neue Nutzer wurden erstellt." - -#~ msgid "%d new group was added." -#~ msgid_plural "%d new groups were added." -#~ msgstr[0] "%d neue Gruppe wurde erstellt." -#~ msgstr[1] "%d neue Gruppen wurden erstellt." - -#~ msgid "%d group assigned to motions." -#~ msgid_plural "%d groups assigned to motions." -#~ msgstr[0] "%d Gruppe wurde zugewiesen." -#~ msgstr[1] "%d Gruppen wurden zugewiesen." - -#~ msgid "" -#~ "Attention: Existing motions will be modified if you import new motions " -#~ "with the same number." -#~ msgstr "" -#~ "Achtung: Existierende Anträge werden geändert wenn Sie neue Anträge mit " -#~ "identischer Nummer importieren." - -#~ msgid "" -#~ "Attention: Importing an motions without a number multiple times will " -#~ "create duplicates." -#~ msgstr "" -#~ "Achtung: Bei mehrfachem Import eines Antrags ohne Nummer können Duplikate " -#~ "entstehen." - -#~ msgid "Poll" -#~ msgstr "Abstimmung" - -#~ msgid "Motion No. %s" -#~ msgstr "Antrag Nr. %s" - -#~ msgid "%d. Vote" -#~ msgstr "%d. Abstimmung" - -#~ msgid "Edit motion" -#~ msgstr "Antrag bearbeiten" - -#~ msgid "New motion" -#~ msgstr "Neuer Antrag" - -#~ msgid "Import motions" -#~ msgstr "Anträge importieren" - -#~ msgid "Select a CSV file to import motions!" -#~ msgstr "Wählen Sie eine CSV-Datei zum Importieren von Anträgen aus!" - -#~ msgid "number, title, text, reason, first_name, last_name, is_group" -#~ msgstr "Nummer, Titel, Text, Begründung, Vorname, Nachname, Gruppenantrag" - -#~ msgid "" -#~ "number, reason and is_group are " -#~ "optional and may be empty" -#~ msgstr "" -#~ "Nummer, Begründung und Gruppenantrag sind optional und können auch leer sein" - -#~ msgid "Print all motions as PDF" -#~ msgstr "Alle Anträge als PDF drucken" - -#~ msgid "Need supporters" -#~ msgstr "Benötigt Unterstützer/innen" - -#~ msgid "Without number" -#~ msgstr "Ohne Nummer" - -#~ msgid "Not yet authorized" -#~ msgstr "Noch nicht zugelassen" - -#~ msgid "Authorized" -#~ msgstr "Zugelassen" - -#~ msgid "Withdrawen (by submitter)" -#~ msgstr "Zurückgezogen (durch Antragsteller/in)" - -#~ msgctxt "number of motions" -#~ msgid "motion" -#~ msgid_plural "motions" -#~ msgstr[0] "Antrag" -#~ msgstr[1] "Anträge" - -#~ msgid "#" -#~ msgstr "#" - -#~ msgid "Motion title" -#~ msgstr "Antragstitel" - -#~ msgid "Number of supporters" -#~ msgstr "Anzahl der Unterstützer/innen" - -#~ msgid "Creation Time" -#~ msgstr "Erstellungszeit" - -#~ msgid "Print motion as PDF" -#~ msgstr "Antrag als PDF drucken" - -#~ msgid "Back to motion" -#~ msgstr "Zurück zum Antrag" - -#~ msgid "Show motion" -#~ msgstr "Antrag anzeigen" - -#~ msgid "Print this motion as PDF" -#~ msgstr "Diesen Antrag als PDF drucken" - -#~ msgid "Delete motion" -#~ msgstr "Antrag löschen" - -#~ msgid "This is not the newest version." -#~ msgstr "Dies ist nicht die neuste Version." - -#~ msgid "Go to version" -#~ msgstr "Gehe zu Version" - -#~ msgid "This is not the authorized version." -#~ msgstr "Dies ist nicht die zugelassene Version." - -#~ msgid "Version History" -#~ msgstr "Versionshistorie" - -#~ msgid "This version is authorized" -#~ msgstr "Diese Version wurde zugelassen" - -#~ msgid "Permit this version" -#~ msgstr "Diese Version zulassen" - -#~ msgid "Reject this version" -#~ msgstr "Diese Version verwerfen" - -#~ msgid "This version is rejected" -#~ msgstr "Diese Version wurde verworfen" - -#~ msgid "unchanged" -#~ msgstr "unverändert" - -#~ msgid "Show log" -#~ msgstr "Log anzeigen" - -#~ msgid "No results" -#~ msgstr "Keine Ergebnisse" - -#~ msgid "Withdraw motion" -#~ msgstr "Antrag zurückziehen" - -#~ msgid "Unsupport motion" -#~ msgstr "Antrag nicht unterstützen" - -#~ msgid "Support" -#~ msgstr "Unterstützen" - -#~ msgid "minimum required supporters" -#~ msgstr "minimal erforderliche Unterstützer/innen" - -#~ msgid "Manage motion" -#~ msgstr "Antrag verwalten" - -#~ msgid "Formal validation" -#~ msgstr "Formale Gültigkeitsprüfung" - -#~ msgid "Publish" -#~ msgstr "Veröffentlichen" - -#~ msgid "Permit" -#~ msgstr "Zulassen" - -#~ msgid "Not permit" -#~ msgstr "Nicht zulassen" - -#~ msgid "Set number" -#~ msgstr "Setze Nummer" - -#~ msgid "Result after vote" -#~ msgstr "Ergebnis nach der Abstimmung" - -#~ msgid "Withdrawed by Submitter" -#~ msgstr "Zurückgezogen durch Antragsteller/in" - -#~ msgid "For Administration only:" -#~ msgstr "Nur zur Administration:" - -#~ msgid "Reset" -#~ msgstr "Zurücksetzen" - -#~ msgid "My motions and elections" -#~ msgstr "Meine Anträge und Wahlen" - -#~ msgid "Countdown" -#~ msgstr "Countdown" diff --git a/openslides/locale/de/LC_MESSAGES/djangojs.mo b/openslides/locale/de/LC_MESSAGES/djangojs.mo index 9bb3fd8c13976a7727d5b7b753985b712367c038..64d72537e9eb2d4fa45201ab308ca4ee981d2979 100644 GIT binary patch literal 2613 zcmZ{kTWDNG7{{mDdRbewH?>};wzaA4Nq0BB#BC#{$wphV+1TA0DZ+ZP=gaPx-I;aH zoTM8>&HSk6s!(`b1sag!SP)Z+Hpufm2VM)l;Qdkm{uS?E^ZpIbw|x7% zAgXxZ`wu~m{|U(RedhfMkmoxE@;<)?dET=iult<$7eHReAHMx>kmD>tQ0})B6v*?P_WoP%&w#wo@4WxX`?Da&J@5Smkk|Pq$Z`GxdA@%@p6@Cg z2K!~6%fWl$SA*Pt7l^JR=lu}K@gMdqf*fbU`@6bnTqU z4)A`6@4FA`fp~2aS|}WY%RSH*=r%Se*)Bu?^7^@Khc-c5*`V+_EEFuGQ|`j^R{xu^ z8S01bhB)u}n^_HUxdGyDp7Vn^}&WmaWh_RaLD}I}G&Al~Q@|V42TSR`O%R6+XjCxmX??tt=Xlh!WO>dCGOv z#KxW9d~D?emEwrnVuDa34TFxALVoPftt2!V#B|$ CM;7`3 delta 419 zcmXZXze>YU6bA59O_QdnMT=Ghg*1*uY2u=xgCG?x1%+%batVRNsDb?HAVP7|O}t3K z!8dSla1lY!$<5KBI`{%Uf__(W;L9)fB%GW)Oy89TUp48PP!(hzIYp+B5h6-25G}$6 zoP!-$g!@o}UhYBuJc1?kFQ5XiU>)AT7QBbzJKwNdpaK2jMn|JNPBa5UD8n--2At>T zOK9Lc%=?dd{{`02e}l_#1RGGpb{I`%M9fnWv6xt1%+(O0St7juUt_q6KN3~ppHjEH z8N^9SJ(i^Wxu{R>#$G>&vV, YEAR. +# German translations for JavaScript file in OpenSlides package. +# Copyright (C) 2011-2013 by OpenSlides team, see AUTHORS. +# This file is distributed under the same license as the OpenSlides package. +# Emanuel Schütze , 2013. # msgid "" msgstr "" "Project-Id-Version: OpenSlides 1.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-12 21:29+0100\n" +"POT-Creation-Date: 2013-04-23 16:17+0200\n" "PO-Revision-Date: 2012-07-28 11:07+0200\n" -"Last-Translator: Oskar Hahn \n" +"Last-Translator: Emanuel Schütze \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: agenda/static/javascript/agenda-config-datepicker.js:9 +#: agenda/static/javascript/agenda-config-datepicker.js:39 +msgid "en" +msgstr "en" + +#: agenda/static/javascript/agenda-config-datepicker.js:10 +msgid "previous month" +msgstr "vorheriger Monat" + +#: agenda/static/javascript/agenda-config-datepicker.js:11 +msgid "next month" +msgstr "nächster Monat" + +#: agenda/static/javascript/agenda-config-datepicker.js:13 +msgid "January" +msgstr "Januar" + +#: agenda/static/javascript/agenda-config-datepicker.js:13 +msgid "February" +msgstr "Februar" + +#: agenda/static/javascript/agenda-config-datepicker.js:13 +msgid "March" +msgstr "März" + +#: agenda/static/javascript/agenda-config-datepicker.js:14 +msgid "April" +msgstr "April" + +#: agenda/static/javascript/agenda-config-datepicker.js:14 +#: agenda/static/javascript/agenda-config-datepicker.js:20 +msgid "May" +msgstr "Mai" + +#: agenda/static/javascript/agenda-config-datepicker.js:14 +msgid "June" +msgstr "Juni" + +#: agenda/static/javascript/agenda-config-datepicker.js:15 +msgid "July" +msgstr "Juli" + +#: agenda/static/javascript/agenda-config-datepicker.js:15 +msgid "August" +msgstr "August" + +#: agenda/static/javascript/agenda-config-datepicker.js:15 +msgid "September" +msgstr "September" + +#: agenda/static/javascript/agenda-config-datepicker.js:16 +msgid "October" +msgstr "Oktober" + +#: agenda/static/javascript/agenda-config-datepicker.js:16 +msgid "November" +msgstr "November" + +#: agenda/static/javascript/agenda-config-datepicker.js:16 +msgid "December" +msgstr "Dezember" + +#: agenda/static/javascript/agenda-config-datepicker.js:19 +msgid "Jan" +msgstr "Jan" + +#: agenda/static/javascript/agenda-config-datepicker.js:19 +msgid "Feb" +msgstr "Feb" + +#: agenda/static/javascript/agenda-config-datepicker.js:19 +msgid "Mar" +msgstr "Mär" + +#: agenda/static/javascript/agenda-config-datepicker.js:20 +msgid "Apr" +msgstr "Apr" + +#: agenda/static/javascript/agenda-config-datepicker.js:20 +msgid "Jun" +msgstr "Jun" + +#: agenda/static/javascript/agenda-config-datepicker.js:21 +msgid "Jul" +msgstr "Jul" + +#: agenda/static/javascript/agenda-config-datepicker.js:21 +msgid "Aug" +msgstr "Aug" + +#: agenda/static/javascript/agenda-config-datepicker.js:21 +msgid "Sep" +msgstr "Sep" + +#: agenda/static/javascript/agenda-config-datepicker.js:22 +msgid "Oct" +msgstr "Okt" + +#: agenda/static/javascript/agenda-config-datepicker.js:22 +msgid "Nov" +msgstr "Nov" + +#: agenda/static/javascript/agenda-config-datepicker.js:22 +msgid "Dec" +msgstr "Dez" + +#: agenda/static/javascript/agenda-config-datepicker.js:25 +msgid "Sunday" +msgstr "Sonntag" + +#: agenda/static/javascript/agenda-config-datepicker.js:25 +msgid "Monday" +msgstr "Montag" + +#: agenda/static/javascript/agenda-config-datepicker.js:25 +msgid "Tuesdey" +msgstr "Dienstag" + +#: agenda/static/javascript/agenda-config-datepicker.js:25 +msgid "Wednesday" +msgstr "Mittwoch" + +#: agenda/static/javascript/agenda-config-datepicker.js:26 +msgid "Thursday" +msgstr "Donnerstag" + +#: agenda/static/javascript/agenda-config-datepicker.js:26 +msgid "Friday" +msgstr "Freitag" + +#: agenda/static/javascript/agenda-config-datepicker.js:26 +msgid "Saturday" +msgstr "Samstag" + +#: agenda/static/javascript/agenda-config-datepicker.js:29 +#: agenda/static/javascript/agenda-config-datepicker.js:33 +msgid "Su" +msgstr "So" + +#: agenda/static/javascript/agenda-config-datepicker.js:29 +#: agenda/static/javascript/agenda-config-datepicker.js:33 +msgid "Mo" +msgstr "Mo" + +#: agenda/static/javascript/agenda-config-datepicker.js:29 +#: agenda/static/javascript/agenda-config-datepicker.js:33 +msgid "Tu" +msgstr "Di" + +#: agenda/static/javascript/agenda-config-datepicker.js:29 +#: agenda/static/javascript/agenda-config-datepicker.js:33 +msgid "We" +msgstr "Mi" + +#: agenda/static/javascript/agenda-config-datepicker.js:30 +#: agenda/static/javascript/agenda-config-datepicker.js:34 +msgid "Th" +msgstr "Do" + +#: agenda/static/javascript/agenda-config-datepicker.js:30 +#: agenda/static/javascript/agenda-config-datepicker.js:34 +msgid "Fr" +msgstr "Fr" + +#: agenda/static/javascript/agenda-config-datepicker.js:30 +#: agenda/static/javascript/agenda-config-datepicker.js:34 +msgid "Sa" +msgstr "Sa" + +#: agenda/static/javascript/agenda-config-datepicker.js:45 +msgid "Time" +msgstr "Zeit" + +#: agenda/static/javascript/agenda-config-datepicker.js:46 +msgid "Hour" +msgstr "Stunde" + +#: agenda/static/javascript/agenda-config-datepicker.js:47 +msgid "Minute" +msgstr "Minute" + +#: agenda/static/javascript/agenda-config-datepicker.js:48 +msgid "Current time" +msgstr "Aktuelle Zeit" + +#: agenda/static/javascript/agenda-config-datepicker.js:49 +msgid "Close" +msgstr "Schließen" + #: agenda/static/javascript/agenda.js:27 #, c-format msgid ", of which %s are hidden." diff --git a/openslides/mediafile/models.py b/openslides/mediafile/models.py index 806d9ed70..98ab41f9a 100644 --- a/openslides/mediafile/models.py +++ b/openslides/mediafile/models.py @@ -13,7 +13,7 @@ import mimetypes from django.db import models -from django.utils.translation import ugettext_noop +from django.utils.translation import ugettext_lazy, ugettext_noop from openslides.utils.person.models import PersonField @@ -23,16 +23,16 @@ class Mediafile(models.Model): Class for uploaded files which can be delivered under a certain url. """ - mediafile = models.FileField(upload_to='file') + mediafile = models.FileField(upload_to='file', verbose_name=ugettext_lazy("File")) """ See https://docs.djangoproject.com/en/dev/ref/models/fields/#filefield for more information. """ - title = models.CharField(max_length=255, unique=True) + title = models.CharField(max_length=255, unique=True, verbose_name=ugettext_lazy("Title")) """A string representing the title of the file.""" - uploader = PersonField(blank=True) + uploader = PersonField(blank=True, verbose_name=ugettext_lazy("Uploaded by")) """A person – the uploader of a file.""" timestamp = models.DateTimeField(auto_now_add=True) diff --git a/openslides/mediafile/static/styles/mediafile.css b/openslides/mediafile/static/styles/mediafile.css index 99f7d28cd..1ce9b1168 100644 --- a/openslides/mediafile/static/styles/mediafile.css +++ b/openslides/mediafile/static/styles/mediafile.css @@ -8,5 +8,9 @@ /** Navigation icons (mapping to glyphicons-halflings) **/ .icon-mediafile { - background-position: -96px -24px; + background-image: url("../img/glyphicons_062_paperclip.png"); + background-position: 0; +} +.leftmenu ul li.active a span.ico i.icon-mediafile { + background-image: url("../img/glyphicons_062_paperclip_white.png"); } diff --git a/openslides/mediafile/templates/mediafile/mediafile_list.html b/openslides/mediafile/templates/mediafile/mediafile_list.html index 73b7b3530..eb39c2afe 100644 --- a/openslides/mediafile/templates/mediafile/mediafile_list.html +++ b/openslides/mediafile/templates/mediafile/mediafile_list.html @@ -19,7 +19,7 @@ {% trans 'Type' %} {% trans 'Size' %} {% trans 'Upload time' %} - {% trans 'Uploader' %} + {% trans 'Uploaded by' %} {% if perms.mediafile.can_manage %} {% trans "Actions" %} {% endif %} diff --git a/openslides/motion/forms.py b/openslides/motion/forms.py index d5a7e76c8..989af7a6e 100644 --- a/openslides/motion/forms.py +++ b/openslides/motion/forms.py @@ -11,7 +11,7 @@ """ from django import forms -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy from openslides.utils.forms import CssClassMixin from openslides.utils.forms import CleanHtmlFormMixin @@ -30,18 +30,18 @@ class BaseMotionForm(CleanHtmlFormMixin, CssClassMixin, forms.ModelForm): """ clean_html_fields = ('text', 'reason') - title = forms.CharField(widget=forms.TextInput(), label=_("Title")) + title = forms.CharField(widget=forms.TextInput(), label=ugettext_lazy("Title")) """ Title of the motion. Will be saved in a MotionVersion object. """ - text = forms.CharField(widget=forms.Textarea(), label=_("Text")) + text = forms.CharField(widget=forms.Textarea(), label=ugettext_lazy("Text")) """ Text of the motion. Will be saved in a MotionVersion object. """ reason = forms.CharField( - widget=forms.Textarea(), required=False, label=_("Reason")) + widget=forms.Textarea(), required=False, label=ugettext_lazy("Reason")) """ Reason of the motion. will be saved in a MotionVersion object. """ @@ -64,7 +64,7 @@ class BaseMotionForm(CleanHtmlFormMixin, CssClassMixin, forms.ModelForm): class MotionSubmitterMixin(forms.ModelForm): """Mixin to append the submitter field to a MotionForm.""" - submitter = MultiplePersonFormField(label=_("Submitter")) + submitter = MultiplePersonFormField(label=ugettext_lazy("Submitter")) """Submitter of the motion. Can be one or more persons.""" def __init__(self, *args, **kwargs): @@ -78,7 +78,7 @@ class MotionSubmitterMixin(forms.ModelForm): class MotionSupporterMixin(forms.ModelForm): """Mixin to append the supporter field to a Motionform.""" - supporter = MultiplePersonFormField(required=False, label=_("Supporters")) + supporter = MultiplePersonFormField(required=False, label=ugettext_lazy("Supporters")) """Supporter of the motion. Can be one or more persons.""" def __init__(self, *args, **kwargs): @@ -93,8 +93,8 @@ class MotionDisableVersioningMixin(forms.ModelForm): """Mixin to add the option to the form to choose to disable versioning.""" disable_versioning = forms.BooleanField( - required=False, label=_("Don't create a new version"), - help_text=_("Don't create a new version. Useful e. g. for trivial changes.")) + required=False, label=ugettext_lazy("Don't create a new version"), + help_text=ugettext_lazy("Don't create a new version. Useful e.g. for trivial changes.")) """BooleanField to decide, if a new version will be created, or the last_version will be used.""" @@ -102,10 +102,10 @@ class MotionDisableVersioningMixin(forms.ModelForm): class MotionCategoryMixin(forms.ModelForm): """Mixin to let the user choose the category for the motion.""" - category = forms.ModelChoiceField(queryset=Category.objects.all(), required=False) + category = forms.ModelChoiceField(queryset=Category.objects.all(), required=False, label=ugettext_lazy("Category")) class MotionIdentifierMixin(forms.ModelForm): """Mixin to let the user choose the identifier for the motion.""" - identifier = forms.CharField(required=False) + identifier = forms.CharField(required=False, label=ugettext_lazy("Identifier")) diff --git a/openslides/motion/models.py b/openslides/motion/models.py index 1d3e9f0ff..e54379c87 100644 --- a/openslides/motion/models.py +++ b/openslides/motion/models.py @@ -21,7 +21,7 @@ from django.db.models import Max from django.dispatch import receiver from django.utils import formats from django.utils.translation import pgettext -from django.utils.translation import ugettext_lazy, ugettext_noop, ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy, ugettext_noop from openslides.utils.person import PersonField from openslides.config.api import config @@ -565,7 +565,7 @@ class MotionVersion(models.Model): title = models.CharField(max_length=255, verbose_name=ugettext_lazy("Title")) """The title of a motion.""" - text = models.TextField(verbose_name=_("Text")) + text = models.TextField(verbose_name=ugettext_lazy("Text")) """The text of a motion.""" reason = models.TextField(null=True, blank=True, verbose_name=ugettext_lazy("Reason")) @@ -585,7 +585,7 @@ class MotionVersion(models.Model): def __unicode__(self): """Return a string, representing this object.""" - counter = self.version_number or _('new') + counter = self.version_number or ugettext_lazy('new') return "%s Version %s" % (self.motion, counter) # TODO: Should this really be self.motion or the title of the specific version? def get_absolute_url(self, link='detail'): diff --git a/openslides/motion/pdf.py b/openslides/motion/pdf.py index 8ea7a0279..a029b2b2f 100644 --- a/openslides/motion/pdf.py +++ b/openslides/motion/pdf.py @@ -167,7 +167,7 @@ def motion_to_pdf(pdf, motion): # motion reason if motion.reason: - pdf.append(Paragraph(_("Reason:"), stylesheet['Heading3'])) + pdf.append(Paragraph(_("Reason")+":", stylesheet['Heading3'])) convert_html_to_reportlab(pdf, motion.reason) return pdf diff --git a/openslides/motion/signals.py b/openslides/motion/signals.py index 76f2f9668..8f86ffc4d 100644 --- a/openslides/motion/signals.py +++ b/openslides/motion/signals.py @@ -30,36 +30,36 @@ def setup_motion_config_page(sender, **kwargs): name='motion_stop_submitting', default_value=False, form_field=forms.BooleanField( - label=_('Stop submitting new motions by non-staff users'), + label=ugettext_lazy('Stop submitting new motions by non-staff users'), required=False)) motion_min_supporters = ConfigVariable( name='motion_min_supporters', default_value=0, form_field=forms.IntegerField( widget=forms.TextInput(attrs={'class': 'small-input'}), - label=_('Number of (minimum) required supporters for a motion'), + label=ugettext_lazy('Number of (minimum) required supporters for a motion'), initial=4, min_value=0, max_value=8, - help_text=_('Choose 0 to disable the supporting system'))) + help_text=ugettext_lazy('Choose 0 to disable the supporting system'))) motion_preamble = ConfigVariable( name='motion_preamble', default_value=_('The assembly may decide,'), form_field=forms.CharField( widget=forms.TextInput(), required=False, - label=_('Motion preamble'))) + label=ugettext_lazy('Motion preamble'))) motion_pdf_ballot_papers_selection = ConfigVariable( name='motion_pdf_ballot_papers_selection', default_value='CUSTOM_NUMBER', form_field=forms.ChoiceField( widget=forms.Select(), required=False, - label=_('Number of ballot papers (selection)'), + label=ugettext_lazy('Number of ballot papers (selection)'), choices=[ - ('NUMBER_OF_DELEGATES', _('Number of all delegates')), - ('NUMBER_OF_ALL_PARTICIPANTS', _('Number of all participants')), - ('CUSTOM_NUMBER', _("Use the following custom number"))])) + ('NUMBER_OF_DELEGATES', ugettext_lazy('Number of all delegates')), + ('NUMBER_OF_ALL_PARTICIPANTS', ugettext_lazy('Number of all participants')), + ('CUSTOM_NUMBER', ugettext_lazy("Use the following custom number"))])) motion_pdf_ballot_papers_number = ConfigVariable( name='motion_pdf_ballot_papers_number', default_value=8, @@ -67,46 +67,46 @@ def setup_motion_config_page(sender, **kwargs): widget=forms.TextInput(attrs={'class': 'small-input'}), required=False, min_value=1, - label=_('Custom number of ballot papers'))) + label=ugettext_lazy('Custom number of ballot papers'))) motion_pdf_title = ConfigVariable( name='motion_pdf_title', default_value=_('Motions'), form_field=forms.CharField( widget=forms.TextInput(), required=False, - label=_('Title for PDF document (all motions)'))) + label=ugettext_lazy('Title for PDF document (all motions)'))) motion_pdf_preamble = ConfigVariable( name='motion_pdf_preamble', default_value='', form_field=forms.CharField( widget=forms.Textarea(), required=False, - label=_('Preamble text for PDF document (all motions)'))) + label=ugettext_lazy('Preamble text for PDF document (all motions)'))) motion_allow_disable_versioning = ConfigVariable( name='motion_allow_disable_versioning', default_value=False, form_field=forms.BooleanField( - label=_('Allow to disable versioning'), + label=ugettext_lazy('Allow to disable versioning'), required=False)) motion_workflow = ConfigVariable( name='motion_workflow', default_value=1, form_field=forms.ChoiceField( widget=forms.Select(), - label=_('Workflow of new motions'), + label=ugettext_lazy('Workflow of new motions'), required=True, - choices=[(workflow.pk, workflow.name) for workflow in Workflow.objects.all()])) + choices=[(workflow.pk, ugettext_lazy(workflow.name)) for workflow in Workflow.objects.all()])) motion_identifier = ConfigVariable( name='motion_identifier', default_value='manually', form_field=forms.ChoiceField( widget=forms.Select(), required=False, - label=_('Identifier'), + label=ugettext_lazy('Identifier'), choices=[ - ('manually', _('Set it manually')), - ('per_category', _('Numbered per category')), - ('serially_numbered', _('Serially numbered'))])) + ('manually', ugettext_lazy('Set it manually')), + ('per_category', ugettext_lazy('Numbered per category')), + ('serially_numbered', ugettext_lazy('Serially numbered'))])) return ConfigPage(title=ugettext_noop('Motion'), url='motion', diff --git a/openslides/motion/templates/motion/category_list.html b/openslides/motion/templates/motion/category_list.html index 41e9f821d..3544997ff 100644 --- a/openslides/motion/templates/motion/category_list.html +++ b/openslides/motion/templates/motion/category_list.html @@ -10,7 +10,7 @@ {% trans "Categories" %} {% if perms.motion.can_manage_motion %} - {% trans 'New' %} + {% trans 'New' %} {% endif %} {% trans "Back to overview" %} diff --git a/openslides/motion/templates/motion/motion_detail.html b/openslides/motion/templates/motion/motion_detail.html index a7969e7c2..10595e5ed 100644 --- a/openslides/motion/templates/motion/motion_detail.html +++ b/openslides/motion/templates/motion/motion_detail.html @@ -126,11 +126,11 @@ - + {# TODO: add delete version function #} - + diff --git a/openslides/motion/templates/motion/motion_diff.html b/openslides/motion/templates/motion/motion_diff.html index f03d54b85..9a4397da0 100644 --- a/openslides/motion/templates/motion/motion_diff.html +++ b/openslides/motion/templates/motion/motion_diff.html @@ -34,11 +34,11 @@ diff --git a/openslides/motion/templates/motion/motion_form.html b/openslides/motion/templates/motion/motion_form.html index e8242cd64..72bb29bdb 100644 --- a/openslides/motion/templates/motion/motion_form.html +++ b/openslides/motion/templates/motion/motion_form.html @@ -31,7 +31,11 @@ {% trans "New motion" %} {% endif %} - {% trans "Back to overview" %} + {% if motion %} + {% trans "Back to motion" %} + {% else %} + {% trans "Back to overview" %} + {% endif %} {% csrf_token %} diff --git a/openslides/motion/templates/motion/motion_list.html b/openslides/motion/templates/motion/motion_list.html index f61f4311e..73e4be414 100644 --- a/openslides/motion/templates/motion/motion_list.html +++ b/openslides/motion/templates/motion/motion_list.html @@ -15,7 +15,7 @@ {% endif %} {% endif %} {% if perms.motion.can_manage_motion %} - {% trans 'Category' %} + {% trans 'Categories' %} {# {% trans 'Import' %}#} {% endif %} PDF diff --git a/openslides/motion/views.py b/openslides/motion/views.py index b459e27f5..16374909a 100644 --- a/openslides/motion/views.py +++ b/openslides/motion/views.py @@ -291,7 +291,7 @@ class VersionDiffView(DetailView): diff_text = htmldiff(version_rev1.text, version_rev2.text) diff_reason = htmldiff(version_rev1.reason, version_rev2.reason) except (KeyError, ValueError, MotionVersion.DoesNotExist): - messages.error(self.request, _('At least one version number was not valid.')) + messages.error(self.request, _('At least one version number is not valid.')) version_rev1 = None version_rev2 = None diff_text = None @@ -556,7 +556,7 @@ class MotionSetStateView(SingleObjectMixin, RedirectView): else: self.object.save() # TODO: the state is not translated - self.object.write_log(ugettext_noop('Changed state to %s') % + self.object.write_log(ugettext_noop('State changed to %s') % self.object.state.name, self.request.user) messages.success(request, _('Motion status was set to: %s.' % html_strong(self.object.state))) @@ -583,7 +583,7 @@ class CreateAgendaItemView(SingleObjectMixin, RedirectView): def pre_redirect(self, request, *args, **kwargs): """Create the agenda item.""" self.item = Item.objects.create(related_sid=self.object.sid) - self.object.write_log(ugettext_noop('Created Agenda Item'), self.request.user) + self.object.write_log(ugettext_noop('Agenda item created'), self.request.user) create_agenda_item = CreateAgendaItemView.as_view() @@ -595,7 +595,7 @@ class MotionPDFView(SingleObjectMixin, PDFView): If self.print_all_motions is False, the view returns a PDF with only one motion.""" - permission_required = 'motion.can_manage_motion' + permission_required = 'motion.can_see_motion' model = Motion top_space = 0 print_all_motions = False diff --git a/openslides/participant/api.py b/openslides/participant/api.py index 8c0bd94ed..b4d127dc2 100644 --- a/openslides/participant/api.py +++ b/openslides/participant/api.py @@ -97,7 +97,7 @@ def import_users(csv_file): error_messages.append(_('Ignoring malformed group id in line %d.') % (line_no + 1)) continue except Group.DoesNotExist: - error_messages.append(_('Group id %s does not exists (line %d).') % (groupid, line_no + 1)) + error_messages.append(_('Group id %(id)s does not exists (line %(line)d).') % {'id': groupid, 'line': line_no + 1}) continue user.reset_password() count_success += 1 diff --git a/openslides/participant/forms.py b/openslides/participant/forms.py index 0b6053953..c1d354dce 100644 --- a/openslides/participant/forms.py +++ b/openslides/participant/forms.py @@ -117,11 +117,11 @@ class GroupForm(forms.ModelForm, CssClassMixin): # Editing the anonymous-user if self.instance.name.lower() != data.lower(): raise forms.ValidationError( - ugettext_lazy('You can not edit the name for this group.')) + _('You can not edit the name for this group.')) else: if data.lower() in ['anonymous', 'registered']: raise forms.ValidationError( - ugettext_lazy('Group name "%s" is reserved for internal use.') % data) + _('Group name "%s" is reserved for internal use.') % data) return data class Meta: diff --git a/openslides/participant/models.py b/openslides/participant/models.py index b90ce7963..c48cf1e3d 100644 --- a/openslides/participant/models.py +++ b/openslides/participant/models.py @@ -14,7 +14,7 @@ from django.contrib.auth.models import User as DjangoUser, Group as DjangoGroup from django.db import models from django.db.models import signals from django.dispatch import receiver -from django.utils.translation import ugettext_lazy as _, ugettext_noop # TODO: Change this in the code +from django.utils.translation import ugettext_lazy, ugettext_noop from openslides.utils.person import PersonMixin, Person from openslides.utils.person.signals import receive_persons @@ -27,32 +27,32 @@ class User(PersonMixin, Person, SlideMixin, DjangoUser): prefix = 'user' # This is for the slides person_prefix = 'user' GENDER_CHOICES = ( - ('male', _('Male')), - ('female', _('Female')), + ('male', ugettext_lazy('Male')), + ('female', ugettext_lazy('Female')), ) django_user = models.OneToOneField(DjangoUser, editable=False, parent_link=True) structure_level = models.CharField( - max_length=255, blank=True, default='', verbose_name=_("Structure level"), - help_text=_('Will be shown after the name.')) + max_length=255, blank=True, default='', verbose_name=ugettext_lazy("Structure level"), + help_text=ugettext_lazy('Will be shown after the name.')) title = models.CharField( - max_length=50, blank=True, default='', verbose_name=_("Titel"), - help_text=_('Will be shown before the name.')) + max_length=50, blank=True, default='', verbose_name=ugettext_lazy("Title"), + help_text=ugettext_lazy('Will be shown before the name.')) gender = models.CharField( max_length=50, choices=GENDER_CHOICES, blank=True, - verbose_name=_("Gender"), help_text=_('Only for filtering the participant list.')) + verbose_name=ugettext_lazy("Gender"), help_text=ugettext_lazy('Only for filtering the participant list.')) committee = models.CharField( - max_length=255, blank=True, default='', verbose_name=_("Committee"), - help_text=_('Only for filtering the participant list.')) + max_length=255, blank=True, default='', verbose_name=ugettext_lazy("Committee"), + help_text=ugettext_lazy('Only for filtering the participant list.')) about_me = models.TextField( - blank=True, default='', verbose_name=_('About me'), - help_text=_('Your profile text')) + blank=True, default='', verbose_name=ugettext_lazy('About me'), + help_text=ugettext_lazy('Your profile text')) comment = models.TextField( - blank=True, default='', verbose_name=_('Comment'), - help_text=_('Only for notes.')) + blank=True, default='', verbose_name=ugettext_lazy('Comment'), + help_text=ugettext_lazy('Only for notes.')) default_password = models.CharField( max_length=100, blank=True, default='', - verbose_name=_("Default password")) + verbose_name=ugettext_lazy("Default password")) @property def clean_name(self): @@ -134,9 +134,9 @@ class Group(PersonMixin, Person, SlideMixin, DjangoGroup): django_group = models.OneToOneField(DjangoGroup, editable=False, parent_link=True) group_as_person = models.BooleanField( - default=False, verbose_name=_("Use this group as participant"), - help_text=_('For example as submitter of a motion.')) - description = models.TextField(blank=True, verbose_name=_("Description")) + default=False, verbose_name=ugettext_lazy("Use this group as participant"), + help_text=ugettext_lazy('For example as submitter of a motion.')) + description = models.TextField(blank=True, verbose_name=ugettext_lazy("Description")) @models.permalink def get_absolute_url(self, link='view'): diff --git a/openslides/participant/signals.py b/openslides/participant/signals.py index ce9a153b4..f0c9da7ea 100644 --- a/openslides/participant/signals.py +++ b/openslides/participant/signals.py @@ -12,7 +12,7 @@ from django.dispatch import receiver from django import forms -from django.utils.translation import ugettext_noop, ugettext_lazy, ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy, ugettext_noop from django.contrib.contenttypes.models import ContentType from django.contrib.auth.models import Permission @@ -35,23 +35,23 @@ def setup_participant_config_page(sender, **kwargs): form_field=forms.CharField( widget=forms.TextInput(), required=False, - label=_('System URL'), - help_text=_('Printed in PDF of first time passwords only.'))) + label=ugettext_lazy('System URL'), + help_text=ugettext_lazy('Printed in PDF of first time passwords only.'))) participant_pdf_welcometext = ConfigVariable( name='participant_pdf_welcometext', default_value=_('Welcome to OpenSlides!'), form_field=forms.CharField( widget=forms.Textarea(), required=False, - label=_('Welcome text'), - help_text=_('Printed in PDF of first time passwords only.'))) + label=ugettext_lazy('Welcome text'), + help_text=ugettext_lazy('Printed in PDF of first time passwords only.'))) participant_sort_users_by_first_name = ConfigVariable( name='participant_sort_users_by_first_name', default_value=False, form_field=forms.BooleanField( required=False, - label=_('Sort participants by first name'), - help_text=_('Disable for sorting by last name'))) + label=ugettext_lazy('Sort participants by first name'), + help_text=ugettext_lazy('Disable for sorting by last name'))) return ConfigPage(title=ugettext_noop('Participant'), url='participant', diff --git a/openslides/participant/templates/participant/group_detail.html b/openslides/participant/templates/participant/group_detail.html index 99e46ad8c..a8aa31ec8 100644 --- a/openslides/participant/templates/participant/group_detail.html +++ b/openslides/participant/templates/participant/group_detail.html @@ -3,11 +3,11 @@ {% load i18n %} {% load tags %} -{% block title %}{{ block.super }} – {{ group }}{% endblock %} +{% block title %}{{ block.super }} – {% trans group.name %}{% endblock %} {% block content %} -

          {{ group }} +

          {% trans group.name %} {% trans "Back to overview" %} diff --git a/openslides/participant/templates/participant/group_overview.html b/openslides/participant/templates/participant/group_overview.html index c5115685b..1edffae99 100644 --- a/openslides/participant/templates/participant/group_overview.html +++ b/openslides/participant/templates/participant/group_overview.html @@ -21,7 +21,7 @@ {% for group in groups %}

          "):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_contactContainers:function(s){var n,a,o,r,h,l,c,u,d,p,f=null,m=null;for(n=this.containers.length-1;n>=0;n--)if(!t.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(f&&t.contains(this.containers[n].element[0],f.element[0]))continue;f=this.containers[n],m=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",s,this._uiHash(this)),this.containers[n].containerCache.over=0);if(f)if(1===this.containers.length)this.containers[m].containerCache.over||(this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1);else{for(o=1e4,r=null,p=f.floating||i(this.currentItem),h=p?"left":"top",l=p?"width":"height",c=this.positionAbs[h]+this.offset.click[h],a=this.items.length-1;a>=0;a--)t.contains(this.containers[m].element[0],this.items[a].item[0])&&this.items[a].item[0]!==this.currentItem[0]&&(!p||e(this.positionAbs.top+this.offset.click.top,this.items[a].top,this.items[a].height))&&(u=this.items[a].item.offset()[h],d=!1,Math.abs(u-c)>Math.abs(u+this.items[a][l]-c)&&(d=!0,u+=this.items[a][l]),o>Math.abs(u-c)&&(o=Math.abs(u-c),r=this.items[a],this.direction=d?"up":"down"));if(!r&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[m])return;r?this._rearrange(s,r,null,!0):this._rearrange(s,null,this.containers[m].element,!0),this._trigger("change",s,this._uiHash()),this.containers[m]._trigger("change",s,this._uiHash(this)),this.currentContainer=this.containers[m],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,t("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(t("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,a=e.pageX,o=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(a=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)e||s.push(function(t){return function(e){t._trigger("deactivate",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(function(t){return function(e){t._trigger("out",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!e){for(this._trigger("beforeStop",t,this._uiHash()),i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!1}if(e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!e){for(i=0;s.length>i;i++)s[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})})(jQuery);(function(t,e){function i(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.dpDiv=s(t("
          "))}function s(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.delegate(i,"mouseout",function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",function(){t.datepicker._isDisabledDatepicker(a.inline?e.parent()[0]:a.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))})}function n(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}t.extend(t.ui,{datepicker:{version:"1.10.2"}});var a,r="datepicker",o=(new Date).getTime();t.extend(i.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return n(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,a;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),a=this._newInst(t(e),n),a.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,a):n&&this._inlineDatepicker(e,a)},_newInst:function(e,i){var n=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:n,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?s(t("
          ")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),t.data(e,r,i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,a,r=this._get(i,"appendText"),o=this._get(i,"isRTL");i.append&&i.append.remove(),r&&(i.append=t(""+r+""),e[o?"before":"after"](i.append)),e.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):t("").addClass(this._triggerClass).html(a?t("").attr({src:a,alt:n,title:n}):n)),e[o?"before":"after"](i.trigger),i.trigger.click(function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,a=new Date(2009,11,20),r=this._get(t,"dateFormat");r.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},a.setMonth(e(this._get(t,r.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(e(this._get(t,r.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),t.input.attr("size",this._formatDate(t,a).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,r,i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,a,o){var h,l,c,u,d,p=this._dialogInst;return p||(this.uuid+=1,h="dp"+this.uuid,this._dialogInput=t(""),this._dialogInput.keydown(this._doKeyDown),t("body").append(this._dialogInput),p=this._dialogInst=this._newInst(this._dialogInput,!1),p.settings={},t.data(this._dialogInput[0],r,p)),n(p.settings,a||{}),i=i&&i.constructor===Date?this._formatDate(p,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(l=document.documentElement.clientWidth,c=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+u,c/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),p.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],r,p),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,r);s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,r),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty())},_enableDatepicker:function(e){var i,s,n=t(e),a=t.data(e,r);n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),a=t.data(e,r);n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,r)}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(i,s,a){var r,o,h,l,c=this._getInst(i);return 2===arguments.length&&"string"==typeof s?"defaults"===s?t.extend({},t.datepicker._defaults):c?"all"===s?t.extend({},c.settings):this._get(c,s):null:(r=s||{},"string"==typeof s&&(r={},r[s]=a),c&&(this._curInst===c&&this._hideDatepicker(),o=this._getDateDatepicker(i,!0),h=this._getMinMaxDate(c,"min"),l=this._getMinMaxDate(c,"max"),n(c.settings,r),null!==h&&r.dateFormat!==e&&r.minDate===e&&(c.settings.minDate=this._formatDate(c,h)),null!==l&&r.dateFormat!==e&&r.maxDate===e&&(c.settings.maxDate=this._formatDate(c,l)),"disabled"in r&&(r.disabled?this._disableDatepicker(i):this._enableDatepicker(i)),this._attachments(t(i),c),this._autoSize(c),this._setDate(c,o),this._updateAlternate(c),this._updateDatepicker(c)),e)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,a=t.datepicker._getInst(e.target),r=!0,o=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),r=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",a.dpDiv),n[0]&&t.datepicker._selectDay(e.target,a.selectedMonth,a.selectedYear,n[0]),i=t.datepicker._get(a,"onSelect"),i?(s=t.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(a,"stepBigMonths"):-t.datepicker._get(a,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(a,"stepBigMonths"):+t.datepicker._get(a,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),r=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),r=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,o?1:-1,"D"),r=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(a,"stepBigMonths"):-t.datepicker._get(a,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),r=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,o?-1:1,"D"),r=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(a,"stepBigMonths"):+t.datepicker._get(a,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),r=e.ctrlKey||e.metaKey;break;default:r=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):r=!1;r&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(i){var s,n,a=t.datepicker._getInst(i.target);return t.datepicker._get(a,"constrainInput")?(s=t.datepicker._possibleChars(t.datepicker._get(a,"dateFormat")),n=String.fromCharCode(null==i.charCode?i.keyCode:i.charCode),i.ctrlKey||i.metaKey||" ">n||!s||s.indexOf(n)>-1):e},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var i,s,a,r,o,h,l;i=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==i&&(t.datepicker._curInst.dpDiv.stop(!0,!0),i&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),s=t.datepicker._get(i,"beforeShow"),a=s?s.apply(e,[e,i]):{},a!==!1&&(n(i.settings,a),i.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(i),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),o={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(i),o=t.datepicker._checkOffset(i,o,r),i.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:o.left+"px",top:o.top+"px"}),i.inline||(h=t.datepicker._get(i,"showAnim"),l=t.datepicker._get(i,"duration"),i.dpDiv.zIndex(t(e).zIndex()+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[h]?i.dpDiv.show(h,t.datepicker._get(i,"showOptions"),l):i.dpDiv[h||"show"](h?l:null),i.input.is(":visible")&&!i.input.is(":disabled")&&i.input.focus(),t.datepicker._curInst=i))}},_updateDatepicker:function(e){this.maxRows=4,a=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e),e.dpDiv.find("."+this._dayOverClass+" a").mouseover();var i,s=this._getNumberOfMonths(e),n=s[1],r=17;e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",r*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&e.input[0]!==document.activeElement&&e.input.focus(),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_getBorders:function(t){var e=function(t){return{thin:1,medium:2,thick:3}[t]||t};return[parseFloat(e(t.css("border-left-width"))),parseFloat(e(t.css("border-top-width")))]},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),a=e.dpDiv.outerHeight(),r=e.input?e.input.outerWidth():0,o=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-r:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+o?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+o):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,a,o=this._curInst;!o||e&&o!==t.data(e,r)||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){t.datepicker._tidyDialog(o)},t.effects&&(t.effects.effect[i]||t.effects[i])?o.dpDiv.hide(i,t.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(e,i,s,n){var a,r=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(r[0])||(a=this._getInst(r[0]),a.selectedDay=a.currentDay=t("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(e,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,a=this._get(e,"altField");a&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(a).each(function(){t(this).val(n)}))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(i,s,n){if(null==i||null==s)throw"Invalid arguments";if(s="object"==typeof s?""+s:s+"",""===s)return null;var a,r,o,h,l=0,c=(n?n.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof c?c:(new Date).getFullYear()%100+parseInt(c,10),d=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,p=(n?n.dayNames:null)||this._defaults.dayNames,f=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,m=(n?n.monthNames:null)||this._defaults.monthNames,g=-1,v=-1,_=-1,b=-1,y=!1,w=function(t){var e=i.length>a+1&&i.charAt(a+1)===t;return e&&a++,e},k=function(t){var e=w(t),i="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n=RegExp("^\\d{1,"+i+"}"),a=s.substring(l).match(n);if(!a)throw"Missing number at position "+l;return l+=a[0].length,parseInt(a[0],10)},x=function(i,n,a){var r=-1,o=t.map(w(i)?a:n,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(o,function(t,i){var n=i[1];return s.substr(l,n.length).toLowerCase()===n.toLowerCase()?(r=i[0],l+=n.length,!1):e}),-1!==r)return r+1;throw"Unknown name at position "+l},D=function(){if(s.charAt(l)!==i.charAt(a))throw"Unexpected literal at position "+l;l++};for(a=0;i.length>a;a++)if(y)"'"!==i.charAt(a)||w("'")?D():y=!1;else switch(i.charAt(a)){case"d":_=k("d");break;case"D":x("D",d,p);break;case"o":b=k("o");break;case"m":v=k("m");break;case"M":v=x("M",f,m);break;case"y":g=k("y");break;case"@":h=new Date(k("@")),g=h.getFullYear(),v=h.getMonth()+1,_=h.getDate();break;case"!":h=new Date((k("!")-this._ticksTo1970)/1e4),g=h.getFullYear(),v=h.getMonth()+1,_=h.getDate();break;case"'":w("'")?D():y=!0;break;default:D()}if(s.length>l&&(o=s.substr(l),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=g?0:-100)),b>-1)for(v=1,_=b;;){if(r=this._getDaysInMonth(g,v-1),r>=_)break;v++,_-=r}if(h=this._daylightSavingAdjust(new Date(g,v-1,_)),h.getFullYear()!==g||h.getMonth()+1!==v||h.getDate()!==_)throw"Invalid date";return h},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,r=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,o=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,a);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),r,o);break;case"y":u+=h("y")?e.getFullYear():(10>e.getYear()%100?"0":"")+e.getYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,i){return t.settings[i]!==e?t.settings[i]:this._defaults[i]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),a=n,r=this._getFormatConfig(t);try{a=this.parseDate(i,s,r)||n}catch(o){s=e?"":s}t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),t.currentDay=s?a.getDate():0,t.currentMonth=s?a.getMonth():0,t.currentYear=s?a.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},a=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,a=n.getFullYear(),r=n.getMonth(),o=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":o+=parseInt(l[1],10);break;case"w":case"W":o+=7*parseInt(l[1],10);break;case"m":case"M":r+=parseInt(l[1],10),o=Math.min(o,t.datepicker._getDaysInMonth(a,r));break;case"y":case"Y":a+=parseInt(l[1],10),o=Math.min(o,t.datepicker._getDaysInMonth(a,r))}l=h.exec(i)}return new Date(a,r,o)},r=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return r=r&&"Invalid Date"==""+r?s:r,r&&(r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0)),this._daylightSavingAdjust(r)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,a=t.selectedYear,r=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=r.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=r.getMonth(),t.drawYear=t.selectedYear=t.currentYear=r.getFullYear(),n===t.selectedMonth&&a===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){window["DP_jQuery_"+o].datepicker._adjustDate(s,-i,"M")},next:function(){window["DP_jQuery_"+o].datepicker._adjustDate(s,+i,"M")},hide:function(){window["DP_jQuery_"+o].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+o].datepicker._gotoToday(s)},selectDay:function(){return window["DP_jQuery_"+o].datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+o].datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+o].datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).bind(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,a,r,o,h,l,c,u,d,p,f,m,g,v,_,b,y,w,k,x,D,T,C,S,M,N,I,P,A,z,H,E,F,O,W,j,R=new Date,L=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),B=this._get(t,"showButtonPanel"),J=this._get(t,"hideIfNoPrevNext"),Q=this._get(t,"navigationAsDateFormat"),K=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),U=this._get(t,"stepMonths"),q=1!==K[0]||1!==K[1],X=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),G=this._getMinMaxDate(t,"min"),$=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),$)for(e=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-K[0]*K[1]+1,$.getDate())),e=G&&G>e?G:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=Q?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-U,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?""+i+"":J?"":""+i+"",n=this._get(t,"nextText"),n=Q?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+U,1)),this._getFormatConfig(t)):n,a=this._canAdjustMonth(t,1,te,Z)?""+n+"":J?"":""+n+"",r=this._get(t,"currentText"),o=this._get(t,"gotoCurrent")&&t.currentDay?X:L,r=Q?this.formatDate(r,o,this._getFormatConfig(t)):r,h=t.inline?"":"",l=B?"
          "+(Y?h:"")+(this._isInRange(t,o)?"":"")+(Y?"":h)+"
          ":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),m=this._get(t,"monthNamesShort"),g=this._get(t,"beforeShowDay"),v=this._get(t,"showOtherMonths"),_=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;K[0]>k;k++){for(x="",this.maxRows=4,D=0;K[1]>D;D++){if(T=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),C=" ui-corner-all",S="",q){if(S+="
          "}for(S+="
          "+(/all|left/.test(C)&&0===k?Y?a:s:"")+(/all|right/.test(C)&&0===k?Y?s:a:"")+this._generateMonthYearHeader(t,Z,te,G,$,k>0||D>0,f,m)+"
          {% trans "Version" %} {{ version_rev1.version_number }}
          - {% trans "created: " %} {{ version_rev1.creation_time }}
          + {% trans "created" %}: {{ version_rev1.creation_time }}

          {{ version_rev1.title }}

          {% trans "Version" %} {{ version_rev2.version_number }}
          - {% trans "created: " %} {{ version_rev1.creation_time }}
          + {% trans "created" %}: {{ version_rev1.creation_time }}

          {{ version_rev2.title }}

          - {{ group.name }} + {% trans group.name %} diff --git a/openslides/participant/templates/participant/user_detail.html b/openslides/participant/templates/participant/user_detail.html index 90fa33c4b..9cbda51fe 100644 --- a/openslides/participant/templates/participant/user_detail.html +++ b/openslides/participant/templates/participant/user_detail.html @@ -14,43 +14,44 @@ +
          +
          + {% trans "Personal data" %} + + {{ shown_user.get_gender_display }} + + {{ shown_user.email }} + + {{ shown_user.about_me|linebreaks }} +
          -
          - {% trans "Personal data" %} - - {{ shown_user.get_gender_display }} - - {{ shown_user.email }} - - {{ shown_user.about_me|linebreaks }} -
          +
          + {% trans "Event data" %} + + {{ shown_user.structure_level }} + + {{ shown_user.committee }} + + {% if shown_user.groups.all %} + {{ shown_user.groups.all|join:", " }} + {% else %} + {% trans "The participant is not member of any group." %} + {% endif %} +
          -
          - {% trans "Event data" %} - - {{ shown_user.structure_level }} - - {{ shown_user.committee }} - - {% if shown_user.groups.all %} - {{ shown_user.groups.all|join:", " }} - {% else %} - {% trans "The participant is not member of any group." %} + {% if perms.participant.can_manage_participant %} +
          + {% trans "Administrative data" %} + + {{ shown_user.username }} + + {{ shown_user.comment|linebreaks }} + + {% if shown_user.last_login > shown_user.date_joined %} + {{ shown_user.last_login }} + {% else %} + {% trans "The participant has not logged in yet." %} + {% endif %} {% endif %} -
          - -{% if perms.participant.can_manage_participant %} -
          - {% trans "Administrative data" %} - - {{ shown_user.username }} - - {{ shown_user.comment|linebreaks }} - - {% if shown_user.last_login > shown_user.date_joined %} - {{ shown_user.last_login }} - {% else %} - {% trans "The participant has not logged in yet." %} - {% endif %} -{% endif %} +
          {% endblock %} diff --git a/openslides/projector/models.py b/openslides/projector/models.py index 8705181c3..2dfcd538d 100644 --- a/openslides/projector/models.py +++ b/openslides/projector/models.py @@ -12,7 +12,7 @@ from django.db import models from django.dispatch import receiver -from django.utils.translation import ugettext_lazy as _, ugettext_noop +from django.utils.translation import ugettext_lazy, ugettext_noop from openslides.projector.api import register_slidemodel from openslides.projector.projector import SlideMixin @@ -24,9 +24,9 @@ class ProjectorSlide(models.Model, SlideMixin): """ prefix = 'ProjectorSlide' - title = models.CharField(max_length=256, verbose_name=_("Title")) - text = models.TextField(null=True, blank=True, verbose_name=_("Text")) - weight = models.IntegerField(default=0, verbose_name=_("Weight")) + title = models.CharField(max_length=256, verbose_name=ugettext_lazy("Title")) + text = models.TextField(null=True, blank=True, verbose_name=ugettext_lazy("Text")) + weight = models.IntegerField(default=0, verbose_name=ugettext_lazy("Weight")) def slide(self): return { diff --git a/openslides/projector/signals.py b/openslides/projector/signals.py index 672a0ed61..b1700a732 100644 --- a/openslides/projector/signals.py +++ b/openslides/projector/signals.py @@ -13,7 +13,6 @@ from time import time from django.dispatch import Signal, receiver from django import forms -from django.utils.translation import ugettext_lazy, ugettext as _ from django.template.loader import render_to_string from django.core.context_processors import csrf diff --git a/openslides/projector/static/img/glyphicons_054_clock.png b/openslides/projector/static/img/glyphicons_054_clock_big.png similarity index 100% rename from openslides/projector/static/img/glyphicons_054_clock.png rename to openslides/projector/static/img/glyphicons_054_clock_big.png diff --git a/openslides/projector/static/styles/dashboard.css b/openslides/projector/static/styles/dashboard.css index fd5134bdb..e6f5b4266 100644 --- a/openslides/projector/static/styles/dashboard.css +++ b/openslides/projector/static/styles/dashboard.css @@ -77,8 +77,8 @@ visibility: hidden; } -.overlay_list .form-inline { - margin: 5px 0 0 31px; +.overlay_list .overlayblock { + margin: 0 0 0 31px; } #countdown_time { diff --git a/openslides/projector/static/styles/projector.css b/openslides/projector/static/styles/projector.css index 62e5c9622..8ceb44822 100644 --- a/openslides/projector/static/styles/projector.css +++ b/openslides/projector/static/styles/projector.css @@ -58,7 +58,7 @@ body{ top:110px; right:40px; padding-left:30px; - background: url(../img/glyphicons_054_clock.png) no-repeat scroll 0px 4px; + background: url(../img/glyphicons_054_clock_big.png) no-repeat scroll 0px 4px; } #currentTime.ajax_error { @@ -73,6 +73,19 @@ body{ width: 100%; height: 100%; } +#overlay_list_of_speaker_box { + position: fixed; + bottom: 0; + right: 0; + border-radius: 0.4em; + border: 0.1em solid #777777; + background-color: #cccccc; + opacity: 0.9; + padding: 0 1em; + margin: 1em; + z-index: 2; + width: 50%; +} /*** CONTENT ***/ #contentwrapper { @@ -146,6 +159,14 @@ body{ color: #9FA9B7; list-style-type: none; } +.list_of_speakers li { + font-size: 130%; + line-height: 160%; +} +.last_speakers li { + color: #9FA9B7; + list-style: none; +} /* Table */ table { diff --git a/openslides/projector/templates/base-projector.html b/openslides/projector/templates/base-projector.html index d75172e31..27cfc9e92 100644 --- a/openslides/projector/templates/base-projector.html +++ b/openslides/projector/templates/base-projector.html @@ -7,7 +7,7 @@ - + {% block title %} {% get_config 'event_name' %} {% endblock %} diff --git a/openslides/projector/templates/projector/overlay_countdown_widget.html b/openslides/projector/templates/projector/overlay_countdown_widget.html index 902be3666..c79e4fc40 100644 --- a/openslides/projector/templates/projector/overlay_countdown_widget.html +++ b/openslides/projector/templates/projector/overlay_countdown_widget.html @@ -3,14 +3,14 @@ {% trans "Countdown for speaking time" %}: -
          -
          +
          +
          {% trans "s" context "seconds" %} +
          - - - diff --git a/openslides/projector/templates/projector/overlay_message_widget.html b/openslides/projector/templates/projector/overlay_message_widget.html index 813c10ceb..fff6b0d22 100644 --- a/openslides/projector/templates/projector/overlay_message_widget.html +++ b/openslides/projector/templates/projector/overlay_message_widget.html @@ -4,7 +4,7 @@ {% trans "Message" %}: {% csrf_token %} -
          +
          ").addClass(this._triggerClass).html(s?e("").attr({src:s,alt:i,title:i}):i)),t[u?"before":"after"](n.trigger),n.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1})},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,n,r,i,s=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){n=0,r=0;for(i=0;in&&(n=e[i].length,r=i);return r},s.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),s.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-s.getDay())),e.input.attr("size",this._formatDate(e,s).length)}},_inlineDatepicker:function(t,r){var i=e(t);if(i.hasClass(this.markerClassName))return;i.addClass(this.markerClassName).append(r.dpDiv),e.data(t,n,r),this._setDate(r,this._getDefaultDate(r),!0),this._updateDatepicker(r),this._updateAlternate(r),r.settings.disabled&&this._disableDatepicker(t),r.dpDiv.css("display","block")},_dialogDatepicker:function(t,r,i,s,o){var a,f,l,c,h,p=this._dialogInst;return p||(this.uuid+=1,a="dp"+this.uuid,this._dialogInput=e(""),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),p=this._dialogInst=this._newInst(this._dialogInput,!1),p.settings={},e.data(this._dialogInput[0],n,p)),u(p.settings,s||{}),r=r&&r.constructor===Date?this._formatDate(p,r):r,this._dialogInput.val(r),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(f=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,h=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[f/2-100+c,l/2-150+h]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),p.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],n,p),this},_destroyDatepicker:function(t){var r,i=e(t),s=e.data(t,n);if(!i.hasClass(this.markerClassName))return;r=t.nodeName.toLowerCase(),e.removeData(t,n),r==="input"?(s.append.remove(),s.trigger.remove(),i.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(r==="div"||r==="span")&&i.removeClass(this.markerClassName).empty()},_enableDatepicker:function(t){var r,i,s=e(t),o=e.data(t,n);if(!s.hasClass(this.markerClassName))return;r=t.nodeName.toLowerCase();if(r==="input")t.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(r==="div"||r==="span")i=s.children("."+this._inlineClass),i.children().removeClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1);this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e})},_disableDatepicker:function(t){var r,i,s=e(t),o=e.data(t,n);if(!s.hasClass(this.markerClassName))return;r=t.nodeName.toLowerCase();if(r==="input")t.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(r==="div"||r==="span")i=s.children("."+this._inlineClass),i.children().addClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0);this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;t-1},_doKeyUp:function(t){var n,r=e.datepicker._getInst(t.target);if(r.input.val()!==r.lastVal)try{n=e.datepicker.parseDate(e.datepicker._get(r,"dateFormat"),r.input?r.input.val():null,e.datepicker._getFormatConfig(r)),n&&(e.datepicker._setDateFromField(r),e.datepicker._updateAlternate(r),e.datepicker._updateDatepicker(r))}catch(i){}return!0},_showDatepicker:function(t){t=t.target||t,t.nodeName.toLowerCase()!=="input"&&(t=e("input",t.parentNode)[0]);if(e.datepicker._isDisabledDatepicker(t)||e.datepicker._lastInput===t)return;var n,r,i,s,o,a,f;n=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==n&&(e.datepicker._curInst.dpDiv.stop(!0,!0),n&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),r=e.datepicker._get(n,"beforeShow"),i=r?r.apply(t,[t,n]):{};if(i===!1)return;u(n.settings,i),n.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(n),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),s=!1,e(t).parents().each(function(){return s|=e(this).css("position")==="fixed",!s}),o={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,n.dpDiv.empty(),n.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(n),o=e.datepicker._checkOffset(n,o,s),n.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":s?"fixed":"absolute",display:"none",left:o.left+"px",top:o.top+"px"}),n.inline||(a=e.datepicker._get(n,"showAnim"),f=e.datepicker._get(n,"duration"),n.dpDiv.zIndex(e(t).zIndex()+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[a]?n.dpDiv.show(a,e.datepicker._get(n,"showOptions"),f):n.dpDiv[a||"show"](a?f:null),n.input.is(":visible")&&!n.input.is(":disabled")&&n.input.focus(),e.datepicker._curInst=n)},_updateDatepicker:function(t){this.maxRows=4,i=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t),t.dpDiv.find("."+this._dayOverClass+" a").mouseover();var n,r=this._getNumberOfMonths(t),s=r[1],o=17;t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),s>1&&t.dpDiv.addClass("ui-datepicker-multi-"+s).css("width",o*s+"em"),t.dpDiv[(r[0]!==1||r[1]!==1?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&t.input[0]!==document.activeElement&&t.input.focus(),t.yearshtml&&(n=t.yearshtml,setTimeout(function(){n===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),n=t.yearshtml=null},0))},_getBorders:function(e){var t=function(e){return{thin:1,medium:2,thick:3}[e]||e};return[parseFloat(t(e.css("border-left-width"))),parseFloat(t(e.css("border-top-width")))]},_checkOffset:function(t,n,r){var i=t.dpDiv.outerWidth(),s=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,u=t.input?t.input.outerHeight():0,a=document.documentElement.clientWidth+(r?0:e(document).scrollLeft()),f=document.documentElement.clientHeight+(r?0:e(document).scrollTop());return n.left-=this._get(t,"isRTL")?i-o:0,n.left-=r&&n.left===t.input.offset().left?e(document).scrollLeft():0,n.top-=r&&n.top===t.input.offset().top+u?e(document).scrollTop():0,n.left-=Math.min(n.left,n.left+i>a&&a>i?Math.abs(n.left+i-a):0),n.top-=Math.min(n.top,n.top+s>f&&f>s?Math.abs(s+u):0),n},_findPos:function(t){var n,r=this._getInst(t),i=this._get(r,"isRTL");while(t&&(t.type==="hidden"||t.nodeType!==1||e.expr.filters.hidden(t)))t=t[i?"previousSibling":"nextSibling"];return n=e(t).offset(),[n.left,n.top]},_hideDatepicker:function(t){var r,i,s,o,u=this._curInst;if(!u||t&&u!==e.data(t,n))return;this._datepickerShowing&&(r=this._get(u,"showAnim"),i=this._get(u,"duration"),s=function(){e.datepicker._tidyDialog(u)},e.effects&&(e.effects.effect[r]||e.effects[r])?u.dpDiv.hide(r,e.datepicker._get(u,"showOptions"),i,s):u.dpDiv[r==="slideDown"?"slideUp":r==="fadeIn"?"fadeOut":"hide"](r?i:null,s),r||s(),this._datepickerShowing=!1,o=this._get(u,"onClose"),o&&o.apply(u.input?u.input[0]:null,[u.input?u.input.val():"",u]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(!e.datepicker._curInst)return;var n=e(t.target),r=e.datepicker._getInst(n[0]);(n[0].id!==e.datepicker._mainDivId&&n.parents("#"+e.datepicker._mainDivId).length===0&&!n.hasClass(e.datepicker.markerClassName)&&!n.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||n.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==r)&&e.datepicker._hideDatepicker()},_adjustDate:function(t,n,r){var i=e(t),s=this._getInst(i[0]);if(this._isDisabledDatepicker(i[0]))return;this._adjustInstDate(s,n+(r==="M"?this._get(s,"showCurrentAtPos"):0),r),this._updateDatepicker(s)},_gotoToday:function(t){var n,r=e(t),i=this._getInst(r[0]);this._get(i,"gotoCurrent")&&i.currentDay?(i.selectedDay=i.currentDay,i.drawMonth=i.selectedMonth=i.currentMonth,i.drawYear=i.selectedYear=i.currentYear):(n=new Date,i.selectedDay=n.getDate(),i.drawMonth=i.selectedMonth=n.getMonth(),i.drawYear=i.selectedYear=n.getFullYear()),this._notifyChange(i),this._adjustDate(r)},_selectMonthYear:function(t,n,r){var i=e(t),s=this._getInst(i[0]);s["selected"+(r==="M"?"Month":"Year")]=s["draw"+(r==="M"?"Month":"Year")]=parseInt(n.options[n.selectedIndex].value,10),this._notifyChange(s),this._adjustDate(i)},_selectDay:function(t,n,r,i){var s,o=e(t);if(e(i).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0]))return;s=this._getInst(o[0]),s.selectedDay=s.currentDay=e("a",i).html(),s.selectedMonth=s.currentMonth=n,s.selectedYear=s.currentYear=r,this._selectDate(t,this._formatDate(s,s.currentDay,s.currentMonth,s.currentYear))},_clearDate:function(t){var n=e(t);this._selectDate(n,"")},_selectDate:function(t,n){var r,i=e(t),s=this._getInst(i[0]);n=n!=null?n:this._formatDate(s),s.input&&s.input.val(n),this._updateAlternate(s),r=this._get(s,"onSelect"),r?r.apply(s.input?s.input[0]:null,[n,s]):s.input&&s.input.trigger("change"),s.inline?this._updateDatepicker(s):(this._hideDatepicker(),this._lastInput=s.input[0],typeof s.input[0]!="object"&&s.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var n,r,i,s=this._get(t,"altField");s&&(n=this._get(t,"altFormat")||this._get(t,"dateFormat"),r=this._getDate(t),i=this.formatDate(n,r,this._getFormatConfig(t)),e(s).each(function(){e(this).val(i)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&t<6,""]},iso8601Week:function(e){var t,n=new Date(e.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),t=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((t-n)/864e5)/7)+1},parseDate:function(t,n,r){if(t==null||n==null)throw"Invalid arguments";n=typeof n=="object"?n.toString():n+"";if(n==="")return null;var i,s,o,u=0,a=(r?r.shortYearCutoff:null)||this._defaults.shortYearCutoff,f=typeof a!="string"?a:(new Date).getFullYear()%100+parseInt(a,10),l=(r?r.dayNamesShort:null)||this._defaults.dayNamesShort,c=(r?r.dayNames:null)||this._defaults.dayNames,h=(r?r.monthNamesShort:null)||this._defaults.monthNamesShort,p=(r?r.monthNames:null)||this._defaults.monthNames,d=-1,v=-1,m=-1,g=-1,y=!1,b,w=function(e){var n=i+1-1){v=1,m=g;do{s=this._getDaysInMonth(d,v-1);if(m<=s)break;v++,m-=s}while(!0)}b=this._daylightSavingAdjust(new Date(d,v-1,m));if(b.getFullYear()!==d||b.getMonth()+1!==v||b.getDate()!==m)throw"Invalid date";return b},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(e,t,n){if(!t)return"";var r,i=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,s=(n?n.dayNames:null)||this._defaults.dayNames,o=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,u=(n?n.monthNames:null)||this._defaults.monthNames,a=function(t){var n=r+112?e.getHours()+2:0),e):null},_setDate:function(e,t,n){var r=!t,i=e.selectedMonth,s=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),(i!==e.selectedMonth||s!==e.selectedYear)&&!n&&this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(r?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&e.input.val()===""?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var n=this._get(t,"stepMonths"),i="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){window["DP_jQuery_"+r].datepicker._adjustDate(i,-n,"M")},next:function(){window["DP_jQuery_"+r].datepicker._adjustDate(i,+n,"M")},hide:function(){window["DP_jQuery_"+r].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+r].datepicker._gotoToday(i)},selectDay:function(){return window["DP_jQuery_"+r].datepicker._selectDay(i,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+r].datepicker._selectMonthYear(i,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+r].datepicker._selectMonthYear(i,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q=new Date,R=this._daylightSavingAdjust(new Date(q.getFullYear(),q.getMonth(),q.getDate())),U=this._get(e,"isRTL"),z=this._get(e,"showButtonPanel"),W=this._get(e,"hideIfNoPrevNext"),X=this._get(e,"navigationAsDateFormat"),V=this._getNumberOfMonths(e),$=this._get(e,"showCurrentAtPos"),J=this._get(e,"stepMonths"),K=V[0]!==1||V[1]!==1,Q=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),G=this._getMinMaxDate(e,"min"),Y=this._getMinMaxDate(e,"max"),Z=e.drawMonth-$,et=e.drawYear;Z<0&&(Z+=12,et--);if(Y){t=this._daylightSavingAdjust(new Date(Y.getFullYear(),Y.getMonth()-V[0]*V[1]+1,Y.getDate())),t=G&&tt)Z--,Z<0&&(Z=11,et--)}e.drawMonth=Z,e.drawYear=et,n=this._get(e,"prevText"),n=X?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z-J,1)),this._getFormatConfig(e)):n,r=this._canAdjustMonth(e,-1,et,Z)?""+n+"":W?"":""+n+"",i=this._get(e,"nextText"),i=X?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z+J,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,1,et,Z)?""+i+"":W?"":""+i+"",o=this._get(e,"currentText"),u=this._get(e,"gotoCurrent")&&e.currentDay?Q:R,o=X?this.formatDate(o,u,this._getFormatConfig(e)):o,a=e.inline?"":"",f=z?"
          "+(U?a:"")+(this._isInRange(e,u)?"":"")+(U?"":a)+"
          ":"",l=parseInt(this._get(e,"firstDay"),10),l=isNaN(l)?0:l,c=this._get(e,"showWeek"),h=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),d=this._get(e,"monthNames"),v=this._get(e,"monthNamesShort"),m=this._get(e,"beforeShowDay"),g=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),w="",E;for(S=0;S1)switch(T){case 0:k+=" ui-datepicker-group-first",C=" ui-corner-"+(U?"right":"left");break;case V[1]-1:k+=" ui-datepicker-group-last",C=" ui-corner-"+(U?"left":"right");break;default:k+=" ui-datepicker-group-middle",C=""}k+="'>"}k+="
          "+(/all|left/.test(C)&&S===0?U?s:r:"")+(/all|right/.test(C)&&S===0?U?r:s:"")+this._generateMonthYearHeader(e,Z,et,G,Y,S>0||T>0,d,v)+"
          "+"",L=c?"":"";for(E=0;E<7;E++)A=(E+l)%7,L+="=5?" class='ui-datepicker-week-end'":"")+">"+""+p[A]+"";k+=L+"",O=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,O)),M=(this._getFirstDayOfMonth(et,Z)-l+7)%7,_=Math.ceil((M+O)/7),D=K?this.maxRows>_?this.maxRows:_:_,this.maxRows=D,P=this._daylightSavingAdjust(new Date(et,Z,1-M));for(H=0;H",B=c?"":"";for(E=0;E<7;E++)j=m?m.apply(e.input?e.input[0]:null,[P]):[!0,""],F=P.getMonth()!==Z,I=F&&!y||!j[0]||G&&PY,B+="",P.setDate(P.getDate()+1),P=this._daylightSavingAdjust(P);k+=B+""}Z++,Z>11&&(Z=0,et++),k+="
          "+this._get(e,"weekHeader")+"
          "+this._get(e,"calculateWeek")(P)+""+(F&&!g?" ":I?""+P.getDate()+"":""+P.getDate()+"")+"
          "+(K?"
          "+(V[0]>0&&T===V[1]-1?"
          ":""):""),x+=k}w+=x}return w+=f,e._keyEvent=!1,w},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a,f,l,c,h,p,d,v,m=this._get(e,"changeMonth"),g=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="
          ",w="";if(s||!m)w+=""+o[t]+"";else{a=r&&r.getFullYear()===n,f=i&&i.getFullYear()===n,w+=""}y||(b+=w+(s||!m||!g?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!g)b+=""+n+"";else{c=this._get(e,"yearRange").split(":"),h=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?n+parseInt(e.substring(1),10):e.match(/[+\-].*/)?h+parseInt(e,10):parseInt(e,10);return isNaN(t)?h:t},d=p(c[0]),v=Math.max(d,p(c[1]||"")),d=r?Math.max(d,r.getFullYear()):d,v=i?Math.min(v,i.getFullYear()):v,e.yearshtml+="",b+=e.yearshtml,e.yearshtml=null}}return b+=this._get(e,"yearSuffix"),y&&(b+=(s||!m||!g?" ":"")+w),b+="
          ",b},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n==="Y"?t:0),i=e.drawMonth+(n==="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n==="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n==="M"||n==="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n,r,i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),o=null,u=null,a=this._get(e,"yearRange");return a&&(n=a.split(":"),r=(new Date).getFullYear(),o=parseInt(n[0],10)+r,u=parseInt(n[1],10)+r),(!i||t.getTime()>=i.getTime())&&(!s||t.getTime()<=s.getTime())&&(!o||t.getFullYear()>=o)&&(!u||t.getFullYear()<=u)},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),e("#"+e.datepicker._mainDivId).length===0&&e("body").append(e.datepicker.dpDiv);var n=Array.prototype.slice.call(arguments,1);return typeof t!="string"||t!=="isDisabled"&&t!=="getDate"&&t!=="widget"?t==="option"&&arguments.length===2&&typeof arguments[1]=="string"?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n)):this.each(function(){typeof t=="string"?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(n)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n))},e.datepicker=new s,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.10.0",window["DP_jQuery_"+r]=e})(jQuery);(function(e,t){var n=5;e.widget("ui.slider",e.ui.mouse,{version:"1.10.0",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},_create:function(){var t,n,r=this.options,i=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),s="",o=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this.range=e([]),r.range&&(r.range===!0&&(r.values?r.values.length&&r.values.length!==2?r.values=[r.values[0],r.values[0]]:e.isArray(r.values)&&(r.values=r.values.slice(0)):r.values=[this._valueMin(),this._valueMin()]),this.range=e("
          ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(r.range==="min"||r.range==="max"?" ui-slider-range-"+r.range:""))),n=r.values&&r.values.length||1;for(t=i.length;tn||i===n&&(t===l._lastChangedValue||l.values(t)===c.min))i=n,s=e(this),o=t}),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))},_handleEvents:{keydown:function(t){var r,i,s,o,u=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:t.preventDefault();if(!this._keySliding){this._keySliding=!0,e(t.target).addClass("ui-state-active"),r=this._start(t,u);if(r===!1)return}}o=this.options.step,this.options.values&&this.options.values.length?i=s=this.values(u):i=s=this.value();switch(t.keyCode){case e.ui.keyCode.HOME:s=this._valueMin();break;case e.ui.keyCode.END:s=this._valueMax();break;case e.ui.keyCode.PAGE_UP:s=this._trimAlignValue(i+(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.PAGE_DOWN:s=this._trimAlignValue(i-(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(i===this._valueMax())return;s=this._trimAlignValue(i+o);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(i===this._valueMin())return;s=this._trimAlignValue(i-o)}this._slide(t,u,s)},keyup:function(t){var n=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,n),this._change(t,n),e(t.target).removeClass("ui-state-active"))}}})})(jQuery); \ No newline at end of file +(function(e,t){function i(t,i){var a,n,r,o=t.nodeName.toLowerCase();return"area"===o?(a=t.parentNode,n=a.name,t.href&&n&&"map"===a.nodeName.toLowerCase()?(r=e("img[usemap=#"+n+"]")[0],!!r&&s(r)):!1):(/input|select|textarea|button|object/.test(o)?!t.disabled:"a"===o?t.href||i:i)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var a=0,n=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(i){if(i!==t)return this.css("zIndex",i);if(this.length)for(var s,a,n=e(this[0]);n.length&&n[0]!==document;){if(s=n.css("position"),("absolute"===s||"relative"===s||"fixed"===s)&&(a=parseInt(n.css("zIndex"),10),!isNaN(a)&&0!==a))return a;n=n.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++a)})},removeUniqueId:function(){return this.each(function(){n.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var s=e.attr(t,"tabindex"),a=isNaN(s);return(a||s>=0)&&i(t,!a)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(i,s){function a(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===s?["Left","Right"]:["Top","Bottom"],r=s.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+s]=function(i){return i===t?o["inner"+s].call(this):this.each(function(){e(this).css(r,a(this,i)+"px")})},e.fn["outer"+s]=function(t,i){return"number"!=typeof t?o["outer"+s].call(this,t):this.each(function(){e(this).css(r,a(this,t,!0,i)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,i,s){var a,n=e.ui[t].prototype;for(a in s)n.plugins[a]=n.plugins[a]||[],n.plugins[a].push([i,s[a]])},call:function(e,t,i){var s,a=e.plugins[t];if(a&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(s=0;a.length>s;s++)e.options[a[s][0]]&&a[s][1].apply(e.element,i)}},hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",a=!1;return t[s]>0?!0:(t[s]=1,a=t[s]>0,t[s]=0,a)}})})(jQuery);(function(e,t){var i=0,s=Array.prototype.slice,n=e.cleanData;e.cleanData=function(t){for(var i,s=0;null!=(i=t[s]);s++)try{e(i).triggerHandler("remove")}catch(a){}n(t)},e.widget=function(i,s,n){var a,r,o,h,l={},u=i.split(".")[0];i=i.split(".")[1],a=u+"-"+i,n||(n=s,s=e.Widget),e.expr[":"][a.toLowerCase()]=function(t){return!!e.data(t,a)},e[u]=e[u]||{},r=e[u][i],o=e[u][i]=function(e,i){return this._createWidget?(arguments.length&&this._createWidget(e,i),t):new o(e,i)},e.extend(o,r,{version:n.version,_proto:e.extend({},n),_childConstructors:[]}),h=new s,h.options=e.widget.extend({},h.options),e.each(n,function(i,n){return e.isFunction(n)?(l[i]=function(){var e=function(){return s.prototype[i].apply(this,arguments)},t=function(e){return s.prototype[i].apply(this,e)};return function(){var i,s=this._super,a=this._superApply;return this._super=e,this._superApply=t,i=n.apply(this,arguments),this._super=s,this._superApply=a,i}}(),t):(l[i]=n,t)}),o.prototype=e.widget.extend(h,{widgetEventPrefix:r?h.widgetEventPrefix:i},l,{constructor:o,namespace:u,widgetName:i,widgetFullName:a}),r?(e.each(r._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete r._childConstructors):s._childConstructors.push(o),e.widget.bridge(i,o)},e.widget.extend=function(i){for(var n,a,r=s.call(arguments,1),o=0,h=r.length;h>o;o++)for(n in r[o])a=r[o][n],r[o].hasOwnProperty(n)&&a!==t&&(i[n]=e.isPlainObject(a)?e.isPlainObject(i[n])?e.widget.extend({},i[n],a):e.widget.extend({},a):a);return i},e.widget.bridge=function(i,n){var a=n.prototype.widgetFullName||i;e.fn[i]=function(r){var o="string"==typeof r,h=s.call(arguments,1),l=this;return r=!o&&h.length?e.widget.extend.apply(null,[r].concat(h)):r,o?this.each(function(){var s,n=e.data(this,a);return n?e.isFunction(n[r])&&"_"!==r.charAt(0)?(s=n[r].apply(n,h),s!==n&&s!==t?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):t):e.error("no such method '"+r+"' for "+i+" widget instance"):e.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+r+"'")}):this.each(function(){var t=e.data(this,a);t?t.option(r||{})._init():e.data(this,a,new n(r,this))}),l}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
          ",options:{disabled:!1,create:null},_createWidget:function(t,s){s=e(s||this.defaultElement||this)[0],this.element=e(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),s!==this&&(e.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===s&&this.destroy()}}),this.document=e(s.style?s.ownerDocument:s.document||s),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(i,s){var n,a,r,o=i;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof i)if(o={},n=i.split("."),i=n.shift(),n.length){for(a=o[i]=e.widget.extend({},this.options[i]),r=0;n.length-1>r;r++)a[n[r]]=a[n[r]]||{},a=a[n[r]];if(i=n.pop(),s===t)return a[i]===t?null:a[i];a[i]=s}else{if(s===t)return this.options[i]===t?null:this.options[i];o[i]=s}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,n){var a,r=this;"boolean"!=typeof i&&(n=s,s=i,i=!1),n?(s=a=e(s),this.bindings=this.bindings.add(s)):(n=s,s=this.element,a=this.widget()),e.each(n,function(n,o){function h(){return i||r.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?r[o]:o).apply(r,arguments):t}"string"!=typeof o&&(h.guid=o.guid=o.guid||h.guid||e.guid++);var l=n.match(/^(\w+)\s*(.*)$/),u=l[1]+r.eventNamespace,c=l[2];c?a.delegate(c,u,h):s.bind(u,h)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,r=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(r)&&r.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var r,o=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),r=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),r&&e.effects&&e.effects.effect[o]?s[t](n):o!==t&&s[o]?s[o](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}})})(jQuery);(function(e){var t=!1;e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.10.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):undefined}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!t){this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,n=1===i.which,a="string"==typeof this.options.cancel&&i.target.nodeName?e(i.target).closest(this.options.cancel).length:!1;return n&&!a&&this._mouseCapture(i)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){s.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=this._mouseStart(i)!==!1,!this._mouseStarted)?(i.preventDefault(),!0):(!0===e.data(i.target,this.widgetName+".preventClickEvent")&&e.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return s._mouseMove(e)},this._mouseUpDelegate=function(e){return s._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),t=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button?this._mouseUp(t):this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})(jQuery);(function(t){function e(t,e,i){return t>e&&e+i>t}function i(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))}t.widget("ui.sortable",t.ui.mouse,{version:"1.10.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var t=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===t.axis||i(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_setOption:function(e,i){"disabled"===e?(this.options[e]=i,this.widget().toggleClass("ui-sortable-disabled",!!i)):t.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(e,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,a.widgetName+"-item")===a?(s=t(this),!1):undefined}),t.data(e.target,a.widgetName+"-item")===a&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=t("").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=t.left,o=a+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u=s+l>r&&h>s+l&&e+c>a&&o>e+c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?u:e+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var i="x"===this.options.axis||e(this.positionAbs.top+this.offset.click.top,t.top,t.height),s="y"===this.options.axis||e(this.positionAbs.left+this.offset.click.left,t.left,t.width),n=i&&s,a=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return n?this.floating?o&&"right"===o||"down"===a?2:1:a&&("down"===a?2:1):!1},_intersectsWithSides:function(t){var i=e(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),s=e(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return this.floating&&a?"right"===a&&s||"left"===a&&!s:n&&("down"===n&&i||"up"===n&&!i)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){var i,s,n,a,o=[],r=[],h=this._connectWith();if(h&&e)for(i=h.length-1;i>=0;i--)for(n=t(h[i]),s=n.length-1;s>=0;s--)a=t.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&r.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(r.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=r.length-1;i>=0;i--)r[i][0].each(function(){o.push(this)});return t(o)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i]),s=n.length-1;s>=0;s--)a=t.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(u.push([t.isFunction(a.options.items)?a.options.items.call(a.element[0],e,{item:this.currentItem}):t(a.options.items,a.element),a]),this.containers.push(a));for(i=u.length-1;i>=0;i--)for(o=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",o),c.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t(e.document[0].createElement(s)).addClass(i||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?n.append("
           
          "+"",M=u?"":"",w=0;7>w;w++)N=(w+c)%7,M+="=5?" class='ui-datepicker-week-end'":"")+">"+""+p[N]+"";for(S+=M+"",I=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,I)),P=(this._getFirstDayOfMonth(te,Z)-c+7)%7,A=Math.ceil((P+I)/7),z=q?this.maxRows>A?this.maxRows:A:A,this.maxRows=z,H=this._daylightSavingAdjust(new Date(te,Z,1-P)),E=0;z>E;E++){for(S+="",F=u?"":"",w=0;7>w;w++)O=g?g.apply(t.input?t.input[0]:null,[H]):[!0,""],W=H.getMonth()!==Z,j=W&&!_||!O[0]||G&&G>H||$&&H>$,F+="",H.setDate(H.getDate()+1),H=this._daylightSavingAdjust(H);S+=F+""}Z++,Z>11&&(Z=0,te++),S+="
          "+this._get(t,"weekHeader")+"
          "+this._get(t,"calculateWeek")(H)+""+(W&&!v?" ":j?""+H.getDate()+"":""+H.getDate()+"")+"
          "+(q?"
          "+(K[0]>0&&D===K[1]-1?"
          ":""):""),x+=S}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,a,r,o){var h,l,c,u,d,p,f,m,g=this._get(t,"changeMonth"),v=this._get(t,"changeYear"),_=this._get(t,"showMonthAfterYear"),b="
          ",y="";if(a||!g)y+=""+r[e]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+=""}if(_||(b+=y+(!a&&g&&v?"":" ")),!t.yearshtml)if(t.yearshtml="",a||!v)b+=""+i+"";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),m=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),_&&(b+=(!a&&g&&v?"":" ")+y),b+="
          "},_adjustInstDate:function(t,e,i){var s=t.drawYear+("Y"===i?e:0),n=t.drawMonth+("M"===i?e:0),a=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),r=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,a)));t.selectedDay=r.getDate(),t.drawMonth=t.selectedMonth=r.getMonth(),t.drawYear=t.selectedYear=r.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),a=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(t,a)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),a=this._getMinMaxDate(t,"max"),r=null,o=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),r=parseInt(i[0],10),o=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(r+=s),i[1].match(/[+\-].*/)&&(o+=s)),(!n||e.getTime()>=n.getTime())&&(!a||e.getTime()<=a.getTime())&&(!r||e.getFullYear()>=r)&&(!o||o>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).mousedown(t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new i,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.10.2",window["DP_jQuery_"+o]=t})(jQuery);(function(t){var e=5;t.widget("ui.slider",t.ui.mouse,{version:"1.10.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)o.push(a);this.handles=n.add(t(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options,i="";e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=t("
          ").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===e.range||"max"===e.range?" ui-slider-range-"+e.range:""))):this.range=t([])},_setupEvents:function(){var t=this.handles.add(this.range).filter("a");this._off(t),this._on(t,this._handleEvents),this._hoverable(t),this._focusable(t)},_destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,a,o,r,h,l,u=this,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-u.values(e));(n>i||n===i&&(e===u._lastChangedValue||u.values(e)===c.min))&&(n=i,a=t(this),o=e)}),r=this._start(e,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),h=a.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-a.width()/2,top:e.pageY-h.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,a;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(t,e){var i={handle:this.handles[e],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("start",t,i)},_slide:function(t,e,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(e?0:1),2===this.options.values.length&&this.options.range===!0&&(0===e&&i>s||1===e&&s>i)&&(i=s),i!==this.values(e)&&(n=this.values(),n[e]=i,a=this._trigger("slide",t,{handle:this.handles[e],value:i,values:n}),s=this.values(e?0:1),a!==!1&&this.values(e,i,!0))):i!==this.value()&&(a=this._trigger("slide",t,{handle:this.handles[e],value:i}),a!==!1&&this.value(i))},_stop:function(t,e){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("stop",t,i)},_change:function(t,e){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._lastChangedValue=e,this._trigger("change",t,i)}},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),undefined):this._value()},values:function(e,i){var s,n,a;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),undefined;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(e):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),t.Widget.prototype._setOption.apply(this,arguments),e){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var e,i,s,n,a,o=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](u,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(i){var s,n,a,o,r=t(i.target).data("ui-slider-handle-index");switch(i.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(i.preventDefault(),!this._keySliding&&(this._keySliding=!0,t(i.target).addClass("ui-state-active"),s=this._start(i,r),s===!1))return}switch(o=this.options.step,n=a=this.options.values&&this.options.values.length?this.values(r):this.value(),i.keyCode){case t.ui.keyCode.HOME:a=this._valueMin();break;case t.ui.keyCode.END:a=this._valueMax();break;case t.ui.keyCode.PAGE_UP:a=this._trimAlignValue(n+(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.PAGE_DOWN:a=this._trimAlignValue(n-(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(n===this._valueMax())return;a=this._trimAlignValue(n+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(n===this._valueMin())return;a=this._trimAlignValue(n-o)}this._slide(i,r,a)},click:function(t){t.preventDefault()},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),t(e.target).removeClass("ui-state-active"))}}})})(jQuery); \ No newline at end of file diff --git a/openslides/static/styles/jquery-ui/jquery-ui.custom.min.css b/openslides/static/styles/jquery-ui/jquery-ui.custom.min.css index 550a890e6..94adea5b2 100755 --- a/openslides/static/styles/jquery-ui/jquery-ui.custom.min.css +++ b/openslides/static/styles/jquery-ui/jquery-ui.custom.min.css @@ -1,5 +1,5 @@ -/*! jQuery UI - v1.10.0 - 2013-02-14 +/*! jQuery UI - v1.10.2 - 2013-04-24 * http://jqueryui.com * Includes: jquery.ui.core.css, jquery.ui.datepicker.css, jquery.ui.slider.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-position:16px 16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file +* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file