Rework (projector) template with bootstrap.
- Always use templatetag 'absolute_url' instead of (depricated) 'model_url'. Search and replace all old arguments: edit -> update, view -> detail, delete - Fixed bug in setting default value in 'absolute_url' templatetag (default value is defined in models.py only). Updated 'backend' template.
This commit is contained in:
parent
d681e94eed
commit
84d5293fbc
@ -5,7 +5,7 @@
|
||||
|
||||
{% block title %}
|
||||
{% if item %}
|
||||
{{ item.title }} – {% trans "Edit item" %}
|
||||
{{ item }} – {% trans "Edit item" %}
|
||||
{% else %}
|
||||
{% trans "New item" %}
|
||||
{% endif %}
|
||||
|
@ -18,7 +18,7 @@
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if perms.agenda.can_manage_agenda %}
|
||||
<a href="{{ node|absolute_url:'edit' }}" rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini">
|
||||
<a href="{{ node|absolute_url:'update' }}" rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini">
|
||||
<i class="icon-pencil"></i>
|
||||
</a>
|
||||
<a href="{{ node|absolute_url:'delete' }}" rel="tooltip" data-original-title="{% trans 'Delete' %}" class="btn btn-mini">
|
||||
|
@ -1,8 +1,10 @@
|
||||
{% load i18n %}
|
||||
|
||||
<h1>
|
||||
{{ item }}
|
||||
<hr>
|
||||
</h1>
|
||||
|
||||
{% if item.text %}
|
||||
<h1>{{ item }}</h1>
|
||||
<span>{{ item.text|safe|linebreaks }}</span>
|
||||
{% else %}
|
||||
<div class="item_fullscreen">{{ item }}</div>
|
||||
{{ item.text|safe|linebreaks }}
|
||||
{% endif %}
|
||||
|
@ -16,10 +16,10 @@
|
||||
</style>
|
||||
|
||||
<h1>{{ title }}</h1>
|
||||
<h2 style="margin-top: -10px;">
|
||||
<h3>
|
||||
{% trans 'List of speakers' %}
|
||||
{% if item.speaker_list_closed %}(<span class="closed">{% trans 'closed' %}</span>){% endif %}
|
||||
</h2>
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
{% if list_of_speakers %}
|
||||
|
@ -10,4 +10,5 @@
|
||||
<hr>
|
||||
<a href="{% url 'agenda_next_on_current_list_of_speakers' %}" class="btn btn-mini"><i class="icon icon-bell"></i> {% trans 'Next speaker' %}</a>
|
||||
<a href="{% url 'agenda_end_speach_on_current_list_of_speakers' %}" class="btn btn-mini"><i class="icon icon-bell"></i> {% trans 'End speach' %}</a>
|
||||
<br>
|
||||
{% endif %}
|
||||
|
@ -23,7 +23,7 @@
|
||||
rel="tooltip" data-original-title="{% trans 'Show' %}">
|
||||
<i class="icon-facetime-video {% if item.is_active_slide and active_type == 'text' %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
<a href="{{ item|absolute_url:'edit' }}" title="{% trans 'Edit' %}" class="btn btn-mini right">
|
||||
<a href="{{ item|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right">
|
||||
<i class="icon-pencil"></i>
|
||||
</a>
|
||||
<a href="{{ item|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right">
|
||||
|
@ -85,7 +85,7 @@ class Overview(TemplateView):
|
||||
|
||||
active_slide = get_active_slide()
|
||||
if active_slide['callback'] == 'agenda':
|
||||
agenda_active = active_slide.get('pk', 'agenda') == 'agenda'
|
||||
agenda_is_active = active_slide.get('pk', 'agenda') == 'agenda'
|
||||
active_type = active_slide.get('type', 'text')
|
||||
else:
|
||||
agenda_is_active = None
|
||||
|
@ -23,8 +23,10 @@
|
||||
<a href="{% url 'assignment_pdf' assignment.id %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Print election as PDF' %}" target="_blank"><i class="icon-print"></i> PDF</a>
|
||||
<!-- activate projector -->
|
||||
{% if perms.projector.can_manage_projector %}
|
||||
<a href="{% url 'projector_activate_slide' assignment.sid %}" class="activate_link btn {% if assignment.active %}btn-primary{% endif %} btn-mini" rel="tooltip" data-original-title="{% trans 'Show election' %}">
|
||||
<i class="icon-facetime-video {% if assignment.active %}icon-white{% endif %}"></i>
|
||||
<a href="{{ assignment|absolute_url:'projector' }}"
|
||||
class="activate_link btn {% if assignment.is_active_slide %}btn-primary{% endif %} btn-mini"
|
||||
rel="tooltip" data-original-title="{% trans 'Show election' %}">
|
||||
<i class="icon-facetime-video {% if assignment.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if perms.assignment.can_manage_assignment or perms.agenda.can_manage_agenda %}
|
||||
@ -177,7 +179,7 @@
|
||||
{% endfor %}
|
||||
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
|
||||
<th class="span1 nobr">
|
||||
<a href="{% url 'assignment_gen_poll' assignment.id %}" class="btn btn-mini">
|
||||
<a href="{% url 'assignment_poll_create' assignment.id %}" class="btn btn-mini">
|
||||
<i class="icon-plus"></i> {% trans 'New ballot' %}
|
||||
</a>
|
||||
</th>
|
||||
|
@ -1,6 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
{% load tags %}
|
||||
|
||||
{% block title %}
|
||||
{% if assignment %}
|
||||
@ -19,7 +20,11 @@
|
||||
{% trans "New election" %}
|
||||
{% endif %}
|
||||
<small class="pull-right">
|
||||
<a href="{% url 'assignment_list' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
|
||||
{% if assignment %}
|
||||
<a href="{{ assignment|absolute_url }}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to election" %}</a>
|
||||
{% else %}
|
||||
<a href="{% url 'assignment_list' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
|
||||
{% endif %}
|
||||
</small>
|
||||
</h1>
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
{% for object in object_list %}
|
||||
<tr class="{% if object.active %}activeline{% endif %}">
|
||||
<tr class="{% if object.is_active_slide %}activeline{% endif %}">
|
||||
<td><a href="{{ object|absolute_url:'detail' }}">{{ object }}</a></td>
|
||||
<td class="optional">
|
||||
<!-- posts -->
|
||||
@ -54,10 +54,10 @@
|
||||
<td>
|
||||
<span style="width: 1px; white-space: nowrap;">
|
||||
{% if perms.projector.can_manage_projector %}
|
||||
<a href="{% url 'projector_activate_slide' object.sid %}"
|
||||
class="activate_link btn {% if object.active %}btn-primary{% endif %} btn-mini"
|
||||
<a href="{{ object|absolute_url:'projector' }}"
|
||||
class="activate_link btn {% if object.is_active_slide %}btn-primary{% endif %} btn-mini"
|
||||
rel="tooltip" data-original-title="{% trans 'Show election' %}">
|
||||
<i class="icon-facetime-video {% if object.active %}icon-white{% endif %}"></i>
|
||||
<i class="icon-facetime-video {% if object.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if perms.assignment.can_manage_assignment %}
|
||||
|
@ -2,20 +2,23 @@
|
||||
{% load staticfiles %}
|
||||
{% load tags %}
|
||||
|
||||
{% if assignment.status != "fin" %}
|
||||
<div id="sidebar">
|
||||
<div class="box">
|
||||
<p><b>{% trans "Status" %}:</b><br>
|
||||
<div class="well">
|
||||
<!-- Status -->
|
||||
<h4 class="first">{% trans "Status" %}:</h4>
|
||||
{% trans assignment.get_status_display %}</p>
|
||||
{% if assignment.status == "sea" or assignment.status == "vot" %}
|
||||
<p><b>{% trans "Number of available posts" %}:</b><br>
|
||||
{{ assignment.posts }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<h4>{% trans "Number of available posts" %}:</h4>
|
||||
{{ assignment.posts }}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<h1>{% trans "Election" %}: {{ assignment }}</h1>
|
||||
<h1>{{ assignment }}
|
||||
<br>
|
||||
<small>
|
||||
{% trans "Election" %}
|
||||
</small>
|
||||
<hr>
|
||||
</h1>
|
||||
{% if not assignment.candidates %}
|
||||
<p>
|
||||
<div class="text">{{ assignment.description|linebreaks }}</div>
|
||||
|
@ -46,17 +46,21 @@ def model_url(object, link='view'):
|
||||
|
||||
|
||||
@register.filter
|
||||
def absolute_url(model, link='detail'):
|
||||
def absolute_url(model, link=None):
|
||||
"""
|
||||
Returns the absolute_url to a model. The 'link' argument decides which url
|
||||
will be returned. See get_absolute_url() in the model.
|
||||
|
||||
Example: {{ motion|absolute_url:'delete' }}
|
||||
"""
|
||||
try:
|
||||
return model.get_absolute_url(link)
|
||||
except ValueError:
|
||||
return ''
|
||||
if link is None:
|
||||
url = model.get_absolute_url()
|
||||
else:
|
||||
try:
|
||||
url = model.get_absolute_url(link)
|
||||
except ValueError:
|
||||
url = ''
|
||||
return url
|
||||
|
||||
|
||||
@register.filter
|
||||
|
@ -46,3 +46,6 @@ td.diff_header {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
#motion-vote-results img {
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
@ -25,12 +25,12 @@
|
||||
{% for category in category_list %}
|
||||
<tr>
|
||||
<td>{{ category.prefix }}</td>
|
||||
<td><a href="{% model_url category 'update' %}">{{ category }}</a></td>
|
||||
<td><a href="{{ category|absolute_url }}">{{ category }}</a></td>
|
||||
<td><span style="width: 1px; white-space: nowrap;">
|
||||
<a href="{% model_url category 'update' %}" rel="tooltip" data-original-title="{% trans 'Edit' %}"
|
||||
<a href="{{ category|absolute_url:'update' }}" rel="tooltip" data-original-title="{% trans 'Edit' %}"
|
||||
class="btn btn-mini"><i class="icon-pencil"></i>
|
||||
</a>
|
||||
<a href="{% model_url category 'delete' %}" rel="tooltip" data-original-title="{% trans 'Delete' %}"
|
||||
<a href="{{ category|absolute_url:'delete' }}" rel="tooltip" data-original-title="{% trans 'Delete' %}"
|
||||
class="btn btn-mini"><i class="icon-remove"></i>
|
||||
</a>
|
||||
</span>
|
||||
|
@ -22,16 +22,15 @@
|
||||
{% endif %}
|
||||
</small>
|
||||
<small class="pull-right">
|
||||
<a href="{% url 'motion_list' %}" class="btn btn-mini"
|
||||
rel="tooltip" data-original-title="{% trans 'Show item' %}">
|
||||
<a href="{% url 'motion_list' %}" class="btn btn-mini">
|
||||
<i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
|
||||
<a href="{% url 'motion_detail_pdf' motion.id %}" class="btn btn-mini"
|
||||
rel="tooltip" data-original-title="{% trans 'Print motion as PDF' %}" target="_blank">
|
||||
<i class="icon-print"></i> PDF</a>
|
||||
<!-- activate projector -->
|
||||
{% if perms.projector.can_manage_projector %}
|
||||
<a href="{% url 'projector_activate_slide' motion.sid %}" class="activate_link btn {% if motion.active %}btn-primary{% endif %} btn-mini" rel="tooltip" data-original-title="{% trans 'Show motion' %}">
|
||||
<i class="icon-facetime-video {% if motion.active %}icon-white{% endif %}"></i>
|
||||
<a href="{{ motion|absolute_url:'projector' }}" class="activate_link btn {% if motion.is_active_slide %}btn-primary{% endif %} btn-mini" rel="tooltip" data-original-title="{% trans 'Show motion' %}">
|
||||
<i class="icon-facetime-video {% if motion.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if perms.motion.can_manage_motion or perms.agenda.can_manage_agenda or allowed_actions.edit %}
|
||||
@ -42,7 +41,7 @@
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<!-- edit -->
|
||||
{% if allowed_actions.edit %}
|
||||
<li><a href="{{ motion|absolute_url:'edit' }}"><i class="icon-pencil"></i> {% trans 'Edit motion' %}</a></li>
|
||||
<li><a href="{{ motion|absolute_url:'update' }}"><i class="icon-pencil"></i> {% trans 'Edit motion' %}</a></li>
|
||||
{% endif %}
|
||||
{% if perms.motion.can_manage_motion %}
|
||||
<!-- delete -->
|
||||
@ -196,7 +195,7 @@
|
||||
{% if perms.motion.can_manage_motion or poll.has_votes %}
|
||||
<li><b>{{ poll.poll_number|ordinal|safe }} {% trans "vote" %}</b>
|
||||
{% if perms.motion.can_manage_motion %}
|
||||
<a class="btn btn-mini" href="{{ poll|absolute_url:'edit' }}" title="{% trans 'Edit Vote' %}"><i class="icon-pencil"></i></a>
|
||||
<a class="btn btn-mini" href="{{ poll|absolute_url:'update' }}" title="{% trans 'Edit Vote' %}"><i class="icon-pencil"></i></a>
|
||||
<a class="btn btn-mini" href="{{ poll|absolute_url:'delete' }}" title="{% trans 'Delete Vote' %}"><i class="icon-remove"></i></a>
|
||||
{% endif %}
|
||||
<br>
|
||||
|
@ -45,7 +45,7 @@
|
||||
{% endif %}
|
||||
<small class="pull-right">
|
||||
{% if motion %}
|
||||
<a href="{% model_url motion 'view' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to motion" %}</a>
|
||||
<a href="{{ motion|absolute_url }}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to motion" %}</a>
|
||||
{% else %}
|
||||
<a href="{% url 'motion_list' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
|
||||
{% endif %}
|
||||
|
@ -48,9 +48,9 @@
|
||||
</tr>
|
||||
</thead>
|
||||
{% for motion in motion_list %}
|
||||
<tr class="{% if motion.active %}activeline{% endif %}">
|
||||
<tr class="{% if motion.is_active_slide %}activeline{% endif %}">
|
||||
<td class="nobr">{{ motion.identifier|default:'' }}</td>
|
||||
<td><a href="{% model_url motion %}">{{ motion }}</a></td>
|
||||
<td><a href="{{ motion|absolute_url }}">{{ motion }}</a></td>
|
||||
<td class="optional">{% if motion.category %}{{ motion.category }}{% else %}–{% endif %}</td>
|
||||
<td><span class="label label-info">{% trans motion.state.name %}</span></td>
|
||||
<td class="optional">
|
||||
@ -74,15 +74,16 @@
|
||||
<td>
|
||||
<span style="width: 1px; white-space: nowrap;">
|
||||
{% if perms.projector.can_manage_projector %}
|
||||
<a href="{% url 'projector_activate_slide' motion.sid %}" class="activate_link btn {% if motion.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
|
||||
<i class="icon-facetime-video {% if motion.active %}icon-white{% endif %}"></i>
|
||||
<a href="{{ motion|absolute_url:'projector' }}" class="activate_link btn {% if motion.is_active_slide %}btn-primary{% endif %} btn-mini"
|
||||
rel="tooltip" data-original-title="{% trans 'Show motion' %}">
|
||||
<i class="icon-facetime-video {% if motion.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if perms.motion.can_manage_motion %}
|
||||
<a href="{% model_url motion 'edit' %}" rel="tooltip" data-original-title="{% trans 'Edit' %}"
|
||||
<a href="{{ motion|absolute_url:'update' }}" rel="tooltip" data-original-title="{% trans 'Edit' %}"
|
||||
class="btn btn-mini"><i class="icon-pencil"></i>
|
||||
</a>
|
||||
<a href="{% model_url motion 'delete' %}" rel="tooltip" data-original-title="{% trans 'Delete' %}"
|
||||
<a href="{{ motion|absolute_url:'delete' }}" rel="tooltip" data-original-title="{% trans 'Delete' %}"
|
||||
class="btn btn-mini"><i class="icon-remove"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -2,16 +2,15 @@
|
||||
{% load staticfiles %}
|
||||
|
||||
<div id="sidebar">
|
||||
<div class="box">
|
||||
<div class="well">
|
||||
<!-- Status -->
|
||||
<p><b>{% trans "Status" %}:</b><br>
|
||||
{% trans motion.state.name %}
|
||||
</p>
|
||||
<h4 class="first">{% trans "Status" %}:</h4>
|
||||
{% trans motion.state.name %}
|
||||
|
||||
<!-- poll results -->
|
||||
{% with motion.polls.all as polls %}
|
||||
{% if polls.exists and polls.0.has_votes %}
|
||||
<p><b>{% trans "Poll result" %}:</b>
|
||||
<h4>{% trans "Poll result" %}:</h4>
|
||||
{% for poll in polls %}
|
||||
{% if poll.has_votes %}
|
||||
{% if polls|length > 1 %}
|
||||
@ -33,31 +32,34 @@
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
<!-- Submitter -->
|
||||
<p><b>{% trans "Submitter" %}:</b><br>
|
||||
{% for submitter in motion.submitter.all %}
|
||||
{{ submitter.person }}{% if not forloop.last %},<br> {% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
<h4>{% trans "Submitter" %}:</h4>
|
||||
{% for submitter in motion.submitter.all %}
|
||||
{{ submitter.person }}{% if not forloop.last %},<br> {% endif %}
|
||||
{% empty %}
|
||||
-
|
||||
{% endfor %}
|
||||
|
||||
<!-- Category -->
|
||||
{% if motion.category %}
|
||||
<h4>{% trans "Category" %}:</h4>
|
||||
{{ motion.category }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1>
|
||||
{% if motion.identifier %}
|
||||
{% trans "Motion" %} {{ motion.identifier }}
|
||||
{% else %}
|
||||
{% trans "Motion" %} [---]
|
||||
{% endif %}
|
||||
<small>
|
||||
{% if motion.last_version.version_number > 1 %}({% trans 'Version' %} {{ motion.active_version.version_number }}){% endif %}
|
||||
</small>
|
||||
{{ motion.active_version.title }}
|
||||
<br>
|
||||
<small>
|
||||
{% trans "Motion" %} {{ motion.identifier|default:'' }}
|
||||
{% if motion.get_active_version.version_number > 1 %} | {% trans 'Version' %} {{ motion.active_version.version_number }}{% endif %}
|
||||
</small>
|
||||
<hr>
|
||||
</h1>
|
||||
<b>{{ motion.active_version.title }}</b>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<div class="text">{{ motion.active_version.text|safe }}</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<a href="{{ motion|absolute_url:'projector' }}" class="activate_link btn {% if motion.is_active_slide %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
|
||||
<i class="icon-facetime-video {% if motion.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
<a href="{{ motion|absolute_url:'edit' }}" title="{% trans 'Edit' %}" class="btn btn-mini right">
|
||||
<a href="{{ motion|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right">
|
||||
<i class="icon-pencil"></i>
|
||||
</a>
|
||||
<a href="{{ motion|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right">
|
||||
|
@ -148,7 +148,7 @@ class GroupForm(forms.ModelForm, CssClassMixin):
|
||||
not Group.objects.exclude(pk=self.instance.pk).filter(
|
||||
permissions__in=[get_protected_perm()],
|
||||
user__pk=self.request.user.pk).exists()):
|
||||
error_msg = _('You can not remove the permission to manage participants from the last group your are in.')
|
||||
error_msg = _('You can not remove the permission to manage participants from the last group you are in.')
|
||||
raise forms.ValidationError(error_msg)
|
||||
return super(GroupForm, self).clean(*args, **kwargs)
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
{% for group in groups %}
|
||||
<tr class="{% if group.active %}activeline{% endif %}">
|
||||
<tr class="{% if group.is_active_slide %}activeline{% endif %}">
|
||||
<td class="nobr">{{ group.pk }}
|
||||
{% if group.pk == 1 or group.pk == 2 %}
|
||||
<a title="{% blocktrans %}The groups 1 ('Anonymous') and 2 ('Registered') are fixed default groups which can not be deleted. Each created or imported participant is a member of group 2. Use custom groups to set additional permissions for a subset of participants.{% endblocktrans %}"><i class="icon-info-sign"></i></a>
|
||||
@ -45,9 +45,11 @@
|
||||
<td>
|
||||
<span style="width: 1px; white-space: nowrap;">
|
||||
{% if perms.projector.can_manage_projector %}
|
||||
<a href="{% url 'projector_activate_slide' group.sid %}" class="activate_link btn {% if group.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
|
||||
<i class="icon-facetime-video {% if group.active %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
<a href="{{ group|absolute_url:'projector' }}"
|
||||
class="activate_link btn {% if group.is_active_slide %}btn-primary{% endif %} btn-mini"
|
||||
rel="tooltip" data-original-title="{% trans 'Show group' %}">
|
||||
<i class="icon-facetime-video {% if group.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="{% url 'user_group_edit' group.id %}" title="{% trans 'Edit' %}" class="btn btn-mini">
|
||||
<i class="icon-pencil"></i>
|
||||
|
@ -1,7 +1,8 @@
|
||||
{% load i18n %}
|
||||
|
||||
<div class="item_fullscreen">{% trans group.name %}
|
||||
<span>
|
||||
<p><i>{{ group.user_set.all.count }} {% trans "participants" %}</i></p>
|
||||
</span>
|
||||
</div>
|
||||
<h1>
|
||||
{% trans group.name %}
|
||||
<hr>
|
||||
</h1>
|
||||
|
||||
<i>{{ group.user_set.all.count }} {% trans "participants" %}</i>
|
||||
|
@ -25,7 +25,7 @@
|
||||
{% trans 'Delegate' %} (<code>3</code>), {% trans 'Staff' %} (<code>4</code>)
|
||||
</li>
|
||||
<li>
|
||||
{% trans 'At least first name or last name have to filled in. All other fields are optional and may be empty.' %}
|
||||
{% trans 'At least first name or last name have to be filled in. All other fields are optional and may be empty.' %}
|
||||
</li>
|
||||
<li>{% trans 'The first line (header) is ignored' %}.</li>
|
||||
<li>
|
||||
|
@ -59,7 +59,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for user in users %}
|
||||
<tr class="{% if user.active %}activeline{% endif %}">
|
||||
<tr class="{% if user.is_active_slide %}activeline{% endif %}">
|
||||
<td>{% if perms.participant.can_manage_participant %}
|
||||
{% if user != request_user %}
|
||||
<a href="{% url 'user_status_toggle' user.id %}"
|
||||
@ -108,9 +108,9 @@
|
||||
<td>
|
||||
<span style="width: 1px; white-space: nowrap;">
|
||||
{% if perms.projector.can_manage_projector %}
|
||||
<a href="{% url 'projector_activate_slide' user.sid %}" class="activate_link btn {% if user.active %}btn-primary{% endif %} btn-mini"
|
||||
<a href="{{ user|absolute_url:'projector' }}" class="activate_link btn {% if user.is_active_slide %}btn-primary{% endif %} btn-mini"
|
||||
rel="tooltip" data-original-title="{% trans 'Show participant' %}">
|
||||
<i class="icon-facetime-video {% if user.active %}icon-white{% endif %}"></i>
|
||||
<i class="icon-facetime-video {% if user.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="{% url 'user_edit' user.id %}" rel="tooltip" data-original-title="{% trans 'Edit' %}"
|
||||
|
@ -1,15 +1,19 @@
|
||||
{% load i18n %}
|
||||
<div class="item_fullscreen">{{ shown_user }}
|
||||
<span>
|
||||
{% if shown_user.committee %}
|
||||
<p>{{ shown_user.committee }}</p>
|
||||
|
||||
<h1>
|
||||
{{ shown_user.clean_name }}<br>
|
||||
<small>{{ shown_user.structure_level }}</small>
|
||||
<hr>
|
||||
</h1>
|
||||
|
||||
{% if shown_user.committee %}
|
||||
<p>{{ shown_user.committee }}</p>
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
{% if shown_user.groups.all %}
|
||||
{% for group in shown_user.groups.all %}
|
||||
{% trans group.name %}{% if not forloop.last %}<br> {% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<p>
|
||||
{% if shown_user.groups.all %}
|
||||
{% for group in shown_user.groups.all %}
|
||||
{% trans group.name %}{% if not forloop.last %}, {% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</p>
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<a href="{{ user|absolute_url:'projector' }}" class="activate_link btn {% if user.is_active_slide %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
|
||||
<i class="icon-facetime-video {% if user.is_active_slide %}icon-white{% endif %}"></i>
|
||||
</a>
|
||||
<a href="{{ user|absolute_url:'edit' }}" title="{% trans 'Edit' %}" class="btn btn-mini right">
|
||||
<a href="{{ user|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right">
|
||||
<i class="icon-pencil"></i>
|
||||
</a>
|
||||
<a href="{{ user|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right">
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 1.0 KiB |
@ -6,50 +6,32 @@
|
||||
*/
|
||||
|
||||
body{
|
||||
margin : 0px;
|
||||
padding-top: 0px;
|
||||
padding-left : 0px;
|
||||
font-family: 'Lucida Grande',"Trebuchet MS",Verdana,sans-serif;
|
||||
font-size : 20px;
|
||||
background-color: #FAFAFB;
|
||||
font-size: 20px !important;
|
||||
line-height: 24px !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/*** HEADER ***/
|
||||
#header {
|
||||
position:relative;
|
||||
background:url("../img/presentation-header-bg.png") repeat-x scroll center top #3D3020;
|
||||
height:100px;
|
||||
background-color: #333333;
|
||||
background-image: -moz-linear-gradient(top, #444444, #222222);
|
||||
background-image: -ms-linear-gradient(top, #444444, #222222);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
|
||||
background-image: -webkit-linear-gradient(top, #444444, #222222);
|
||||
background-image: -o-linear-gradient(top, #444444, #222222);
|
||||
background-image: linear-gradient(top, #444444, #222222);
|
||||
box-shadow: 0 0 7px rgba(0,0,0,0.6);
|
||||
height: 70px;
|
||||
margin-bottom: 20px;
|
||||
padding: 7px 20px 0;
|
||||
position: relative;
|
||||
}
|
||||
#logo {
|
||||
position:absolute;
|
||||
top: 15px;
|
||||
left: 100px;
|
||||
}
|
||||
.event_name {
|
||||
position:absolute;
|
||||
text-align:right;
|
||||
top: 10px;
|
||||
right: 40px;
|
||||
font-size:42px;
|
||||
font-weight:bold;
|
||||
color: #ffffff;
|
||||
}
|
||||
.event_description {
|
||||
position:absolute;
|
||||
text-align:right;
|
||||
top:60px;
|
||||
right:40px;
|
||||
font-size:17px;
|
||||
color: #cfcfcf;
|
||||
}
|
||||
#ajaxswitcher {
|
||||
height: 20px;
|
||||
padding: 5px;
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
left: 75px;
|
||||
}
|
||||
|
||||
#currentTime {
|
||||
border:0 solid #000000;
|
||||
font-size:24px;
|
||||
@ -58,12 +40,82 @@ body{
|
||||
top:110px;
|
||||
right:40px;
|
||||
padding-left:30px;
|
||||
background: url(../img/glyphicons_054_clock_big.png) no-repeat scroll 0px 4px;
|
||||
background: url(../img/glyphicons_054_clock_big.png) no-repeat scroll 0px 0px;
|
||||
}
|
||||
|
||||
#currentTime.ajax_error {
|
||||
border-bottom: 4px solid red;
|
||||
/*** FOOTER ***/
|
||||
#footer {
|
||||
color: #999999;
|
||||
font-size: 16px;
|
||||
clear: both;
|
||||
margin-top: 50px;
|
||||
position: fixed;
|
||||
left: 0px;
|
||||
right: 0;
|
||||
bottom: 0px;
|
||||
height: 30px;
|
||||
padding-top: 10px;
|
||||
background-color: #333333;
|
||||
background-image: -moz-linear-gradient(top, #444444, #222222);
|
||||
background-image: -ms-linear-gradient(top, #444444, #222222);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
|
||||
background-image: -webkit-linear-gradient(top, #444444, #222222);
|
||||
background-image: -o-linear-gradient(top, #444444, #222222);
|
||||
background-image: linear-gradient(top, #444444, #222222);
|
||||
box-shadow: 0 0 7px rgba(0,0,0,0.6);
|
||||
border-top: 1px solid #999999;
|
||||
|
||||
}
|
||||
.event_name_description {
|
||||
left: 75px;
|
||||
float: left;
|
||||
position: absolute;
|
||||
width: 50%;
|
||||
}
|
||||
.event_date_location {
|
||||
text-align: right;
|
||||
right: 40px;
|
||||
position: absolute;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
/*** CONTENT ***/
|
||||
#content {
|
||||
position: absolute;
|
||||
left: 75px;
|
||||
top: 150px;
|
||||
right: 40px;
|
||||
z-index: -1;
|
||||
}
|
||||
h1 {
|
||||
font-size: 45px !important;
|
||||
margin-bottom: 40px !important;
|
||||
}
|
||||
#sidebar {
|
||||
width: 255px;
|
||||
float: right;
|
||||
margin: 0 0 20px 10px;
|
||||
}
|
||||
.well h4 {
|
||||
margin: 20px 0 2px 0;
|
||||
}
|
||||
.well h4 .first {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.well .results {
|
||||
line-height: 30px;
|
||||
}
|
||||
.well .results hr {
|
||||
margin: 5px 0 !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 10px 0 !important;
|
||||
}
|
||||
|
||||
|
||||
/*** OVERLAY ***/
|
||||
#overlay_transparent {
|
||||
background-color: #777777;
|
||||
opacity: 0.6;
|
||||
@ -74,71 +126,16 @@ body{
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/*** CONTENT ***/
|
||||
#contentwrapper {
|
||||
position:absolute;
|
||||
left:100px;
|
||||
top:150px;
|
||||
right:40px;
|
||||
z-index: -1;
|
||||
}
|
||||
#scrollcontentcontainer {
|
||||
position: relative;
|
||||
margin-top: -11px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.title
|
||||
{
|
||||
position: absolute;
|
||||
top: 58px;
|
||||
left: 100px;
|
||||
font-size: 30px;
|
||||
letter-spacing:4px;
|
||||
color: #FAFAFB;
|
||||
}
|
||||
#sidebar {
|
||||
width: 255px;
|
||||
float: right;
|
||||
margin: 0 0 20px 10px;
|
||||
}
|
||||
.box {
|
||||
border:1px solid #808080;
|
||||
padding: 0px 10px 10px 10px;
|
||||
}
|
||||
.box h4 {
|
||||
margin-bottom: 5px;
|
||||
margin-top: 10px;
|
||||
color: #333333;
|
||||
font-weight: normal;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.box .results {
|
||||
font-size: 120%;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
/*** Items *** /
|
||||
/* item title centered */
|
||||
.item_fullscreen
|
||||
/*** Agenda Items ***/
|
||||
.itemlist
|
||||
{
|
||||
position: relative;
|
||||
top: 110px;
|
||||
right:30px;
|
||||
font-size:230%;
|
||||
font-weight:bold;
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.item_fullscreen span
|
||||
{
|
||||
font-size: 50%; font-weight:normal;
|
||||
}
|
||||
|
||||
/* items in a list*/
|
||||
.itemlist li
|
||||
{
|
||||
font-size:130%;
|
||||
padding-bottom: 15px;
|
||||
padding-bottom: 20px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.itemlist .closed
|
||||
|
@ -5,15 +5,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{LANGUAGE_CODE}}">
|
||||
<head>
|
||||
<link type="text/css" rel="stylesheet" href="{% static 'styles/projector.css' %}">
|
||||
<link rel="shortcut icon" href="{% static 'img/favicon.png' %}" type="image/png" />
|
||||
<title>{{ 'event_name'|get_config }} – {% trans 'Projector' %}</title>
|
||||
<link href="{% static 'styles/projector.css' %}" type="text/css" rel="stylesheet">
|
||||
<link href="{% static 'styles/bootstrap.min.css' %}" type="text/css" rel="stylesheet">
|
||||
<link href="{% static 'img/favicon.png' %}" type="image/png" rel="shortcut icon">
|
||||
<title>{% trans 'Projector' %} – {{ 'event_name'|get_config }}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<div id="logo"><img src="{% static 'img/logo-projector.png' %}"></div>
|
||||
<div class="event_name">{% get_config 'event_name' %}</div>
|
||||
<div class="event_description">{% get_config 'event_description' %}</div>
|
||||
<a title="Startseite" id="logo" href="/"><img alt="Logo" src="/static/img/logo.png"></a>
|
||||
<div class="pull-right"></div>
|
||||
</div>
|
||||
|
||||
<div id="overlays">
|
||||
@ -23,6 +23,17 @@
|
||||
<div id="content" {% if reload %}class="reload"{% endif %}>
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="event_name_description">
|
||||
{{ 'event_name'|get_config }} | {{ 'event_description'|get_config }}
|
||||
</div>
|
||||
<div class="event_date_location">
|
||||
{% if 'event_date'|get_config %}
|
||||
{{ 'event_date'|get_config }}{% if 'event_location'|get_config %}, {{ 'event_location'|get_config }}{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="{% static 'javascript/jquery.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'javascript/projector.js' %}"></script>
|
||||
<script type="text/javascript">
|
||||
|
@ -1,4 +1,3 @@
|
||||
{% load tags %}
|
||||
|
||||
<div class="item_fullscreen">{% get_config 'welcome_title' %}</div>
|
||||
|
||||
<h1>{{ 'welcome_title'|get_config }}</h1>
|
||||
|
@ -2,15 +2,15 @@
|
||||
#overlay_countdown_inner {
|
||||
position: fixed;
|
||||
right: 40px;
|
||||
height: 37px;
|
||||
top: 0;
|
||||
padding: 20px 50px;
|
||||
font-size: 4em;
|
||||
font-weight: bold;
|
||||
border-bottom-left-radius: 0.5em;
|
||||
border-bottom-right-radius: 0.5em;
|
||||
background: #DDD9D9;
|
||||
padding: 0 1em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="overlay_countdown_inner">
|
||||
<div id="overlay_countdown_inner" class="well">
|
||||
</div>
|
||||
|
@ -1,11 +1,6 @@
|
||||
{% load i18n %}
|
||||
|
||||
{% if slide.text %}
|
||||
<h1>{{ slide.title }}</h1>
|
||||
{% else %}
|
||||
<div class="item_fullscreen">{{ slide.title }}</div>
|
||||
{% endif %}
|
||||
|
||||
<h1>{{ slide.title }}</h1>
|
||||
|
||||
{% if slide.text %}
|
||||
<span>{{ slide.text|safe|linebreaks }}</span>
|
||||
|
@ -121,7 +121,7 @@ class LockoutProtection(TestCase):
|
||||
response=response,
|
||||
form='form',
|
||||
field=None,
|
||||
errors='You can not remove the permission to manage participants from the last group your are in.')
|
||||
errors='You can not remove the permission to manage participants from the last group you are in.')
|
||||
|
||||
|
||||
class TestUserSettings(TestCase):
|
||||
|
Loading…
Reference in New Issue
Block a user