diff --git a/beat/web/common/models.py b/beat/web/common/models.py index a43a4108343b25a75b0510f73d94d6473d708772..66e680a071844d6d34f3280d3cfd6e300e104701 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 6dcaf415d6917da52334c5f21b4e01f6344e3138..3381aea68b35c59c77c95a45b08f917eedcf100a 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 270291653106d2bbd265604adb47289830a981e3..24a99db884d1aa0d95835f69433fc0d872bb7286 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 d570e41f79bb456cd972e90d88a36047faea0967..260400e042a0ada3e7317cf4e72aff0b86ad07ed 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 1cad189f0d179db13e6adf93f79d8c5edad58712..71f9ec97fd16b5f96606641d838aaa97daa622d1 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 1fd42d26f8a11688e397d5ef109238628766def2..318b2788a89eb4d51c7a7d508c2786fba129c8aa 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'), ]), )