From 98c76116223416c7bee0a74ba2e9d758c1d53074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Sat, 11 May 2013 13:53:43 +0200 Subject: [PATCH 1/6] Fixed wrong permission on agenda detail view --- openslides/agenda/templates/agenda/view.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openslides/agenda/templates/agenda/view.html b/openslides/agenda/templates/agenda/view.html index bad1cf15a..19c0debbb 100644 --- a/openslides/agenda/templates/agenda/view.html +++ b/openslides/agenda/templates/agenda/view.html @@ -135,7 +135,7 @@

{% if is_on_the_list_of_speakers %} {% trans "Remove me from the list" %} - {% elif not object.speaker_list_closed and perms.can_be_speaker %} + {% elif not object.speaker_list_closed and perms.agenda.can_be_speaker %} {% trans "Put me on the list" %} {% endif %}

From 76d7409830d87b1396eca8f2db1ef7a8104fa29e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Sat, 11 May 2013 14:27:46 +0200 Subject: [PATCH 2/6] Change version view. New way to get name and version from plugins. --- openslides/core/templates/core/version.html | 4 ++- openslides/core/views.py | 27 ++++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/openslides/core/templates/core/version.html b/openslides/core/templates/core/version.html index ee118188c..b83508bcc 100644 --- a/openslides/core/templates/core/version.html +++ b/openslides/core/templates/core/version.html @@ -6,7 +6,9 @@ {% block content %}

{% trans 'Version' %}

+ {% endblock %} diff --git a/openslides/core/views.py b/openslides/core/views.py index 8d0384deb..b33a91113 100644 --- a/openslides/core/views.py +++ b/openslides/core/views.py @@ -19,7 +19,7 @@ from openslides.utils.views import TemplateView class VersionView(TemplateView): """ - Show version infos. + Shows version infos. """ template_name = 'core/version.html' @@ -32,20 +32,35 @@ class VersionView(TemplateView): # OpenSlides version. During development the git commit id is added. openslides_version_string = get_version() if not RELEASE: - openslides_version_string += ' Commit: %s' % get_git_commit_id() + openslides_version_string += ' – Commit %s' % get_git_commit_id() context['versions'] = [('OpenSlides', openslides_version_string)] # Versions of plugins. for plugin in settings.INSTALLED_PLUGINS: + # Get plugin try: mod = import_module(plugin) - plugin_version = get_version(mod.VERSION) - except (ImportError, AttributeError, AssertionError): + except ImportError: continue + + # Get version. try: - plugin_name = mod.NAME + plugin_version = mod.get_version() except AttributeError: - plugin_name = mod.__name__.split('.')[0] + try: + plugin_version = mod.VERSION + except AttributeError: + continue + + # Get name. + try: + plugin_name = mod.get_name() + except AttributeError: + try: + plugin_name = mod.NAME + except AttributeError: + plugin_name = mod.__name__.split('.')[0] + context['versions'].append((plugin_name, plugin_version)) return context From 411f8d08924f735bb55271c1a652ca910d57fa74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Sat, 11 May 2013 16:26:43 +0200 Subject: [PATCH 3/6] Fixed hiding of orga items on summary slides --- openslides/agenda/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openslides/agenda/models.py b/openslides/agenda/models.py index 9de46ee4d..b71817e22 100644 --- a/openslides/agenda/models.py +++ b/openslides/agenda/models.py @@ -77,7 +77,7 @@ class Item(MPTTModel, SlideMixin): """ Type of the agenda item. - See Agenda.ITEM_TYPE for more informations. + See Item.ITEM_TYPE for more information. """ duration = models.CharField(null=True, blank=True, max_length=5, @@ -191,11 +191,11 @@ class Item(MPTTModel, SlideMixin): * normal slide of the item The method returns only one of them according to the config value - 'presentation_argument' and the attribut 'related_sid'. + 'presentation_argument' and the attribute 'related_sid'. """ if config['presentation_argument'] == 'summary': data = {'title': self.get_title(), - 'items': self.get_children(), + 'items': self.get_children().filter(type__exact=Item.AGENDA_ITEM), 'template': 'projector/AgendaSummary.html'} elif config['presentation_argument'] == 'show_list_of_speakers': From 3ba5fd2dc60841968ec8562e31a03a4d61641775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Sun, 12 May 2013 00:56:40 +0200 Subject: [PATCH 4/6] Fixed bad typo in import users function --- openslides/participant/api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openslides/participant/api.py b/openslides/participant/api.py index b4d127dc2..c1e865e65 100644 --- a/openslides/participant/api.py +++ b/openslides/participant/api.py @@ -102,9 +102,9 @@ def import_users(csv_file): user.reset_password() count_success += 1 except csv.Error: - error_messages.appen(_('Import aborted because of severe errors in the input file.')) + error_messages.append(_('Import aborted because of severe errors in the input file.')) except UnicodeDecodeError: - error_messages.appen(_('Import file has wrong character encoding, only UTF-8 is supported!')) + error_messages.append(_('Import file has wrong character encoding, only UTF-8 is supported!')) return (count_success, error_messages) From af6659a67e3affda65a1ad663dbd9f438ab6a156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Sun, 12 May 2013 01:16:41 +0200 Subject: [PATCH 5/6] Hide list of speakers overlay on list of speakers slide --- openslides/agenda/signals.py | 5 ++++- .../agenda/templates/agenda/overlay_speaker_projector.html | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/openslides/agenda/signals.py b/openslides/agenda/signals.py index e7f92afed..fec09339d 100644 --- a/openslides/agenda/signals.py +++ b/openslides/agenda/signals.py @@ -84,7 +84,10 @@ def agenda_list_of_speakers(sender, **kwargs): """ slide = get_slide_from_sid(get_active_slide(only_sid=True), element=True) if not isinstance(slide, Item): - # Only show list of speakers on Agenda-Items + # Only show list of speakers overlay on agenda items + return None + if config['presentation_argument'] == 'show_list_of_speakers': + # Do not show list of speakers overlay on the list of speakers slide return None clear_projector_cache() list_of_speakers = slide.get_list_of_speakers( diff --git a/openslides/agenda/templates/agenda/overlay_speaker_projector.html b/openslides/agenda/templates/agenda/overlay_speaker_projector.html index 287536aa0..6c9b9ac3a 100644 --- a/openslides/agenda/templates/agenda/overlay_speaker_projector.html +++ b/openslides/agenda/templates/agenda/overlay_speaker_projector.html @@ -35,8 +35,8 @@
+

{% trans 'List of speakers' %}:

{% if list_of_speakers %} -

{% trans "List of speakers" %}:

    {% for speaker_dict in list_of_speakers %}
  • From a469831f1ffbd529cecb7a3790cfaabb60acbb5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Sun, 12 May 2013 02:06:55 +0200 Subject: [PATCH 6/6] Fixed link 'Put me on the list of speakers' when the list is already closed. --- openslides/agenda/views.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/openslides/agenda/views.py b/openslides/agenda/views.py index 0f340bbed..b050aacb5 100644 --- a/openslides/agenda/views.py +++ b/openslides/agenda/views.py @@ -450,13 +450,14 @@ class CurrentListOfSpeakersView(RedirectView): """ Returns the URL to the item_view if: - * the current slide is an item and - * the user has the permission to see the item + * the current slide is an item, + * the user has the permission to see the item and + * the list of speakers of the item is not closed, in other case, it returns the URL to the dashboard. - This method also add the request.user to the list of speakers, if he - has the right permissions. + This method also adds the request.user to the list of speakers, if he + has the right permissions and the list is not closed. """ item = self.get_item() request = self.request @@ -466,6 +467,10 @@ class CurrentListOfSpeakersView(RedirectView): 'Please choose the agenda item manually from the agenda.')) return reverse('dashboard') + if item.speaker_list_closed: + messages.error(request, _('The list of speakers is closed.')) + return reverse('dashboard') + if self.request.user.has_perm('agenda.can_be_speaker'): try: Speaker.objects.add(self.request.user, item)