forked from enviPath/enviPy
Add Edge Template (#33)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#33
This commit is contained in:
@ -159,7 +159,8 @@ def _anonymous_or_real(request):
|
|||||||
return get_user_model().objects.get(username='anonymous')
|
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 = [
|
bread = [
|
||||||
{'Home': s.SERVER_URL},
|
{'Home': s.SERVER_URL},
|
||||||
{'Package': s.SERVER_URL + '/package'},
|
{'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:
|
if second_level_object is not None:
|
||||||
bread.append({second_level_object.name: second_level_object.url})
|
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
|
return bread
|
||||||
|
|
||||||
|
|
||||||
@ -1432,6 +1439,16 @@ def package_pathway_edge(request, package_uuid, pathway_uuid, edge_uuid):
|
|||||||
svg_data = current_edge.as_svg
|
svg_data = current_edge.as_svg
|
||||||
return HttpResponse(svg_data, content_type="image/svg+xml")
|
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':
|
elif request.method == 'POST':
|
||||||
if s.DEBUG:
|
if s.DEBUG:
|
||||||
for k, v in request.POST.items():
|
for k, v in request.POST.items():
|
||||||
|
|||||||
@ -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 %}
|
||||||
|
|
||||||
|
<div class="panel-group" id="edge-detail">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
|
||||||
|
{{ edge.edge_label.name }}
|
||||||
|
<div id="actionsButton"
|
||||||
|
style="float: right;font-weight: normal;font-size: medium;position: relative; top: 50%; transform: translateY(-50%);z-index:100;display: none;"
|
||||||
|
class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"
|
||||||
|
aria-haspopup="true" aria-expanded="false"><span
|
||||||
|
class="glyphicon glyphicon-wrench"></span> Actions <span class="caret"></span><span
|
||||||
|
style="padding-right:1em"></span></a>
|
||||||
|
<ul id="actionsList" class="dropdown-menu">
|
||||||
|
{% block actions %}
|
||||||
|
{# {% include "actions/objects/edge.html" %}#}
|
||||||
|
{% endblock %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Description -->
|
||||||
|
<div class="panel panel-default panel-heading list-group-item" style="background-color:silver">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a id="edge-desc-link" data-toggle="collapse" data-parent="#edge-detail"
|
||||||
|
href="#edge-desc">Description</a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="edge-desc" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body list-group-item">
|
||||||
|
{{ edge.description }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Image -->
|
||||||
|
<div class="panel panel-default panel-heading list-group-item" style="background-color:silver">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a id="edge-image-link" data-toggle="collapse" data-parent="#edge-detail"
|
||||||
|
href="#edge-image">Image Representation</a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="edge-image" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body list-group-item">
|
||||||
|
<div id="image-div" align="center">
|
||||||
|
{{ edge.edge_label.as_svg|safe }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Reaction Description -->
|
||||||
|
<div class="panel panel-default panel-heading list-group-item" style="background-color:silver">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a id="edge-description-link" data-toggle="collapse" data-parent="#edge-description-detail"
|
||||||
|
href="#edge-description-smiles">Reaction Description</a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="edge-description-smiles" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body list-group-item">
|
||||||
|
{% for educt in edge.start_nodes.all %}
|
||||||
|
<a class="btn btn-default" href="{{ educt.url }}">{{ educt.name }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
<span class="glyphicon glyphicon-arrow-right" style="margin-left:5em;margin-right:5em;"
|
||||||
|
aria-hidden="true"></span>
|
||||||
|
{% for product in edge.end_nodes.all %}
|
||||||
|
<a class="btn btn-default" href="{{ product.url }}">{{ product.name }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SMIRKS -->
|
||||||
|
<div class="panel panel-default panel-heading list-group-item" style="background-color:silver">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a id="edge-smirks-link" data-toggle="collapse" data-parent="#edge-detail"
|
||||||
|
href="#edge-smirks">SMIRKS Representation</a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="edge-smirks" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body list-group-item">
|
||||||
|
{{ edge.edge_label.smirks }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if edge.edge_label.rules.all %}
|
||||||
|
<!-- Rules -->
|
||||||
|
<div class="panel panel-default panel-heading list-group-item" style="background-color:silver">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a id="edge-rules-link" data-toggle="collapse" data-parent="#edge-detail"
|
||||||
|
href="#edge-rules">Rules</a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="edge-rules" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body list-group-item">
|
||||||
|
{% for r in edge.edge_label.rules.all %}
|
||||||
|
<a class="list-group-item" href="{{ r.url }}">{{ r.name }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
||||||
|
|||||||
Reference in New Issue
Block a user