diff --git a/epdb/views.py b/epdb/views.py index 387b461c..1c0b3d64 100644 --- a/epdb/views.py +++ b/epdb/views.py @@ -159,7 +159,8 @@ def _anonymous_or_real(request): return get_user_model().objects.get(username='anonymous') -def breadcrumbs(first_level_object=None, second_level_namespace=None, second_level_object=None) -> List[Dict[str, str]]: +def breadcrumbs(first_level_object=None, second_level_namespace=None, second_level_object=None, + third_level_namespace=None, third_level_object=None) -> List[Dict[str, str]]: bread = [ {'Home': s.SERVER_URL}, {'Package': s.SERVER_URL + '/package'}, @@ -173,6 +174,12 @@ def breadcrumbs(first_level_object=None, second_level_namespace=None, second_lev if second_level_object is not None: bread.append({second_level_object.name: second_level_object.url}) + if third_level_namespace is not None: + bread.append({f'{third_level_namespace}'.capitalize(): second_level_object.url + f'/{third_level_namespace}'}) + + if third_level_object is not None: + bread.append({third_level_object.name: third_level_object.url}) + return bread @@ -1432,6 +1439,16 @@ def package_pathway_edge(request, package_uuid, pathway_uuid, edge_uuid): svg_data = current_edge.as_svg return HttpResponse(svg_data, content_type="image/svg+xml") + context = get_base_context(request) + context['title'] = f'enviPath - {current_package.name} - {current_pathway.name} - {current_edge.edge_label.name}' + + context['meta']['current_package'] = current_package + context['object_type'] = 'reaction' + context['breadcrumbs'] = breadcrumbs(current_package, 'pathway', current_pathway, 'edge', current_edge) + context['edge'] = current_edge + + return render(request, 'objects/edge.html', context) + elif request.method == 'POST': if s.DEBUG: for k, v in request.POST.items(): diff --git a/templates/objects/edge.html b/templates/objects/edge.html index e69de29b..9a01ba61 100644 --- a/templates/objects/edge.html +++ b/templates/objects/edge.html @@ -0,0 +1,108 @@ +{% extends "framework.html" %} + +{% block content %} + + {% block action_modals %} +{# {% include "modals/objects/edit_edge_modal.html" %}#} +{# {% include "modals/objects/delete_edge_modal.html" %}#} + {% endblock action_modals %} + +
+
+
+ {{ edge.edge_label.name }} + +
+ + +
+

+ Description +

+
+
+
+ {{ edge.description }} +
+
+ + + +
+
+
+ {{ edge.edge_label.as_svg|safe }} +
+
+
+ + + +
+
+ {% for educt in edge.start_nodes.all %} + {{ educt.name }} + {% endfor %} + + {% for product in edge.end_nodes.all %} + {{ product.name }} + {% endfor %} +
+
+ + + +
+
+ {{ edge.edge_label.smirks }} +
+
+ + {% if edge.edge_label.rules.all %} + +
+

+ Rules +

+
+
+
+ {% for r in edge.edge_label.rules.all %} + {{ r.name }} + {% endfor %} +
+
+ {% endif %} + + +
+{% endblock content %}