From 7b3ba6561ec81ddcd1dee0d16dca817e1c458b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Anjos?= <andre.anjos@idiap.ch> Date: Fri, 3 Jun 2016 14:18:51 +0200 Subject: [PATCH] Merge branch 'plotters' into 'master' [plotters/ui/common] Multiple fixes - [x] StoredContributionManager now delivers ordered json (according to database) => ordered Plotter parameters - [x] Ordered Plotter parameters - [x] Reports number added as action tabs for list - [x] Plotter moved to System Resources - [x] added space between Reports title and count See merge request !190 --- 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 a43a41083..66e680a07 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 #---------------------------------------------------------- @@ -635,7 +636,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 1fd42d26f..318b2788a 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