add error for username/email containing html. Removed checks for SMILES/SMARTS. Updated html to use the nh_safe template tag. #72

This commit is contained in:
Liam Brydon
2025-10-22 10:47:35 +13:00
parent 61346c4097
commit ec0fc8cdc1
44 changed files with 168 additions and 125 deletions

View File

@ -1,5 +1,6 @@
{% extends "framework.html" %}
{% load static %}
{% load envipytags %}
{% block content %}
{% if object_type != 'package' %}
@ -192,7 +193,7 @@
<div class="panel-body list-group-item" id="ReviewedContent">
{% if object_type == 'package' %}
{% for obj in reviewed_objects %}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name }}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name|nh_safe }}
<span class="glyphicon glyphicon-star" aria-hidden="true"
style="float:right" data-toggle="tooltip"
data-placement="top" title="" data-original-title="Reviewed">
@ -201,7 +202,7 @@
{% endfor %}
{% else %}
{% for obj in reviewed_objects|slice:":50" %}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name }}{# <i>({{ obj.package.name }})</i> #}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name|nh_safe }}{# <i>({{ obj.package.name }})</i> #}
<span class="glyphicon glyphicon-star" aria-hidden="true"
style="float:right" data-toggle="tooltip"
data-placement="top" title="" data-original-title="Reviewed">
@ -221,11 +222,11 @@
<div class="panel-body list-group-item" id="UnreviewedContent">
{% if object_type == 'package' %}
{% for obj in unreviewed_objects %}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name }}</a>
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name|nh_safe }}</a>
{% endfor %}
{% else %}
{% for obj in unreviewed_objects|slice:":50" %}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name }}</a>
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name|nh_safe }}</a>
{% endfor %}
{% endif %}
</div>
@ -236,9 +237,9 @@
<ul class='list-group'>
{% for obj in objects %}
{% if object_type == 'user' %}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.username }}</a>
<a class="list-group-item" href="{{ obj.url }}">{{ obj.username|nh_safe }}</a>
{% else %}
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name }}</a>
<a class="list-group-item" href="{{ obj.url }}">{{ obj.name|nh_safe }}</a>
{% endif %}
{% endfor %}
</ul>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
<div class="panel-group" id="migration-detail">
@ -26,12 +27,12 @@
{% endif %}
<h4 class="panel-title">
<a id="{{ obj.id }}-link" data-toggle="collapse" data-parent="#migration-detail"
href="#{{ obj.id }}">{{ obj.name }}</a>
href="#{{ obj.id }}">{{ obj.name|nh_safe }}</a>
</h4>
</div>
<div id="{{ obj.id }}" class="panel-collapse collapse {% if not obj.status %}in{% endif %}">
<div class="panel-body list-group-item">
<a class="list-group-item" href="{{ obj.detail_url }}">{{ obj.name }} Migration Detail Page</a>
<a class="list-group-item" href="{{ obj.detail_url }}">{{ obj.name|nh_safe }} Migration Detail Page</a>
</div>
</div>
{% endfor %}

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
<div class="panel-group" id="migration-detail">
@ -27,7 +28,7 @@
{% endif %}
<h4 class="panel-title">
<a id="{{ obj.id }}-link" data-toggle="collapse" data-parent="#migration-detail"
href="#{{ obj.id }}">{{ obj.name }}</a>
href="#{{ obj.id }}">{{ obj.name|nh_safe }}</a>
</h4>
</div>
<div id="{{ obj.id }}" class="panel-collapse collapse {% if not obj.status %}in{% endif %}">

View File

@ -1,3 +1,4 @@
{% load envipytags %}
<div class="modal fade" tabindex="-1" id="new_model_modal" role="dialog" aria-labelledby="new_model_modal"
aria-hidden="true">
<div class="modal-dialog modal-lg">
@ -41,14 +42,14 @@
<option disabled>Reviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
<option disabled>Unreviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if not obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
</select>
@ -59,14 +60,14 @@
<option disabled>Reviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
<option disabled>Unreviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if not obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
</select>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<div class="modal fade" tabindex="-1" id="new_pathway_modal" role="dialog" aria-labelledby="new_pathway_modal"
aria-hidden="true" style="overflow-y: auto;">
@ -111,7 +112,7 @@
<select id="settingSelect" name="settingSelect" class="form-control">
{% for setting in available_settings %}
<option value="{{ setting.id }}">{{ setting.name }}</option>
<option value="{{ setting.id }}">{{ setting.name|nh_safe }}</option>
{% endfor %}
</select>
<p></p>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<div id="new_prediction_setting_modal" class="modal" tabindex="-1">
@ -40,14 +41,14 @@
<option disabled>Reviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
<option disabled>Unreviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if not obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
</select>
@ -57,7 +58,7 @@
<select id="model-based-prediction-setting-model" name="model-based-prediction-setting-model" class="form-control" data-width='100%'>
<option disabled selected>Select the model</option>
{% for m in models %}
<option value="{{ m.url }}">{{ m.name }}</option>
<option value="{{ m.url }}">{{ m.name|nh_safe }}</option>
{% endfor %}
</select>
<label for="model-based-prediction-setting-threshold">Threshold</label>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<div class="modal fade bs-modal-lg" id="add_pathway_edge_modal" tabindex="-1" aria-labelledby="add_pathway_edge_modal"
aria-modal="true"
@ -36,7 +37,7 @@
<select id="add_pathway_edge_substrates" name="edge-substrates"
data-actions-box='true' class="form-control" multiple data-width='100%'>
{% for n in pathway.nodes %}
<option data-smiles="{{ n.default_node_label.smiles }}" value="{{ n.url }}">{{ n.default_node_label.name }}</option>
<option data-smiles="{{ n.default_node_label.smiles }}" value="{{ n.url }}">{{ n.default_node_label.name|nh_safe }}</option>
{% endfor %}
</select>
</div>
@ -47,7 +48,7 @@
<select id="add_pathway_edge_products" name="edge-products"
data-actions-box='true' class="form-control" multiple data-width='100%'>
{% for n in pathway.nodes %}
<option data-smiles="{{ n.default_node_label.smiles }}" value="{{ n.url }}">{{ n.default_node_label.name }}</option>
<option data-smiles="{{ n.default_node_label.smiles }}" value="{{ n.url }}">{{ n.default_node_label.name|nh_safe }}</option>
{% endfor %}
</select>
</div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Delete Edge -->
<div id="delete_pathway_edge_modal" class="modal" tabindex="-1">
@ -19,7 +20,7 @@
data-actions-box='true' class="form-control" data-width='100%'>
<option value="" disabled selected>Select Reaction to delete</option>
{% for e in pathway.edges %}
<option value="{{ e.url }}">{{ e.edge_label.name }}</option>
<option value="{{ e.url }}">{{ e.edge_label.name|nh_safe }}</option>
{% endfor %}
</select>
<input type="hidden" id="hidden" name="hidden" value="delete"/>

View File

@ -1,4 +1,5 @@
{% load static %}
{% load envipytags %}
<!-- Delete Node -->
<div id="delete_pathway_node_modal" class="modal" tabindex="-1">
<div class="modal-dialog">
@ -19,7 +20,7 @@
data-actions-box='true' class="form-control" data-width='100%'>
<option value="" disabled selected>Select Compound to delete</option>
{% for n in pathway.nodes %}
<option value="{{ n.url }}">{{ n.default_node_label.name }}</option>
<option value="{{ n.url }}">{{ n.default_node_label.name|nh_safe }}</option>
{% endfor %}
</select>
<input type="hidden" id="hidden" name="hidden" value="delete"/>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Compound -->
<div id="edit_compound_modal" class="modal" tabindex="-1">
@ -15,12 +16,12 @@
{% csrf_token %}
<p>
<label for="compound-name">Name</label>
<input id="compound-name" class="form-control" name="compound-name" value="{{ compound.name}}">
<input id="compound-name" class="form-control" name="compound-name" value="{{ compound.name|nh_safe}}">
</p>
<p>
<label for="compound-description">Description</label>
<input id="compound-description" type="text" class="form-control"
value="{{ compound.description }}"
value="{{ compound.description|nh_safe }}"
name="compound-description">
</p>
</form>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Compound -->
<div id="edit_compound_structure_modal" class="modal" tabindex="-1">
@ -15,12 +16,12 @@
{% csrf_token %}
<p>
<label for="compound-structure-name">Name</label>
<input id="compound-structure-name" class="form-control" name="compound-structure-name" value="{{ compound_structure.name }}">
<input id="compound-structure-name" class="form-control" name="compound-structure-name" value="{{ compound_structure.name|nh_safe }}">
</p>
<p>
<label for="compound-structure-description">Description</label>
<input id="compound-structure-description" type="text" class="form-control"
value="{{ compound_structure.description }}" name="compound-structure-description">
value="{{ compound_structure.description|nh_safe }}" name="compound-structure-description">
</p>
</form>
</div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Package Permission -->
<div id="edit_group_member_modal" class="modal" tabindex="-1">
@ -39,7 +40,7 @@
{% endfor %}
<option disabled>Groups</option>
{% for g in groups %}
<option value="{{ g.url }}">{{ g.name }}</option>
<option value="{{ g.url }}">{{ g.name|nh_safe }}</option>
{% endfor %}
</select>
<input type="hidden" name="action" value="add">
@ -81,7 +82,7 @@
accept-charset="UTF-8" action="" data-remote="true" method="post">
{% csrf_token %}
<div class="col-xs-8">
{{ g.name }}
{{ g.name|nh_safe }}
<input type="hidden" name="member" value="{{ g.url }}"/>
<input type="hidden" name="action" value="remove">
</div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Model -->
<div id="edit_model_modal" class="modal" tabindex="-1">
@ -16,12 +17,12 @@
<p>
<label for="model-name">Name</label>
<input id="model-name" type="text" class="form-control" name="model-name"
value="{{ model.name }}">
value="{{ model.name|nh_safe }}">
</p>
<p>
<label for="model-description">Description</label>
<input id="model-description" type="text" class="form-control" name="model-description"
value="{{ model.description }}">
value="{{ model.description|nh_safe }}">
</p>
</form>
</div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Node -->
<div id="edit_node_modal" class="modal" tabindex="-1">
@ -15,12 +16,12 @@
{% csrf_token %}
<p>
<label for="node-name">Name</label>
<input id="node-name" class="form-control" name="node-name" value="{{ node.name}}">
<input id="node-name" class="form-control" name="node-name" value="{{ node.name|nh_safe}}">
</p>
<p>
<label for="node-description">Description</label>
<input id="node-description" type="text" class="form-control"
value="{{ node.description }}"
value="{{ node.description|nh_safe }}"
name="node-description">
</p>
</form>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Package -->
<div id="edit_package_modal" class="modal" tabindex="-1">
@ -15,12 +16,12 @@
{% csrf_token %}
<p>
<label for="package-name">Name</label>
<input id="package-name" class="form-control" name="package-name" value="{{ package.name}}">
<input id="package-name" class="form-control" name="package-name" value="{{ package.name|nh_safe}}">
</p>
<p>
<label for="package-description">Description</label>
<input id="package-description" type="text" class="form-control"
value="{{ package.description }}"
value="{{ package.description|nh_safe }}"
name="package-description">
</p>
</form>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Package Permission -->
<div id="edit_package_permissions_modal" class="modal" tabindex="-1">
@ -46,7 +47,7 @@
{% endfor %}
<option disabled>Groups</option>
{% for g in groups %}
<option value="{{ g.url }}">{{ g.name }}</option>
<option value="{{ g.url }}">{{ g.name|nh_safe }}</option>
{% endfor %}
</select>
</div>
@ -100,7 +101,7 @@
accept-charset="UTF-8" action="" data-remote="true" method="post">
{% csrf_token %}
<div class="col-xs-4">
{{ gp.group.name }}
{{ gp.group.name|nh_safe }}
<input type="hidden" name="grantee" value="{{ gp.group.url }}"/>
</div>
<div class="col-xs-2">

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Pathway -->
<div id="edit_pathway_modal" class="modal" tabindex="-1">
@ -15,12 +16,12 @@
{% csrf_token %}
<p>
<label for="pathway-name">Name</label>
<input id="pathway-name" class="form-control" name="pathway-name" value="{{ pathway.name }}">
<input id="pathway-name" class="form-control" name="pathway-name" value="{{ pathway.name|nh_safe }}">
</p>
<p>
<label for="pathway-description">Description</label>
<textarea id="pathway-description" type="text" class="form-control" name="pathway-description"
rows="10">{{ pathway.description }}</textarea>
rows="10">{{ pathway.description|nh_safe }}</textarea>
</p>
</form>
</div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Package -->
<div id="update_prediction_settings_modal" class="modal" tabindex="-1">
@ -32,7 +33,7 @@
<td colspan="2">
<select id="model" name="model" class="form-control" data-width='100%'>
{% for m in models %}
<option value="{{ m.id }}" {% if user.prediction_settings.model.url == m.url %}selected{% endif %}>{{ m.name }}</option>
<option value="{{ m.id }}" {% if user.prediction_settings.model.url == m.url %}selected{% endif %}>{{ m.name|nh_safe }}</option>
{% endfor %}
</select>
</td>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Reaction -->
<div id="edit_reaction_modal" class="modal" tabindex="-1">
@ -14,12 +15,12 @@
{% csrf_token %}
<p>
<label for="reaction-name">Name</label>
<input id="reaction-name" class="form-control" name="reaction-name" value="{{ reaction.name }}">
<input id="reaction-name" class="form-control" name="reaction-name" value="{{ reaction.name|nh_safe }}">
</p>
<p>
<label for="reaction-description">Description</label>
<input id="reaction-description" type="text" class="form-control"
value="{{ reaction.description }}" name="reaction-description">
value="{{ reaction.description|nh_safe }}" name="reaction-description">
</p>
</form>
</div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit Rule -->
<div id="edit_rule_modal" class="modal" tabindex="-1">
@ -14,12 +15,12 @@
{% csrf_token %}
<p>
<label for="rule-name">Name</label>
<input id="rule-name" class="form-control" name="rule-name" value="{{ rule.name }}">
<input id="rule-name" class="form-control" name="rule-name" value="{{ rule.name|nh_safe }}">
</p>
<p>
<label for="rule-description">Description</label>
<input id="rule-description" type="text" class="form-control"
value="{{ rule.description }}" name="rule-description">
value="{{ rule.description|nh_safe }}" name="rule-description">
</p>
</form>
</div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Edit User -->
<div id="edit_user_modal" class="modal" tabindex="-1">
@ -18,7 +19,7 @@
<select id="default-package" name="default-package" class="form-control" data-width='100%'>
<option disabled>Select a Package</option>
{% for p in meta.writeable_packages %}
<option value="{{ p.url }}" {% if p.id == meta.user.default_package.id %}selected{% endif %}>{{ p.name }}</option>
<option value="{{ p.url }}" {% if p.id == meta.user.default_package.id %}selected{% endif %}>{{ p.name|nh_safe }}</option>
{% endfor %}
</select>
</p>
@ -27,7 +28,7 @@
<select id="default-group" name="default-group" class="form-control" data-width='100%'>
<option disabled>Select a Group</option>
{% for g in meta.available_groups %}
<option value="{{ g.url }}" {% if g.id == meta.user.default_group.id %}selected{% endif %}>{{ g.name }}</option>
<option value="{{ g.url }}" {% if g.id == meta.user.default_group.id %}selected{% endif %}>{{ g.name|nh_safe }}</option>
{% endfor %}
</select>
</p>
@ -36,7 +37,7 @@
<select id="default-prediction-setting" name="default-prediction-setting" class="form-control" data-width='100%'>
<option disabled>Select a Setting</option>
{% for s in meta.available_settings %}
<option value="{{ s.url }}" {% if s.id == meta.user.default_setting.id %}selected{% endif %}>{{ s.name }}</option>
<option value="{{ s.url }}" {% if s.id == meta.user.default_setting.id %}selected{% endif %}>{{ s.name|nh_safe }}</option>
{% endfor %}
</select>
</p>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
<div class="modal fade" tabindex="-1" id="evaluate_model_modal" role="dialog" aria-labelledby="evaluate_model_modal"
aria-hidden="true">
<div class="modal-dialog modal-lg">
@ -24,14 +25,14 @@
<option disabled>Reviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
<option disabled>Unreviewed Packages</option>
{% for obj in meta.readable_packages %}
{% if not obj.reviewed %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endif %}
{% endfor %}
</select>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Copy Object -->
<div id="generic_copy_object_modal" class="modal" tabindex="-1">
@ -18,7 +19,7 @@
data-width='100%'>
<option disabled selected>Select Target Package</option>
{% for p in meta.writeable_packages %}
<option value="{{ p.url }}">{{ p.name }}</option>`
<option value="{{ p.url }}">{{ p.name|nh_safe }}</option>`
{% endfor %}
</select>
<input type="hidden" name="hidden" value="copy">

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<style>
@ -55,7 +56,7 @@
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Set Aliases for {{ current_object.name }}</h4>
<h4 class="modal-title">Set Aliases for {{ current_object.name|nh_safe }}</h4>
</div>
<div class="modal-body">
<form id="set_aliases_modal_form" accept-charset="UTF-8" action="{{ current_object.url }}"

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<!-- Delete Object -->
<div id="generic_set_external_reference_modal" class="modal" tabindex="-1">
@ -23,7 +24,7 @@
{% if entity == object_type %}
{% for db in databases %}
<option id="db-select-{{ db.database.pk }}" data-input-placeholder="{{ db.placeholder }}"
value="{{ db.database.id }}">{{ db.database.name }}</option>`
value="{{ db.database.id }}">{{ db.database.name|nh_safe }}</option>`
{% endfor %}
{% endif %}
{% endfor %}

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<div class="modal fade bs-modal-lg" id="set_scenario_modal" tabindex="-1" aria-labelledby="set_scenario_modal"
aria-modal="true" role="dialog">
@ -7,7 +8,7 @@
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Set Scenarios for {{ current_object.name }}</h4>
<h4 class="modal-title">Set Scenarios for {{ current_object.name|nh_safe }}</h4>
</div>
<div class="modal-body">
<div id="loading_scenario_div" class="text-center"></div>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
<div class="modal fade"
tabindex="-1"
id="manage_api_token_modal"
@ -41,7 +42,7 @@
<div class="input-group">
<input type="hidden" name="hidden" value="delete">
<input type="hidden" name="token-id" value="{{ t.pk }}">
<input type="text" class="form-control" value="{{ t.name }}" disabled>
<input type="text" class="form-control" value="{{ t.name|nh_safe }}" disabled>
<span class="input-group-btn">
<button type="submit" class="btn btn-danger">Delete</button>
</span>

View File

@ -1,3 +1,4 @@
{% load envipytags %}
{% load static %}
<div class="modal fade bs-modal-lg" id="predict_modal" tabindex="-1" aria-labelledby="predict_modal" aria-modal="true"
role="dialog">
@ -56,7 +57,7 @@
<option disabled>Select a Setting</option>
{% for s in meta.available_settings %}
<option value="{{ s.url }}"{% if s.id == meta.user.default_setting.id %}selected{% endif %}>
{{ s.name }}{% if s.id == meta.user.default_setting.id %} <i>(User default)</i>{% endif %}
{{ s.name|nh_safe }}{% if s.id == meta.user.default_setting.id %} <i>(User default)</i>{% endif %}
</option>
{% endfor %}
</select>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -13,7 +14,7 @@
<div class="panel-group" id="rule-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ rule.name }}
{{ rule.name|nh_safe }}
<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"
@ -29,7 +30,7 @@
</div>
<div class="panel-body">
<p>
{{ rule.description }}
{{ rule.description|nh_safe }}
</p>
</div>
@ -60,7 +61,7 @@
<div id="rule-reaction-patterns" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for r in rule.srs %}
<a class="list-group-item" href="{{ r.url }}">{{ r.name }}</a>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }}</a>
<div align="center">
<p>
{{r.as_svg|safe}}
@ -81,7 +82,7 @@
<div id="rule-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in rule.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }} <i>({{ s.package.name }})</i></a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }} <i>({{ s.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -15,7 +16,7 @@
<div class="panel-group" id="compound-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ compound.name }}
{{ compound.name|nh_safe }}
<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"
@ -64,7 +65,7 @@
</div>
<div id="compound-desc" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{{ compound.description }}
{{ compound.description|nh_safe }}
</div>
</div>
@ -133,7 +134,7 @@
<div id="compound-reaction" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for r in compound.related_reactions %}
<a class="list-group-item" href="{{ r.url }}">{{ r.name }} <i>({{ r.package.name }})</i></a>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }} <i>({{ r.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>
@ -150,7 +151,7 @@
<div id="compound-pathway" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for r in compound.related_pathways %}
<a class="list-group-item" href="{{ r.url }}">{{ r.name }} <i>({{ r.package.name }})</i></a>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }} <i>({{ r.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>
@ -167,7 +168,7 @@
<div id="compound-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in compound.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }} <i>({{ s.package.name }})</i></a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }} <i>({{ s.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -13,7 +14,7 @@
<div class="panel-group" id="compound-structure-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ compound_structure.name }}
{{ compound_structure.name|nh_safe }}
<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"
@ -28,7 +29,7 @@
</div>
</div>
<div class="panel-body">
<p> {{ compound_structure.description }} </p>
<p> {{ compound_structure.description|nh_safe }} </p>
</div>
<!-- Image -->
@ -86,7 +87,7 @@
<div id="compound-structure-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in compound_structure.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }} <i>({{ s.package.name }})</i></a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }} <i>({{ s.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -12,7 +13,7 @@
<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 }}
{{ edge.edge_label.name|nh_safe }}
<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"
@ -36,7 +37,7 @@
</div>
<div id="edge-desc" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{{ edge.description }}
{{ edge.description|nh_safe }}
</div>
</div>
@ -82,12 +83,12 @@
<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>
<a class="btn btn-default" href="{{ educt.url }}">{{ educt.name|nh_safe }}</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>
<a class="btn btn-default" href="{{ product.url }}">{{ product.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -116,7 +117,7 @@
<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>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -132,7 +133,7 @@
<div id="edge-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in edge.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }} <i>({{ s.package.name }})</i></a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }} <i>({{ s.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -11,7 +12,7 @@
<div class="panel-group" id="package-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ group.name }}
{{ group.name|nh_safe }}
<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"
@ -26,7 +27,7 @@
</div>
</div>
<div class="panel-body">
<p> {{ group.description }} </p>
<p> {{ group.description|nh_safe }} </p>
</div>
</div>
@ -39,10 +40,10 @@
</div>
<ul class="list-group">
{% for um in group.user_member.all %}
<a class="list-group-item" href="{{ um.url }}">{{ um.username }}</a>
<a class="list-group-item" href="{{ um.url }}">{{ um.username|nh_safe }}</a>
{% endfor %}
{% for gm in group.group_member.all %}
<a class="list-group-item" href="{{ gm.url }}">{{ gm.name }}</a>
<a class="list-group-item" href="{{ gm.url }}">{{ gm.name|nh_safe }}</a>
{% endfor %}
</ul>
</div>
@ -56,7 +57,7 @@
</div>
<ul class="list-group">
{% for p in packages %}
<a class="list-group-item" href="{{ p.url }}">{{ p.name }}</a>
<a class="list-group-item" href="{{ p.url }}">{{ p.name|nh_safe }}</a>
{% endfor %}
</ul>
</div>

View File

@ -18,7 +18,7 @@
<div class="panel-group" id="model-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ model.name }}
{{ model.name|nh_safe }}
<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"
@ -33,7 +33,7 @@
</div>
</div>
<div class="panel-body">
<p> {{ model.description }} </p>
<p> {{ model.description|nh_safe }} </p>
</div>
{% if model|classname == 'MLRelativeReasoning' or model|classname == 'RuleBasedRelativeReasoning'%}
<!-- Rule Packages -->
@ -46,7 +46,7 @@
<div id="rule-package" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for p in model.rule_packages.all %}
<a class="list-group-item" href="{{ p.url }}">{{ p.name }}</a>
<a class="list-group-item" href="{{ p.url }}">{{ p.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -60,7 +60,7 @@
<div id="reaction-package" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for p in model.data_packages.all %}
<a class="list-group-item" href="{{ p.url }}">{{ p.name }}</a>
<a class="list-group-item" href="{{ p.url }}">{{ p.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -75,7 +75,7 @@
<div id="eval-package" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for p in model.eval_packages.all %}
<a class="list-group-item" href="{{ p.url }}">{{ p.name }}</a>
<a class="list-group-item" href="{{ p.url }}">{{ p.name|nh_safe }}</a>
{% endfor %}
</div>
</div>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -12,7 +13,7 @@
<div class="panel-group" id="node-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ node.name }}
{{ node.name|nh_safe }}
<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"
@ -39,7 +40,7 @@
</div>
<div id="node-desc" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{{ node.description }}
{{ node.description|nh_safe }}
</div>
</div>
@ -98,7 +99,7 @@
<div id="node-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in node.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }} <i>({{ s.package.name }})</i></a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }} <i>({{ s.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>

View File

@ -15,7 +15,7 @@
<div class="panel-group" id="package-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ package.name }}
{{ package.name|nh_safe }}
<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"

View File

@ -98,7 +98,7 @@
<div class="panel-group" id="pwAccordion">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ pathway.name }}
{{ pathway.name|nh_safe }}
</div>
</div>
<div class="panel panel-default panel-heading list-group-item" style="background-color:silver">
@ -239,7 +239,7 @@
<div id="pathway-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in pathway.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }} <i>({{ s.package.name }})</i></a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }} <i>({{ s.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>
@ -269,7 +269,7 @@
<td colspan="2">
<li class="list-group-item">
<a href="{{ pathway.setting.model.url }}">
{{ pathway.setting.model.name }}
{{ pathway.setting.model.name|nh_safe }}
</a>
</li>
</td>
@ -302,7 +302,7 @@
{% for p in pathway.setting.rule_packages.all %}
<li class="list-group-item">
<a href="{{ p.url }}">
{{ p.name }}
{{ p.name|nh_safe }}
</a>
</li>
{% endfor %}

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -14,7 +15,7 @@
<div class="panel-group" id="reaction-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ reaction.name }}
{{ reaction.name|nh_safe }}
<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"
@ -38,7 +39,7 @@
</div>
<div id="reaction-desc" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{{ reaction.description }}
{{ reaction.description|nh_safe }}
</div>
</div>
@ -84,12 +85,12 @@
<div id="reaction-description-smiles" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for educt in reaction.educts.all %}
<a class="btn btn-default" href="{{ educt.url }}">{{ educt.name }}</a>
<a class="btn btn-default" href="{{ educt.url }}">{{ educt.name|nh_safe }}</a>
{% endfor %}
<span class="glyphicon glyphicon-arrow-right" style="margin-left:5em;margin-right:5em;"
aria-hidden="true"></span>
{% for product in reaction.products.all %}
<a class="btn btn-default" href="{{ product.url }}">{{ product.name }}</a>
<a class="btn btn-default" href="{{ product.url }}">{{ product.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -118,7 +119,7 @@
<div id="reaction-rules" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for r in reaction.rules.all %}
<a class="list-group-item" href="{{ r.url }}">{{ r.name }}</a>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -135,7 +136,7 @@
<div id="reaction-pathway" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for r in reaction.related_pathways %}
<a class="list-group-item" href="{{ r.url }}">{{ r.name }}</a>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -151,7 +152,7 @@
<div id="reaction-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in reaction.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }} <i>({{ s.package.name }})</i></a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }} <i>({{ s.package.name|nh_safe }})</i></a>
{% endfor %}
</div>
</div>

View File

@ -11,7 +11,7 @@
<div class="panel-group" id="scenario-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ scenario.name }}
{{ scenario.name|nh_safe }}
<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"
@ -31,7 +31,7 @@
<div class="panel panel-default">
<div class="panel-heading">Description</div>
<div class="panel-body">
{{ scenario.description }}
{{ scenario.description|nh_safe }}
<br>
{{ scenario.scenario_type }}
<br>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -13,7 +14,7 @@
<div class="panel-group" id="rule-detail">
<div class="panel panel-default">
<div class="panel-heading" id="headingPanel" style="font-size:2rem;height: 46px">
{{ rule.name }}
{{ rule.name|nh_safe }}
<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"
@ -29,7 +30,7 @@
</div>
<div class="panel-body">
<p>
{{ rule.description }}
{{ rule.description|nh_safe }}
</p>
</div>
@ -145,7 +146,7 @@
<div id="rule-composite-rule" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for cr in rule.parallelrule_set.all %}
<a class="list-group-item" href="{{ cr.url }}">{{ cr.name }}</a>
<a class="list-group-item" href="{{ cr.url }}">{{ cr.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -162,7 +163,7 @@
<div id="rule-scenario" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
{% for s in rule.scenarios.all %}
<a class="list-group-item" href="{{ s.url }}">{{ s.name }}</a>
<a class="list-group-item" href="{{ s.url }}">{{ s.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -179,7 +180,7 @@
<div id="rule-reaction" class="panel-collapse collapse">
<div class="panel-body list-group-item">
{% for r in rule.related_reactions %}
<a class="list-group-item" href="{{ r.url }}">{{ r.name }}</a>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }}</a>
{% endfor %}
</div>
</div>
@ -196,7 +197,7 @@
<div id="rule-pathway" class="panel-collapse collapse">
<div class="panel-body list-group-item">
{% for r in rule.related_pathways %}
<a class="list-group-item" href="{{ r.url }}">{{ r.name }}</a>
<a class="list-group-item" href="{{ r.url }}">{{ r.name|nh_safe }}</a>
{% endfor %}
</div>
</div>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% block content %}
@ -41,7 +42,7 @@
<div id="default-package" class="panel-collapse collapse in">
<div class="panel-body list-group-item">
<li class="list-group-item">
<a href="{{ user.default_package.url }}"> {{ user.default_package.name }}</a>
<a href="{{ user.default_package.url }}"> {{ user.default_package.name|nh_safe }}</a>
</li>
</div>
</div>
@ -58,7 +59,7 @@
<div class="panel-body list-group-item">
{% for g in meta.available_groups %}
<li class="list-group-item">
<a href="{{ g.url }}"> {{ g.name }}</a>
<a href="{{ g.url }}"> {{ g.name|nh_safe }}</a>
</li>
{% endfor %}
</div>
@ -90,7 +91,7 @@
<td colspan="2">
<li class="list-group-item">
<a href="{{user.default_setting.model.url}}">
{{ user.default_setting.model.name }}
{{ user.default_setting.model.name|nh_safe }}
</a>
</li>
</td>
@ -123,7 +124,7 @@
{% for p in user.default_setting.rule_packages.all %}
<li class="list-group-item">
<a href="{{p.url}}">
{{ p.name }}
{{ p.name|nh_safe }}
</a>
</li>
{% endfor %}

View File

@ -1,3 +1,4 @@
{% load envipytags %}
<!DOCTYPE html>
<html lang="en">
<head>
@ -18,7 +19,7 @@
</head>
<body>
<p></p>
{{ pathway.name }}
{{ pathway.name|nh_safe }}
<div id="viz">
<svg width="2000" height="2000"> <!-- Sehr großes SVG für Zoom -->
<defs>

View File

@ -1,4 +1,5 @@
{% extends "framework.html" %}
{% load envipytags %}
{% load static %}
{% block content %}
@ -11,13 +12,13 @@
<option disabled>Reviewed Packages</option>
{% endif %}
{% for obj in reviewed_objects %}
<option value="{{ obj.url }}" selected>{{ obj.name }}</option>
<option value="{{ obj.url }}" selected>{{ obj.name|nh_safe }}</option>
{% endfor %}
{% if unreviewed_objects %}
<option disabled>Unreviewed Packages</option>
{% endif %}
{% for obj in unreviewed_objects %}
<option value="{{ obj.url }}">{{ obj.name }}</option>
<option value="{{ obj.url }}">{{ obj.name|nh_safe }}</option>
{% endfor %}
</select>
</div>