Merge remote-tracking branch 'emanuel/newtemplate' into new_template

Conflicts:
	.travis.yml
	INSTALL.txt
	openslides/agenda/templates/agenda/base_agenda.html
	openslides/agenda/templates/agenda/edit.html
	openslides/agenda/templates/agenda/item_row.html
	openslides/agenda/templates/agenda/overview.html
	openslides/agenda/templates/agenda/widget.html
	openslides/assignment/templates/assignment/base_assignment.html
	openslides/assignment/templates/assignment/config.html
	openslides/assignment/templates/assignment/edit.html
	openslides/assignment/templates/assignment/overview.html
	openslides/assignment/templates/assignment/poll_view.html
	openslides/assignment/templates/assignment/view.html
	openslides/assignment/templates/assignment/widget.html
	openslides/config/templates/config/general.html
	openslides/motion/templates/motion/base_motion.html
	openslides/motion/templates/motion/config.html
	openslides/motion/templates/motion/edit.html
	openslides/motion/templates/motion/import.html
	openslides/motion/templates/motion/overview.html
	openslides/motion/templates/motion/poll_view.html
	openslides/motion/templates/motion/view.html
	openslides/motion/templates/motion/widget.html
	openslides/motion/views.py
	openslides/participant/templates/participant/base_participant.html
	openslides/participant/templates/participant/config.html
	openslides/participant/templates/participant/edit.html
	openslides/participant/templates/participant/group_edit.html
	openslides/participant/templates/participant/group_widget.html
	openslides/participant/templates/participant/import.html
	openslides/participant/templates/participant/login.html
	openslides/participant/templates/participant/overview.html
	openslides/participant/templates/participant/password_change.html
	openslides/participant/templates/participant/settings.html
	openslides/participant/templates/participant/user_widget.html
	openslides/projector/templates/projector/base_projector.html
	openslides/projector/templates/projector/control_countdown.html
	openslides/projector/templates/projector/control_overlay_message.html
	openslides/projector/templates/projector/custom_slide_widget.html
	openslides/projector/templates/projector/live_view_widget.html
	openslides/projector/templates/projector/new.html
	openslides/projector/templates/projector/overlay_widget.html
	openslides/templates/base.html
	openslides/utils/template.py
	openslides/utils/views.py
	requirements.txt
This commit is contained in:
Oskar Hahn 2013-02-03 19:00:37 +01:00
commit 139ba74459
114 changed files with 2258 additions and 2723 deletions

View File

@ -3,7 +3,7 @@ python:
- "2.6" - "2.6"
- "2.7" - "2.7"
install: install:
- easy_install https://www.djangoproject.com/download/1.5c1/tarball/ - easy_install https://www.djangoproject.com/download/1.5b2/tarball/
- pip install -r requirements.txt --use-mirrors - pip install -r requirements.txt --use-mirrors
- python extras/scripts/create_local_settings.py - python extras/scripts/create_local_settings.py
script: script:

View File

@ -31,12 +31,8 @@ URL_SETS = {
"/jsi18n/", "/jsi18n/",
"/static/styles/base.css", "/static/styles/base.css",
"/static/javascript/utils.js", "/static/javascript/utils.js",
"/static/javascript/jquery.js", "/static/javascript/jquery.min.js",
"/static/images/bg-submenu.gif", "/static/img/logo.png",
"/static/images/bg-header.gif",
"/static/images/logo.png",
"/static/images/icons/dialog-information.png",
"/static/images/icons/cross.png",
], ],
"agenda": [ "agenda": [
"/agenda/", "/agenda/",
@ -44,25 +40,15 @@ URL_SETS = {
"/static/styles/tabledrag.css", "/static/styles/tabledrag.css",
"/static/javascript/utils.js", "/static/javascript/utils.js",
"/static/styles/agenda.css", "/static/styles/agenda.css",
"/static/javascript/jquery.js", "/static/javascript/jquery.min.js",
"/jsi18n/", "/jsi18n/",
"/static/images/bg-header.gif",
"/static/images/bg-submenu.gif",
"/static/images/logo.png",
"/static/images/icons/application-pdf.png",
"/static/images/icons/cross.png",
], ],
"application": [ "application": [
"/application/", "/application/",
"/static/styles/base.css", "/static/styles/base.css",
"/static/javascript/utils.js", "/static/javascript/utils.js",
"/static/javascript/jquery.js", "/static/javascript/jquery.min.js",
"/jsi18n/", "/jsi18n/",
"/static/images/bg-header.gif",
"/static/images/bg-submenu.gif",
"/static/images/icons/cross.png",
"/static/images/logo.png",
"/static/images/icons/application-pdf.png",
] ]
} }

View File

@ -20,7 +20,7 @@ function hideClosedSlides(hide) {
if (hide) { if (hide) {
$('#hidelink').attr('title', 'show'); $('#hidelink').attr('title', 'show');
$('#hidelink').removeClass('hide').addClass('show'); $('#hidelink').removeClass('hide').addClass('show');
$('.close_link.closed').parent().parent().each(function() { $('.close_link .icon-checked-new').parent().parent().parent().each(function() {
hideLine($(this)); hideLine($(this));
}); });
hidden = $('#menu-overview tr:hidden').size(); hidden = $('#menu-overview tr:hidden').size();
@ -35,21 +35,26 @@ function hideClosedSlides(hide) {
} }
$(function() { $(function() {
$('.close_link a').click(function(event) { // change participant status (on/off)
$('.close_link').click(function(event) {
event.preventDefault(); event.preventDefault();
slide = $(this); var link = $(this);
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: slide.attr('href'), url: $(this).attr('href'),
dataType: 'json', dataType: 'json',
success: function(data) { success: function(data) {
if (data.closed) { if (data.closed) {
newclass = 'closed'; newclass = 'icon-checked-new';
link.parent().parent().addClass('offline');
link.addClass('btn-success');
} else { } else {
newclass = 'open'; newclass = 'icon-unchecked-new';
link.parent().parent().removeClass('offline');
link.removeClass('btn-success');
} }
slide.parent().removeClass('closed open').addClass(newclass); link.children('i').removeClass('icon-checked-new icon-unchecked-new').addClass(newclass);
slide.attr('href', data.link); link.attr('href', data.link);
} }
}); });
}); });

View File

@ -19,6 +19,7 @@
background-image: url(../images/icons/close.png); background-image: url(../images/icons/close.png);
} }
table#menu-overview { tr.topline td {
white-space: nowrap; border-bottom: 1px solid #333333;
} background-color: #CDCDCD;
}

View File

@ -1,43 +0,0 @@
{% extends "base.html" %}
{% load tags %}
{% load i18n %}
{% load staticfiles %}
{% block submenu %}
{% url 'item_overview' as url_itemoverview %}
{% url 'item_new' as url_itemnew %}
<h4 class="sectiontitle">{% trans "Agenda" %}</h4>
<ul>
<li class="{% if request.path == url_itemoverview %}selected{% endif %}"><a href="{% url 'item_overview' %}">{% trans "All items" %}</a></li>
{% if perms.agenda.can_manage_agenda %}
<li class="{% active request '/agenda/new/' %}"><a href="{% url 'item_new' %}">{% trans "New item" %}</a></li>
{% endif %}
<li><a href="{% url 'print_agenda' %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'Agenda as PDF' %}</a></li>
</ul>
{# second submenu #}
{% if item %}
<br>
<h3>{{ item.title }}</h3>
<ul>
{# view item #}
{% url 'item_view' item.id as url_itemview %}
<li class="{% if request.path == url_itemview %}selected{% endif %}"><a href="{% url 'item_view' item.id %}">{% trans 'View item' %}</a></li>
{% if perms.agenda.can_manage_agenda %}
{# edit item #}
{% url 'item_edit' item.id as url_itemedit %}
<li class="{% if request.path == url_itemedit %}selected{% endif %}"><a href="{% url 'item_edit' item.id %}"><img src="{% static 'images/icons/edit.png' %}"> {% trans 'Edit item' %}</a></li>
{# delete item #}
<li><a href="{% url 'item_delete' item.id %}"><img src="{% static 'images/icons/delete.png' %}"> {% trans 'Delete item' %}</a></li>
{% endif %}
{# activate item #}
{% if perms.projector.can_manage_projector %}
<li><a href="{% url 'projector_activate_slide' item.sid %}"><img src="{% static 'images/icons/projector.png' %}"> {% trans 'Show item' %}</a></li>
{% endif %}
</ul>
{% endif %}
{% endblock %}

View File

@ -5,7 +5,9 @@
{% block title %}{{ block.super }} {% trans "Agenda settings" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Agenda settings" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Agenda settings" %}</h1> <h1>{% trans "Configuration" %}: {% trans "Agenda" %}
{% block config_submenu %}{{ block.super }}{% endblock %}
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<p> <p>

View File

@ -1,4 +1,4 @@
{% extends "agenda/base_agenda.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
@ -12,24 +12,22 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if item %} <h1>
<h1>{% trans "Edit item" %}</h1> {% if item %}
{% else %} {% trans "Edit item" %}
<h1>{% trans "New item" %}</h1> {% else %}
{% endif %} {% trans "New item" %}
{% endif %}
<small class="pull-right">
<a href="{% url 'item_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
</small>
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_saveapply.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href='{% url 'item_overview' %}' class="btn">
</button> {% trans 'Cancel' %}
<button class="button" type="submit" name="apply">
<span class="icon apply">{% trans 'Apply' %}</span>
</button>
<a href="{% url 'item_overview' %}">
<button class="button" type="button" onclick="window.location='{% url 'item_overview' %}'">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a> </a>
</p> </p>
<small>* {% trans "required" %}</small> <small>* {% trans "required" %}</small>

View File

@ -3,15 +3,14 @@
{% load tags %} {% load tags %}
<td> <td>
<span class="close_link{% if item.closed %} closed{% endif %}"> {% if perms.agenda.can_manage_agenda %}
{% if perms.agenda.can_manage_agenda %} <a href="{% if item.closed %}{% url 'item_open' item.id %}{% else %}{% url 'item_close' item.id %}{% endif %}"
<a href="{% if item.closed %}{% url 'item_open' item.id %}{% else %}{% url 'item_close' item.id %}{% endif %}" title="{% trans 'Mark item as done' %}"> class="close_link btn btn-mini {% if item.closed %}btn-success{% endif %}" title="{% trans 'Change status (open/closed)' %}">
<span></span> <i class="{% if item.closed %}icon-checked-new{% else %}icon-unchecked-new{% endif %}"></i>
</a> </a>
{% elif item.closed %} {% else %}
<img src="{% static 'images/icons/close.png' %}" title="{% trans 'Item closed' %}"> <i class="icon-"></i>
{% endif %} {% endif %}
</span>
</td> </td>
<td> <td>
{% for p in item.get_ancestors %} {% for p in item.get_ancestors %}
@ -24,7 +23,7 @@
{{ item.get_title_supplement|safe }} {{ item.get_title_supplement|safe }}
</td> </td>
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<td> <td class="optional">
{{ item.comment|first_line }} {{ item.comment|first_line }}
</td> </td>
{% endif %} {% endif %}
@ -32,16 +31,20 @@
<td> <td>
<span style="width: 1px; white-space: nowrap;"> <span style="width: 1px; white-space: nowrap;">
{% if perms.projector.can_manage_projector %} {% if perms.projector.can_manage_projector %}
<a class="activate_link {% if item.active %}active{% endif %}" href="{% url 'projector_activate_slide' item.sid %}" title="{% trans 'Activate item' %}"> <a href="{% url 'projector_activate_slide' item.sid %}" class="activate_link btn {% if item.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<span></span> <i class="icon-facetime-video {% if item.active %}icon-white{% endif %}"></i>
</a> </a>
{% endif %} {% endif %}
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<a href="{% model_url item 'edit' %}"><img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit item' %}"></a> <a href="{% model_url item 'edit' %}" title="{% trans 'Edit' %}" class="btn btn-mini">
<a href="{% model_url item 'delete' %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete item' %}"></a> <i class="icon-pencil"></i>
</a>
<a href="{% model_url item 'delete' %}" title="{% trans 'Delete' %}" class="btn btn-mini">
<i class="icon-remove"></i>
</a>
{% if not item.is_leaf_node %} {% if not item.is_leaf_node %}
<a class="activate_link" href="{% url 'projector_activate_slide' item.sid 'summary' %}"> <a href="{% url 'projector_activate_slide' item.sid 'summary' %}" class="activate_link btn btn-mini" title="{% trans 'Activate summary for this item' %}">
<img src="{% static 'images/icons/summary.png' %}" title="{% trans 'Activate summary for this item' %}"> <i class="icon-summary"></i>
</a> </a>
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -49,7 +52,7 @@
</td> </td>
{% endif %} {% endif %}
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<td class="tabledrag-hide"> <td class="tabledrag-hide" style="display: none;">
{% with form=item.weight_form %} {% with form=item.weight_form %}
{{ form.weight }} {{ form.weight }}
{{ form.self }} {{ form.self }}

View File

@ -1,4 +1,4 @@
{% extends "agenda/base_agenda.html" %} {% extends "base.html" %}
{% load tags %} {% load tags %}
{% load i18n %} {% load i18n %}
@ -10,6 +10,9 @@
{% block header %} {% block header %}
<link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/tabledrag.css' %}" /> <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/tabledrag.css' %}" />
<link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/agenda.css' %}" /> <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/agenda.css' %}" />
{% endblock %}
{% block javascript %}
<script type="text/javascript" src="{% static 'javascript/agenda.js' %}"></script> <script type="text/javascript" src="{% static 'javascript/agenda.js' %}"></script>
<script type="text/javascript" src="{% static 'javascript/jquery.cookie.js' %}"></script> <script type="text/javascript" src="{% static 'javascript/jquery.cookie.js' %}"></script>
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
@ -37,63 +40,72 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<div id="changed-order-message" style="display:none" class="notification warning"> <div id="changed-order-message" style="display:none" class="alert alert-warning">
<em>{% trans "Do you want to save the changed order of agenda items?" %}<br> <button type="button" class="close" data-dismiss="alert">×</button>
<input type="submit" value="{% trans 'Yes' %}"> <p>{% trans "Do you want to save the changed order of agenda items?" %}</p>
<input type="button" onclick="window.location.href='{% url 'item_overview' %}';" value="{% trans 'No' %}"> <p>
</em> <button class="btn" type="submit">{% trans 'Yes' %}</button>
<a href="{% url 'item_overview' %}" class="btn">{% trans 'No' %}</a>
</p>
</div> </div>
{% endif %} {% endif %}
<h1>{% trans "Agenda" %}</h1> <h1>{% trans "Agenda" %}
<small class="pull-right">
{% if perms.agenda.can_manage_agenda %}
<a href="{% url 'item_new' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'New item' %}"><i class="icon-plus"></i> {% trans "New" %}</a>
{% endif %}
<a href="{% url 'print_agenda' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Print agenda as PDF' %}"><i class="icon-print"></i> PDF</a>
</small>
</h1>
<p> <label class="checkbox">
{% trans "Filter" %}: <input type="checkbox" id="hide_closed_items"> {% trans "Hide closed items" %}
<input type="checkbox" id="hide_closed_items"> {% trans "Hide closed items" %} </label>
</p>
{{ items|length }} <small><i>{{ items|length }}
{% blocktrans count counter=items|length %}item{% plural %}items{% endblocktrans %}<span id="hiddencount"></span> {% blocktrans count counter=items|length %}item{% plural %}items{% endblocktrans %}<span id="hiddencount"></span>
<table id="menu-overview" class="agendatable"> </i></small>
<table id="menu-overview" class="table table-striped table-bordered">
<tr> <tr>
<th width="50">{% trans "Done" %}</th> <th width="10px"></th>
<th>{% trans "Item" %}</th> <th>{% trans "Item" %}</th>
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<th width="200">{% trans "Comment" %}</th> <th width="200" class="optional">{% trans "Comment" %}</th>
{% endif %} {% endif %}
{% if perms.agenda.can_manage_agenda or perms.projector.can_manage_projector %} {% if perms.agenda.can_manage_agenda or perms.projector.can_manage_projector %}
<th width="50">{% trans "Actions" %}</th> <th width="50">{% trans "Actions" %}</th>
{% endif %} {% endif %}
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<th class="tabledrag-hide">{% trans "Weight" %}</th> <th class="tabledrag-hide" style="display: none;">{% trans "Weight" %}</th>
{% endif %} {% endif %}
</tr> </tr>
<tr class="topline{% if active_sid == 'agenda' %} activeline{% endif %}"> <tr class="topline{% if active_sid == 'agenda' %} activeline{% endif %}">
<td></td> <td></td>
<td> <td>
<strong>{% trans "Agenda" %}</strong> {% trans "Agenda" %}
</td> </td>
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<td></td> <td class="optional"></td>
{% endif %} {% endif %}
{% if perms.agenda.can_manage_agenda or perms.projector.can_manage_projector %} {% if perms.agenda.can_manage_agenda or perms.projector.can_manage_projector %}
<td> <td>
{% if perms.projector.can_manage_projector %} {% if perms.projector.can_manage_projector %}
<span> <span>
<a class="activate_link{% if active_sid == 'agenda' %} active{% endif %}" href="{% url 'projector_activate_slide' 'agenda' %}" title="{% trans 'Activate item' %}"> <a href="{% url 'projector_activate_slide' 'agenda' %}" class="activate_link btn {% if active_sid == 'agenda' %}btn-primary{% endif %} btn-mini" title="{% trans 'Activate agenda' %}">
<span></span> <i class="icon-facetime-video {% if active_sid == 'agenda' %}icon-white{% endif %}"></i>
</a> </a>
</span> <span>
{% endif %} {% endif %}
</td> </td>
{% endif %} {% endif %}
</tr> </tr>
{% if items %} {% if items %}
{% for item in items %} {% for item in items %}
<tr class="itemline draggable{% cycle ' odd' '' %}{% if item.active %} activeline{% endif %}"> <tr class="draggable{% if item.active %} activeline{% endif %}{% if item.closed %} offline{% endif %}">
{% include "agenda/item_row.html" %} {% include "agenda/item_row.html" %}
</tr> </tr>
{% endfor %} {% endfor %}

View File

@ -1,11 +1,35 @@
{% extends "agenda/base_agenda.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% block title %}{{ block.super }} {{ item.title }}{% endblock %} {% block title %}{{ block.super }} {{ item.title }}{% endblock %}
{% block content %} {% block content %}
<h1>{{ item }}</h1> <h1>
{{ item }}
<small class="pull-right">
<div class="btn-toolbar">
<a href="{% url 'item_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
<div class="btn-group">
<a data-toggle="dropdown" href="#" class="btn btn-mini dropdown-toggle">
{% trans 'More actions' %}
<span class="caret"></span>
</a>
{% if perms.agenda.can_manage_agenda %}
<ul class="dropdown-menu pull-right">
<li><a href="{% url 'item_edit' item.id %}"><i class="icon-edit"></i> {% trans 'Edit item' %}</a></li>
<li><a href="{% url 'item_delete' item.id %}"><i class="icon-remove"></i> {% trans 'Delete item' %}</a></li>
</ul>
{% endif %}
</div>
{% if perms.projector.can_manage_projector %}
<a href="{% url 'projector_activate_slide' item.sid %}" class="activate_link btn btn-mini {% if item.active %}btn-primary{% endif %}" rel="tooltip" data-original-title="{% trans 'Show item' %}">
<i class="icon icon-facetime-video {% if item.active %}icon-white{% endif %}"></i>
</a>
{% endif %}
</div>
</small>
</h1>
<p>{{ item.text|safe|linebreaks }}</p> <p>{{ item.text|safe|linebreaks }}</p>
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}

View File

@ -4,9 +4,9 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
<li class="{% if agenda.active %}activeline{% endif %}"> <li class="{% if agenda.active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' agenda.key %}" class="activate_link {% if agenda.active %}active{% endif %}"> <a href="{% url 'projector_activate_slide' agenda.key %}" class="activate_link btn {% if agenda.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show agenda' %}">
<div></div> <i class="icon-facetime-video {% if agenda.active %}icon-white{% endif %}"></i>
</a> </a>&nbsp;
<a href="{% url 'projctor_preview_slide' agenda.key %}" title="{% trans 'Preview' %}" class="icon preview right"> <a href="{% url 'projctor_preview_slide' agenda.key %}" title="{% trans 'Preview' %}" class="icon preview right">
<span></span> <span></span>
</a> </a>
@ -17,27 +17,22 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for item in items %} {% for item in items %}
<li class="{% if item.active %}activeline{% endif %}"> <li class="{% if item.active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' item.sid %}" class="activate_link {% if item.active %}active{% endif %}"> <a href="{% url 'projector_activate_slide' item.sid %}" class="activate_link btn {% if item.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<div></div> <i class="icon-facetime-video {% if item.active %}icon-white{% endif %}"></i>
</a>&nbsp;
<a href="{% model_url item 'edit' %}" title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i>
</a> </a>
<a href="{% model_url item 'delete' %}" title="{% trans 'Delete' %}" class="icon delete right"> <a href="{% url 'projctor_preview_slide' item.sid %}" title="{% trans 'Preview' %}" class="btn btn-mini right">
<span></span> <i class="icon-search"></i>
</a>
<a href="{% model_url item 'edit' %}" title="{% trans 'Edit' %}" class="icon edit right">
<span></span>
</a>
<a href="{% url 'projctor_preview_slide' item.sid %}" title="{% trans 'Preview' %}" class="icon preview right">
<span></span>
</a> </a>
{% if not item.is_leaf_node %} {% if not item.is_leaf_node %}
<a class="activate_link right" href="{% url 'projector_activate_slide' item.sid 'summary' %}"> <a class="activate_link btn btn-mini {% if item.active %}btn-primary{% endif %} right" href="{% url 'projector_activate_slide' item.sid 'summary' %}" title="{% trans 'Activate summary for this item' %}">
<img src="{% static 'images/icons/summary.png' %}" <i class="icon-summary {% if item.active %}icon-white{% endif %}"></i>
title="{% trans 'Activate summary for this item' %}"
style="padding-right: 2px;">
</a> </a>
{% endif %} {% endif %}
{% for p in item.get_ancestors %} {% for p in item.get_ancestors %}
<span class="indentation">&nbsp;</span> <span class="indentation"></span>
{% endfor %} {% endfor %}
<a href="{% model_url item 'view' %}">{{ item }}</a> <a href="{% model_url item 'view' %}">{{ item }}</a>
{{ item.get_title_supplement|safe }} {{ item.get_title_supplement|safe }}

View File

@ -210,6 +210,7 @@ def register_tab(request):
selected = request.path.startswith('/agenda/') selected = request.path.startswith('/agenda/')
return Tab( return Tab(
title=_('Agenda'), title=_('Agenda'),
app='agenda',
url=reverse('item_overview'), url=reverse('item_overview'),
permission=(request.user.has_perm('agenda.can_see_agenda') or permission=(request.user.has_perm('agenda.can_see_agenda') or
request.user.has_perm('agenda.can_manage_agenda')), request.user.has_perm('agenda.can_manage_agenda')),

View File

@ -1,76 +0,0 @@
{% extends "base.html" %}
{% load tags %}
{% load i18n %}
{% load staticfiles %}
{% block header %}
<link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/assignment.css' %}" />
<script type="text/javascript" src="{% static 'javascript/assignment.js' %}"></script>
{% endblock %}
{% block submenu %}
{% url 'assignment_overview' as url_assignment_overview %}
<h4 class="sectiontitle">{% trans "Elections" %}</h4>
<ul>
<li class="{% if request.path == url_assignment_overview %}selected{% endif %}"><a href="{% url 'assignment_overview' %}">{% trans "All elections" %}</a></li>
{% if perms.assignment.can_manage_assignment %}
<li class="{% active request '/assignment/new' %}"><a href="{% url 'assignment_new' %}">{% trans "New election" %}</a></li>
{% endif %}
<li><a href="{% url 'print_assignment' %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'All elections as PDF' %}</a></li>
</ul>
{# second submenu #}
{% if assignment %}
<br>
<h3>{{assignment}}</h3>
<ul>
{# view assignemnt #}
{% url 'assignment_view' assignment.id as url_assignmentview %}
<li class="{% if request.path == url_assignmentview %}selected{% endif %}">
<a href="{% url 'assignment_view' assignment.id %}">{% trans 'View election' %}</a>
</li>
{% if perms.assignment.can_manage_assignment %}
{# edit assignemnt #}
{% url 'assignment_edit' assignment.id as url_assignmentedit %}
<li class="{% if request.path == url_assignmentedit %}selected{% endif %}">
<a href="{% url 'assignment_edit' assignment.id %}"><img src="{% static 'images/icons/edit.png' %}"> {% trans 'Edit election' %}</a>
</li>
{# delete assignment #}
<li>
<a href="{% url 'assignment_delete' assignment.id %}"><img src="{% static 'images/icons/delete.png' %}"> {% trans 'Delete election' %}</a>
</li>
{% endif %}
{# PDF #}
<li>
<a href="{% url 'print_assignment' assignment.id %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'Election as PDF' %}</a>
</li>
{# activate #}
{% if perms.projector.can_manage_projector %}
<li>
<a class="activate_link {% if item.active %}active{% endif %}" href="{% url 'projector_activate_slide' assignment.sid %}"><img src="{% static 'images/icons/projector.png' %}"> {% trans 'Show election' %}</a>
</li>
{% endif %}
{# agenda #}
{% if perms.agenda.can_manage_agenda %}
<li>
<a href="{% url 'assignment_create_agenda' assignment.id %}">{% trans 'New agenda item' %}</a>
</li>
{% endif %}
{# polls #}
{% if perms.assignment.can_manage_assignment %}
{% for poll in polls %}
{% url 'assignment_poll_view' poll.id as url_assignmentpollview %}
<li class="{% if request.path == url_assignmentpollview %}selected{% endif %}"><a href="{% url 'assignment_poll_view' poll.id %}"><img src="{% static 'images/icons/edit.png' %}"> {{ forloop.counter }}. {% trans "ballot" %}</a></li>
{% endfor %}
{% endif %}
</ul>
{% endif %}
{% endblock %}

View File

@ -5,18 +5,19 @@
{% block title %}{{ block.super }} {% trans "Election settings" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Election settings" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Election settings" %}</h1> <h1>
{% trans "Configuration" %}
<small>{% trans "Elections" %}</small>
{% block config_submenu %}{{ block.super }}{% endblock %}
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_save.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href="{% url 'config_assignment' %}" class="btn">
</button> {% trans 'Cancel' %}
<a href="{% url 'config_assignment' %}"> </a>
<button class="button" type="button" onclick="window.location='{% url 'config_assignment' %}'"> </p>
<span class="icon cancel">{% trans 'Cancel' %}</span> <small>* {% trans "required" %}</small>
</button>
</a>
</p>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -1,4 +1,4 @@
{% extends "assignment/base_assignment.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
@ -11,27 +11,24 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if assignment %} <h1>
<h1>{% trans "Edit election" %}</h1> {% if assignment %}
{% else %} {% trans "Edit election" %}
<h1>{% trans "New election" %}</h1> {% else %}
{% endif %} {% trans "New election" %}
{% endif %}
<small class="pull-right">
<a href="{% url 'assignment_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
</small>
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_saveapply.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href='{% url 'assignment_overview' %}' class="btn">
</button> {% trans 'Cancel' %}
<button class="button" type="submit" name="apply">
<span class="icon apply">{% trans 'Apply' %}</span>
</button>
<a href="{% url 'assignment_overview' %}">
<button class="button" type="button" onclick="window.location='{% url 'assignment_overview' %}'">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a> </a>
</p> </p>
<small>* {% trans "required" %}</small> <small>* {% trans "required" %}</small>

View File

@ -1,30 +1,41 @@
{% extends "assignment/base_assignment.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
{% block title %}{{ block.super }} {% trans "Elections" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Elections" %}{% endblock %}
{% block content %}
<h1>{% trans "Elections" %}</h1>
<p><form action="{{request.url}}" name="filter" method="get"> {% block content %}
<h1>{% trans "Elections" %}
<small class="pull-right">
{% if perms.assignment.can_manage_assignment %}
<a href="{% url 'assignment_new' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'New election' %}"><i class="icon-plus"></i> {% trans "New" %}</a>
{% endif %}
{% if perms.assignment.can_see_assignment %}
<a href="{% url 'print_assignment' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Print all elections as PDF' %}"><i class="icon-print"></i> PDF</a>
{% endif %}
</small>
</h1>
<form action="{{request.url}}" name="filter" method="get">
{% trans "Filter" %}: {% trans "Filter" %}:
<select class="default-input" name="status" onchange="document.forms['filter'].submit()"> <select class="span3" name="status" onchange="document.forms['filter'].submit()">
<option value="---">-- {% trans "Status" %}--</option> <option value="---">-- {% trans "Status" %}--</option>
<option value="sea" {% if 'sea' in request.GET.status %}selected{% endif %}>{% trans "Searching for candidates" %}</option> <option value="sea" {% if 'sea' in request.GET.status %}selected{% endif %}>{% trans "Searching for candidates" %}</option>
<option value="vot" {% if 'vot' in request.GET.status %}selected{% endif %}>{% trans "Voting" %}</option> <option value="vot" {% if 'vot' in request.GET.status %}selected{% endif %}>{% trans "Voting" %}</option>
<option value="fin" {% if 'fin' in request.GET.status %}selected{% endif %}>{% trans "Finished" %}</option> <option value="fin" {% if 'fin' in request.GET.status %}selected{% endif %}>{% trans "Finished" %}</option>
</select> </select>
</form> </form>
</p>
{{ assignments|length }} <small><i>{{ assignments|length }}
{% blocktrans count counter=assignments|length %}election{% plural %}elections{% endblocktrans %} {% blocktrans count counter=assignments|length %}election{% plural %}elections{% endblocktrans %}
<table> </i></small>
<table class="table table-striped table-bordered">
<tr> <tr>
<th><a href="?sort=name{% if 'name' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Election" %}</a></th> <th><a href="?sort=name{% if 'name' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Election" %}</a></th>
<th>{% trans "Candidates" %}</th> <th>{% trans "Candidates" %}</th>
<th><a href="?sort=status{% if 'status' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Status" %}</a></th> <th class="optional"><a href="?sort=status{% if 'status' in request.GET.sort and 'reverse' not in request.GET %}&reverse{%endif%}">{% trans "Status" %}</a></th>
<th style="width: 1px;">{% trans "Actions" %}</th> <th style="width: 1px;">{% trans "Actions" %}</th>
</tr> </tr>
{% for assignment in assignments %} {% for assignment in assignments %}
@ -38,19 +49,25 @@
{% endif %} {% endif %}
| {% blocktrans with elected=assignment.elected|length %}elected: {{ elected }}{% endblocktrans %} | {% blocktrans with elected=assignment.elected|length %}elected: {{ elected }}{% endblocktrans %}
</td> </td>
<td>{{ assignment.get_status_display }}</td> <td class="optional">{{ assignment.get_status_display }}</td>
<td> <td>
<span style="width: 1px; white-space: nowrap;"> <span style="width: 1px; white-space: nowrap;">
{% if perms.projector.can_manage_projector %} {% if perms.projector.can_manage_projector %}
<a class="activate_link {% if assignment.active %}active{% endif %}" href="{% url 'projector_activate_slide' assignment.sid %}" title="{% trans 'Activate election' %}"> <a href="{% url 'projector_activate_slide' assignment.sid %}" class="activate_link btn {% if assignment.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<span></span> <i class="icon-facetime-video {% if assignment.active %}icon-white{% endif %}"></i>
</a> </a>
{% endif %} {% endif %}
{% if perms.assignment.can_manage_assignment %} {% if perms.assignment.can_manage_assignment %}
<a href="{% url 'assignment_edit' assignment.id %}"><img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit election' %}"></a> <a href="{% url 'assignment_edit' assignment.id %}" title="{% trans 'Edit' %}" class="btn btn-mini">
<a href="{% url 'assignment_delete' assignment.id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete election' %}"></a> <i class="icon-pencil"></i>
</a>
<a href="{% url 'assignment_delete' assignment.id %}" title="{% trans 'Delete' %}" class="btn btn-mini">
<i class="icon-remove"></i>
</a>
{% endif %} {% endif %}
<a href="{% url 'print_assignment' assignment.id %}" title="{% trans 'Election as PDF' %}"><img src="{% static 'images/icons/pdf.png' %}"></a> <a href="{% url 'print_assignment' assignment.id %}" class="btn btn-mini" title="{% trans 'Print election as PDF' %}">
<i class="icon-print"></i>
</a>
</span> </span>
</td> </td>
</tr> </tr>

View File

@ -1,19 +1,34 @@
{% extends 'assignment/base_assignment.html' %} {% extends 'base.html' %}
{% load i18n %} {% load i18n %}
{% block title %}{{ block.super }} {% trans "Election" %} "{{ assignment }}" {{ ballotnumber }}. {% trans "ballot" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Election" %} "{{ assignment }}" {{ ballotnumber }}. {% trans "ballot" %}{% endblock %}
{% block content %} {% block content %}
<h1>{{ assignment }} {{ ballotnumber }}. {% trans "ballot" %}</h1> <h1>
{% if assignment.polldescription %} {{ assignment }}
<p><b>{% trans "Short description (for ballot paper)" %}:</b> {{ assignment.polldescription }}</p> <small>
{{ ballotnumber }}. {% trans "ballot" %}
</small>
<small class="pull-right">
<a href="{% url 'assignment_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</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 motion' %}">
<i class="icon-facetime-video {% if assignment.active %}icon-white{% endif %}"></i>
</a>
{% endif %} {% endif %}
<i class="helptext">{% trans "Special values" %}: -1 = {% trans 'majority' %}; -2 = {% trans 'undocumented' %}</i> </small>
</h1>
<form action="" method="post" class="small-form">{% csrf_token %} {% if assignment.polldescription %}
<p><b>{% trans "Short description (for ballot paper)" %}:</b> {{ assignment.polldescription }}</p>
{% endif %}
<table style="width:auto"> <i class="helptext">{% trans "Special values" %}: -1 = {% trans 'majority' %}; -2 = {% trans 'undocumented' %}</i>
<form action="" method="post" class="small-form">{% csrf_token %}
<table class="table table-striped table-bordered" style="width: auto;">
<tr> <tr>
<th>{% trans "Candidates" %}</th> <th>{% trans "Candidates" %}</th>
{% for value in poll.get_vote_values %} {% for value in poll.get_vote_values %}
@ -31,7 +46,7 @@
{% endfor %} {% endfor %}
</tr> </tr>
{% endfor %} {% endfor %}
<tr class="total"> <tr>
<td>{% trans "Invalid votes" %}</td> <td>{% trans "Invalid votes" %}</td>
{% for value in poll.get_vote_values %} {% for value in poll.get_vote_values %}
{% if forloop.first %} {% if forloop.first %}
@ -41,7 +56,7 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</tr> </tr>
<tr class="total"> <tr class="total warning">
<td>{% trans "Votes cast" %}</td> <td>{% trans "Votes cast" %}</td>
{% for value in poll.get_vote_values %} {% for value in poll.get_vote_values %}
{% if forloop.first %} {% if forloop.first %}
@ -54,26 +69,21 @@
</table> </table>
<p> <p>
<a href="{% url 'print_assignment_poll' poll.id %}"> <a href="{% url 'print_assignment_poll' poll.id %}" class="btn">
<button class="button" type="button" onclick="window.location='{% url 'print_assignment_poll' poll.id %}'"> <i class="icon-print"></i> {% trans 'Ballot paper as PDF' %}
<span class="icon pdf">{% trans 'Ballot paper as PDF' %}</span>
</button>
</a> </a>
</p> </p>
<!-- Control buttons -->
<p> <div class="control-group">
<button class="button" type="submit"> <button type="submit" class="btn btn-primary">
<span class="icon ok">{% trans 'Save' %}</span> {% trans 'Save' %}
</button> </button>
<button class="button" type="submit" name="apply"> <button type="submit" name="apply" class="btn">
<span class="icon apply">{% trans 'Apply' %}</span> {% trans 'Apply' %}
</button> </button>
<a href="{% url 'assignment_view' poll.assignment.id %}"> <a href="{% url 'assignment_view' poll.assignment.id %}" class="btn">
<button class="button" type="button" onclick="window.location='{% url 'assignment_view' poll.assignment.id %}'"> {% trans 'Cancel' %}
<span class="icon cancel">{% trans 'Cancel' %}</span> </a>
</button> </div>
</a> </form>
</p>
</form>
{% endblock %} {% endblock %}

View File

@ -1,47 +1,52 @@
{% extends "assignment/base_assignment.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
{% block title %}{{ block.super }} {% trans "Election" %} "{{ assignment }}"{% endblock %} {% block title %}{{ block.super }} {% trans "Election" %} "{{ assignment }}"{% endblock %}
{% block header %}
<link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/assignment.css' %}" />
{% endblock %}
{% block javascript %}
<script type="text/javascript" src="{% static 'javascript/assignment.js' %}"></script>
{% endblock %}
{% block content %} {% block content %}
<div id="sidebar"> <h1>
<div class="box"> {{ assignment }}
<h4>{% trans "Status" %}:</h4> <small class="pull-right">
{% trans assignment.get_status_display %} <a href="{% url 'assignment_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
<h4>{% trans "Number of available posts" %}:</h4> <!-- activate projector -->
{{ assignment.posts }} {% if perms.projector.can_manage_projector %}
</div> <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 motion' %}">
<i class="icon-facetime-video {% if assignment.active %}icon-white{% endif %}"></i>
<br><br> </a>
{% if perms.assignment.can_manage_assignment %}
<div class="box">
<h4>{% trans "Change status" %}:</h4>
<input type="radio" name="status" onclick="window.location.href='{% url 'assignment_set_status' assignment.id 'sea' %}';"
{% if 'sea' in assignment.status %}checked{% endif %}>{% trans 'Searching for candidates' %}<br>
<input type="radio" name="status" onclick="window.location.href='{% url 'assignment_set_status' assignment.id 'vot' %}';"
{% if 'vot' in assignment.status %}checked{% endif %}>{% trans 'Voting' %}<br>
<input type="radio" name="status" onclick="window.location.href='{% url 'assignment_set_status' assignment.id 'fin' %}';"
{% if 'fin' in assignment.status %}checked{% endif %}>{% trans 'Finished' %}
</div>
{% endif %} {% endif %}
</div> </small>
</h1>
<div style="margin-right: 250px; min-width: 400px;">
<h1>{{ assignment }}</h1>
<p>{{ assignment.description|linebreaks }}</p>
<div class="row-fluid">
<div class="span9">
<!-- Description -->
<h4>{% trans "Description" %}</h4>
{% if assignment.description %}
{{ assignment.description|linebreaks }}
{% else %}
{% endif %}
<br>
<!-- Candidates -->
{% if assignment.status != "fin" %} {% if assignment.status != "fin" %}
<h3>{% trans "Candidates" %}</h3> <h4>{% trans "Candidates" %}</h4>
<ol> <ol>
{% for person in assignment.get_participants %} {% for person in assignment.get_participants %}
<li> <li>
{{ person }} {{ person }}
{% if perms.assignment.can_manage_assignment %} {% if perms.assignment.can_manage_assignment %}
{% if assignment.status == "sea" or assignment.status == "vot" %} {% if assignment.status == "sea" or assignment.status == "vot" %}
<a href="{% url 'assignment_delother' assignment.id person.person_id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Remove candidate' %}"></a> <a href="{% url 'assignment_delother' assignment.id person.person_id %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Remove candidate' %}"><i class="icon-remove"></i></a>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if person in assignment.elected %} {% if person in assignment.elected %}
@ -54,43 +59,37 @@
{% endif %} {% endif %}
</li> </li>
{% empty %} {% empty %}
<li style="list-style: none outside none;"><i>{% trans "No candidates available." %}</i></li> <li style="list-style: none outside none; margin-left: -25px;"><i>{% trans "No candidates available." %}</i></li>
{% endfor %} {% endfor %}
</ol> </ol>
{% if assignment.status == "sea" or perms.assignment.can_manage_assignment and assignment.status == "vot" %} {% if assignment.status == "sea" or perms.assignment.can_manage_assignment and assignment.status == "vot" %}
{% if perms.assignment.can_nominate_self or perms.assignment.can_nominate_other %} {% if perms.assignment.can_nominate_self or perms.assignment.can_nominate_other %}
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{% if perms.assignment.can_nominate_self %} {% if perms.assignment.can_nominate_self %}
<p> <p>
{% if user_is_candidate %} {% if user_is_candidate %}
<a href="{% url 'assignment_delrun' assignment.id %}"> <a href='{% url 'assignment_delrun' assignment.id %}' class="btn btn-mini">
<span class="button"> <i class="icon-remove"></i> {% trans 'Withdraw self candidature' %}
<span class="icon removeuser">{% trans 'Withdraw self candidature' %}</span>
</span>
</a> </a>
{% else %} {% else %}
<a href="{% url 'assignment_run' assignment.id %}"> <a href='{% url 'assignment_run' assignment.id %}' class="btn btn-mini">
<span class="button"> <i class="icon-plus"></i> {% trans 'Self candidature' %}
<span class="icon adduser">{% trans 'Self candidature' %}</span>
</span>
</a> </a>
{% endif %} {% endif %}
</p> </p>
{% endif %} {% endif %}
{% if perms.assignment.can_nominate_other %} {% if perms.assignment.can_nominate_other %}
{% for field in form %} {% for field in form %}
<label>{{ field.label }}:</label> <label>{{ field.label }}:</label>
<nobr>{{ field }} <div class="input-append">
{% if perms.participant.can_see_participant and perms.participant.can_manage_participant %} {{ field }}
<a href="{% url 'user_new' %}" target="_blank"><img src="{% static 'images/icons/add-user.png' %}" title="{% trans 'Add new participant' %}"></a> <button class="btn btn-primary" type="submit">{% trans 'Apply' %}</button>
{% endif %} {% if perms.participant.can_see_participant and perms.participant.can_manage_participant %}
</nobr> <a href="{% url 'user_new' %}" target="_blank" class="btn"><img src="{% static 'images/icons/add-user.png' %}" title="{% trans 'Add new participant' %}"></a>
{% endif %}
</div>
{% endfor %} {% endfor %}
<p> <p>
<button class="button" type="submit">
<span class="icon ok">{% trans 'Apply' %}</span>
</button>
</p> </p>
{% endif %} {% endif %}
</form> </form>
@ -111,120 +110,156 @@
</ul> </ul>
{% endif %} {% endif %}
<!-- Results -->
{% if assignment.status != "sea" or polls.exists %} {% if assignment.status != "sea" or polls.exists %}
<h3>{% trans "Election results" %}</h3> <h4>{% trans "Election results" %}</h4>
{% if polls.exists %} {% if polls.exists %}
<table id="election_table" style="width: auto;"> <table class="table table-striped table-bordered">
<tr> <tr>
<th>{% trans "Candidates" %}</th> <th></th>
{% for poll in polls %} {% with ballotnumber=polls.count %}
<th style="vertical-align: top; white-space:nowrap;"> <th colspan="{{ ballotnumber|add:'1' }}" style="text-align: center;">
{{ poll.get_ballot }}. {% trans 'ballot' %} {% trans "ballot" %}
{% if perms.assignment.can_manage_assignment %}
<br>
<a class="publish_link {% if poll.published %}published{% endif %}"
href="{% url 'assignment_poll_publish_status' poll.id %}"
title="{% trans 'Publish/unpublish results' %}">
<span></span>
</a>
<a href="{% url 'assignment_poll_view' poll.id %}"><img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit' %}"></a>
<a href="{% url 'assignment_poll_delete' poll.id %}"><img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete' %}"></a>
{% endif %}
</th> </th>
{% endfor %} {% endwith %}
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %} </tr>
<th> <tr>
<a href="{% url 'assignment_gen_poll' assignment.id %}"> <th>{% trans "Candidates" %}</th>
<span class="button"> {% for poll in polls %}
<span class="icon statistics">{% trans 'New ballot' %}</span> <th style="white-space:nowrap;" class="span1">
</span> {{ poll.get_ballot }}. {% trans 'ballot' %}
</a> {% if perms.assignment.can_manage_assignment %}
</th> <br>
{% endif %} <a class="publish_link {% if poll.published %}published{% endif %}"
</tr> href="{% url 'assignment_poll_publish_status' poll.id %}"
title="{% trans 'Publish/unpublish results' %}">
{% for candidate, poll_list in vote_results.items %} <span></span>
<tr class="{% cycle 'odd' '' as rowcolors %}"> </a>
<td class="candidate"> <a href="{% url 'assignment_poll_view' poll.id %}" class="btn btn-mini" title="{% trans 'Edit' %}"><i class="icon-pencil"></i></a>
{% if candidate in assignment.elected %} <a href="{% url 'assignment_poll_delete' poll.id %}" class="btn btn-mini" title="{% trans 'Delete' %}"><i class="icon-remove"></i></a>
{% if perms.assignment.can_manage_assignment %} {% endif %}
<a class="election_link elected" href="{% url 'assignment_user_not_elected' assignment.id candidate.person_id %}"></a> </th>
{% else %} {% endfor %}
<a class="elected"> {% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
<img src="{% static 'images/icons/voting-yes.png' %}" title="{% trans 'Candidate is elected' %}"> <th class="span1 nobr">
<a href="{% url 'assignment_gen_poll' assignment.id %}" class="btn btn-mini">
<i class="icon-plus"></i> {% trans 'New ballot' %}
</a> </a>
{% endif %} </th>
{% else %}
{% if perms.assignment.can_manage_assignment %}
<a class="election_link" href="{% url 'assignment_user_elected' assignment.id candidate.person_id %}"></a>
{% endif %}
{% endif %} {% endif %}
{{ candidate }} </tr>
</td> {% for candidate, poll_list in vote_results.items %}
{% for vote in poll_list %} <tr>
<td style="white-space:nowrap;"> <td>
{% if 'Yes' in vote and 'No' in vote and 'Abstain' in vote %} {% if candidate in assignment.elected %}
<img src="{% static 'images/icons/voting-yes.png' %}" title="{% trans 'Yes' %}"> {{ vote.Yes }}<br> {% if perms.assignment.can_manage_assignment %}
<img src="{% static 'images/icons/voting-no.png' %}" title="{% trans 'No' %}"> {{ vote.No }}<br> <a class="election_link elected" href="{% url 'assignment_user_not_elected assignment.id' candidate.person_id %}"></a>
<img src="{% static 'images/icons/voting-abstention.png' %}" title="{% trans 'Abstention' %}"> {{ vote.Abstain }}<br> {% else %}
{% elif 'Votes' in vote %} <a class="elected">
<img src="{% static 'images/icons/voting-yes.png' %}" title="{% trans 'Yes' %}"> {{ vote.Votes }} <img src="{% static 'images/icons/voting-yes.png' %}" title="{% trans 'Candidate is elected' %}">
{% elif vote == None %} </a>
{% trans 'was not a <br> candidate'%} {% endif %}
{% else %} {% else %}
&nbsp; {% if perms.assignment.can_manage_assignment %}
<a class="election_link" href="{% url 'assignment_user_elected' assignment.id candidate.person_id %}"></a>
{% endif %}
{% endif %} {% endif %}
{{ candidate }}
</td> </td>
{% endfor %} {% for vote in poll_list %}
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
<td></td>
{% endif %}
</tr>
{% endfor %}
<tr class="{% cycle rowcolors %}">
<td>{% trans 'Invalid votes' %}</td>
{% for poll in polls %}
{% if poll.published or perms.assignment.can_manage_assignment %}
<td style="white-space:nowrap;"> <td style="white-space:nowrap;">
{% if poll.has_votes %} {% if 'Yes' in vote and 'No' in vote and 'Abstain' in vote %}
<img src="{% static 'images/icons/voting-invalid.png' %}" title="{% trans 'Invalid' %}"> <img src="{% static 'images/icons/voting-yes.png' %}" title="{% trans 'Yes' %}"> {{ vote.Yes }}<br>
{{ poll.print_votesinvalid }} <img src="{% static 'images/icons/voting-no.png' %}" title="{% trans 'No' %}"> {{ vote.No }}<br>
<img src="{% static 'images/icons/voting-abstention.png' %}" title="{% trans 'Abstention' %}"> {{ vote.Abstain }}<br>
{% elif 'Votes' in vote %}
<img src="{% static 'images/icons/voting-yes.png' %}" title="{% trans 'Yes' %}"> {{ vote.Votes }}
{% elif vote == None %}
{% trans 'was not a <br> candidate'%}
{% else %}
&nbsp;
{% endif %} {% endif %}
</td> </td>
{% endfor %}
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
<td></td>
{% endif %} {% endif %}
</tr>
{% endfor %} {% endfor %}
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %} <tr>
<td></td> <td>{% trans 'Invalid votes' %}</td>
{% endif %} {% for poll in polls %}
</tr> {% if poll.published or perms.assignment.can_manage_assignment %}
<tr class="total"> <td style="white-space:nowrap;">
<td><strong>{% trans 'Votes cast' %}</strong></td> {% if poll.has_votes %}
{% for poll in polls %} <img src="{% static 'images/icons/voting-invalid.png' %}" title="{% trans 'Invalid' %}">
{% if poll.published or perms.assignment.can_manage_assignment %} {{ poll.print_votesinvalid }}
<td style="white-space:nowrap;"> {% endif %}
{% if poll.has_votes %} </td>
<img src="{% static 'images/icons/voting-total.png' %}" title="{% trans 'Votes cast' %}"> {% endif %}
<strong>{{ poll.print_votescast }}</strong> {% endfor %}
{% endif %} {% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
</td> <td></td>
{% endif %} {% endif %}
{% endfor %} </tr>
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %} <tr class="info total">
<td></td> <td><strong>{% trans 'Votes cast' %}</strong></td>
{% endif %} {% for poll in polls %}
</tr> {% if poll.published or perms.assignment.can_manage_assignment %}
</table> <td style="white-space:nowrap;">
{% if poll.has_votes %}
<img src="{% static 'images/icons/voting-total.png' %}" title="{% trans 'Votes cast' %}">
<strong>{{ poll.print_votescast }}</strong>
{% endif %}
</td>
{% endif %}
{% endfor %}
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
<td></td>
{% endif %}
</tr>
</table>
{% else %} {% else %}
<i>{% trans "No results available." %}</i> <i>{% trans "No ballots available." %}</i>
{% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %} {% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}
<p><a href="{% url 'assignment_gen_poll' assignment.id %}"> <p>
<span class="button"> <a href='{% url 'assignment_gen_poll' assignment.id %}' class="btn">
<span class="icon statistics">{% trans 'New ballot' %}</span> <i class="icon-plus"></i> {% trans 'New ballot' %}
</span> </a>
</a></p> </p>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div> <!--/span-->
<div class="span3">
<div class="well">
<!-- Text -->
<h5>{% trans "Status" %}:</h5>
{% trans assignment.get_status_display %}
<!-- Posts -->
<h5>{% trans "Number of available posts" %}:</h5>
{{ assignment.posts }}
</div> <!--/well-->
{% if perms.assignment.can_manage_assignment %}
<div class="well">
<h4>{% trans "Change status" %}:</h4>
<label class="radio">
<input type="radio" name="status" onclick="window.location.href='{% url 'assignment_set_status' assignment.id 'sea' %}';"
{% if 'sea' in assignment.status %}checked{% endif %}>{% trans 'Searching for candidates' %}
</label>
<label class="radio">
<input type="radio" name="status" onclick="window.location.href='{% url 'assignment_set_status' assignment.id 'vot' %}';"
{% if 'vot' in assignment.status %}checked{% endif %}>{% trans 'Voting' %}<br>
</label>
<label class="radio">
<input type="radio" name="status" onclick="window.location.href='{% url 'assignment_set_status' assignment.id 'fin' %}';"
{% if 'fin' in assignment.status %}checked{% endif %}>{% trans 'Finished' %}
</label>
</div> <!--/well-->
{% endif %}
</div> <!--/span-->
</div> <!--/row-->
{% endblock %} {% endblock %}

View File

@ -5,17 +5,14 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for assignment in assignments %} {% for assignment in assignments %}
<li class="{% if assignment.active %}activeline{% endif %}"> <li class="{% if assignment.active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' assignment.sid %}" class="activate_link {% if assignment.active %}active{% endif %}"> <a href="{% url 'projector_activate_slide' assignment.sid %}" class="activate_link btn {% if assignment.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<div></div> <i class="icon-facetime-video {% if assignment.active %}icon-white{% endif %}"></i>
</a>&nbsp;
<a href="{% model_url assignment 'edit' %}" title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i>
</a> </a>
<a href="{% model_url assignment 'delete' %}" title="{% trans 'Delete' %}" class="icon delete right"> <a href="{% url 'projctor_preview_slide' assignment.sid %}" title="{% trans 'Preview' %}" class="btn btn-mini right">
<span></span> <i class="icon-search"></i>
</a>
<a href="{% model_url assignment 'edit' %}" title="{% trans 'Edit' %}" class="icon edit right">
<span></span>
</a>
<a href="{% url 'projctor_preview_slide' assignment.sid %}" title="{% trans 'Preview' %}" class="icon preview right">
<span></span>
</a> </a>
<a href="{% model_url assignment 'view' %}">{{ assignment }}</a> <a href="{% model_url assignment 'view' %}">{{ assignment }}</a>
</li> </li>

View File

@ -533,7 +533,7 @@ class AssignmentPollPDF(PDFView):
pdf_document.build(story) pdf_document.build(story)
def append_to_pdf(self, story): def append_to_pdf(self, story):
imgpath = os.path.join(settings.SITE_ROOT, 'static/images/circle.png') imgpath = os.path.join(settings.SITE_ROOT, 'static/img/circle.png')
circle = "<img src='%s' width='15' height='15'/>&nbsp;&nbsp;" % imgpath circle = "<img src='%s' width='15' height='15'/>&nbsp;&nbsp;" % imgpath
cell = [] cell = []
cell.append(Spacer(0, 0.8 * cm)) cell.append(Spacer(0, 0.8 * cm))
@ -673,6 +673,7 @@ def register_tab(request):
selected = request.path.startswith('/assignment/') selected = request.path.startswith('/assignment/')
return Tab( return Tab(
title=_('Elections'), title=_('Elections'),
app='assignment',
url=reverse('assignment_overview'), url=reverse('assignment_overview'),
permission=( permission=(
request.user.has_perm('assignment.can_see_assignment') or request.user.has_perm('assignment.can_see_assignment') or

View File

@ -1,13 +1,15 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load tags %}
{% load i18n %} {% load i18n %}
{% block submenu %} {% block config_submenu %}
<h4 class="sectiontitle">{% trans "Configuration" %}</h4> <small class="pull-right">
<ul> <div class="btn-toolbar">
{% for menu_link in menu_links %} <div class="btn-group">
<li{% if menu_link.2 %} class="selected"{% endif %}><a href="{{ menu_link.0 }}">{{ menu_link.1 }}</a></li> {% for menu_link in menu_links %}
{% endfor %} <a href="{{ menu_link.0 }}" class="btn btn-mini {% if menu_link.2 %}active{% endif %}">{{ menu_link.1 }}</a>
</ul> {% endfor %}
</div>
</div>
</small>
{% endblock %} {% endblock %}

View File

@ -5,19 +5,26 @@
{% block title %}{{ block.super }} {% trans "General settings" %}{% endblock %} {% block title %}{{ block.super }} {% trans "General settings" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "General settings" %}</h1> <h1>
{% trans "Configuration" %}
<small>{% trans "General" %}</small>
{% block config_submenu %}{{ block.super }}{% endblock %}
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
<fieldset> <fieldset>
<legend>{% trans "Event" %}</legend> <legend>{% trans "Event" %}</legend>
{% for field in form %} {% for field in form %}
{% if "id_event" in field.label_tag %} {% if "id_event" in field.label_tag %}
<p> <div class="control-group{% if field.errors %} error{% endif%}">
{{ field.errors }} <label for="id_{{ field.name }}">{{ field.label }}{% if field.field.required %}<span class="required">*</span>{% endif %}:</label>
{{ field.required }} {{ field }}
{{ field.label_tag }} {% if field.errors %}
{{ field }} <span class="help-inline">{{ field.errors }}</span>
{{ field.help_text }} {% endif %}
</p> {% if field.help_text %}
<span class="help-inline">{{ field.help_text }}</span>
{% endif %}
</div>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</fieldset> </fieldset>
@ -26,13 +33,16 @@
<legend>{% trans "Welcome Widget" %}</legend> <legend>{% trans "Welcome Widget" %}</legend>
{% for field in form %} {% for field in form %}
{% if "id_welcome" in field.label_tag %} {% if "id_welcome" in field.label_tag %}
<p> <div class="control-group{% if field.errors %} error{% endif%}">
{{ field.errors }} <label for="id_{{ field.name }}">{{ field.label }}{% if field.field.required %}<span class="required">*</span>{% endif %}:</label>
{{ field.required }} {{ field }}
{{ field.label_tag }} {% if field.errors %}
{{ field }} <span class="help-inline">{{ field.errors }}</span>
{{ field.help_text }} {% endif %}
</p> {% if field.help_text %}
<span class="help-inline">{{ field.help_text }}</span>
{% endif %}
</div>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</fieldset> </fieldset>
@ -41,25 +51,25 @@
<legend>{% trans "System" %}</legend> <legend>{% trans "System" %}</legend>
{% for field in form %} {% for field in form %}
{% if "id_system" in field.label_tag %} {% if "id_system" in field.label_tag %}
<p> <div class="control-group{% if field.errors %} error{% endif%}">
{{ field.errors }} <label for="id_{{ field.name }}">{{ field.label }}{% if field.field.required %}<span class="required">*</span>{% endif %}:</label>
{{ field.required }} {{ field }}
{{ field.label_tag }} {% if field.errors %}
{{ field }} <span class="help-inline">{{ field.errors }}</span>
{{ field.help_text }} {% endif %}
</p> {% if field.help_text %}
<span class="help-inline">{{ field.help_text }}</span>
{% endif %}
</div>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</fieldset> </fieldset>
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_save.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href='{% url 'config_general' %}' class="btn">
</button> {% trans 'Cancel' %}
<a href="{% url 'config_general' %}">
<button class="button" type="button" onclick="window.location='{% url 'config_general' %}'">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a> </a>
</p> </p>
<small>* {% trans "required" %}</small>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -5,7 +5,9 @@
{% block title %}{{ block.super }} {% trans "Version" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Version" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Version" %}</h1> <h1>{% trans "Version" %}
{% block config_submenu %}{{ block.super }}{% endblock %}
</h1>
{% for version in versions %} {% for version in versions %}
<p>{{ version.0 }} {% trans "Version" %}: {{ version.1 }}</p> <p>{{ version.0 }} {% trans "Version" %}: {{ version.1 }}</p>

View File

@ -108,6 +108,7 @@ def register_tab(request):
selected = request.path.startswith('/config/') selected = request.path.startswith('/config/')
return Tab( return Tab(
title=_('Configuration'), title=_('Configuration'),
app='config',
url=reverse('config_general'), url=reverse('config_general'),
permission=request.user.has_perm('config.can_manage_config'), permission=request.user.has_perm('config.can_manage_config'),
selected=selected, selected=selected,

File diff suppressed because it is too large Load Diff

View File

@ -5,18 +5,19 @@
{% block title %}{{ block.super }} {% trans "Motion settings" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Motion settings" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Motion settings" %}</h1> <h1>
{% trans "Configuration" %}
<small>{% trans "Motions" %}</small>
{% block config_submenu %}{{ block.super }}{% endblock %}
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_save.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href="{% url 'config_motion' %}" class="btn">
</button> {% trans 'Cancel' %}
<a href="{% url 'config_motion' %}"> </a>
<button class="button" type="button" onclick="window.location='{% url 'config_motion' %}'"> </p>
<span class="icon cancel">{% trans 'Cancel' %}</span> <small>* {% trans "required" %}</small>
</button>
</a>
</p>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -5,17 +5,14 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for motion in motions %} {% for motion in motions %}
<li class="{% if motion.active %}activeline{% endif %}"> <li class="{% if motion.active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' motion.sid %}" class="activate_link {% if motion.active %}active{% endif %}"> <a href="{% url 'projector_activate_slide' motion.sid %}" class="activate_link btn {% if motion.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<div></div> <i class="icon-facetime-video {% if motion.active %}icon-white{% endif %}"></i>
</a>&nbsp;
<a href="{% model_url motion 'edit' %}" title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i>
</a> </a>
<a href="{% model_url motion 'delete' %}" title="{% trans 'Delete' %}" class="icon delete right"> <a href="{% url 'projctor_preview_slide' motion.sid %}" title="{% trans 'Preview' %}" class="btn btn-mini right">
<span></span> <i class="icon-search"></i>
</a>
<a href="{% model_url motion 'edit' %}" title="{% trans 'Edit' %}" class="icon edit right">
<span></span>
</a>
<a href="{% url 'projctor_preview_slide' motion.sid %}" title="{% trans 'Preview' %}" class="icon preview right">
<span></span>
</a> </a>
<a href="{% model_url motion 'view' %}"> <a href="{% model_url motion 'view' %}">
{{ motion.public_version.title }} {{ motion.public_version.title }}

View File

@ -437,6 +437,7 @@ def register_tab(request):
selected = request.path.startswith('/motion/') selected = request.path.startswith('/motion/')
return Tab( return Tab(
title=_('Motions'), title=_('Motions'),
app='motion',
url=reverse('motion_list'), url=reverse('motion_list'),
permission=request.user.has_perm('motion.can_see_motion'), permission=request.user.has_perm('motion.can_see_motion'),
selected=selected, selected=selected,

View File

@ -6,22 +6,24 @@
*/ */
$(function() { $(function() {
// change participant status (on/off)
$('.status_link').click(function(event) { $('.status_link').click(function(event) {
event.preventDefault(); event.preventDefault();
link = $(this); var link = $(this);
group = $(this).parent();
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: link.attr('href'), url: $(this).attr('href'),
dataType: 'json', dataType: 'json',
success: function(data) { success: function(data) {
if (data.active) { if (data.active) {
group.children('.status_link.deactivate').show(); newclass = 'icon-on';
group.children('.status_link.activate').hide(); link.addClass('btn-success');
} else { } else {
group.children('.status_link.deactivate').hide(); newclass = 'icon-off';
group.children('.status_link.activate').show(); link.removeClass('btn-success');
} }
link.children('i').removeClass('icon-off icon-on').addClass(newclass);
link.attr('href', data.link);
} }
}); });
}); });

View File

@ -1,77 +0,0 @@
{% extends "base.html" %}
{% load tags %}
{% load i18n %}
{% load staticfiles %}
{% block submenu %}
{% url 'user_overview' as url_users %}
{% url 'user_new' as url_usernew %}
{% url 'user_group_overview' as url_usergroups %}
{% url 'user_import' as url_userimport %}
<h4 class="sectiontitle">{% trans "Participants" %}</h4>
<ul>
{% if perms.participant.can_see_participant %}
<li class="{% if request.path == url_users %}selected{% endif %}"><a href="{% url 'user_overview' %}">{% trans "All participants" %}</a></li>
{% endif %}
{% if perms.participant.can_manage_participant %}
<li class="{% active request url_usernew %}"><a href="{% url 'user_new' %}">{% trans "New participant" %}</a></li>
<li class="{% if request.path == url_usergroups %}selected{% endif %}"><a href="{% url 'user_group_overview' %}">{% trans "All groups" %}</a></li>
<li class="{% active request '/participant/group/new' %}"><a href="{% url 'user_group_new' %}">{% trans "New group" %}</a></li>
<li class="{% if request.path == url_userimport %}selected{% endif %}"><a href="{% url 'user_import' %}"> {% trans 'Import participants' %}</a></li>
{% endif %}
{% if perms.participant.can_see_participant %}
<li><a href="{% url 'user_print' %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'List of participants as PDF' %}</a></li>
{% endif %}
{% if perms.participant.can_manage_participant %}
<li><a href="{% url 'print_passwords' %}"><img src="{% static 'images/icons/pdf.png' %}"> {% trans 'First time passwords as PDF' %}</a></li>
{% endif %}
</ul>
{# second submenu #}
{% if shown_user %}
<br>
<h3>{{ shown_user.clean_name }}</h3>
<ul>
{# view shown_user #}
<li class="{% if request.path == 'foo' %}selected{% endif %}">
<a href="{% model_url shown_user 'view' %}">{% trans 'View participant' %}</a>
</li>
{% if perms.participant.can_manage_participant %}
{# edit shown_user #}
<li class="{% if request.path == 'foo' %}selected{% endif %}">
<a href="{% model_url shown_user 'edit' %}"><img src="{% static 'images/icons/edit.png' %}"> {% trans 'Edit participant' %}</a>
</li>
{# delete shown_user #}
<li>
<a href="{% model_url shown_user 'delete' %}"><img src="{% static 'images/icons/delete.png' %}"> {% trans 'Delete participant' %}</a>
</li>
{% endif %}
</ul>
{% elif group %}
<br>
<h3>{{ group.name }}</h3>
<ul>
{# view group #}
<li class="{% if request.path == 'foo' %}selected{% endif %}">
<a href="{% model_url group 'view' %}">{% trans 'View group' %}</a>
</li>
{# edit group #}
<li class="{% if request.path == 'foo' %}selected{% endif %}">
<a href="{% model_url group 'edit' %}"><img src="{% static 'images/icons/edit.png' %}"> {% trans 'Edit group' %}</a>
</li>
{# delete group #}
{% if group.name|lower != 'anonymous' and group.name|lower != 'registered' %}
<li>
<a href="{% model_url group 'delete' %}"><img src="{% static 'images/icons/delete.png' %}"> {% trans 'Delete group' %}</a>
</li>
{% endif %}
</ul>
{% endif %}
{% endblock %}

View File

@ -5,18 +5,19 @@
{% block title %}{{ block.super }} {% trans "Participant settings" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Participant settings" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Participant settings" %}</h1> <h1>
{% trans "Configuration" %}
<small>{% trans "Participants" %}</small>
{% block config_submenu %}{{ block.super }}{% endblock %}
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_save.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href="{% url 'config_participant' %}" class="btn">
</button> {% trans 'Cancel' %}
<a href="{% url 'config_participant' %}"> </a>
<button class="button" type="button" onclick="window.location='{% url 'config_participant' %}'"> </p>
<span class="icon cancel">{% trans 'Cancel' %}</span> <small>* {% trans "required" %}</small>
</button>
</a>
</p>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -1,4 +1,4 @@
{% extends "participant/base_participant.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
@ -11,33 +11,30 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% if edit_user %} <h1>
<h1>{% trans "Edit participant" %}</h1> {% if edit_user %}
{% else %} {% trans "Edit participant" %}
<h1>{% trans "New participant" %}</h1> {% else %}
{% endif %} {% trans "New participant" %}
{% endif %}
<small class="pull-right">
<a href="{% url 'user_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
</small>
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
{% if edit_user %} {% if edit_user %}
<p> <p>
<a href="{% url 'user_reset_password' edit_user.id %}">{% trans 'Reset to First Password' %}</a> <a href="{% url 'user_reset_password' edit_user.id %}">{% trans 'Reset to First Password' %}</a>
</p> </p>
{% endif %} {% endif %}
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_saveapply.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href="{% url 'user_overview' %}" class="btn">
</button> {% trans 'Cancel' %}
<button class="button" type="submit" name="apply"> </a>
<span class="icon apply">{% trans 'Apply' %}</span>
</button>
<a href='{% url "user_overview" %}'>
<button class="button" type="button" onclick="window.location='{% url 'user_overview' %}'">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a>
</p> </p>
<small>* {% trans "required" %}</small> <small>* {% trans "required" %}</small>
</form> </form>

View File

@ -1,4 +1,4 @@
{% extends "participant/base_participant.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
@ -12,25 +12,23 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<h1>
{% if group %} {% if group %}
<h1>{% trans "Edit group" %}</h1> {% trans "Edit group" %}
{% else %} {% else %}
<h1>{% trans "New group" %}</h1> {% trans "New group" %}
{% endif %} {% endif %}
<small class="pull-right">
<a href="{% url 'user_group_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
</small>
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<p> <p>
<button class="button" type="submit"> {% include "formbuttons_saveapply.html" %}
<span class="icon ok">{% trans 'Save' %}</span> <a href="{% url 'user_group_overview' %}" class="btn">
</button> {% trans 'Cancel' %}
<button class="button" type="submit" name="apply">
<span class="icon apply">{% trans 'Apply' %}</span>
</button>
<a href='{% url "user_group_overview" %}'>
<button class="button" type="button" onclick="window.location='{% url 'user_group_overview' %}'">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a> </a>
</p> </p>
<small>* {% trans "required" %}</small> <small>* {% trans "required" %}</small>

View File

@ -1,4 +1,4 @@
{% extends "participant/base_participant.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
@ -7,8 +7,14 @@
{% block title %}{{ block.super }} {% trans "Groups" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Groups" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Groups" %}</h1> <h1>{% trans "Groups" %}
<table> <small class="pull-right">
<a href="{% url 'user_group_new' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'New group' %}"><i class="icon-plus"></i> {% trans "New" %}</a>
<a href="{% url 'user_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to participants overview" %}</a>
</small>
</h1>
<table class="table table-striped table-bordered">
<tr> <tr>
<th>{% trans "Group" %}</th> <th>{% trans "Group" %}</th>
<th>{% trans "Actions" %}</th> <th>{% trans "Actions" %}</th>

View File

@ -5,17 +5,14 @@
{% for group in groups %} {% for group in groups %}
{% if group.name != 'Anonymous' and group.name != 'Registered' %} {% if group.name != 'Anonymous' and group.name != 'Registered' %}
<li class="{% if group.active %}activeline{% endif %}"> <li class="{% if group.active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' group.sid %}" class="activate_link {% if group.active %}active{% endif %}"> <a href="{% url 'projector_activate_slide' group.sid %}" class="activate_link btn {% if group.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<div></div> <i class="icon-facetime-video {% if group.active %}icon-white{% endif %}"></i>
</a>&nbsp;
<a href="{% model_url group 'edit' %}" title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i>
</a> </a>
<a href="{% model_url group 'delete' %}" title="{% trans 'Delete' %}" class="icon delete right"> <a href="{% url 'projctor_preview_slide' group.sid %}" title="{% trans 'Preview' %}" class="btn btn-mini right">
<span></span> <i class="icon-search"></i>
</a>
<a href="{% model_url group 'edit' %}" title="{% trans 'Edit' %}" class="icon edit right">
<span></span>
</a>
<a href="{% url 'projctor_preview_slide' group.sid %}" title="{% trans 'Preview' %}" class="icon preview right">
<span></span>
</a> </a>
<a href="{% model_url group 'view' %}">{{ group }}</a> <a href="{% model_url group 'view' %}">{{ group }}</a>
</li> </li>

View File

@ -1,11 +1,17 @@
{% extends "participant/base_participant.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% block title %}{{ block.super }} {% trans "Import participants" %} {% endblock %} {% block title %}{{ block.super }} {% trans "Import participants" %} {% endblock %}
{% block content %} {% block content %}
<h1>{% trans 'Import participants' %}</h1> <h1>
{% trans 'Import participants' %}
<small class="pull-right">
<a href="{% url 'user_overview' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
</small>
</h1>
<p>{% trans 'Select a CSV file to import participants!' %}</p> <p>{% trans 'Select a CSV file to import participants!' %}</p>
<p>{% trans 'Required comma separated values' %}: <p>{% trans 'Required comma separated values' %}:
@ -18,15 +24,13 @@
</p> </p>
<form enctype="multipart/form-data" action="" method="post">{% csrf_token %} <form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<p> <p>
<button class="button" type="submit"> <button class="btn btn-primary" type="submit">
<span class="icon import">{% trans 'Import' %}</span> <span class="icon import">{% trans 'Import' %}</span>
</button> </button>
<a href="{% url 'user_overview' %}"> <a href="{% url 'user_overview' %}" class="btn">
<button class="button" type="button" onclick="window.location='{% url 'user_overview' %}'"> {% trans 'Cancel' %}
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a> </a>
</p> </p>
<small>* {% trans "required" %}</small> <small>* {% trans "required" %}</small>

View File

@ -1,25 +1,17 @@
{% extends "participant/base_participant.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
{% block mainmenu %} {% block loginbutton %}
<ul>
<li class="selected"><a href="{% url 'user_login' %}" title="">{% trans "Login" %}</a></li>
</ul>
{% endblock %} {% endblock %}
{% block submenu %} {% block body %}
{% endblock %} <div id="login-page" class="container">
<h2><img src="/static/img/logo-login.png"></h2>
{% block content %}
<h1>{% trans "Login" %}</h1>
{% if form.errors %} {% if form.errors %}
<div class="notification error"> <div class="alert alert-error">
<a class="close" href="#">
<img alt="close" title="{% trans 'Close this notification' %}" src="{% static 'images/icons/cross.png' %}">
</a>
{% for msg in form.non_field_errors %} {% for msg in form.non_field_errors %}
<em>{{ msg }}</em> <em>{{ msg }}</em>
{% if not forloop.last %}<br />{% endif %} {% if not forloop.last %}<br />{% endif %}
@ -29,48 +21,37 @@
</div> </div>
{% endif %} {% endif %}
{% if first_time_message %} {% if first_time_message %}
<div class="notification info"> <div class="alert alert-info">
<a class="close" href="#">
<img alt="close" title="{% trans 'Close this notification' %}" src="{% static 'images/icons/cross.png' %}">
</a>
<em>{{ first_time_message|safe }}</em> <em>{{ first_time_message|safe }}</em>
</div> </div>
{% endif %} {% endif %}
<script> <script>
$("div.notification").click(function () { $("div.notification").click(function () {
$(this).hide("fast"); $(this).hide("fast");
}); });
</script> </script>
<form method="post" action="{% url 'user_login' %}{% if next %}?next={{ next }}{% endif %}"> <form method="post" action="{% url 'user_login' %}{% if next %}?next={{ next }}{% endif %}" class="well">
{% csrf_token %} {% csrf_token %}
<table> <div class="input-prepend">
<tr> <span class="add-on"><i class="icon-user"></i></span>
<td>{{ form.username.label_tag }}</td> <input type="text" maxlength="30" name="username" id="id_username" placeholder="{% trans 'Username' %}">
<td>{{ form.username }}</td> </div>
</tr> <div class="input-prepend">
<tr> <span class="add-on"><i class="icon-lock"></i></span>
<td>{{ form.password.label_tag }}</td> <input type="password" maxlength="30" name="password" id="id_password" placeholder="{% trans 'Password' %}">
<td>{{ form.password }}</td> </div>
</tr>
</table>
<p> <p>
<button class="button" type="submit"> <button type="submit" class="btn btn-primary">
<span class="icon ok">{% trans 'Login' %}</span> {% trans 'Login' %}
</button> </button>
{% if os_enable_anonymous_login %} {% if os_enable_anonymous_login %}
<button class="button" id="anonymous_login"> <a id="anonymous_login" class="btn" href="{% url 'dashboard' %}">
<span class="icon guest">{% trans 'Continue as guest' %}</span> {% trans 'Continue as guest' %}
</button> </a>
{% endif %} {% endif %}
<input type="hidden" name="next" value="{{ next }}" /> <input type="hidden" name="next" value="{{ next }}" />
</p> </p>
</form> </form>
{% if os_enable_anonymous_login %}
<script>
$("#anonymous_login").live('click', function () {
window.location.href = "{% url 'item_overview' %}";
return false;
});
</script>
{% endif %}
{% endblock %} {% endblock %}

View File

@ -1,4 +1,4 @@
{% extends "participant/base_participant.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
@ -7,103 +7,147 @@
{% block title %}{{ block.super }} {% trans "Participants" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Participants" %}{% endblock %}
{% block header %} {% block header %}
{% if perms.agenda.can_manage_agenda %} {% if perms.participant.can_manage_participant %}
<link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/participant.css' %}" /> <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/participant.css' %}" />
<script type="text/javascript" src="{% static 'javascript/participant.js' %}"></script>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block javascript %}
{% if perms.participant.can_manage_participant %}
<script type="text/javascript" src="{% static 'javascript/participant.js' %}"></script>
{% endif %}
{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Participants" %}</h1> <h1>{% trans "Participants" %}
<small class="pull-right">
<div class="btn-toolbar">
{% if perms.participant.can_manage_participant %}
<a href="{% url 'user_new' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'New participant' %}"><i class="icon-plus"></i> {% trans "New" %}</a>
<a href="{% url 'user_group_overview' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'All user groups' %}"><i class="icon-group"></i> {% trans "User groups" %}</a>
<a href="{% url 'user_import' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Import participants' %}"><i class="icon-import"></i> {% trans 'Import' %}</a>
{% endif %}
{% if perms.participant.can_see_participant and perms.participant.can_manage_participant %}
<div class="btn-group pull-right">
{% if user.is_authenticated %}
<a href="#" data-toggle="dropdown" class="btn btn-mini dropdown-toggle">
<i class="icon-print"></i> PDF
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
{% url 'user_settings' as url_usersettings %}
<li><a href="{% url 'user_print' %}"><i class="icon-list"></i> {% trans 'List of participants' %}</a></li>
<li><a href="{% url 'print_passwords' %}"><i class="icon-th-large"></i> {% trans 'First time passwords' %}</a></li>
</ul>
{% else %}
<a href="{% url 'user_login' %}" class="btn">{% trans "Login" %}</a>
{% endif %}
</div>
{% else %}
{% if perms.participant.can_see_participant %}
<a href="{% url 'user_print' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Print list of participants as PDF' %}"><i class="icon-print"></i> PDF</a>
{% endif %}
{% if perms.participant.can_manage_participant %}
<a href="{% url 'print_passwords' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Print first time passwords as PDF' %}"><i class="icon-print"></i> PDF</a>
{% endif %}
{% endif %}
</div>
</small>
</h1>
<p> <form action="" name="filter" method="get">
<form action="" name="filter" method="get"> {% trans "Filter" %}:
{% trans "Filter" %}: <div class="control-group">
<select class="default-input" name="gender" onchange="document.forms['filter'].submit()"> <select class="span2" name="gender" onchange="document.forms['filter'].submit()">
<option value="---">-- {% trans "Gender" %} --</option> <option value="---">-- {% trans "Gender" %} --</option>
<option value="male"{% if 'male' in sortfilter.gender %} selected{% endif %}>{% trans "Male" %}</option> <option value="male"{% if 'male' in sortfilter.gender %} selected{% endif %}>{% trans "Male" %}</option>
<option value="female"{% if 'female' in sortfilter.gender %} selected{% endif %}>{% trans "Female" %}</option> <option value="female"{% if 'female' in sortfilter.gender %} selected{% endif %}>{% trans "Female" %}</option>
<option value=""{% if '' in sortfilter.gender %} selected{% endif %}>{% trans "Not specified" %}</option> <option value=""{% if '' in sortfilter.gender %} selected{% endif %}>{% trans "Not specified" %}</option>
</select> </select>
<select class="default-input" name="structure_level" onchange="document.forms['filter'].submit()"> <select class="span2" name="structure_level" onchange="document.forms['filter'].submit()">
<option value="---">-- {% trans "Structure level" %} --</option> <option value="---">-- {% trans "Structure level" %} --</option>
{% for level in structure_levels %} {% for level in structure_levels %}
<option value="{{ level }}"{% if level in sortfilter.structure_level %} selected{% endif %}> <option value="{{ level }}"{% if level in sortfilter.structure_level %} selected{% endif %}>
{{ level }}</option> {{ level }}</option>
{% endfor %} {% endfor %}
</select> </select>
<select class="default-input" name="type" onchange="document.forms['filter'].submit()"> <select class="span2" name="type" onchange="document.forms['filter'].submit()">
<option value="---">-- {% trans "Type" %} --</option> <option value="---">-- {% trans "Type" %} --</option>
<option value="delegate"{% if 'delegate' in sortfilter.type %} selected{% endif %}>{% trans "Delegate" %}</option> <option value="delegate"{% if 'delegate' in sortfilter.type %} selected{% endif %}>{% trans "Delegate" %}</option>
<option value="observer"{% if 'observer' in sortfilter.type %} selected{% endif %}>{% trans "Observer" %}</option> <option value="observer"{% if 'observer' in sortfilter.type %} selected{% endif %}>{% trans "Observer" %}</option>
<option value="staff"{% if 'staff' in sortfilter.type %} selected{% endif %}>{% trans "Staff" %}</option> <option value="staff"{% if 'staff' in sortfilter.type %} selected{% endif %}>{% trans "Staff" %}</option>
<option value="guest"{% if 'guest' in sortfilter.type %} selected{% endif %}>{% trans "Guest" %}</option> <option value="guest"{% if 'guest' in sortfilter.type %} selected{% endif %}>{% trans "Guest" %}</option>
<option value=""{% if '' in sortfilter.type %} selected{% endif %}>{% trans "Not specified" %}</option> <option value=""{% if '' in sortfilter.type %} selected{% endif %}>{% trans "Not specified" %}</option>
</select> </select>
<select class="default-input" name="committee" onchange="document.forms['filter'].submit()"> <select class="span2" name="committee" onchange="document.forms['filter'].submit()">
<option value="---">-- {% trans "Committee" %} --</option> <option value="---">-- {% trans "Committee" %} --</option>
{% for committee in committees %} {% for committee in committees %}
<option value="{{ committee }}"{% if committee in sortfilter.committee %} selected{% endif %}> <option value="{{ committee }}"{% if committee in sortfilter.committee %} selected{% endif %}>
{{ committee }}</option> {{ committee }}</option>
{% endfor %} {% endfor %}
</select> </select>
<select class="default-input" name="status" onchange="document.forms['filter'].submit()"> <select class="span2" name="status" onchange="document.forms['filter'].submit()">
<option value="---">-- {% trans "Status" %} --</option> <option value="---">-- {% trans "Status" %} --</option>
<option value="1"{% if '1' in sortfilter.status %} selected{% endif %}>{% trans "Active" %}</option> <option value="1"{% if '1' in sortfilter.status %} selected{% endif %}>{% trans "Active" %}</option>
<option value="0"{% if '0' in sortfilter.status %} selected{% endif %}>{% trans "Inactive" %}</option> <option value="0"{% if '0' in sortfilter.status %} selected{% endif %}>{% trans "Inactive" %}</option>
</select> </select>
</form> </div>
</p> </form>
<small><i>
{% if users.count == allusers %} {% if users.count == allusers %}
{{ users.count }} {{ users.count }}
{% blocktrans count counter=users.count %}participant{% plural %}participants{% endblocktrans %} {% blocktrans count counter=users.count %}participant{% plural %}participants{% endblocktrans %}
{% else %} {% else %}
{{ users.count }} {% trans "of" %} {{ allusers }} {% trans "Participants" %} (= {{ percent }} %) {{ users.count }} {% trans "of" %} {{ allusers }} {% trans "Participants" %} (= {{ percent }} %)
{% endif %} {% endif %}
<table> </i></small>
<table class="table table-striped table-bordered">
<tr> <tr>
<th><a href="?sort=first_name&reverse={% if 'first_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "First Name" %}</a></th> <th><a href="?sort=first_name&reverse={% if 'first_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "First Name" %}</a></th>
<th><a href="?sort=last_name&reverse={% if 'last_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Last Name" %}</a></th> <th><a href="?sort=last_name&reverse={% if 'last_name' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Last Name" %}</a></th>
<th><a href="?sort=structure_level&reverse={% if 'structure_level' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Structure level" %}</a></th> <th class="optional"><a href="?sort=structure_level&reverse={% if 'structure_level' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Structure level" %}</a></th>
<th><a href="?sort=type&reverse={% if 'type' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Type" %}</a></th> <th class="optional"><a href="?sort=type&reverse={% if 'type' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Type" %}</a></th>
<th><a href="?sort=committee&reverse={% if 'committee' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Committee" %}</a></th> <th class="optional"><a href="?sort=committee&reverse={% if 'committee' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Committee" %}</a></th>
{% if perms.participant.can_manage_participant %} {% if perms.participant.can_manage_participant %}
<th><a href="?sort=comment&reverse={% if 'comment' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Comment" %}</a></th> <th class="optional"><a href="?sort=comment&reverse={% if 'comment' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Comment" %}</a></th>
<th><a href="?sort=last_login&reverse={% if 'last_login' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Last Login" %}</a></th> <th class="optional"><a href="?sort=last_login&reverse={% if 'last_login' in sortfilter.sort and 'reverse' not in sortfilter %}1{% else %}---{%endif%}">{% trans "Last Login" %}</a></th>
<th>{% trans "Actions" %}</th> <th style="width: 1px;">{% trans "Actions" %}</th>
{% endif %} {% endif %}
</tr> </tr>
{% for user in users %} {% for user in users %}
<tr class="{% cycle '' 'odd' %}"> <tr class="{% if user.active %}activeline{% endif %}">
<td><a href="{% model_url user 'view' %}">{{ user.first_name }}</a></td> <td>{{ user.first_name }}</td>
<td><a href="{% model_url user 'view' %}">{{ user.last_name }}</a></td> <td>{{ user.last_name }}</td>
<td>{{ user.structure_level }}</td> <td class="optional">{{ user.structure_level }}</td>
<td>{{ user.get_type_display }}</td> <td class="optional">{{ user.get_type_display }}</td>
<td>{{ user.committee }}</td> <td class="optional">{{ user.committee }}</td>
{% if perms.participant.can_manage_participant %} {% if perms.participant.can_manage_participant %}
<td>{{ user.comment|first_line }}</td> <td class="optional">{{ user.comment|first_line }}</td>
<td> <td class="optional">
{% if user.last_login > user.date_joined %} {% if user.last_login > user.date_joined %}
{{ user.last_login }} {{ user.last_login }}
{% endif %} {% endif %}
</td> </td>
<td> <td>
<span style="width: 1px; white-space: nowrap;"> <span style="width: 1px; white-space: nowrap;">
<a href="{% url 'user_edit' user.id %}"> {% if perms.projector.can_manage_projector %}
<img src="{% static 'images/icons/edit.png' %}" title="{% trans 'Edit participant' %}"> <a href="{% url 'projector_activate_slide' user.sid %}" class="activate_link btn {% if user.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if user.active %}icon-white{% endif %}"></i>
</a>
{% endif %}
<a href="{% url 'user_edit' user.id %}" title="{% trans 'Edit' %}" class="btn btn-mini">
<i class="icon-pencil"></i>
</a> </a>
{% if user != request_user %} {% if user != request_user %}
<a href="{% url 'user_delete' user.id %}"> <a href="{% url 'user_delete' user.id %}" title="{% trans 'Delete' %}" class="btn btn-mini">
<img src="{% static 'images/icons/delete.png' %}" title="{% trans 'Delete participant' %}"> <i class="icon-remove"></i>
</a> </a>
{% endif %} {% endif %}
{% if user != request_user and not user.is_superuser %} {% if user != request_user and not user.is_superuser %}
<a class="status_link deactivate" href="{% url 'user_status_deactivate' user.id %}" title="{% trans 'Change status to inactive' %}"{% if not user.is_active %} style="display:none"{% endif %}> <a href="{% url 'user_status_toggle' user.id %}"
<span></span> class="status_link btn btn-mini {% if user.is_active %}btn-success{% endif %}"
</a> title="{% trans 'Change status (active/inactive)' %}">
<a class="status_link activate" href="{% url 'user_status_activate' user.id %}" title="{% trans 'Change status to active' %}"{% if user.is_active %} style="display:none"{% endif %}> <i class="{% if user.is_active %}icon-on{% else %}icon-off{% endif %}"></i>
<span></span>
</a> </a>
{% endif %} {% endif %}
</span> </span>

View File

@ -4,28 +4,11 @@
{% block title %}{{ block.super }} {% trans "Password Settings" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Password Settings" %}{% endblock %}
{% block submenu %}
<h4 class="sectiontitle">{% trans "User Settings" %}</h4>
<ul>
<li><a href="{% url 'user_settings' %}">{% trans "Personal Settings" %}</a></li>
<li class="selected"><a href="{% url 'password_change' %}">{% trans "Password Settings" %}</a></li>
</ul>
{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Password Settings" %}</h1> <h1>{% trans "Password Settings" %}</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
{% include "formbuttons_save.html" %}
<button class="button" type="submit">
<span class="icon ok">{% trans 'Save' %}</span>
</button>
<a href=''>
<button class="button" type="button">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a>
</form> </form>
<p></p>
{% endblock %} {% endblock %}

View File

@ -2,29 +2,13 @@
{% load i18n %} {% load i18n %}
{% block title %}{{ block.super }} {% trans "Personal Settings" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Edit profile" %}{% endblock %}
{% block submenu %}
<h4 class="sectiontitle">{% trans "User Settings" %}</h4>
<ul>
<li class="selected"><a href="{% url 'user_settings' %}">{% trans "Personal Settings" %}</a></li>
<li><a href="{% url 'password_change' %}">{% trans "Password Settings" %}</a></li>
</ul>
{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Personal Settings" %}</h1> <h1>{% trans "Edit profile" %}</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form_user.as_p }} {% include "form.html" %}
{% include "formbuttons_save.html" %}
<button class="button" type="submit">
<span class="icon ok">{% trans 'Save' %}</span>
</button>
<a href=''>
<button class="button" type="button">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -4,17 +4,14 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for user in users %} {% for user in users %}
<li class="{% if user.active %}activeline{% endif %}"> <li class="{% if user.active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' user.sid %}" class="activate_link {% if user.active %}active{% endif %}"> <a href="{% url 'projector_activate_slide' user.sid %}" class="activate_link btn {% if user.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<div></div> <i class="icon-facetime-video {% if user.active %}icon-white{% endif %}"></i>
</a>&nbsp;
<a href="{% model_url user 'edit' %}" title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i>
</a> </a>
<a href="{% model_url user 'delete' %}" title="{% trans 'Delete' %}" class="icon delete right"> <a href="{% url 'projctor_preview_slide' user.sid %}" title="{% trans 'Preview' %}" class="btn btn-mini right">
<span></span> <i class="icon-search"></i>
</a>
<a href="{% model_url user 'edit' %}" title="{% trans 'Edit' %}" class="icon edit right">
<span></span>
</a>
<a href="{% url 'projctor_preview_slide' user.sid %}" title="{% trans 'Preview' %}" class="icon preview right">
<span></span>
</a> </a>
<a href="{% model_url user 'view' %}">{{ user }}</a> <a href="{% model_url user 'view' %}">{{ user }}</a>
</li> </li>

View File

@ -499,7 +499,7 @@ def user_settings(request):
form_user = UsersettingsForm(instance=request.user, initial={'language': language}) form_user = UsersettingsForm(instance=request.user, initial={'language': language})
return { return {
'form_user': form_user, 'form': form_user,
'edituser': request.user, 'edituser': request.user,
} }
@ -515,7 +515,7 @@ def user_settings_password(request):
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, _('Password successfully changed.')) messages.success(request, _('Password successfully changed.'))
return redirect(reverse('user_settings')) return redirect(reverse('dashboard'))
else: else:
messages.error(request, _('Please check the form for errors.')) messages.error(request, _('Please check the form for errors.'))
else: else:
@ -533,6 +533,7 @@ def register_tab(request):
selected = request.path.startswith('/participant/') selected = request.path.startswith('/participant/')
return Tab( return Tab(
title=_('Participants'), title=_('Participants'),
app='participant',
url=reverse('user_overview'), url=reverse('user_overview'),
permission=( permission=(
request.user.has_perm('participant.can_see_participant') or request.user.has_perm('participant.can_see_participant') or

View File

@ -5,26 +5,17 @@
* :license: GNU GPL, see LICENSE for more details. * :license: GNU GPL, see LICENSE for more details.
*/ */
// function that writes the portlet list order to a cookie // function that writes the widget list order to a cookie
function saveOrder() { function saveOrder() {
$(".column").each(function(index, value){ $(".column").each(function(index, value){
var colid = value.id; var colid = value.id;
var cookieName = "cookie-" + colid; var cookieName = "cookie-" + colid;
// Get the order for this column. // Get the order for this column.
var order = $('#' + colid).sortable("toArray"); var order = $('#' + colid).sortable("toArray");
// For each portlet in the column
for ( var i = 0, n = order.length; i < n; i++ ) {
// Determine if it is 'opened' or 'closed'
var v = $('#' + order[i] ).find('.portlet-content').is(':visible');
// Modify the array we're saving to indicate what's open and
// what's not.
order[i] = order[i] + ":" + v;
}
$.cookie(cookieName, order, { path: "/", expiry: new Date(2012, 1, 1)}); $.cookie(cookieName, order, { path: "/", expiry: new Date(2012, 1, 1)});
}); });
} }
// function that restores the widget list order from a cookie
// function that restores the portlet list order from a cookie
function restoreOrder() { function restoreOrder() {
$(".column").each(function(index, value) { $(".column").each(function(index, value) {
var colid = value.id; var colid = value.id;
@ -33,20 +24,10 @@ function restoreOrder() {
if ( cookie == null ) { return; } if ( cookie == null ) { return; }
var IDs = cookie.split(","); var IDs = cookie.split(",");
for (var i = 0, n = IDs.length; i < n; i++ ) { for (var i = 0, n = IDs.length; i < n; i++ ) {
var toks = IDs[i].split(":"); var widgetID = IDs[i];
if ( toks.length != 2 ) { var widget = $(".column")
continue; .find('#' + widgetID)
}
var portletID = toks[0];
var visible = toks[1]
var portlet = $(".column")
.find('#' + portletID)
.appendTo($('#' + colid)); .appendTo($('#' + colid));
if (visible === 'false') {
portlet.find(".ui-icon").toggleClass("ui-icon-minus");
portlet.find(".ui-icon").toggleClass("ui-icon-plus");
portlet.find(".portlet-content").hide();
}
} }
}); });
} }
@ -57,24 +38,8 @@ $(function() {
stop: function() { saveOrder(); } stop: function() { saveOrder(); }
}); });
$(".portlet")
.addClass("ui-widget ui-widget-content")
.addClass("ui-helper-clearfix ui-corner-all")
.find(".portlet-header")
.addClass("ui-widget-header ui-corner-all")
.prepend('<span class="ui-icon ui-icon-minus"></span>')
.end()
.find(".portlet-content");
restoreOrder(); restoreOrder();
$(".portlet-header .ui-icon").click(function() {
$(this).toggleClass("ui-icon-minus");
$(this).toggleClass("ui-icon-plus");
$(this).parents(".portlet:first").find(".portlet-content").toggle();
saveOrder(); // This is important
});
if ($.browser.msie) { if ($.browser.msie) {
if ($.browser.version >= 8.0 && $.browser.version < 9.0) if ($.browser.version >= 8.0 && $.browser.version < 9.0)
{ {
@ -85,27 +50,6 @@ $(function() {
$( "#iframe" ).css('zoom', '0.25'); $( "#iframe" ).css('zoom', '0.25');
} }
// activate an element to show it on projector
$('.activate_link').click(function(event) {
event.preventDefault();
var link = $(this);
$.ajax({
type: 'GET',
url: $(this).attr('href'),
dataType: 'json',
success: function(data) {
$('.activate_link').removeClass('active');
$('li').removeClass('activeline');
$('div').removeClass('activeline');
link.addClass('active');
link.parent().addClass('activeline');
},
error: function () {
alert("Ajax Error");
}
});
});
$('a.overlay').click(function(event) { $('a.overlay').click(function(event) {
event.preventDefault(); event.preventDefault();
var link = $(this); var link = $(this);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,32 +5,68 @@
* :license: GNU GPL, see LICENSE for more details. * :license: GNU GPL, see LICENSE for more details.
*/ */
/* Portlet */ /** Widgets **/
.column { .column {
width: 50%; width: 50%;
float: left; float: left;
padding-bottom: 100px; padding-bottom: 100px;
} }
.portlet { .widget {
margin: 0 10px 10px 0; margin: 0 10px 10px 0;
} }
.portlet-header { .widget-header {
margin: 0.3em; height: 30px;
padding-bottom: 4px; background: #E9E9E9;
padding-left: 0.2em; background:-moz-linear-gradient(top, #FAFAFA 0%, #E9E9E9 100%); /* FF3.6+ */
background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#FAFAFA), color-stop(100%,#E9E9E9)); /* Chrome,Safari4+ */
background:-webkit-linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* Chrome10+,Safari5.1+ */
background:-o-linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* Opera11.10+ */
background:-ms-linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* IE10+ */
background:linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9');
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9')";
border: 1px solid #D5D5D5;
border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
} }
.portlet-header .ui-icon { .widget-header h3 {
float: right; padding-left: 7px;
margin: 7px 0;
display: inline-block;
font-size: 14px;
color: #555;
line-height: 18px;
} }
.portlet-content {
padding: 0.4em; .widget-header [class^="icon-"], .widget-header [class*=" icon-"] {
overflow: hidden; display: inline-block;
margin: -2px 0 0 13px;
color: #555;
vertical-align: middle;
} }
.portlet-content li{ .widget-content {
padding: 20px 15px 15px 13px;
background: #FFF;
border: 1px solid #D5D5D5;
border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
}
.widget-content li{
padding: 4px 0; padding: 4px 0;
} }
.widget-content ul {
list-style: none inside none;
margin: 0;
}
.widget-content hr {
margin: 5px 0;
}
.ui-sortable-placeholder { .ui-sortable-placeholder {
border: 1px dotted black; border: 2px dashed #555555;
visibility: visible !important; visibility: visible !important;
height: 50px !important; height: 50px !important;
} }
@ -42,7 +78,10 @@
#countdown_time { #countdown_time {
width: 40px; width: 40px;
height: 16px; }
#overlay_message_text {
width: 90%;
height: 12px;
} }
/* iframe */ /* iframe */
@ -53,7 +92,6 @@
-moz-transform: scale(0.25); -moz-transform: scale(0.25);
-webkit-transform: scale(0.25); -webkit-transform: scale(0.25);
-o-transform: scale(0.25); -o-transform: scale(0.25);
width: 1024px; width: 1024px;
height: 768px; height: 768px;
} }
@ -63,6 +101,7 @@
height: 192px;/*230px;*/ height: 192px;/*230px;*/
position: relative; position: relative;
overflow: hidden; overflow: hidden;
border: 1px solid #D5D5D5;
} }
#iframeoverlay { #iframeoverlay {
@ -106,6 +145,3 @@ a.overlay div {
a.overlay.active div { a.overlay.active div {
background-image: url(../images/icons/accept.png); background-image: url(../images/icons/accept.png);
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1,286 +0,0 @@
/*
* jQuery UI CSS Framework 1.8.18
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
/*
* jQuery UI CSS Framework 1.8.18
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/?tr=ffDefault=Helvetica,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cb842e&bgTextureHeader=02_glass.png&bgImgOpacityHeader=25&borderColorHeader=d49768&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=f4f0ec&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=100&borderColorContent=e0cfc2&fcContent=1e1b1d&iconColorContent=c47a23&bgColorDefault=ede4d4&bgTextureDefault=02_glass.png&bgImgOpacityDefault=70&borderColorDefault=cdc3b7&fcDefault=3f3731&iconColorDefault=f08000&bgColorHover=f5f0e5&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=f5ad66&fcHover=a46313&iconColorHover=f08000&bgColorActive=f4f0ec&bgTextureActive=04_highlight_hard.png&bgImgOpacityActive=100&borderColorActive=e0cfc2&fcActive=b85700&iconColorActive=f35f07&bgColorHighlight=f5f5b5&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=75&borderColorHighlight=d9bb73&fcHighlight=060200&iconColorHighlight=cb672b&bgColorError=fee4bd&bgTextureError=04_highlight_hard.png&bgImgOpacityError=65&borderColorError=f8893f&fcError=592003&iconColorError=ff7519&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=75&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=75&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
*/
/* Component containers
----------------------------------*/
.ui-widget { font-size: 1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-size: 1em; }
.ui-widget-content { border: 1px solid #e0cfc2; background: #f4f0ec url(images/ui-bg_inset-soft_100_f4f0ec_1x100.png) 50% bottom repeat-x; color: #1e1b1d; }
.ui-widget-header { border: 1px solid #d49768; background: #cb842e url(images/ui-bg_glass_25_cb842e_1x400.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
.ui-widget-header a { color: #ffffff; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cdc3b7; background: #ede4d4 url(images/ui-bg_glass_70_ede4d4_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #3f3731; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #3f3731; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #f5ad66; background: #f5f0e5 url(images/ui-bg_glass_100_f5f0e5_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #a46313; }
.ui-state-hover a, .ui-state-hover a:hover { color: #a46313; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #e0cfc2; background: #f4f0ec url(images/ui-bg_highlight-hard_100_f4f0ec_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #b85700; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #b85700; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #d9bb73; background: #f5f5b5 url(images/ui-bg_highlight-hard_75_f5f5b5_1x100.png) 50% top repeat-x; color: #060200; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #060200; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #f8893f; background: #fee4bd url(images/ui-bg_highlight-hard_65_fee4bd_1x100.png) 50% top repeat-x; color: #592003; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #592003; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #592003; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_c47a23_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_c47a23_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_f08000_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_f08000_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_f35f07_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_cb672b_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ff7519_256x240.png); }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
/* Overlays */
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_75_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_75_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }

View File

@ -8,9 +8,9 @@
<head> <head>
<link type="text/css" rel="stylesheet" href="{% static 'styles/projector.css' %}"> <link type="text/css" rel="stylesheet" href="{% static 'styles/projector.css' %}">
<link rel="shortcut icon" href="{% static 'images/favicon.png' %}" type="image/png" /> <link rel="shortcut icon" href="{% static 'images/favicon.png' %}" type="image/png" />
<script type="text/javascript" src="{% static 'javascript/jquery.js' %}"></script> <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" src="{% static 'javascript/projector.js' %}"></script>
<title>{% block title %} {% get_config 'event_name' %} {% endblock %}</title> <title>XX{% block title %} {% get_config 'event_name' %} {% endblock %}</title>
{% block header %} {% block header %}
{% endblock %} {% endblock %}
</head> </head>

View File

@ -1,26 +0,0 @@
{% extends "base.html" %}
{% load tags %}
{% load i18n %}
{% load staticfiles %}
{% block title %}{{ block.super}} {% trans 'Dashboard' %} {% endblock %}
{% block submenu %}
{% url 'dashboard' as url_dashboard %}
{% url 'projector_select_widgets' as url_select_widget %}
<h4 class="sectiontitle">{% trans "Dashboard" %}</h4>
<ul>
<li{% if request.path == url_dashboard %} class="selected"{% endif %}>
<a href="{% url 'dashboard' %}">{% trans 'Overview' %}</a>
</li>
<li{% if request.path == url_select_widget %} class="selected"{% endif %}>
<a href="{{ url_select_widget }}">{% trans 'Select widgets' %}</a>
</li>
{% if perms.projector.can_see_projector %}
<li>
<a href="{% url 'projector_show' %}"><img src="{% static 'images/icons/projector.png' %}"> {% trans 'Projector view' %}</a>
</li>
{% endif %}
</ul>
{% endblock %}

View File

@ -3,17 +3,22 @@
{% load tags %} {% load tags %}
<span class="projector_countdown_spinbox"> <span class="projector_countdown_spinbox">
<input class="projector_countdown_spinval" id="countdown_time" name="countdown_time" type="number" min="0" value="{{ countdown_time }}"> {% trans "s" context "seconds" %} <div class="form-inline" style="display:inline-block;">
<a id="countdown_set" class="countdown_control" href="{% url 'countdown_set_default' %}" title="{% trans 'Save as default' %}"> <div class="input-append">
<img src="{% static 'images/icons/document-save.png' %}" alt="{% url 'countdown_set_default' %}"> <input class="projector_countdown_spinval" id="countdown_time" name="countdown_time" type="number" min="0" value="{{ countdown_time }}">
</a> <span class="add-on">{% trans "s" context "seconds" %}</span>
<a id="countdown_reset" class="countdown_control" href="{% url 'countdown_reset' %}" title="{% trans 'Reset countdown' %}"> </div>
<img src="{% static 'images/icons/skip-backward.png' %}" alt="{% trans 'Reset countdown' %}"> <a id="countdown_set" class="countdown_control btn btn-small" href="{% url 'countdown_set_default' %}" title="{% trans 'Save time as default' %}">
</a> <i class="icon-refresh"></i>
<a id="countdown_play" class="countdown_control" href="{% url 'countdown_start' %}" title="{% trans 'Start countdown' %}"{% if countdown_state == 'active' %} style="display:none"{% endif %}> </a>
<img src="{% static 'images/icons/play.png' %}" alt="{% url 'countdown_start' %}"> <a id="countdown_reset" class="countdown_control btn btn-small" href="{% url 'countdown_reset' %}" title="{% trans 'Reset countdown' %}">
</a> <i class="icon-fast-backward"></i>
<a id="countdown_stop" class="countdown_control" href="{% url 'countdown_stop' %}" title="{% trans 'Stop countdown' %}"{% if countdown_state == 'inactive' or countdown_state == 'paused' or countdown_state == 'expired' %} style="display:none"{% endif %}> </a>
<img src="{% static 'images/icons/pause.png' %}" alt="{% url 'countdown_stop' %}"> <a id="countdown_play" class="countdown_control btn btn-small" href="{% url 'countdown_start' %}" title="{% trans 'Start countdown' %}"{% if countdown_state == 'active' %} style="display:none"{% endif %}>
</a> <i class="icon-play"></i>
</a>
<a id="countdown_stop" class="countdown_control btn btn-small" href="{% url 'countdown_stop' %}" title="{% trans 'Stop countdown' %}"{% if countdown_state == 'inactive' or countdown_state == 'paused' or countdown_state == 'expired' %} style="display:none"{% endif %}>
<i class="icon-pause"></i>
</a>
</div>
</span> </span>

View File

@ -2,14 +2,14 @@
{% load i18n %} {% load i18n %}
{% load tags %} {% load tags %}
<form id="overlay_message" action="{% url 'projector_overlay_message' %}" method="post" style="display:inline">{% csrf_token %} <form id="overlay_message" action="{% url 'projector_overlay_message' %}" method="post" style="display:inline-block;">{% csrf_token %}
<input id="overlay_message_text" name='message_text' type='text' style='width: 40%' value="{% get_config 'projector_message' %}"> <div class="input-append">
<button type="submit" class="button" name='message'> <input id="overlay_message_text" name='message_text' type='text' value="{% get_config 'projector_message' %}">
<span class="icon ok">{% trans 'Apply' %}</span> <button type="submit" class="btn btn-mini btn-primary" name="message" title="{% trans 'Apply' %}">
</button> <i class="icon-ok icon-white"></i>
<button type="submit" </button>
class="button" style="padding:4px 0;" name='message-clean' title="{% trans 'Clean message' %}"> <button type="submit" class="btn btn-mini" name='message-clean' title="{% trans 'Clean message' %}">
<span class="icon clear">&nbsp;</span> <i class="icon-remove"></i>
</button> </button>
</div>
</form> </form>

View File

@ -2,14 +2,13 @@
{% load i18n %} {% load i18n %}
{% load tags %} {% load tags %}
<ul style="line-height: 180%"> <ul style="line-height: 180%">
<li class="{% if welcomepage_is_active %}activeline{% endif %}"> <li class="{% if welcomepage_is_active %}activeline{% endif %}">
<a href="{% url 'projector_activate_welcomepage' %}" class="activate_link {% if welcomepage_is_active %}active{% endif %}"> <a href="{% url 'projector_activate_welcomepage' %}" class="activate_link btn {% if welcomepage_is_active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<div></div> <i class="icon-facetime-video {% if welcomepage_is_active %}icon-white{% endif %}"></i>
</a> </a>&nbsp;
<a href="{% url 'projctor_preview_welcomepage' %}" title="{% trans 'Preview' %}" class="icon preview right"> <a href="{% url 'projctor_preview_welcomepage' %}" title="{% trans 'Preview' %}" class="btn btn-mini right">
<span></span> <i class="icon-search"></i>
</a> </a>
{% trans 'Welcome Page' %} {% trans 'Welcome Page' %}
</li> </li>
@ -18,28 +17,26 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for slide in slides %} {% for slide in slides %}
<li class="{% if slide.active %}activeline{% endif %}"> <li class="{% if slide.active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' slide.sid %}" class="activate_link {% if slide.active %}active{% endif %}"> <a href="{% url 'projector_activate_slide' slide.sid %}" class="activate_link btn {% if slide.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}">
<div></div> <i class="icon-facetime-video {% if slide.active %}icon-white{% endif %}"></i>
</a> </a>&nbsp;
<a href="{% url 'customslide_delete' slide.id %}" title="{% trans 'Delete' %}" class="icon delete right">
<span></span>
</a>
<a href="{% url 'customslide_edit' slide.id %}" title="{% trans 'Edit' %}" class="icon edit right">
<span></span>
</a>
<a href="{% url 'projctor_preview_slide' slide.sid %}" title="{% trans 'Preview' %}" class="icon preview right">
<span></span>
</a>
<a href="{% url 'customslide_edit' slide.id %}">{{ slide }}</a> <a href="{% url 'customslide_edit' slide.id %}">{{ slide }}</a>
<a href="{% url 'customslide_delete' slide.id %}" title="{% trans 'Delete' %}" class="btn btn-mini right">
<i class="icon-remove"></i>
</a>
<a href="{% url 'customslide_edit' slide.id %}" title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i>
</a>
<a href="{% url 'projctor_preview_slide' slide.sid %}" title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i>
</a>
</li> </li>
{% empty %} {% empty %}
<li>{% trans 'No items available.' %}</li> <li>{% trans 'No items available.' %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
<a href='{% url "customslide_new" %}'> <p style="line-height: 280%">
<button class="button" type="button" onclick="window.location='{% url 'customslide_new' %}'"> <a href="{% url 'customslide_new' %}" class="btn btn-mini right">
<span class="icon add">{% trans 'New slide' %}</span> <i class="icon-plus"></i>{% trans 'New' %}
</button>
</a> </a>
</p>

View File

@ -1,27 +1,35 @@
{% extends "projector/base_projector.html" %} {% extends "base.html" %}
{% load tags %} {% load tags %}
{% load i18n %} {% load i18n %}
{% load staticfiles %} {% load staticfiles %}
{% block header %} {% block header %}
<link type="text/css" href="{% static 'styles/humanity/jquery-ui-1.8.18.custom.css' %}" rel="stylesheet" />
<link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/dashboard.css' %}" /> <link type="text/css" rel="stylesheet" media="all" href="{% static 'styles/dashboard.css' %}" />
<script type="text/javascript" src="{% static 'javascript/jquery-ui-1.8.18.custom.min.js' %}"></script> {% endblock %}
{% block javascript %}
<script type="text/javascript" src="{% static 'javascript/jquery-ui.min.js' %}"></script>
<script type="text/javascript" src="{% static 'javascript/dashboard.js' %}"></script> <script type="text/javascript" src="{% static 'javascript/dashboard.js' %}"></script>
<script type="text/javascript" src="{% static 'javascript/jquery.cookie.js' %}"></script> <script type="text/javascript" src="{% static 'javascript/jquery.cookie.js' %}"></script>
<script type="text/javascript" src="{% static 'javascript/jquery.form.js' %}"></script> <script type="text/javascript" src="{% static 'javascript/jquery.form.js' %}"></script>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<h1>{% trans 'Dashboard' %}</h1> <h1>{% trans 'Dashboard' %}
<small class="pull-right">
<a href="{% url 'projector_select_widgets' %}" class="btn btn-mini" rel="tooltip" data-original-title="{% trans 'Manage widgets' %}"><i class="icon-th-large"></i> {% trans 'Widgets' %}</a>
</small>
</h1>
<div class="column" id="col1"> <div class="column" id="col1">
{% for name, widget in widgets.items %} {% for name, widget in widgets.items %}
{% if widget.default_column == 1 %} {% if widget.default_column == 1 %}
<div class="portlet" id="portlet_{{ widget.get_name }}"> <div class="widget" id="widget_{{ widget.get_name }}">
<div class="portlet-header">{% trans widget.get_title %}</div> <div class="widget-header">
<div class="portlet-content"> <i class="{% if widget %}icon-{{widget.name}}{% else %}icon-star{% endif %}"></i>
<h3>{% trans widget.get_title %}</h3>
</div>
<div class="widget-content">
{{ widget.html }} {{ widget.html }}
</div> </div>
</div> </div>
@ -32,9 +40,11 @@
<div class="column" id="col2"> <div class="column" id="col2">
{% for name, widget in widgets.items %} {% for name, widget in widgets.items %}
{% if widget.default_column == 2 %} {% if widget.default_column == 2 %}
<div class="portlet" id="portlet_{{ widget.get_name }}"> <div class="widget" id="widget_{{ widget.get_name }}">
<div class="portlet-header">{% trans widget.get_title %}</div> <div class="widget-header"><i class="{% if widget %}icon-{{widget.name}}{% else %}icon-star{% endif %}"></i>
<div class="portlet-content"> <h3>{% trans widget.get_title %}<h3>
</div>
<div class="widget-content">
{{ widget.html }} {{ widget.html }}
</div> </div>
</div> </div>

View File

@ -2,35 +2,34 @@
{% load tags %} {% load tags %}
{% load staticfiles %} {% load staticfiles %}
<!-- projector control buttons --> <!-- projector control buttons -->
{% if perms.projector.can_manage_projector %} {% if perms.projector.can_manage_projector %}
<div style="float: right;"> <div style="float: right;">
<p> <p>
<a class="projector_edit" href="{% url 'projector_bigger' %}" title="{% trans 'Zoom in' %}"> <a class="projector_edit btn btn-mini" href="{% url 'projector_bigger' %}" title="{% trans 'Zoom in' %}">
<img src="{% static 'images/icons/zoom-in.png' %}" /> <i class="icon-zoom-in"></i>
</a><br> </a><br>
<a class="projector_edit" href="{% url 'projector_smaller' %}" title="{% trans 'Zoom out' %}"> <a class="projector_edit btn btn-mini" href="{% url 'projector_smaller' %}" title="{% trans 'Zoom out' %}">
<img src="{% static 'images/icons/zoom-out.png' %}" /> <i class="icon-zoom-out"></i>
</a> </a>
</p> </p>
<p> <p>
<a class="projector_edit" href="{% url 'projector_up' %}" title="{% trans 'Scroll text up' %}"> <a class="projector_edit btn btn-mini" href="{% url 'projector_up' %}" title="{% trans 'Scroll text up' %}">
<img src="{% static 'images/icons/go-up.png' %}" /> <i class="icon-arrow-up"></i>
</a><br> </a><br>
<a class="projector_edit" href="{% url 'projector_down' %}" title="{% trans 'Scroll text down' %}"> <a class="projector_edit btn btn-mini" href="{% url 'projector_down' %}" title="{% trans 'Scroll text down' %}">
<img src="{% static 'images/icons/go-down.png' %}" /> <i class="icon-arrow-down"></i>
</a> </a>
</p> </p>
<p> <p>
<a class="projector_edit" href="{% url 'projector_clean' %}" title="{% trans 'Reset projector view' %}"> <a class="projector_edit btn btn-mini" href="{% url 'projector_clean' %}" title="{% trans 'Reset projector view' %}">
<img src="{% static 'images/icons/view-reset.png' %}" /> <i class="icon-resize-small"></i>
</a> </a>
</p> </p>
</div> </div>
{% endif %} {% endif %}
<!-- projector view --> <!-- projector live view -->
<a href="{% url 'projector_show' %}" target="_blank"> <a href="{% url 'projector_show' %}" target="_blank">
<div id="iframewrapper"> <div id="iframewrapper">
<iframe id="iframe" src="{% url 'projector_show' %}" frameborder="0"></iframe> <iframe id="iframe" src="{% url 'projector_show' %}" frameborder="0"></iframe>

View File

@ -1,4 +1,4 @@
{% extends "projector/base_projector.html" %} {% extends "base.html" %}
{% load tags %} {% load tags %}
{% load i18n %} {% load i18n %}
@ -6,19 +6,16 @@
{% block title %}{{ block.super }} {% trans "Custom slide" %}{% endblock %} {% block title %}{{ block.super }} {% trans "Custom slide" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans 'Custom slide' %}</h1> <h1>{% trans 'Custom slide' %}
<small class="pull-right">
<a href="{% url 'dashboard' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
</small>
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
{{ form.as_p }} {% include "form.html" %}
<button class="button" type="submit"> <p>
<span class="icon ok">{% trans 'Save' %}</span> {% include "formbuttons_saveapply.html" %}
</button> </p>
<button class="button" type="submit" name="apply"> <small>* {% trans "required" %}</small>
<span class="icon apply">{% trans 'Apply' %}</span>
</button>
<a href='{% url "dashboard" %}'>
<button class="button" type="button" onclick="window.location='{% url 'dashboard' %}'">
<span class="icon cancel">{% trans 'Cancel' %}</span>
</button>
</a>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -4,19 +4,21 @@
<ul> <ul>
{% for overlay in overlays %} {% for overlay in overlays %}
<li> <li>
<a id="{{ overlay.def_name }}_inactive" href="{% url 'projector_overlay_activate' overlay.def_name %}" class="overlay"{% if overlay.active %} style="display:none"{% endif %}> <a id="{{ overlay.def_name }}"
<div></div> href="{% if overlay.active %}{% url 'projector_overlay_deactivate' overlay.def_name %}{% else %}{% url 'projector_overlay_activate' overlay.def_name %}{% endif %}"
</a> class="overlay btn btn-mini">
<a id="{{ overlay.def_name }}_active" href="{% url 'projector_overlay_deactivate' overlay.def_name %}" class="overlay active"{% if not overlay.active %} style="display:none"{% endif %}> <i class="{% if overlay.active %}icon-checked-new{% else %}icon-unchecked-new{% endif %}"></i>
<div></div>
</a> </a>
{{ overlay }}:
{# TODO: Call the html via overlay.html #} {# TODO: Call the html via overlay.html #}
{% if overlay.def_name == "Countdown" %} {% if overlay.def_name == "Countdown" %}
<p>{{ overlay }}:<br>
{% include 'projector/control_countdown.html' %} {% include 'projector/control_countdown.html' %}
</p>
{% endif %} {% endif %}
{% if overlay.def_name == "Message" %} {% if overlay.def_name == "Message" %}
{{ overlay }}:<br>
{% include 'projector/control_overlay_message.html' %} {% include 'projector/control_overlay_message.html' %}
{% endif %} {% endif %}
</li> </li>

View File

@ -1,25 +1,31 @@
{% extends "projector/base_projector.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% block title %}{{ block.super }} {% trans 'Select widgets' %}{% endblock %} {% block title %}{{ block.super }} {% trans 'Select widgets' %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans 'Select widgets' %}</h1> <h1>{% trans 'Select widgets' %}
<small class="pull-right">
<a href="{% url 'dashboard' %}" class="btn btn-mini"><i class="icon-chevron-left"></i> {% trans "Back to overview" %}</a>
</small>
</h1>
<form action="" method="post">{% csrf_token %} <form action="" method="post">{% csrf_token %}
<ul> <ul class="unstyled">
{% for widget_name, widget in widgets.items %} {% for widget_name, widget in widgets.items %}
<li> <li>
{{ widget.form.widget }} {{ widget }} <label class="checkbox">
{{ widget.form.widget }} {{ widget }}
</label>
</li> </li>
{% empty %} {% empty %}
<li>{% trans 'No widgets available' %}</li> <li>{% trans 'No widgets available' %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
<p> <p>
<button class="button" type="submit"> <button class="btn btn-primary" type="submit">
<span class="icon ok">{% trans 'Save' %}</span> {% trans 'Save' %}
</button> </button>
</p> </p>
</form> </form>

View File

@ -369,6 +369,7 @@ def register_tab(request):
selected = request.path.startswith('/projector/') selected = request.path.startswith('/projector/')
return Tab( return Tab(
title=_('Dashboard'), title=_('Dashboard'),
app='dashboard',
url=reverse('dashboard'), url=reverse('dashboard'),
permission=request.user.has_perm('projector.can_see_dashboard'), permission=request.user.has_perm('projector.can_see_dashboard'),
selected=selected, selected=selected,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 268 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

Before

Width:  |  Height:  |  Size: 976 B

After

Width:  |  Height:  |  Size: 976 B

View File

Before

Width:  |  Height:  |  Size: 979 B

After

Width:  |  Height:  |  Size: 979 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More