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 @@
###############################################################################
import simplejson as json
from django import template
from django.conf import settings
from django.db.models import Count
from django.db.models import Q
import simplejson as json
from ..models import Result
from ...plotters.models import Plotter
from ..models import Result
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):
return dict(
request=context['request'],
objects=objects,
owner=owner,
panel_id=id,
)
return dict(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):
return dict(
request=context['request'],
object=obj,
)
return dict(request=context["request"], object=obj,)
#--------------------------------------------------
# --------------------------------------------------
@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):
@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
):
return dict(
panel_id=panel_id,
text_filter_id=text_filter_id,
......@@ -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',
takes_context=True)
def report_script(context, panel_id, master_checkbox_id, checkbox_class,
form_id):
@register.inclusion_tag("experiments/panels/report_script.html", takes_context=True)
def report_script(context, panel_id, master_checkbox_id, checkbox_class, form_id):
return dict(
request=context['request'],
request=context["request"],
panel_id=panel_id,
master_checkbox_id=master_checkbox_id,
checkbox_class=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):
return dict(
panel_id=id,
URL_PREFIX=settings.URL_PREFIX,
)
return dict(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):
return dict(
dialog_id=id,
URL_PREFIX=settings.URL_PREFIX,
)
return dict(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):
'''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
experiment taking into consideration it is being displayed for a given
......@@ -135,59 +117,66 @@ def experiment_actions(context, object, display_count):
display_count (bool): If the set of buttons should include one with the
number of forkes based on this experiment.
'''
return dict(
request=context['request'],
object=object,
display_count=display_count,
)
"""
return dict(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):
'''Composes the current sharing properties and a form to change them
"""Composes the current sharing properties and a form to change them
Parameters:
object (Toolchain): The experiment concerned for which the buttons will
be drawn.
'''
"""
return {
'request': context['request'],
'object': obj,
'users': context['users'],
'teams': context['teams'],
"request": context["request"],
"object": obj,
"users": context["users"],
"teams": context["teams"],
}
#--------------------------------------------------
# --------------------------------------------------
@register.simple_tag
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
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 = []
for algorithm in algorithms:
(has_access, open_source, accessibility) = algorithm.accessibility_for(user)
if not(has_access):
if not (has_access):
continue
entry = {
'name': algorithm.fullname(),
'accessibility': accessibility,
'opensource': open_source,
"name": algorithm.fullname(),
"accessibility": accessibility,
"opensource": open_source,
}
result.append(entry)
......@@ -195,10 +184,10 @@ def experiment_list_of_referenced_algorithms(experiment, user):
return json.dumps(result)
#--------------------------------------------------
# --------------------------------------------------
@register.inclusion_tag('experiments/panels/results.html')
@register.inclusion_tag("experiments/panels/results.html")
def experiment_results(panel_id, experiment):
"""Called to display the experiment result panel.
......@@ -209,21 +198,25 @@ def experiment_results(panel_id, experiment):
# create doubles of analyzer -> result pairs
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
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
plotting = dict([(k, Plotter.objects.for_strformat(k)) for k in formats])
json_plotting = dict()
for fmt in plotting:
plotter, param = plotting[fmt]['default']
parameters = plotting[fmt]['options'][plotter]
plotter, param = plotting[fmt]["default"]
parameters = plotting[fmt]["options"][plotter]
json_plotting[fmt] = dict(
plotter=plotter.fullname(),
parameter=param.fullname() if param else '',
parameter=param.fullname() if param else "",
parameters=json.dumps([k.fullname() for k in parameters]),
)
......@@ -235,7 +228,7 @@ def experiment_results(panel_id, experiment):
)
#--------------------------------------------------
# --------------------------------------------------
@register.simple_tag
......@@ -246,55 +239,63 @@ def ordered_blocks(xp):
blocks = []
analyzers = []
for key in block_order:
b = xp.blocks.get(name=key)
if b.analyzer: analyzers.append(b)
else: blocks.append(b)
b = xp.blocks.get(name=key)
if b.analyzer:
analyzers.append(b)
else:
blocks.append(b)
return blocks + analyzers
#--------------------------------------------------
# --------------------------------------------------
@register.simple_tag(takes_context=True)
def visible_reports(context, xp):
"""Calculates the visible reports to an experiment"""
from ...reports.models import Report
user = context['request'].user
user = context["request"].user
if user.is_anonymous:
return xp.reports.filter(status=Report.PUBLISHED)
else:
return xp.reports.filter(Q(author=context['request'].user) |
Q(status=Report.PUBLISHED))
return xp.reports.filter(
Q(author=context["request"].user) | Q(status=Report.PUBLISHED)
)
#--------------------------------------------------
# --------------------------------------------------
@register.simple_tag
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)
@register.simple_tag
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)
if not x.is_binary() ]
return [
x
for x in obj.referenced_algorithms.filter(author=obj.author)
if not x.is_binary()
]
@register.simple_tag
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)
if x.is_binary() ]
return [
x for x in obj.referenced_algorithms.filter(author=obj.author) if x.is_binary()
]
@register.simple_tag
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]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment