Skip to content
Snippets Groups Projects
Commit 2a2712be authored by Samuel GAIST's avatar Samuel GAIST Committed by Flavio TARSETTI
Browse files

[experiments][templatetags] Pre-commit cleanup

parent f23300c2
No related branches found
No related tags found
2 merge requests!353Cleanup experiments,!342Django 3 migration
...@@ -26,50 +26,40 @@ ...@@ -26,50 +26,40 @@
############################################################################### ###############################################################################
import simplejson as json
from django import template from django import template
from django.conf import settings from django.conf import settings
from django.db.models import Count
from django.db.models import Q from django.db.models import Q
import simplejson as json
from ..models import Result
from ...plotters.models import Plotter from ...plotters.models import Plotter
from ..models import Result
register = template.Library() register = template.Library()
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/panels/table.html', takes_context=True) @register.inclusion_tag("experiments/panels/table.html", takes_context=True)
def experiment_table(context, objects, owner, id): def experiment_table(context, objects, owner, id):
return dict( return dict(request=context["request"], objects=objects, owner=owner, panel_id=id,)
request=context['request'],
objects=objects,
owner=owner,
panel_id=id,
)
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/panels/breadcrumb.html', takes_context=True) @register.inclusion_tag("experiments/panels/breadcrumb.html", takes_context=True)
def experiment_breadcrumb(context, obj): def experiment_breadcrumb(context, obj):
return dict( return dict(request=context["request"], object=obj,)
request=context['request'],
object=obj,
)
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/panels/filter_script.html') @register.inclusion_tag("experiments/panels/filter_script.html")
def filter_script(panel_id, text_filter_id, attestation_filter_id, privacy_filter_id, status_filter_id): def filter_script(
panel_id, text_filter_id, attestation_filter_id, privacy_filter_id, status_filter_id
):
return dict( return dict(
panel_id=panel_id, panel_id=panel_id,
text_filter_id=text_filter_id, text_filter_id=text_filter_id,
...@@ -79,15 +69,13 @@ def filter_script(panel_id, text_filter_id, attestation_filter_id, privacy_filte ...@@ -79,15 +69,13 @@ def filter_script(panel_id, text_filter_id, attestation_filter_id, privacy_filte
) )
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/panels/report_script.html', @register.inclusion_tag("experiments/panels/report_script.html", takes_context=True)
takes_context=True) def report_script(context, panel_id, master_checkbox_id, checkbox_class, form_id):
def report_script(context, panel_id, master_checkbox_id, checkbox_class,
form_id):
return dict( return dict(
request=context['request'], request=context["request"],
panel_id=panel_id, panel_id=panel_id,
master_checkbox_id=master_checkbox_id, master_checkbox_id=master_checkbox_id,
checkbox_class=checkbox_class, checkbox_class=checkbox_class,
...@@ -95,34 +83,28 @@ def report_script(context, panel_id, master_checkbox_id, checkbox_class, ...@@ -95,34 +83,28 @@ def report_script(context, panel_id, master_checkbox_id, checkbox_class,
) )
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/panels/execution_infos.html') @register.inclusion_tag("experiments/panels/execution_infos.html")
def experiment_execution_infos(id): def experiment_execution_infos(id):
return dict( return dict(panel_id=id, URL_PREFIX=settings.URL_PREFIX,)
panel_id=id,
URL_PREFIX=settings.URL_PREFIX,
)
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/dialogs/algorithm_mapping.html') @register.inclusion_tag("experiments/dialogs/algorithm_mapping.html")
def algorithm_mapping(id): def algorithm_mapping(id):
return dict( return dict(dialog_id=id, URL_PREFIX=settings.URL_PREFIX,)
dialog_id=id,
URL_PREFIX=settings.URL_PREFIX,
)
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/panels/actions.html', takes_context=True) @register.inclusion_tag("experiments/panels/actions.html", takes_context=True)
def experiment_actions(context, object, display_count): def experiment_actions(context, object, display_count):
'''Composes the action buttons for a particular experiment """Composes the action buttons for a particular experiment
This panel primarily exists for showing action buttons for a given This panel primarily exists for showing action buttons for a given
experiment taking into consideration it is being displayed for a given experiment taking into consideration it is being displayed for a given
...@@ -135,59 +117,66 @@ def experiment_actions(context, object, display_count): ...@@ -135,59 +117,66 @@ def experiment_actions(context, object, display_count):
display_count (bool): If the set of buttons should include one with the display_count (bool): If the set of buttons should include one with the
number of forkes based on this experiment. number of forkes based on this experiment.
''' """
return dict( return dict(request=context["request"], object=object, display_count=display_count,)
request=context['request'],
object=object,
display_count=display_count,
)
@register.inclusion_tag('experiments/panels/sharing.html', takes_context=True) @register.inclusion_tag("experiments/panels/sharing.html", takes_context=True)
def experiment_sharing(context, obj): def experiment_sharing(context, obj):
'''Composes the current sharing properties and a form to change them """Composes the current sharing properties and a form to change them
Parameters: Parameters:
object (Toolchain): The experiment concerned for which the buttons will object (Toolchain): The experiment concerned for which the buttons will
be drawn. be drawn.
''' """
return { return {
'request': context['request'], "request": context["request"],
'object': obj, "object": obj,
'users': context['users'], "users": context["users"],
'teams': context['teams'], "teams": context["teams"],
} }
#-------------------------------------------------- # --------------------------------------------------
@register.simple_tag @register.simple_tag
def experiment_list_of_referenced_formats(experiment): def experiment_list_of_referenced_formats(experiment):
dataformats = filter(lambda x: x.author == experiment.author, experiment.all_needed_dataformats()) dataformats = filter(
lambda x: x.author == experiment.author, experiment.all_needed_dataformats()
)
return "[%s]" % ",".join(
map(
lambda x: '{ "name": "%s", "accessibility": "%s" }'
% (x.fullname(), x.get_sharing_display().lower()),
dataformats,
)
)
return '[%s]' % ','.join(map(lambda x: '{ "name": "%s", "accessibility": "%s" }' % (x.fullname(), x.get_sharing_display().lower()),
dataformats))
# --------------------------------------------------
#--------------------------------------------------
@register.simple_tag @register.simple_tag
def experiment_list_of_referenced_algorithms(experiment, user): def experiment_list_of_referenced_algorithms(experiment, user):
algorithms = filter(lambda x: x.author == experiment.author, experiment.referenced_algorithms.iterator()) algorithms = filter(
lambda x: x.author == experiment.author,
experiment.referenced_algorithms.iterator(),
)
result = [] result = []
for algorithm in algorithms: for algorithm in algorithms:
(has_access, open_source, accessibility) = algorithm.accessibility_for(user) (has_access, open_source, accessibility) = algorithm.accessibility_for(user)
if not(has_access): if not (has_access):
continue continue
entry = { entry = {
'name': algorithm.fullname(), "name": algorithm.fullname(),
'accessibility': accessibility, "accessibility": accessibility,
'opensource': open_source, "opensource": open_source,
} }
result.append(entry) result.append(entry)
...@@ -195,10 +184,10 @@ def experiment_list_of_referenced_algorithms(experiment, user): ...@@ -195,10 +184,10 @@ def experiment_list_of_referenced_algorithms(experiment, user):
return json.dumps(result) return json.dumps(result)
#-------------------------------------------------- # --------------------------------------------------
@register.inclusion_tag('experiments/panels/results.html') @register.inclusion_tag("experiments/panels/results.html")
def experiment_results(panel_id, experiment): def experiment_results(panel_id, experiment):
"""Called to display the experiment result panel. """Called to display the experiment result panel.
...@@ -209,21 +198,25 @@ def experiment_results(panel_id, experiment): ...@@ -209,21 +198,25 @@ def experiment_results(panel_id, experiment):
# create doubles of analyzer -> result pairs # create doubles of analyzer -> result pairs
analyzers = experiment.blocks.filter(analyzer=True) analyzers = experiment.blocks.filter(analyzer=True)
contents = [(k, k.results.order_by('type', 'name')) for k in analyzers] contents = [(k, k.results.order_by("type", "name")) for k in analyzers]
# calculates plotter/parameter associations for the required types # calculates plotter/parameter associations for the required types
formats = [k.type for a in analyzers for k in a.results.exclude(type__in=Result.SIMPLE_TYPE_NAMES)] formats = [
k.type
for a in analyzers
for k in a.results.exclude(type__in=Result.SIMPLE_TYPE_NAMES)
]
# get capable plotters and parameters associated # get capable plotters and parameters associated
plotting = dict([(k, Plotter.objects.for_strformat(k)) for k in formats]) plotting = dict([(k, Plotter.objects.for_strformat(k)) for k in formats])
json_plotting = dict() json_plotting = dict()
for fmt in plotting: for fmt in plotting:
plotter, param = plotting[fmt]['default'] plotter, param = plotting[fmt]["default"]
parameters = plotting[fmt]['options'][plotter] parameters = plotting[fmt]["options"][plotter]
json_plotting[fmt] = dict( json_plotting[fmt] = dict(
plotter=plotter.fullname(), plotter=plotter.fullname(),
parameter=param.fullname() if param else '', parameter=param.fullname() if param else "",
parameters=json.dumps([k.fullname() for k in parameters]), parameters=json.dumps([k.fullname() for k in parameters]),
) )
...@@ -235,7 +228,7 @@ def experiment_results(panel_id, experiment): ...@@ -235,7 +228,7 @@ def experiment_results(panel_id, experiment):
) )
#-------------------------------------------------- # --------------------------------------------------
@register.simple_tag @register.simple_tag
...@@ -246,55 +239,63 @@ def ordered_blocks(xp): ...@@ -246,55 +239,63 @@ def ordered_blocks(xp):
blocks = [] blocks = []
analyzers = [] analyzers = []
for key in block_order: for key in block_order:
b = xp.blocks.get(name=key) b = xp.blocks.get(name=key)
if b.analyzer: analyzers.append(b) if b.analyzer:
else: blocks.append(b) analyzers.append(b)
else:
blocks.append(b)
return blocks + analyzers return blocks + analyzers
#-------------------------------------------------- # --------------------------------------------------
@register.simple_tag(takes_context=True) @register.simple_tag(takes_context=True)
def visible_reports(context, xp): def visible_reports(context, xp):
"""Calculates the visible reports to an experiment""" """Calculates the visible reports to an experiment"""
from ...reports.models import Report from ...reports.models import Report
user = context['request'].user
user = context["request"].user
if user.is_anonymous: if user.is_anonymous:
return xp.reports.filter(status=Report.PUBLISHED) return xp.reports.filter(status=Report.PUBLISHED)
else: else:
return xp.reports.filter(Q(author=context['request'].user) | return xp.reports.filter(
Q(status=Report.PUBLISHED)) Q(author=context["request"].user) | Q(status=Report.PUBLISHED)
)
#-------------------------------------------------- # --------------------------------------------------
@register.simple_tag @register.simple_tag
def owner_algorithms(obj): def owner_algorithms(obj):
'''Calculates the user algorithms for a given experiment''' """Calculates the user algorithms for a given experiment"""
return obj.referenced_algorithms.filter(author=obj.author) return obj.referenced_algorithms.filter(author=obj.author)
@register.simple_tag @register.simple_tag
def owner_source_algorithms(obj): def owner_source_algorithms(obj):
'''Calculates the user algorithms in source code form for a given experiment''' """Calculates the user algorithms in source code form for a given experiment"""
return [ x for x in obj.referenced_algorithms.filter(author=obj.author) return [
if not x.is_binary() ] x
for x in obj.referenced_algorithms.filter(author=obj.author)
if not x.is_binary()
]
@register.simple_tag @register.simple_tag
def owner_binary_algorithms(obj): def owner_binary_algorithms(obj):
'''Calculates the user algorithms in binary form for a given experiment''' """Calculates the user algorithms in binary form for a given experiment"""
return [ x for x in obj.referenced_algorithms.filter(author=obj.author) return [
if x.is_binary() ] x for x in obj.referenced_algorithms.filter(author=obj.author) if x.is_binary()
]
@register.simple_tag @register.simple_tag
def owner_dataformats(obj): def owner_dataformats(obj):
'''Calculates the user dataformats and algorithms for a given experiment''' """Calculates the user dataformats and algorithms for a given experiment"""
return [k for k in obj.all_needed_dataformats() if k.author == obj.author] return [k for k in obj.all_needed_dataformats() if k.author == obj.author]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment