From be5a11448f448beb8ec34596f6a21ecdeca9fc3f Mon Sep 17 00:00:00 2001 From: Flavio Tarsetti <Flavio.Tarsetti@idiap.ch> Date: Fri, 3 Jun 2016 12:18:41 +0200 Subject: [PATCH] [plotters/ui/common] Multiple fixes: ** StoredContributionManager now delivers ordered json (according to database) => ordered Plotter parameters + Reports number added as action tabs for list + Plotter moved to System Resources --- beat/web/common/models.py | 3 ++- beat/web/plotters/templates/plotters/panels/actions.html | 6 ++++++ beat/web/plotters/templates/plotters/panels/table.html | 4 ---- beat/web/plotters/templates/plotters/view.html | 2 +- beat/web/plotters/templatetags/plotter_tags.py | 9 ++++++++- beat/web/ui/templatetags/ui_tags.py | 4 +--- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/beat/web/common/models.py b/beat/web/common/models.py index cf9ac7b15..99d3720a5 100644 --- a/beat/web/common/models.py +++ b/beat/web/common/models.py @@ -45,6 +45,7 @@ from .signals import shared import os import re import simplejson +from collections import OrderedDict #---------------------------------------------------------- @@ -634,7 +635,7 @@ def set_declaration(instance, value): def get_declaration(instance): - return simplejson.loads(storage.get_file_content(instance, 'declaration_file')) + return simplejson.loads(storage.get_file_content(instance, 'declaration_file'), object_pairs_hook=OrderedDict) def get_declaration_string(instance): diff --git a/beat/web/plotters/templates/plotters/panels/actions.html b/beat/web/plotters/templates/plotters/panels/actions.html index 6dcaf415d..3381aea68 100644 --- a/beat/web/plotters/templates/plotters/panels/actions.html +++ b/beat/web/plotters/templates/plotters/panels/actions.html @@ -23,6 +23,12 @@ <div class="btn-group btn-group-sm action-buttons pull-right"> + {% if display_count %} + <!-- Report count, works for all --> + {% visible_reports object as reports %} + <a class="btn btn-default btn-references" href="{{ object.get_absolute_url }}#reports" data-toggle="tooltip" data-placement="bottom" title="Reports using this plotter"><span class="badge">{{ reports.count }}</span></a> + {% endif %} + <!-- Edit, as admin --> {% if request.user.is_staff %} <a class="btn btn-default btn-edit" href="{% url 'admin:plotters_plotter_change' object.id %}" data-toggle="tooltip" data-placement="bottom" title="Edit as admin"><i class="fa fa-cogs fa-lg"></i></a> diff --git a/beat/web/plotters/templates/plotters/panels/table.html b/beat/web/plotters/templates/plotters/panels/table.html index 270291653..24a99db88 100644 --- a/beat/web/plotters/templates/plotters/panels/table.html +++ b/beat/web/plotters/templates/plotters/panels/table.html @@ -68,9 +68,7 @@ <th class="privacy"></th> <th class="date">Updated</th> <th>Name</th> - {% if request.user.is_staff %} <th class="actions">Actions</th> - {% endif %} </tr> </thead> <tbody> @@ -89,11 +87,9 @@ </td> <td class="date">{{ obj.creation_date|date }}</td> <td class="name"><a href="{{ obj.get_absolute_url }}" data-toggle="tooltip" data-placement="top" title="Click to view">{{ obj.fullname }}{% if obj.short_description %} <span class='help'>({{ obj.short_description }})</span>{% endif %}</a></td> - {% if request.user.is_staff %} <td class="actions"> {% plotter_actions obj True %} </td> - {% endif %} </tr> {% endfor %} </tbody> diff --git a/beat/web/plotters/templates/plotters/view.html b/beat/web/plotters/templates/plotters/view.html index d570e41f7..260400e04 100644 --- a/beat/web/plotters/templates/plotters/view.html +++ b/beat/web/plotters/templates/plotters/view.html @@ -91,7 +91,7 @@ {% if owner %} <li role="presentation"><a href="#sharing" role="tab" data-toggle="tab" aria-controls="sharing">Sharing</a></li> {% endif %} - <li role="presentation"><a href="#reports" role="tab" data-toggle="tab" aria-controls="reports">Reports<span class="badge">{{ reports.count }}</span></a></li> + <li role="presentation"><a href="#reports" role="tab" data-toggle="tab" aria-controls="reports">Reports <span class="badge">{{ reports.count }}</span></a></li> <li role="presentation"><a href="#history" role="tab" data-toggle="tab" aria-controls="history">History</a></li> </ul> diff --git a/beat/web/plotters/templatetags/plotter_tags.py b/beat/web/plotters/templatetags/plotter_tags.py index 1cad189f0..71f9ec97f 100644 --- a/beat/web/plotters/templatetags/plotter_tags.py +++ b/beat/web/plotters/templatetags/plotter_tags.py @@ -30,6 +30,7 @@ import random from django import template from django.conf import settings +from django.db.models import Q from ..models import Plotter @@ -144,7 +145,13 @@ def visible_plotters(context): def visible_reports(context, object): '''Calculates the visible experiments for a given plotter and requestor''' - return object.reports.for_user(context['request'].user, True) + from ...reports.models import Report + + if context['request'].user.is_anonymous(): + return object.reports.filter(Q(status=Report.PUBLISHED)) + else: + return object.reports.filter(Q(author=context['request'].user) | + Q(status=Report.PUBLISHED)) #---------------------------------------------------------------- diff --git a/beat/web/ui/templatetags/ui_tags.py b/beat/web/ui/templatetags/ui_tags.py index 0570c26ab..16d4d1eaf 100644 --- a/beat/web/ui/templatetags/ui_tags.py +++ b/beat/web/ui/templatetags/ui_tags.py @@ -58,7 +58,6 @@ def navbar(context): (False, ''), ('databases', 'databases:list'), ('environments', 'backend:list-environments'), - (False, ''), ('plotters', 'plotters:plotter-public-list'), #('plotterparameters', 'plotters:plotterparameter-public-list'), ], @@ -77,7 +76,6 @@ def navbar(context): (False, '', False), ('databases', 'databases:list', False), ('environments', 'backend:list-environments', False), - (False, '', False), ('plotters', 'plotters:plotter-list', True), #('plotterparameters', 'plotters:plotterparameter-list', True), ], @@ -161,11 +159,11 @@ def list_tabs(context, user, tab): ('reports', 'reports:' + name), ('searches', 'search:' + name), ('teams', 'teams:' + name), - ('plotters', 'plotters:plotter-' + name), ]), system_tabs=OrderedDict([ ('databases', 'databases:list'), ('environments', 'backend:list-environments'), + ('plotters', 'plotters:plotter-public-list'), ]), ) -- GitLab