From e5e7e1bcce52029efd03738ddb6ff23f959498b5 Mon Sep 17 00:00:00 2001 From: Emanuel Schuetze Date: Mon, 3 Jun 2013 16:01:16 +0200 Subject: [PATCH] Template improvements. Improved agenda and participants overview. --- openslides/agenda/signals.py | 6 +- .../agenda/static/styles/agenda_sort.css | 10 +++- .../agenda/templates/agenda/item_row.html | 55 +++++++++++-------- openslides/agenda/views.py | 1 + .../templates/participant/overview.html | 20 +++++-- openslides/static/javascript/utils.js | 16 +++++- openslides/utils/templatetags/tags.py | 4 +- 7 files changed, 73 insertions(+), 39 deletions(-) diff --git a/openslides/agenda/signals.py b/openslides/agenda/signals.py index b4286aa27..843bb239e 100644 --- a/openslides/agenda/signals.py +++ b/openslides/agenda/signals.py @@ -51,15 +51,15 @@ def setup_agenda_config_page(sender, **kwargs): validators=[validate_start_time, ], widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M'), required=False, - label=_('Begin of event'), - help_text=_('Input format: DD.MM.YYYY HH:MM'))) + label=ugettext_lazy('Begin of event'), + help_text=ugettext_lazy('Input format: DD.MM.YYYY HH:MM'))) agenda_show_last_speakers = ConfigVariable( name='agenda_show_last_speakers', default_value=1, form_field=forms.IntegerField( min_value=0, - label=_('Number of last speakers to be shown on the projector'))) + label=ugettext_lazy('Number of last speakers to be shown on the projector'))) extra_stylefiles = ['styles/timepicker.css', 'styles/jquery-ui/jquery-ui.custom.min.css'] extra_javascript = ['javascript/jquery-ui.custom.min.js', diff --git a/openslides/agenda/static/styles/agenda_sort.css b/openslides/agenda/static/styles/agenda_sort.css index 36d231b2f..fc2446b03 100644 --- a/openslides/agenda/static/styles/agenda_sort.css +++ b/openslides/agenda/static/styles/agenda_sort.css @@ -37,6 +37,9 @@ ol.agenda_list { filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ededed',GradientType=0 ); overflow: auto; } +.agenda_list li > div.activeline { + background: #bed4de !important; +} .agenda_list.sortable li > div { cursor: move; } @@ -52,13 +55,14 @@ ol.agenda_list { .agenda_list .openclose { width: 40px; float: left; min-height: 1px; } .agenda_list .duration { width: 92px; float: right; min-height: 1px; padding-left: 5px; } -.agenda_list .manage { width: 150px; float: right; min-height: 1px; padding-left: 5px; } +.agenda_list .manage { width: 200px; float: right; min-height: 1px; padding-left: 5px; } .agenda_list .title { float: left; } .agenda_list .optional { float: left; } -.agenda_list .opener_closer { float: left; margin-right: 10px; } +.agenda_list .opener_closer { float: left; margin-right: 10px; margin-left:-6px;} +.agenda_list .opener_closer .btn { padding: 0 2px; } .agenda_list .optional { float: right; width: 208px; padding-left: 8px;} -#menu-overview .manage { width: 150px; } +#menu-overview .manage { width: 200px; } #menu-overview .duration { width: 75px; } #menu-overview .optional { width: 200px; } diff --git a/openslides/agenda/templates/agenda/item_row.html b/openslides/agenda/templates/agenda/item_row.html index e8fb05dd4..ae973c19d 100644 --- a/openslides/agenda/templates/agenda/item_row.html +++ b/openslides/agenda/templates/agenda/item_row.html @@ -1,15 +1,15 @@ {% load i18n %} {% load tags %} -
+
{% if perms.agenda.can_manage_agenda or perms.projector.can_manage_projector %}
{% if perms.projector.can_manage_projector %} - + {% endif %} {% if perms.agenda.can_manage_agenda %} - + - + + + + {% if not node.is_leaf_node %} - - + + {% endif %} {% endif %} @@ -37,36 +44,36 @@ {% if perms.agenda.can_see_orga_items %}
{% if node.duration %} - {{ node.duration }}h {% if start and end %}{% endif %} + {{ node.duration }}h + {% if start and end %} + + + {% endif %} {% endif %}
{% endif %} {% if perms.agenda.can_manage_agenda %}
- {{ node.comment|first_line }} + {% if node.comment %} + {{ node.comment|first_line }} + + + + {% endif %}
{% endif %}
- - -
- -
- {% if perms.agenda.can_manage_agenda %} - - - - {% else %} - - - - {% endif %} + +
+ + + {% with form=node.weight_form %} {{ form.weight }} {{ form.self }} diff --git a/openslides/agenda/views.py b/openslides/agenda/views.py index 8642a8bec..3eb750143 100644 --- a/openslides/agenda/views.py +++ b/openslides/agenda/views.py @@ -83,6 +83,7 @@ class Overview(TemplateView): 'duration': duration, 'start': start, 'end': end, + 'summary': config['presentation_argument'] == 'summary', 'show_list': config['presentation_argument'] == 'show_list_of_speakers'}) return context diff --git a/openslides/participant/templates/participant/overview.html b/openslides/participant/templates/participant/overview.html index e277c1c9d..ebe77849e 100644 --- a/openslides/participant/templates/participant/overview.html +++ b/openslides/participant/templates/participant/overview.html @@ -46,8 +46,7 @@ {% trans "Present" %} {% trans "Title" %} - {% trans "First Name" %} - {% trans "Last Name" %} + {% trans "Name" %} {% trans "Structure level" %} {% trans "Group" %} {% trans "Committee" %} @@ -76,8 +75,13 @@ {% endif %} {{ user.title }} - {{ user.first_name }} - {{ user.last_name }} + + {% if 'participant_sort_users_by_first_name'|get_config %} + {{ user.first_name }} {{ user.last_name }} + {% else %} + {{ user.last_name }}, {{ user.first_name }} + {% endif %} + {{ user.structure_level }} {% for group in user.groups.all %} @@ -89,7 +93,13 @@ {{ user.committee }} {% if perms.participant.can_manage_participant %} - {{ user.comment|first_line }} + + {% if user.comment %} + + + + {% endif %} + {% if user.last_login > user.date_joined %} {{ user.last_login }} diff --git a/openslides/static/javascript/utils.js b/openslides/static/javascript/utils.js index 4737a7664..b6099bc4f 100644 --- a/openslides/static/javascript/utils.js +++ b/openslides/static/javascript/utils.js @@ -29,14 +29,19 @@ $(function () { success: function(data) { $('.activate_link').removeClass('btn-primary'); $('.activate_link i').removeClass('icon-white'); + $('tr').removeClass('activeline'); + $('div').removeClass('activeline'); + $('li').removeClass('activeline'); // is table line if ( link.parent().parent().parent().is("tr") ) { - $('tr').removeClass('activeline'); + link.parent().parent().parent().addClass('activeline'); + } + // is sortable list (agenda) + if ( link.parent().parent().parent().is("div") ) { link.parent().parent().parent().addClass('activeline'); } // is widget list item if ( link.parent().is("li") ) { - $('li').removeClass('activeline'); link.parent().addClass('activeline'); } link.addClass('btn-primary'); @@ -165,6 +170,13 @@ $(document).ready(function(){ $('.tooltip-bottom').tooltip({ placement: 'bottom' }); + //Popover + $(this).popover({ + selector: "a[rel=popover]", + placement: 'bottom', + html: true + }); + // Resize menu and content container function iconmenu(){ $('.leftmenu').removeClass('span2').addClass('lefticon').addClass('span1'); diff --git a/openslides/utils/templatetags/tags.py b/openslides/utils/templatetags/tags.py index 87c17e4e1..cb814067a 100644 --- a/openslides/utils/templatetags/tags.py +++ b/openslides/utils/templatetags/tags.py @@ -39,8 +39,8 @@ def first_line(text): lines = text.split('\n') except AttributeError: return '' - if len(lines) > 1 or len(lines[0]) > 40: + if len(lines) > 1 or len(lines[0]) > 30: s = "%s ..." else: s = "%s" - return s % lines[0][:40] + return s % lines[0][:30]