Projector control: Moved MessagesView to ControlView. Removed messages template.
This commit is contained in:
parent
7e56911aca
commit
3ba6f9c26d
@ -21,7 +21,6 @@ class ProjectorSlide(models.Model, SlideMixin):
|
||||
'template': 'projector/ProjectorSlide.html',
|
||||
}
|
||||
|
||||
|
||||
def __unicode__(self):
|
||||
return self.title
|
||||
|
||||
|
@ -70,7 +70,7 @@ class Slide(object):
|
||||
|
||||
@receiver(projector_messages, dispatch_uid="projector_countdown")
|
||||
def countdown(sender, **kwargs):
|
||||
name = _('Projector Countdown')
|
||||
name = _('Countdown')
|
||||
if kwargs['register']:
|
||||
return name
|
||||
if name in kwargs['call']:
|
||||
|
@ -15,9 +15,6 @@
|
||||
<li class="{% if request.path == url_projectoroverview %}selected{% endif %}">
|
||||
<a href="{% url projector_control %}">{% trans 'Overview' %}</a>
|
||||
</li>
|
||||
<li class="{% if request.path == projector_messages %}selected{% endif %}">
|
||||
<a href="{% url projector_messages %}">{% trans 'Messages' %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if perms.projector.can_see_projector %}
|
||||
<li class="{% if request.path == url_projectornew %}selected{% endif %}">
|
||||
|
@ -71,7 +71,7 @@
|
||||
|
||||
<div class="column">
|
||||
{% for category, slides in categories.items %}
|
||||
|
||||
{% if category != 'projector' %}
|
||||
<div class="portlet">
|
||||
<div class="portlet-header">{{ category }}</div>
|
||||
<div class="portlet-content">
|
||||
@ -100,11 +100,13 @@
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- end portlet-->
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div> <!-- end column-->
|
||||
|
||||
<div class="column">
|
||||
<!-- Projector Live View -->
|
||||
<div class="portlet">
|
||||
<div class="portlet-header">
|
||||
{% trans "Projector Live View" %}
|
||||
@ -114,13 +116,68 @@
|
||||
<iframe id="iframe" src="{% url projector_show %}"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet">
|
||||
<div class="portlet-header">{% trans "Hidden information" %}</div>
|
||||
<div class="portlet-content">
|
||||
TODO: list hidden agenda items
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- end portlet-->
|
||||
|
||||
<!-- Single Slides -->
|
||||
{% for category, slides in categories.items %}
|
||||
{% if category == 'projector' %}
|
||||
<div class="portlet">
|
||||
<div class="portlet-header">{{ category }}</div>
|
||||
<div class="portlet-content">
|
||||
{% for slide in slides %}
|
||||
{% if slide.model_slide %}
|
||||
<ul style="line-height: 180%">
|
||||
{% for slide in slide.get_items %}
|
||||
<li class="{% if slide.active %}activeline{% endif %}"><a href="{% url projector_activate_slide slide.sid %}"
|
||||
class="activate_link {% if slide.active %}active{% endif %}"
|
||||
><div></div></a>
|
||||
{% for i in slide.get_ancestors %} {% endfor %}
|
||||
<a href="{% url projector_edit_slide slide.id %}">{{ slide }}</a>
|
||||
{% if slide.children.exists %}
|
||||
<a href="{% url projector_activate_summary slide.sid %}"><img src="{% static 'images/icons/view-list-tree.png' %}" title="{% trans 'Select item overview' %}"></a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<hr>
|
||||
<ul style="line-height: 180%">
|
||||
<li><a href="{% url projector_activate_slide slide.key %}"
|
||||
class="activate_link {% if slide.active %}active{% endif %}"
|
||||
><div></div></a>{{ slide.key }}</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div> <!-- end portlet-->
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<!-- Messages (Countdown etc.)-->
|
||||
<div class="portlet">
|
||||
<div class="portlet-header">{% trans 'Messages' %}</div>
|
||||
<div class="portlet-content">
|
||||
<ul style="line-height: 180%">
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<ul>
|
||||
{% for message in projector_messages %}
|
||||
<li>
|
||||
<input type="checkbox" name="{{ message }}"{% if message.active %} checked="checked"{% endif %}> {{ message }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<button class="button" type="submit">
|
||||
<span class="icon ok">{%trans 'Save' %}</span>
|
||||
</button>
|
||||
<button class="button" type="submit" name="apply">
|
||||
<span class="icon apply">{%trans 'Apply' %}</span>
|
||||
</button>
|
||||
<button class="button" type="button" onclick="window.location='{% url projector_control %}'">
|
||||
<span class="icon cancel">{%trans 'Cancel' %}</span>
|
||||
</button>
|
||||
</form>
|
||||
</ul>
|
||||
</div>
|
||||
</div> <!-- end portlet-->
|
||||
</div> <!-- end column -->
|
||||
{% endblock %}
|
||||
|
@ -1,24 +0,0 @@
|
||||
{% extends "projector/base_projector.html" %}
|
||||
|
||||
{% load tags %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<h1>{% trans 'Messages' %}</h1>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<ul>
|
||||
{% for message in projector_messages %}
|
||||
<li><input type="checkbox" name="{{ message }}"{% if message.active %} checked="checked"{% endif %}>{{ message }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<button class="button" type="submit">
|
||||
<span class="icon ok">{%trans 'Save' %}</span>
|
||||
</button>
|
||||
<button class="button" type="submit" name="apply">
|
||||
<span class="icon apply">{%trans 'Apply' %}</span>
|
||||
</button>
|
||||
<button class="button" type="button" onclick="window.location='{% url projector_messages %}'">
|
||||
<span class="icon cancel">{%trans 'Cancel' %}</span>
|
||||
</button>
|
||||
</form>
|
||||
{% endblock %}
|
@ -14,7 +14,7 @@ from django.conf.urls.defaults import *
|
||||
|
||||
from utils.views import CreateView
|
||||
|
||||
from views import ControlView, ActivateView, MessagesView
|
||||
from views import ControlView, ActivateView
|
||||
from agenda.views import ItemUpdate
|
||||
from models import ProjectorSlide
|
||||
|
||||
@ -54,11 +54,6 @@ urlpatterns = patterns('projector.views',
|
||||
name='projector_new',
|
||||
),
|
||||
|
||||
url(r'^messages/$',
|
||||
MessagesView.as_view(),
|
||||
name='projector_messages',
|
||||
),
|
||||
|
||||
url(r'^bigger/$', 'projector_edit', {'direction': 'bigger'},
|
||||
name='projector_bigger'),
|
||||
|
||||
|
@ -40,6 +40,27 @@ class ControlView(TemplateView):
|
||||
template_name = 'projector/control.html'
|
||||
permission_required = 'projector.can_manage_projector'
|
||||
|
||||
def get_projector_messages(self):
|
||||
messages = []
|
||||
for receiver, name in projector_messages.send(sender='registerer', register=True):
|
||||
if name is not None:
|
||||
try:
|
||||
projector_message = ProjectorMessage.objects.get(def_name=name)
|
||||
except ProjectorMessage.DoesNotExist:
|
||||
projector_message = ProjectorMessage(def_name=name, active=False)
|
||||
projector_message.save()
|
||||
messages.append(projector_message)
|
||||
return messages
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
for message in self.get_projector_messages():
|
||||
if message.def_name in request.POST:
|
||||
message.active = True
|
||||
else:
|
||||
message.active = False
|
||||
message.save()
|
||||
return self.get(request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ControlView, self).get_context_data(**kwargs)
|
||||
categories = {}
|
||||
@ -56,6 +77,7 @@ class ControlView(TemplateView):
|
||||
'categories': ordered_categories,
|
||||
'countdown_visible': config['countdown_visible'],
|
||||
'countdown_time': config['agenda_countdown_time'],
|
||||
'projector_messages': self.get_projector_messages(),
|
||||
})
|
||||
return context
|
||||
|
||||
@ -120,38 +142,6 @@ def active_slide(request):
|
||||
)
|
||||
|
||||
|
||||
class MessagesView(TemplateView):
|
||||
permission_required = 'projector.can_manage_projector'
|
||||
template_name = 'projector/messages.html'
|
||||
|
||||
def get_projector_messages(self):
|
||||
messages = []
|
||||
for receiver, name in projector_messages.send(sender='registerer', register=True):
|
||||
if name is not None:
|
||||
try:
|
||||
projector_message = ProjectorMessage.objects.get(def_name=name)
|
||||
except ProjectorMessage.DoesNotExist:
|
||||
projector_message = ProjectorMessage(def_name=name, active=False)
|
||||
projector_message.save()
|
||||
messages.append(projector_message)
|
||||
return messages
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
for message in self.get_projector_messages():
|
||||
if message.def_name in request.POST:
|
||||
message.active = True
|
||||
else:
|
||||
message.active = False
|
||||
message.save()
|
||||
|
||||
return self.get(request, *args, **kwargs)
|
||||
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(MessagesView, self).get_context_data(**kwargs)
|
||||
context['projector_messages'] = self.get_projector_messages()
|
||||
return context
|
||||
|
||||
|
||||
@permission_required('agenda.can_manage_agenda')
|
||||
def projector_edit(request, direction):
|
||||
|
Loading…
Reference in New Issue
Block a user