419 lines
16 KiB
HTML
419 lines
16 KiB
HTML
{% extends "users/base.html" %}
|
|
{% load counter_tag %}
|
|
{% block content %}
|
|
<div class="content-section col-12">
|
|
<nav aria-label="breadcrumb">
|
|
<ol class="breadcrumb">
|
|
<li class="breadcrumb-item"><a href="#" onclick="javascript:goToStandardMain()">Standards</a></li>
|
|
<!--<li class="breadcrumb-item active" aria-current="page"><a href="{% url 'standard-area' standard.area.pk %}">{{standard.area.name}}</a></li>-->
|
|
<li class="breadcrumb-item active" aria-current="page"><a href="#" onclick="javascript:goToArea('t_{{standard.area.pk}}')">{{standard.area.name}}</a></li>
|
|
<li class="breadcrumb-item active" aria-current="page"><a href="{% url 'standard-task' standard.task.pk %}">{{standard.task.name}}</a></li>
|
|
</ol>
|
|
</nav>
|
|
|
|
<h2>{{standard.name}}
|
|
|
|
<span style="float: right">
|
|
<a href="{% url 'ajax-standardpdf' standard.pk %}" target="_blank" style="margin-top: -4px;" class="btn btn-primary btn-sm mr-2" onclick="javascript:printStandard()">
|
|
<i class="fas fa-print"></i>
|
|
</a>
|
|
{% if standard.created_standard_by != null and standard.created_standard_by == user or perms.users.standardmanager %}
|
|
<a style="float: right" class="btn btn-secondary btn-sm ml-2" href="{% url 'standard-delete' standard.pk %}"><small><i class="fas fa-trash"></i></small></a>
|
|
<a style="float: right" class="btn btn-secondary btn-sm " href="{% url 'standard-add' standard.pk %}"><small><i class="fas fa-pen"></i></small></a>
|
|
{% endif %}
|
|
</span>
|
|
</h2>
|
|
|
|
<hr>
|
|
<div class="row col">
|
|
|
|
{% if standard.addedfiles_nc.all|length > 0 or standard.linked_standards.all|length > 0 or standard.authority.count > 0 or standard.executor.count > 0 or standard.representative.count > 0 or standard.addedfiles_nc.all|length > 0 or standard.linked_standards.all|length > 0 or standard.freefield_title|length > 0 or standard.addedcontacts.all|length > 0 or standard.addedpasswords.all|length > 0 or standard.addedquicklinks.all|length > 0 or standard.authority_group.count > 0 or standard.executor_group.count > 0 or standard.representative_group.count > 0 %}
|
|
<div class="card col-9" style="min-height: 500px">
|
|
{% else %}
|
|
<div class="card col-12" style="min-height: 500px">
|
|
{% endif %}
|
|
<div class="card-body">
|
|
<h5 class="card-title"></h5>
|
|
<p class="card-text">
|
|
{{standard.media}}
|
|
{{standard.content|safe}}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- PERSONEN -->
|
|
{% if standard.addedfiles_nc.all|length > 0 or standard.linked_standards.all|length > 0 or standard.authority.count > 0 or standard.executor.count > 0 or standard.representative.count > 0 or standard.addedfiles_nc.all|length > 0 or standard.linked_standards.all|length > 0 or standard.freefield_title|length > 0 or standard.addedcontacts.all|length > 0 or standard.addedpasswords.all|length > 0 or standard.addedquicklinks.all|length > 0 or standard.authority_group.count > 0 or standard.executor_group.count > 0 or standard.representative_group.count > 0 %}
|
|
<div class="col-3">
|
|
|
|
|
|
{% if standard.freefield_title|length > 0 %}
|
|
<div class="card col-14 ml-1 mb-2" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">{{standard.freefield_title}}</h5>
|
|
<p class="card-text">
|
|
{{standard.freefield_content}}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
{% if standard.authority.count > 0 or standard.executor.count > 0 or standard.representative.count > 0 %}
|
|
<div class="card col-14 ml-1 mb-2" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Personen</h5>
|
|
<p class="card-text">
|
|
|
|
{% if standard.executor.count > 0 %}
|
|
Ausführende<br />
|
|
{% for u in standard.executor.all %}
|
|
<a href="{% url 'orga-single' u.pk%}"> {{u.first_name}} {{u.last_name}}</a>{% if forloop.counter < standard.executor.count%} | {% endif %}
|
|
{% endfor %}
|
|
<br />
|
|
{% endif %}
|
|
|
|
{% if standard.representative.count > 0 %}
|
|
Vertreter<br />
|
|
{% for u in standard.representative.all %}
|
|
<a href="{% url 'orga-single' u.pk%}"> {{u.first_name}} {{u.last_name}}</a>{% if forloop.counter < standard.representative.count%} | {% endif %}
|
|
{% endfor %}
|
|
<br />
|
|
{% endif %}
|
|
|
|
|
|
{% if standard.authority.count > 0 %}
|
|
Verantwortliche<br />
|
|
{% for u in standard.authority.all %}
|
|
<a href="{% url 'orga-single' u.pk%}"> {{u.first_name}} {{u.last_name}}</a>{% if forloop.counter < standard.authority.count%} | {% endif %}
|
|
{% endfor %}
|
|
<br />
|
|
{% endif %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
{% if standard.authority_group.count > 0 or standard.executor_group.count > 0 or standard.representative_group.count > 0 %}
|
|
<div class="card col-14 ml-1 mb-2" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Gruppen</h5>
|
|
<p class="card-text">
|
|
|
|
{% if standard.executor_group.count > 0 %}
|
|
Ausführende<br />
|
|
{% for g in standard.executor_group.all %}
|
|
<a href="#" onclick="javascript:loadAGGroup({{g.pk}})">{{g.agencygroupname}}</a>{% if forloop.counter < standard.executor_group.count%} | {% endif %}
|
|
{% endfor %}
|
|
<br />
|
|
{% endif %}
|
|
|
|
{% if standard.representative_group.count > 0 %}
|
|
Vertretende<br />
|
|
{% for g in standard.representative_group.all %}
|
|
<a href="#" onclick="javascript:loadAGGroup({{g.pk}})">{{g.agencygroupname}}</a>{% if forloop.counter < standard.representative_group.count%} | {% endif %}
|
|
{% endfor %}
|
|
<br />
|
|
{% endif %}
|
|
|
|
|
|
{% if standard.authority_group.count > 0 %}
|
|
Verantwortliche<br />
|
|
{% for g in standard.authority_group.all %}
|
|
<a href="#" onclick="javascript:loadAGGroup({{g.pk}})">{{g.agencygroupname}}</a>{% if forloop.counter < standard.authority_group.count%} | {% endif %}
|
|
{% endfor %}
|
|
<br />
|
|
{% endif %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
<!-- FILES -->
|
|
{% if standard.addedfiles_nc.all|length > 0 %}
|
|
<div class="card col-14 ml-1 mb-2" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Dateien</h5>
|
|
<p class="card-text">
|
|
{% for file in standard.addedfiles_nc.all %}
|
|
{% getNCFileInfos request file.nc_id as filename %}
|
|
{% getNCFileInfosURL request file.nc_id as filelink %}
|
|
{% getNCDirInfosURL request file.nc_id as dirlink %}
|
|
{% getNextcloudURL as nc_url %}
|
|
{{dirlink}}
|
|
<!--<a href="{{nc_url}}{{filelink}}" target="_blank">{{filename|truncatechars:30}}</a>-->
|
|
<a href="{{nc_url}}apps/files/?dir=/{{dirlink}}&openfile={{file.nc_id}}" target="_blank">{{filename|truncatechars:30}}</a>
|
|
<br />
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- Quicklinks -->
|
|
{% if standard.addedquicklinks.all|length > 0 %}
|
|
<div class="card col-14 ml-1 mb-2" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Quicklinks</h5>
|
|
<p class="card-text">
|
|
{% for ql in standard.addedquicklinks.all %}
|
|
<a href="{{ ql.link }}" target="_blank">{{ ql.name|truncatechars:30 }}</a><br />
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
<!-- Contacts -->
|
|
{% if standard.addedcontacts.all|length > 0 %}
|
|
<div class="card col-14 ml-1 mb-2" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Kontakte</h5>
|
|
<p class="card-text">
|
|
{% for agc in standard.addedcontacts.all %}
|
|
<a href="#/" onclick="javascript:$('#infos_{{agc.pk}}').modal('toggle');">{{agc.name}}</a><br />
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<!-- Passwords -->
|
|
{% if standard.addedpasswords.all|length > 0 %}
|
|
<div class="card col-14 ml-1 mb-2" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Passwörter</h5>
|
|
<p class="card-text">
|
|
{% for s in standard.addedpasswords.all %}
|
|
<a onclick="javascript:$('#infos_searchres_pass_{{s.pk}}').modal('toggle');" href="#\">{{s.name}}</a><br />
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
|
|
|
|
<!-- STANDARDS -->
|
|
{% if standard.linked_standards.all|length > 0 %}
|
|
<div class="card col-14 ml-1" style="min-width: 110%">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Verwandte Standards</h5>
|
|
<p class="card-text">
|
|
{% for standard in standard.linked_standards.all %}
|
|
{% setbool False %}
|
|
{% for ag in standard.visibleby.all %}
|
|
{% if request.user|has_group:ag.group.name %}
|
|
{% setbool True %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if standard.visibleby.all|length == 0 %}
|
|
{% setbool True %}
|
|
{% endif %}
|
|
|
|
{% getbool as groupchecker %}
|
|
|
|
{% if groupchecker %}
|
|
<a href="{% url 'standard-single' standard.pk %}">{{standard.name|truncatechars:30}}</a><br />
|
|
{% else %}
|
|
<i class="fas fa-lock"></i> {{standard.name|truncatechars:30}}</p>
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
<div class="mt-2">
|
|
<small>
|
|
{% if not standard.created_standard_by %} Erstellt von gelöschtem Mitarbeiter {% else %} Erstellt durch <a href="{% url 'orga-single' standard.created_standard_by.pk %}">{{standard.created_standard_by.first_name}} {{standard.created_standard_by.last_name}}</a> {% endif %} am {{standard.created_standard_date}} | {% if not standard.last_modified_by %} Zuletzt bearbeitet von gelöschtem Benutzer {% else %} Zuletzt bearbeitet von <a href="{% url 'orga-single' standard.last_modified_by.pk %}">{{ standard.last_modified_by.first_name}} {{ standard.last_modified_by.last_name}}</a>{% endif %} am {{ standard.last_modified_on}}
|
|
</small>
|
|
|
|
<!-- PRINT -->
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
{% for pass in standard.addedpasswords.all %}
|
|
<div class="modal fade " id="infos_searchres_pass_{{pass.pk}}" tabindex="-1" role="dialog" data-backdrop="static" aria-hidden="true">
|
|
<div class="modal-dialog " role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="exampleModalLongTitle">{{pass.name}}</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
{% setbool False %}
|
|
|
|
{% for passgrous in pass.visibleby.all %}
|
|
|
|
{% if user|has_group:passgrous.group.name %}
|
|
{% setbool True %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if pass.visibleby.all|length == 0 %}
|
|
{% setbool True %}
|
|
{% endif %}
|
|
|
|
{% getbool as groupchecker %}
|
|
|
|
{% if groupchecker %}
|
|
Name: <b>{{pass.name }}</b><br />
|
|
Benutzername: <b/>{{pass.agpass_username }}</b><br />
|
|
Passwort: <b/>{{pass.compass }}</b><br />
|
|
{% else %}
|
|
Sie dürfen keine Informationen dieses Passwortes einsehen.
|
|
{% endif %}
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
|
|
|
|
|
|
{% for agc in standard.addedcontacts.all %}
|
|
<div class="modal fade " id="infos_{{agc.pk}}" tabindex="-1" role="dialog" data-backdrop="static" aria-hidden="true">
|
|
<div class="modal-dialog " role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="exampleModalLongTitle">{{agc.name}}</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
{% if agc.personname|length > 0 %}
|
|
Ansprechpartner: {{agc.personname}}<br/>
|
|
{% endif %}
|
|
{% if agc.mail|length > 0 %}
|
|
E-Mailadresse: <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br />
|
|
{% endif %}
|
|
{% if agc.phone1|length > 0 %}
|
|
Telefon 1: <a href="tel::{{agc.phone1}}">{{agc.phone1}}</a><br />
|
|
{% endif %}
|
|
{% if agc.phone2|length > 0 %}
|
|
Telefon 1: <a href="tel::{{agc.phone2}}">{{agc.phone2}}</a><br />
|
|
{% endif %}
|
|
{% if agc.street|length > 0 %}
|
|
Adresse: {{agc.street}} {{agc.plz}} {{agc.city}} <br />
|
|
{% endif %}
|
|
{% if agc.desc|length > 0 %}
|
|
Anmerkungen: {{agc.desc}}<br />
|
|
{% endif %}
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
|
|
|
|
<!-- GRUPPEN MODAL -->
|
|
|
|
|
|
<div class="modal fade" id="showGroupMembers" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="" aria-hidden="true">
|
|
<div class="modal-dialog " role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="exampleModalLongTitle">Gruppenmitglieder der Gruppe <span id="aggroupname"></span></h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<span id="message"></span>
|
|
<span id="groupmembers"></span>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
function goToStandardMain(){
|
|
localStorage.setItem('activeTab', "");
|
|
location.href = "{% url 'standards' %}";
|
|
}
|
|
|
|
function goToArea(name){
|
|
localStorage.setItem('activeTab', name);
|
|
location.href = "{% url 'standards' %}";
|
|
}
|
|
|
|
|
|
function loadAGGroup(agpk){
|
|
|
|
$.ajax({
|
|
url: "{% url 'standard-loadaggroupmembers' %}",
|
|
method : "GET",
|
|
data: {
|
|
aggroup : agpk
|
|
},
|
|
success: function (data) {
|
|
if(data["status"] == "ok"){
|
|
$("#aggroupname").html(data["aggroupname"]);
|
|
$("#groupmembers").html(data["members"]);
|
|
}
|
|
else{
|
|
$("#aggroupname").html("FEHLER");
|
|
$("#message").html(data["members"]);
|
|
}
|
|
}
|
|
});
|
|
$("#showGroupMembers").modal("toggle");
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
{% endblock content %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|