diff --git a/openslides/agenda/templates/agenda/control_item.html b/openslides/agenda/templates/agenda/control_item.html index 8e75bebdb..aa4d2e6c0 100644 --- a/openslides/agenda/templates/agenda/control_item.html +++ b/openslides/agenda/templates/agenda/control_item.html @@ -7,6 +7,7 @@
+ preview {% for p in slide.get_ancestors %}   {% endfor %} diff --git a/openslides/config/models.py b/openslides/config/models.py index 69cfdc2c0..f1f30ea5d 100644 --- a/openslides/config/models.py +++ b/openslides/config/models.py @@ -88,8 +88,6 @@ def default_config(sender, key, **kwargs): }.get(key) - - from django.dispatch import receiver from django.core.urlresolvers import reverse from django.utils.importlib import import_module diff --git a/openslides/projector/api.py b/openslides/projector/api.py index f07d60a49..354754e07 100644 --- a/openslides/projector/api.py +++ b/openslides/projector/api.py @@ -14,7 +14,7 @@ def split_sid(sid): return (model, id) if len(data) == 1: try: - return (SLIDE[data[0]].func(), None) + return (SLIDE[data[0]].key, None) except KeyError: return None return None diff --git a/openslides/projector/templates/projector/default_control_slidefunc.html b/openslides/projector/templates/projector/default_control_slidefunc.html index f5bab98a3..9ba95cde5 100644 --- a/openslides/projector/templates/projector/default_control_slidefunc.html +++ b/openslides/projector/templates/projector/default_control_slidefunc.html @@ -6,6 +6,7 @@
+ preview {{ slides.name }} diff --git a/openslides/projector/templates/projector/default_control_slidemodel.html b/openslides/projector/templates/projector/default_control_slidemodel.html index ff875557d..8e8e4ec37 100644 --- a/openslides/projector/templates/projector/default_control_slidemodel.html +++ b/openslides/projector/templates/projector/default_control_slidemodel.html @@ -7,6 +7,7 @@
+ preview {{ slide }} {% endfor %} diff --git a/openslides/projector/urls.py b/openslides/projector/urls.py index 04bb39708..68f00d1f6 100644 --- a/openslides/projector/urls.py +++ b/openslides/projector/urls.py @@ -21,9 +21,16 @@ from models import ProjectorSlide urlpatterns = patterns('projector.views', url(r'^$', 'active_slide', - name='projector_show'), + {'sid': None}, + name='projector_show', + ), - url(r'^control$', + url(r'^preview/(?P[^/]*)/$', + 'active_slide', + name='projctor_preview_slide', + ), + + url(r'^control/$', ControlView.as_view(), name='projector_control', ), diff --git a/openslides/projector/views.py b/openslides/projector/views.py index e78f09d51..5eae7293b 100644 --- a/openslides/projector/views.py +++ b/openslides/projector/views.py @@ -30,7 +30,7 @@ from utils.template import Tab from config.models import config -from api import get_active_slide, set_active_slide, projector_message_set, projector_message_delete +from api import get_active_slide, set_active_slide, projector_message_set, projector_message_delete, get_slide_from_sid from projector import SLIDE from models import ProjectorOverlay from openslides.projector.signals import projector_overlays, projector_control_box @@ -112,22 +112,25 @@ class ActivateView(RedirectView): @permission_required('projector.can_see_projector') -def active_slide(request): +def active_slide(request, sid=None): """ Shows the active Slide. """ - try: - data = get_active_slide() - except AttributeError: #TODO: It has to be an Slide.DoesNotExist - data = None + if sid is None: + try: + data = get_active_slide() + except AttributeError: #TODO: It has to be an Slide.DoesNotExist + data = None + data['ajax'] = 'on' + else: + data = get_slide_from_sid(sid) + data['ajax'] = 'off' if data is None: data = { 'title': config['event_name'], 'template': 'projector/default.html', } - - data['ajax'] = 'on' data['overlays'] = [] data['overlay'] = ''