rename projector to dashboard

This commit is contained in:
Oskar Hahn 2012-08-15 10:58:29 +02:00
parent b7a0e83c68
commit c6bc50e2fd
8 changed files with 39 additions and 48 deletions

View File

@ -24,21 +24,6 @@ class UserCreateForm(forms.ModelForm, CssClassMixin):
groups = forms.ModelMultipleChoiceField( groups = forms.ModelMultipleChoiceField(
queryset=Group.objects.exclude(name__iexact='anonymous'), queryset=Group.objects.exclude(name__iexact='anonymous'),
label=_("User groups"), required=False) label=_("User groups"), required=False)
is_active = forms.BooleanField(label=_("Active"), required=False,
initial=True)
class Meta:
model = User
exclude = ('username', 'password', 'is_staff', 'is_superuser',
'last_login', 'date_joined', 'user_permissions')
class UserEditForm(forms.ModelForm, CssClassMixin):
first_name = forms.CharField(label=_("First name"))
last_name = forms.CharField(label=_("Last name"))
groups = forms.ModelMultipleChoiceField(queryset=Group.objects.all(),
label=_("User groups"), required=False)
is_active = forms.BooleanField(label=_("Active"), required=False)
class Meta: class Meta:
model = User model = User
@ -111,6 +96,7 @@ class UsersettingsForm(forms.ModelForm, CssClassMixin):
model = User model = User
fields = ('username', 'first_name', 'last_name', 'email') fields = ('username', 'first_name', 'last_name', 'email')
class UserImportForm(forms.Form, CssClassMixin): class UserImportForm(forms.Form, CssClassMixin):
csvfile = forms.FileField(widget=forms.FileInput(attrs={'size': '50'}), csvfile = forms.FileField(widget=forms.FileInput(attrs={'size': '50'}),
label=_("CSV File")) label=_("CSV File"))

View File

@ -50,7 +50,8 @@ class ProjectorSlide(models.Model, SlideMixin):
class Meta: class Meta:
permissions = ( permissions = (
('can_manage_projector', ugettext_noop("Can manage the projector")), ('can_manage_projector', ugettext_noop("Can manage the projector")),
('can_see_projector', ugettext_noop("Can see projector")), ('can_see_projector', ugettext_noop("Can see the projector")),
('can_see_dashboard', ugettext_noop("Can see the dashboard")),
) )

View File

@ -105,12 +105,14 @@ class Widget(object):
""" """
Class for a Widget for the Projector-Tab. Class for a Widget for the Projector-Tab.
""" """
def __init__(self, name, html=None, template=None, context={}): def __init__(self, name, html=None, template=None, context={},
permission_required=None):
self.name = name self.name = name
if html is not None: if html is not None:
self.html = html self.html = html
elif template is not None: elif template is not None:
self.html = render_to_string(template, context) self.html = render_to_string(template, context)
self.permission_required = permission_required
def get_name(self): def get_name(self):
return self.name.lower() return self.name.lower()

View File

@ -7,12 +7,12 @@
{% block title %}{{ block.super}} {% trans 'Projector' %} {% endblock %} {% block title %}{{ block.super}} {% trans 'Projector' %} {% endblock %}
{% block submenu %} {% block submenu %}
{% url projector_control as url_projectoroverview %} {% url dashboard as url_dashboard %}
<h4 class="sectiontitle">{% trans "Projector" %}</h4> <h4 class="sectiontitle">{% trans "Projector" %}</h4>
<ul> <ul>
{% if perms.projector.can_manage_projector %} {% if perms.projector.can_manage_projector %}
<li class="{% if request.path == url_projectoroverview %}selected{% endif %}"> <li{% if request.path == url_dashboard %} class="selected"{% endif %}>
<a href="{% url projector_control %}">{% trans 'Overview' %}</a> <a href="{% url dashboard %}">{% trans 'Overview' %}</a>
</li> </li>
{% endif %} {% endif %}
{% if perms.projector.can_see_projector %} {% if perms.projector.can_see_projector %}

View File

@ -14,7 +14,7 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<h1>{% trans 'Projector' %}</h1> <h1>{% trans 'Dashboard' %}</h1>
<div style="text-align: right; padding: 0 10px 5px 0; margin-top:-20px;"> <div style="text-align: right; padding: 0 10px 5px 0; margin-top:-20px;">
<!-- projector control --> <!-- projector control -->
{% trans "Adjust projector view" %}: {% trans "Adjust projector view" %}:

View File

@ -15,8 +15,8 @@
<button class="button" type="submit" name="apply"> <button class="button" type="submit" name="apply">
<span class="icon apply">{% trans 'Apply' %}</span> <span class="icon apply">{% trans 'Apply' %}</span>
</button> </button>
<a href='{% url projector_control %}'> <a href='{% url dashboard %}'>
<button class="button" type="button" onclick="window.location='{% url projector_control %}'"> <button class="button" type="button" onclick="window.location='{% url dashboard %}'">
<span class="icon cancel">{% trans 'Cancel' %}</span> <span class="icon cancel">{% trans 'Cancel' %}</span>
</button> </button>
</a> </a>

View File

@ -12,7 +12,7 @@
from django.conf.urls.defaults import patterns, url from django.conf.urls.defaults import patterns, url
from openslides.projector.views import (ControlView, ActivateView, from openslides.projector.views import (DashboardView, ActivateView,
CustomSlideCreateView, CustomSlideUpdateView, CustomSlideDeleteView, CustomSlideCreateView, CustomSlideUpdateView, CustomSlideDeleteView,
CountdownEdit, ProjectorEdit, Projector, ActivateOverlay) CountdownEdit, ProjectorEdit, Projector, ActivateOverlay)
@ -35,9 +35,9 @@ urlpatterns = patterns('',
name='projctor_preview_slide', name='projctor_preview_slide',
), ),
url(r'^control/$', url(r'^dashboard/$',
ControlView.as_view(), DashboardView.as_view(),
name='projector_control', name='dashboard',
), ),
url(r'^activate/$', url(r'^activate/$',

View File

@ -36,12 +36,12 @@ from openslides.projector.projector import SLIDE, Widget
from openslides.projector.signals import projector_overlays from openslides.projector.signals import projector_overlays
class ControlView(TemplateView, AjaxMixin): class DashboardView(TemplateView, AjaxMixin):
""" """
Overview over all possible slides, the overlays and a liveview. Overview over all possible slides, the overlays and a liveview.
""" """
template_name = 'projector/control.html' template_name = 'projector/dashboard.html'
permission_required = 'projector.can_manage_projector' permission_required = 'projector.can_see_dashboard'
def get_projector_overlays(self): def get_projector_overlays(self):
overlays = [] overlays = []
@ -73,7 +73,7 @@ class ControlView(TemplateView, AjaxMixin):
} }
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(ControlView, self).get_context_data(**kwargs) context = super(DashboardView, self).get_context_data(**kwargs)
widgets = SortedDict() widgets = SortedDict()
for app in settings.INSTALLED_APPS: for app in settings.INSTALLED_APPS:
@ -88,6 +88,7 @@ class ControlView(TemplateView, AjaxMixin):
continue continue
for widget in modul_widgets: for widget in modul_widgets:
if self.request.user.has_perm(widget.permission_required):
widgets[widget.get_name()] = widget widgets[widget.get_name()] = widget
@ -182,7 +183,7 @@ class ActivateView(RedirectView):
Activate a Slide. Activate a Slide.
""" """
permission_required = 'projector.can_manage_projector' permission_required = 'projector.can_manage_projector'
url = 'projector_control' url = 'dashboard'
allow_ajax = True allow_ajax = True
def pre_redirect(self, request, *args, **kwargs): def pre_redirect(self, request, *args, **kwargs):
@ -199,7 +200,7 @@ class ProjectorEdit(RedirectView):
Scale or scroll the projector. Scale or scroll the projector.
""" """
permission_required = 'projector.can_manage_projector' permission_required = 'projector.can_manage_projector'
url = 'projector_control' url = 'dashboard'
allow_ajax = True allow_ajax = True
def pre_redirect(self, request, *args, **kwargs): def pre_redirect(self, request, *args, **kwargs):
@ -223,7 +224,7 @@ class CountdownEdit(RedirectView):
Start, stop or reset the countdown. Start, stop or reset the countdown.
""" """
permission_required = 'projector.can_manage_projector' permission_required = 'projector.can_manage_projector'
url = 'projector_control' url = 'dashboard'
allow_ajax = True allow_ajax = True
def pre_redirect(self, request, *args, **kwargs): def pre_redirect(self, request, *args, **kwargs):
@ -273,7 +274,7 @@ class ActivateOverlay(RedirectView):
""" """
Activate or deactivate an overlay. Activate or deactivate an overlay.
""" """
url = 'projector_control' url = 'dashboard'
allow_ajax = True allow_ajax = True
permission_required = 'projector.can_manage_projector' permission_required = 'projector.can_manage_projector'
@ -308,7 +309,7 @@ class CustomSlideCreateView(CreateView):
template_name = 'projector/new.html' template_name = 'projector/new.html'
model = ProjectorSlide model = ProjectorSlide
context_object_name = 'customslide' context_object_name = 'customslide'
success_url = 'projector_control' success_url = 'dashboard'
apply_url = 'customslide_edit' apply_url = 'customslide_edit'
@ -320,7 +321,7 @@ class CustomSlideUpdateView(UpdateView):
template_name = 'projector/new.html' template_name = 'projector/new.html'
model = ProjectorSlide model = ProjectorSlide
context_object_name = 'customslide' context_object_name = 'customslide'
success_url = 'projector_control' success_url = 'dashboard'
apply_url = 'customslide_edit' apply_url = 'customslide_edit'
@ -330,7 +331,7 @@ class CustomSlideDeleteView(DeleteView):
""" """
permission_required = 'projector.can_manage_projector' permission_required = 'projector.can_manage_projector'
model = ProjectorSlide model = ProjectorSlide
url = 'projector_control' url = 'dashboard'
def register_tab(request): def register_tab(request):
@ -339,9 +340,10 @@ def register_tab(request):
""" """
selected = True if request.path.startswith('/projector/') else False selected = True if request.path.startswith('/projector/') else False
return Tab( return Tab(
title=_('Projector'), title=_('Dashboard'),
url=reverse('projector_control'), url=reverse('dashboard'),
permission=request.user.has_perm('projector.can_manage_projector'), permission=request.user.has_perm('projector.can_manage_projector') or
request.user.has_perm('projector.can_see_dashboard'),
selected=selected, selected=selected,
) )
@ -356,7 +358,7 @@ def get_widgets(request):
template='projector/widget.html', template='projector/widget.html',
context={ context={
'slides': ProjectorSlide.objects.all(), 'slides': ProjectorSlide.objects.all(),
'welcomepage_is_active': not bool(config["presentation"]), 'welcomepage_is_active': not bool(config["presentation"])},
} permission_required = 'projector.can_manage_projector',
), ),
] ]