Zwischencommit 2 Agenturverbund
This commit is contained in:
parent
2497365a61
commit
963f308126
|
|
@ -52,7 +52,7 @@ a.disabled {
|
|||
</ol>
|
||||
</nav>
|
||||
{% if user|usergperm:"filesviewer" %}
|
||||
<table class="table table-hover" id="dirfilestable">
|
||||
<table class="table hover" id="dirfilestable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><small><i data-toggle="tooltip" data-placement="top" title="Ziehen Sie Dateien direkt auf die Ordner, um sie in die Ordner hochzuladen oder in den unteren Bereich, um Dateien in diesen Ordner hochzuladen." class="far fa-question-circle"></i></small></th>
|
||||
|
|
@ -438,6 +438,13 @@ a.disabled {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
var actquotasize = {{actquota}};
|
||||
|
|
@ -466,6 +473,28 @@ if ( isIE ) {
|
|||
autohide: true,
|
||||
delay : 5000
|
||||
});
|
||||
|
||||
$('#dirfilestable').DataTable({
|
||||
responsive : true,
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ of _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
function clearSearchfieldAddFile(){
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ from django.conf import settings
|
|||
from django.http import FileResponse
|
||||
from standards.models import Standards
|
||||
from django.contrib import messages
|
||||
import os
|
||||
'''
|
||||
|
||||
Prüft, ob ein Nutzer in diesen Ordner Zugriffsrechte hat. Läuft den gesamten Strang bis nach oben,
|
||||
|
|
|
|||
|
|
@ -19,10 +19,12 @@
|
|||
</thead>
|
||||
<tbody id="">
|
||||
{% for agn_s in outstanding %}
|
||||
<tr>
|
||||
<tr id="agnprep_{{agn_s.pk}}">
|
||||
<td>{{agn_s.wanted_agency.name}}</td>
|
||||
<td>
|
||||
<a type="button" href="{% url 'acceptinvite' agn_s.target_network.pk agn_s.wanted_agency.pk agn_s.pk %}" class="btn btn-primary">Annehmen</a> <a href="{% url 'delinvite' agn_s.pk %}" type="button" class="btn btn-secondary">Ablehnen</a>
|
||||
<a type="button" href="{% url 'acceptinvite' agn_s.target_network.pk agn_s.wanted_agency.pk agn_s.pk %}" class="btn btn-primary">Annehmen</a>
|
||||
|
||||
<button onclick="javascript:checkRemInv('{{agn_s.wanted_agency.name}}', {{agn_s.pk}})" type="button" class="btn btn-secondary">Ablehnen</button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
|
@ -33,33 +35,48 @@
|
|||
|
||||
|
||||
<hr>
|
||||
<h5>Agenturen im Verbund</h5>
|
||||
<h5>Agenturen im Verbund{% if request.user.profile.showtooltips %} <small><i data-toggle="tooltip" data-placement="top" title="Verwalten Sie die Agenturen in Ihrem Verbund. Wählen Sie aus, ob Agenturen nur Mitglied sind oder ob sie Inhalte in den Verbund teilen dürfen. Alternativ können Sie eine Agentur als Administratives Mitglied festlegen. Dann kann diese Agentur ebenfalls alle Einstellungen des Agenturverbunds anpassen." class="far fa-question-circle"></i></small>{% endif %}</h5>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<table class="table hover" id="agnetworkagencys">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Agenturname</th>
|
||||
<th scope="col">Nur Mitglied</th>
|
||||
<th scope="col">Inhalte teilen</th>
|
||||
<th scope="col">Administratives Mitglied</th>
|
||||
<th scope="col" style="text-align: center;">Nur Mitglied</th>
|
||||
<th scope="col" style="text-align: center;">Inhalte teilen</th>
|
||||
<th scope="col" style="text-align: center;">Administratives Mitglied</th>
|
||||
<th scope="col"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="">
|
||||
<tbody>
|
||||
{% for agn_s in allagofagn %}
|
||||
<tr>
|
||||
{% ifaginadminagn agn.pk agn_s.pk as is_adminag %}
|
||||
{% ifmember agn.pk agn_s.pk as is_member %}
|
||||
{% ifsharemember agn.pk agn_s.pk as is_sharemember %}
|
||||
<tr id="agn_{{agn_s.pk}}">
|
||||
<td>{{agn_s.name}}</td>
|
||||
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option1"></td>
|
||||
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option2"></td>
|
||||
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option3"></td>
|
||||
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option1" onchange="javascript:updateAgAgnRights({{agn_s.pk}}, 0)" {% if agn_s == request.user.profile.agency %} disabled="true" {% endif %}
|
||||
{% if is_member %} checked {% endif %}
|
||||
></td>
|
||||
|
||||
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option2" onchange="javascript:updateAgAgnRights({{agn_s.pk}}, 1)" {% if agn_s == request.user.profile.agency %} disabled="true" {% endif %}
|
||||
{% if is_sharemember %} checked {% endif %}
|
||||
></td>
|
||||
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option3" onchange="javascript:updateAgAgnRights({{agn_s.pk}}, 2)" {% if agn_s == request.user.profile.agency %} disabled="true" checked {% endif %}
|
||||
{% if is_adminag %} checked {% endif %}
|
||||
></td>
|
||||
<td>
|
||||
<button style="float: right" class="btn btn-secondary btn-sm " onclick="javascript:showDelAgFromAgn('{{agn_s.name}}')"><small><i class="fas fa-trash"></i></small></button>
|
||||
{% if agn_s != request.user.profile.agency %}
|
||||
<button style="float: right" class="btn btn-secondary btn-sm " onclick="javascript:showDelAgFromAgn('{{agn_s.name}}', {{agn_s.pk}})"><small><i class="fas fa-trash"></i></small></button>
|
||||
{%endif%}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<a href="{% url 'dasettings' %}" type="button" class="btn btn-primary">Zurück zu Verbünden</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -76,16 +93,127 @@
|
|||
Agentur <span id="agname">NAME</span> aus Verbund {{agn.name}} entfernen?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a type="button" class="btn btn-secondary" data-dismiss="modal" href="#">Agentur entfernen</a>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:doRemAgFromAgn()">Agentur entfernen</button>
|
||||
<button type="button" class="btn btn-success" data-dismiss="modal">Abbrechen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="checkInv" 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">Anfrage ablehnen</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Agentur <span id="agname_invite">NAME</span> wirklich nicht zum Agenturverbund {{agn.name}} hinzufügen?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:doRemInv()">Anfrage löschen</button>
|
||||
<button type="button" class="btn btn-success" data-dismiss="modal">Abbrechen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function showDelAgFromAgn(name)
|
||||
$(document).ready(function(){
|
||||
|
||||
$('#agnetworkagencys').DataTable({
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
var workingagid = "";
|
||||
|
||||
function updateAgAgnRights(agency, newstatus){
|
||||
$.ajax(
|
||||
{
|
||||
type: "GET",
|
||||
url: "{% url 'dasettings-agnajax' %}",
|
||||
data:{
|
||||
action: "changeagrights",
|
||||
agency : agency,
|
||||
newstatus : newstatus,
|
||||
agnid : {{agn.pk}}
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function checkRemInv(name, id){
|
||||
workingagid = id;
|
||||
$("#agname_invite").html(name);
|
||||
$("#checkInv").modal("toggle");
|
||||
}
|
||||
|
||||
function doRemInv(){
|
||||
$.ajax(
|
||||
{
|
||||
type: "GET",
|
||||
url: "{% url 'dasettings-agnajax' %}",
|
||||
data:{
|
||||
action: "removeinv",
|
||||
agn_inv : workingagid,
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
location.href = location.href;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function doRemAgFromAgn(){
|
||||
$.ajax(
|
||||
{
|
||||
type: "GET",
|
||||
url: "{% url 'dasettings-agnajax' %}",
|
||||
data:{
|
||||
action: "remove_ag_from_agn",
|
||||
agid : workingagid,
|
||||
agnid : {{agn.pk}}
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
$("#delAgFromAgn").modal("toggle");
|
||||
$("#agn_" + workingagid).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showDelAgFromAgn(name, id)
|
||||
{
|
||||
workingagid = id;
|
||||
$("#agname").html(name);
|
||||
$("#delAgFromAgn").modal("toggle");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<h4>Ihre Agenturverbünde</h4>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<table class="table hover" id="agntable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Name</th>
|
||||
|
|
@ -25,10 +25,9 @@
|
|||
<tbody id="">
|
||||
{% for agn in agencynetworks %}
|
||||
{% getsumofallag agn.pk as agsum %}
|
||||
{% getsumofallstandards agn.pk as ag_standardsum %}
|
||||
{% getoutstandinginvites agn.pk as outstanding %}
|
||||
{% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %}
|
||||
<tr>
|
||||
<tr id="agn_{{agn.pk}}">
|
||||
<td>{{agn.name}}</td>
|
||||
<td>
|
||||
{% if is_adminag %}
|
||||
|
|
@ -40,13 +39,15 @@
|
|||
<td>{{agn.creator_agency.name }}</td>
|
||||
<td>{{agn.creator.first_name }} {{agn.creator.last_name }}</td>
|
||||
<td>{{agn.created_on }}</td>
|
||||
<td>{{agn.last_activity}}</td>
|
||||
<td>{{agn.lastactivity}}</td>
|
||||
<td>{% if is_adminag %} <a href="{% url 'managagn' agn.pk %}"><i class="far fa-eye"></i> {% endif %} {% if outstanding %}<i class="fas fa-info-circle" data-toggle="tooltip" data-placement="top" title="Es gibt ausstehende Einladung."></i> {% endif %} {{agsum}}{% if is_adminag %}</a>{% endif %}</td>
|
||||
<td>{{ag_standardsum}}</td>
|
||||
<td>{{agn.standards.all|length}}</td>
|
||||
<td>
|
||||
{% if is_adminag %}
|
||||
<a style="float: right; margin-left: 5px" class="btn btn-secondary btn-sm" href="{% url 'updateagn' agn.pk %}"><small><i class="fas fa-pen"></i></small></a>
|
||||
<a style="float: right" class="btn btn-secondary btn-sm " href="{% url 'delagn' agn.pk %}"><small><i class="fas fa-trash"></i></small></a>
|
||||
<a style="float: right; margin-left: 5px" class="btn btn-secondary btn-sm" href="{% url 'updateagn' agn.pk %}" data-toggle="tooltip" data-placement="top" title="Verbund bearbeiten"><small><i class="fas fa-pen"></i></small></a>
|
||||
<a style="float: right; margin-left: 5px" class="btn btn-secondary btn-sm " data-toggle="tooltip" data-placement="top" title="Verbund löschen" href="{% url 'delagn' agn.pk %}"><small><i class="fas fa-trash"></i></small></a>
|
||||
{% else %}
|
||||
<button style="float: right; margin-left: 5px" class="btn btn-secondary btn-sm " data-toggle="tooltip" data-placement="top" title="Treten Sie aus diesem Verbund aus." onclick="javascript:showDelAgFromAgn('{{agn.name}}', {{agn.pk}})"><small><i class="fas fa-door-open"></i></small></button>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -79,7 +80,36 @@
|
|||
</div>
|
||||
|
||||
|
||||
<div class="modal fade" id="delAgFromAgn" 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">Aus Agenturverbund austreten</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Möchten Sie den Agenturverbund <b><span id="agname">NAME</span></b> verlassen?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:doRemAgFromAgn()">Ja, Agenturverbund verlassen</button>
|
||||
<button type="button" class="btn btn-success" data-dismiss="modal">Abbrechen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var workingid = "";
|
||||
|
||||
function showDelAgFromAgn(name, id){
|
||||
workingid = id;
|
||||
$("#delAgFromAgn").modal("toggle");
|
||||
$("#agname").html(name);
|
||||
}
|
||||
|
||||
|
||||
function copyLinkToCB(tocopy, id){
|
||||
var val = "{{baseurl}}dasettings/agnni/" + tocopy;
|
||||
var $temp = $("<input>");
|
||||
|
|
@ -90,6 +120,24 @@
|
|||
$("#aglink_" + id).show();
|
||||
}
|
||||
|
||||
function doRemAgFromAgn(){
|
||||
$.ajax(
|
||||
{
|
||||
type: "GET",
|
||||
url: "{% url 'dasettings-agnajax' %}",
|
||||
data:{
|
||||
action: "remove_ag_from_agn",
|
||||
agid : {{request.user.profile.agency.pk}},
|
||||
agnid : workingid
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
$("#delAgFromAgn").modal("toggle");
|
||||
$("#agn_" + workingid).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showAgnLink(name, tocopy, id){
|
||||
$("#aglink_mod").hide();
|
||||
$("#agn_name").html(name);
|
||||
|
|
@ -97,7 +145,39 @@
|
|||
$("#showAGNLink").modal("toggle");
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
$('#agntable').DataTable({
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
<!--
|
||||
name = models.CharField(default="", max_length=200)
|
||||
adminagencys = models.ManyToManyField("Agency", related_name="AdministrationAgencys")
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
<h6><b>Gegründet von</b> {{agn.creator.first_name }} {{agn.creator.last_name }}</h6>
|
||||
<h6><b>Grüdungsdatum</b> {{agn.created_on }}</h6>
|
||||
<h6><b>Agenturen</b> {{agsum}}</h6>
|
||||
<h6><b>Standards</b> {{ag_standardsum}}</h6>
|
||||
<h6><b>Letzte Aktivität</b> {{agn.last_activity}}</h6>
|
||||
<h6><b>Standards</b> {{agn.standards.all|length}}</h6>
|
||||
<h6><b>Letzte Aktivität</b> {{agn.lastactivity}}</h6>
|
||||
</div>
|
||||
</div>
|
||||
{% if agn.publicjoin %}
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ noclickeffect:active { border-style: outset !important;}
|
|||
</div>
|
||||
<div id="area_content_{{area.pk}}" class="collapse" data-labelledby="area_{{area.pk}}" data-parent="#sortableAreas">
|
||||
<div class="card-body">
|
||||
<button class="btn btn-primary" onclick="javascript:addTask({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Neue Tätigkeit hinzufügen."><i class="fas fa-plus"></i> Tätigkeit</button>
|
||||
<table class="table table-hover mt-2" id="areatask_{{area.pk}}_table">
|
||||
<button class="btn btn-primary mb-4" onclick="javascript:addTask({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Neue Tätigkeit hinzufügen."><i class="fas fa-plus"></i> Tätigkeit</button>
|
||||
<table class="table hover" id="areatask_{{area.pk}}_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Name</th>
|
||||
|
|
@ -251,6 +251,15 @@ noclickeffect:active { border-style: outset !important;}
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var ua = window.navigator.userAgent;
|
||||
var isIE = /MSIE|Trident/.test(ua);
|
||||
|
|
@ -745,4 +754,31 @@ function mainmodalAreaSave(){
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
{% for area in agencyareas %}
|
||||
$('#areatask_{{area.pk}}_table').DataTable({
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
{% endfor %}
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -2,11 +2,8 @@
|
|||
<a href="{% url 'newuserfirst' %}"class="btn btn-primary active" data-toggle="tooltip" data-placement="top" title="Fügen Sie hier einen weiteren Mitarbeiter Ihrer Agentur hinzu."><i class="fas fa-plus"></i> Mitarbeiter</a>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="form-group mb-2">
|
||||
<input class="form-control" id="tableSearch" size="50" type="text" placeholder="Suche in Tabelle...">
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<table class="table hover" id="usertableall">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Name</th>
|
||||
|
|
@ -40,14 +37,42 @@
|
|||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
$("#tableSearch").on("keyup", function() {
|
||||
var value = $(this).val().toLowerCase();
|
||||
$("#tableresults tr").filter(function() {
|
||||
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
||||
});
|
||||
|
||||
$('#usertableall').DataTable({
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,12 +15,13 @@ urlpatterns = [
|
|||
path('delagn/<int:pk>', permission_required('users.agencynetwork')(views.DelAgencyNetwork), name='delagn'),
|
||||
path('changeus/<int:pk>/', permission_required('users.usermanager')(views.UserChangeMain), name='changeusermaindata'),
|
||||
path('ajax/', views.SettingsAjaxRouter, name="dasettings-ajax"),
|
||||
path('agnafjax/', views.AgencyNetworkAjaxSettings, name="dasettings-agnajax"),
|
||||
path('usprof/<int:pk>/<int:newuser>', permission_required('users.usermanager')(views.UserProfileUpdate), name="user_updateprofile"),
|
||||
path('agnni/<slug:networkid>/', permission_required('users.agencynetwork')(views.AddMyAgencyToAgn), name='addagnecytoagnetwork'),
|
||||
path('joinagn/<int:pk>', permission_required('users.agencynetwork')(views.JoinAGN), name='joinagn'),
|
||||
path('managnag/<int:pk>', permission_required('users.agencynetwork')(views.ManageAgInAgn), name='managagn'),
|
||||
path('managnag/acceptinv/<int:network>/<int:targetag>/<int:aginvpk>', permission_required('users.agencynetwork')(views.AddAgToNetwork), name='acceptinvite'),
|
||||
path('managnag/deli/<int:pk>', permission_required('users.agencynetwork')(views.DelAgInv), name='delinvite'),
|
||||
path('managnag/delfromagn/<int:agn>/<int:ag>', permission_required('users.agencynetwork')(views.DelFromAgn), name='delagfromagn'),
|
||||
#path('managnag/delfromagn/<int:agn>/<int:ag>', permission_required('users.agencynetwork')(views.DelFromAgn), name='delagfromagn'),
|
||||
|
||||
]
|
||||
|
|
@ -708,13 +708,7 @@ def AddAgToNetwork(request, network, targetag, aginvpk):
|
|||
agn.members.add(Agency.objects.get(pk=targetag))
|
||||
AgencyNetworkPreperation.objects.get(pk=aginvpk).delete()
|
||||
|
||||
context = {
|
||||
'active_link' : 'dasettings',
|
||||
'agn' : agn,
|
||||
'outstanding': AgencyNetworkPreperation.objects.filter(target_network=network)
|
||||
}
|
||||
|
||||
return render(request, 'dasettings/agencynetwork_agmanagement_content.html', context)
|
||||
return redirect('managagn', network)
|
||||
|
||||
@login_required
|
||||
def DelAgInv(request, pk):
|
||||
|
|
@ -726,3 +720,41 @@ def DelAgInv(request, pk):
|
|||
def DelFromAgn(request, agn, ag):
|
||||
|
||||
return redirect('managagn', agn)
|
||||
|
||||
@login_required
|
||||
def AgencyNetworkAjaxSettings(request):
|
||||
success = False
|
||||
data = {}
|
||||
if request.method == 'GET' and request.GET['action'] == "remove_ag_from_agn":
|
||||
agency = Agency.objects.get(pk=request.GET['agid'])
|
||||
agencynetwork = AgencyNetwork.objects.get(pk=request.GET['agnid'])
|
||||
|
||||
if(agency != None and agencynetwork != None):
|
||||
agencynetwork.members.remove(agency)
|
||||
agencynetwork.adminagencys.remove(agency)
|
||||
agencynetwork.sharemembers.remove(agency)
|
||||
success = True
|
||||
elif request.method == 'GET' and request.GET['action'] == "removeinv":
|
||||
AgencyNetworkPreperation.objects.get(pk=request.GET['agn_inv']).delete()
|
||||
success = True
|
||||
elif request.method == 'GET' and request.GET['action'] == "changeagrights":
|
||||
print("UPDATE")
|
||||
agency = Agency.objects.get(pk=request.GET['agency'])
|
||||
agn = AgencyNetwork.objects.get(pk=request.GET['agnid'])
|
||||
if(agency != None and agn != None):
|
||||
agn.members.remove(agency)
|
||||
agn.adminagencys.remove(agency)
|
||||
agn.sharemembers.remove(agency)
|
||||
if (request.GET['newstatus'] == "0"):
|
||||
agn.members.add(agency)
|
||||
elif (request.GET['newstatus'] == "1"):
|
||||
agn.sharemembers.add(agency)
|
||||
elif (request.GET['newstatus'] == "2"):
|
||||
agn.adminagencys.add(agency)
|
||||
|
||||
|
||||
success = True
|
||||
else:
|
||||
success = False
|
||||
return JsonResponse(data)
|
||||
|
||||
|
|
|
|||
|
|
@ -4,14 +4,13 @@
|
|||
<div class="content-section col-10">
|
||||
<div class="row"><div class="content-section col-9">
|
||||
{% if user|usergperm:"moduleorganizer" %}
|
||||
<a class="btn btn-primary mb-3" href="{% url 'add-agpass' %}"><i class="fas fa-plus"></i> Passwort</a>
|
||||
<a class="btn btn-primary " href="{% url 'add-agpass' %}"><i class="fas fa-plus"></i> Passwort</a>
|
||||
{% endif %}
|
||||
<div class="form-group mb-2">
|
||||
<input class="form-control" id="passwords_search" style="max-width: 400px;" size="20" type="text" onkeyup="" placeholder="Suche nach Passwort...">
|
||||
</div>
|
||||
|
||||
</div></div>
|
||||
<hr>
|
||||
<div class="table-responsive" style="min-height: 400px;">
|
||||
<table class="table table-hover">
|
||||
<table class="table hover" id="pstable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Name</th>
|
||||
|
|
@ -204,13 +203,27 @@ function changeGroup(groupid, value){
|
|||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
$("#passwords_search").on("keyup", function() {
|
||||
var value = $(this).val().toLowerCase();
|
||||
$("#table_passwords tr").filter(function() {
|
||||
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
||||
});
|
||||
|
||||
$('#pstable').DataTable({
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('[data-toggle="popover"]').popover();
|
||||
|
||||
|
||||
|
|
@ -218,3 +231,11 @@ function changeGroup(groupid, value){
|
|||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -4,16 +4,14 @@
|
|||
<div class="content-section col-4">
|
||||
<a class="btn btn-primary" href="{% url 'ql-addql' %}"><i class="fas fa-plus"></i> Quicklink</a>
|
||||
|
||||
<div class="form-group mb-2 mt-3">
|
||||
<input class="form-control" id="quicklinks_search" size="50" type="text" placeholder="Suche nach Qiucklinks...">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<hr>
|
||||
<div class="row col-9 " >
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<table class="table table-hover" id="qltable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Name</th>
|
||||
|
|
@ -57,15 +55,30 @@
|
|||
<script>
|
||||
|
||||
$(document).ready(function(){
|
||||
$("#quicklinks_search").on("keyup", function() {
|
||||
var value = $(this).val().toLowerCase();
|
||||
$("#table_quicklinks tr").filter(function() {
|
||||
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
||||
});
|
||||
|
||||
$('#qltable').DataTable({
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
function saveDefQL(){
|
||||
/*
|
||||
$.ajax(
|
||||
|
|
@ -82,3 +95,11 @@ function saveDefQL(){
|
|||
});*/
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -10,6 +10,14 @@ import datetime
|
|||
from django.utils import timezone
|
||||
#from ckeditor_uploader.fields import RichTextUploadingField
|
||||
|
||||
class StandardComments(models.Model):
|
||||
standard = models.ForeignKey("Standards", on_delete=models.CASCADE)
|
||||
content = models.CharField(max_length=200, blank=False, default="")
|
||||
comment_by = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
comment_on = models.DateTimeField(default=timezone.now, blank=True)
|
||||
last_modified_on = models.DateTimeField(default=timezone.now, blank=True)
|
||||
rated = models.IntegerField()
|
||||
|
||||
class Standards(models.Model):
|
||||
|
||||
agency = models.ForeignKey(Agency, on_delete=models.CASCADE)
|
||||
|
|
@ -54,6 +62,11 @@ class Standards(models.Model):
|
|||
indi_name = models.CharField(max_length=200, blank=False, default="")
|
||||
indi_conmtent = models.CharField(max_length=500, blank=False, default="")
|
||||
|
||||
# FIELD FOR AGENCYNETWORK
|
||||
comments = models.ManyToManyField("StandardComments", blank=True, related_name='comments')
|
||||
parent_standard = models.ForeignKey("Standards", related_name='partentedstandard', on_delete=models.PROTECT, blank=True, null=True, default=None)
|
||||
agencynetworkcounter = models.IntegerField(default=0)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}'
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
</nav>
|
||||
<h4>Standards aus dem Bereich {{areaname}}</h4>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<table class="table">
|
||||
<div class="row ml-1">
|
||||
<table class="table hover" id="standardstable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Titel</th>
|
||||
|
|
@ -50,6 +50,37 @@
|
|||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready( function () {
|
||||
$('#standardstable').DataTable({
|
||||
responsive: true,
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
} );
|
||||
</script>
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@
|
|||
</nav>
|
||||
<h4>Standards aus dem Aufgabenbereich {{taskname}} des Bereichs {{areaname}}</h4>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<table class="table">
|
||||
<div class="row ml-1">
|
||||
<table class="table hover " id="standardstable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Titel</th>
|
||||
|
|
@ -51,4 +51,35 @@
|
|||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready( function () {
|
||||
$('#standardstable').DataTable({
|
||||
responsive: true,
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ of _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
} );
|
||||
</script>
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
{% endblock content %}
|
||||
|
|
|
|||
|
|
@ -166,6 +166,21 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header" id="st_agencynetwork">
|
||||
<h5 class="mb-0">
|
||||
<button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#agnetwork_content" aria-expanded="false" aria-controls="agnetwork_content">
|
||||
<i class="fas fa-users"></i> Agenturverbund{% if request.user.profile.showtooltips %} <small><i data-toggle="tooltip" data-placement="top" title="Wählen Sie hier aus, in welchen Agenturverbund dieser Standard geteilt werden soll." class="far fa-question-circle"></i></small>{% endif %}
|
||||
</button>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="agnetwork_content" class="collapse" aria-labelledby="st_agencynetwork" data-parent="#additionalStandardInfos">
|
||||
<div class="card-body">
|
||||
Das Zuweisen zu einem Agenturverbund ist erst nach dem Anlegen eines neuen Standards möglich.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div></div>
|
||||
<p>Wenn ein Standard erstellt wurde, kann er nur von einer Person mit dem Recht <i>Standards bearbeiten und freischalten</i> veröffentlicht werden.</p>
|
||||
<hr>
|
||||
|
|
|
|||
|
|
@ -81,11 +81,9 @@
|
|||
{% endfor %}
|
||||
<div class="tab-pane fade" id="t_userown" role="tabpanel" aria-labelledby="userown">
|
||||
<h4 class="mt-4 mb-4">Eigene Standards</h4>
|
||||
<div class="form-group mb-2">
|
||||
<input class="form-control" id="tableSearch" size="20" type="text" placeholder="Suche in Tabelle...">
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<table class="table hover" id="userownstandards">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Titel</th>
|
||||
|
|
@ -134,11 +132,9 @@
|
|||
</div>
|
||||
<div class="tab-pane fade" id="t_agencys" role="tabpanel" aria-labelledby="userown">
|
||||
<h4 class="mt-4 mb-4">Unveröffentlichte Standards</h4>
|
||||
<div class="form-group mb-2">
|
||||
<input class="form-control" id="tableSearch_s" size="20" type="text" placeholder="Suche in Tabelle...">
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<table class="table hover" id="unpubstandardsofuser">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Titel</th>
|
||||
|
|
@ -222,19 +218,47 @@
|
|||
|
||||
|
||||
$('[data-toggle="popover"]').popover();
|
||||
$("#tableSearch").on("keyup", function() {
|
||||
var value = $(this).val().toLowerCase();
|
||||
$("#tableresults tr").filter(function() {
|
||||
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
||||
});
|
||||
|
||||
$('#userownstandards').DataTable({
|
||||
responsive: true,
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
|
||||
$("#tableSearch_s").on("keyup", function() {
|
||||
var value = $(this).val().toLowerCase();
|
||||
$("#tableresults_s tr").filter(function() {
|
||||
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
||||
});
|
||||
$('#unpubstandardsofuser').DataTable({
|
||||
responsive: true,
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"zeroRecords": "Nichts gefunden",
|
||||
"infoEmpty": "Keine Einträge",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"lengthMenu": "Zeige _MENU_ Einträge",
|
||||
"paginate": {
|
||||
"first": "Erste",
|
||||
"last": "Letzte",
|
||||
"next": "Nächste",
|
||||
"previous": "Zurück"
|
||||
},
|
||||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
|
@ -244,4 +268,12 @@
|
|||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
border: 0px !important;
|
||||
}
|
||||
</style>
|
||||
{% endblock content %}
|
||||
|
|
@ -162,6 +162,45 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header" id="st_agencynetwork">
|
||||
<h5 class="mb-0">
|
||||
<button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#agnetwork_content" aria-expanded="false" aria-controls="agnetwork_content">
|
||||
<i class="fas fa-users"></i> Agenturverbund{% if request.user.profile.showtooltips %} <small><i data-toggle="tooltip" data-placement="top" title="Wählen Sie hier aus, in welchen Agenturverbund dieser Standard geteilt werden soll." class="far fa-question-circle"></i></small>{% endif %}
|
||||
</button>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="agnetwork_content" class="collapse" aria-labelledby="st_agencynetwork" data-parent="#additionalStandardInfos">
|
||||
<div class="card-body">
|
||||
{% if not standard.public %}
|
||||
Nur veröffentlichte Standards können geteilt werden.
|
||||
{% else %}
|
||||
{% for agn in agencynetworks %}
|
||||
{% ifaginadminagn agn.pk request.user.profile.agency.pk as is_admin %}
|
||||
{% ifsharemember agn.pk request.user.profile.agency.pk as is_sharemember %}
|
||||
{% ifstandardinagn agn.pk standard.pk as standard_in_agn %}
|
||||
{% if is_admin or is_sharemember %}
|
||||
<div class="custom-control custom-checkbox mb-2">
|
||||
<input type="checkbox" class="custom-control-input groupclass" onclick="javascript:standardAgn({{agn.pk}}, this.checked)" name="agn_{{agn.pk}}" id="agn_{{agn.pk}}" {% if standard_in_agn %} checked {% endif %} >
|
||||
<label class="custom-control-label" for="agn_{{agn.pk}}" >{{agn.name}}</label>
|
||||
</div>
|
||||
{% else %}
|
||||
<i class="fas fa-lock" data-toggle="tooltip" data-placement="top" title="In diesen Verbund dürfen Sie nichts teilen."></i> {{agn.name}}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<p>Wenn ein Standard bearbeitet wurde, kann er nur von einer Person mit dem Recht <i>Standards bearbeiten und freischalten</i> wieder veröffentlicht werden. Ein Standard wird nach Bearbeitung als <i>Nicht veröffentlicht</i> gesetzt.</p>
|
||||
<hr>
|
||||
|
|
@ -313,6 +352,20 @@
|
|||
|
||||
<script type="text/javascript">
|
||||
|
||||
function standardAgn(id, newstat){
|
||||
console.log(id, newstat);
|
||||
$.ajax({
|
||||
url: "{% url 'update_standard_by_ajax' standard.pk %}",
|
||||
data: {
|
||||
action : 's_addtonetwork',
|
||||
agn_id : id,
|
||||
newstat : newstat
|
||||
},
|
||||
success: function (data) {}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
var ua = window.navigator.userAgent;
|
||||
var isIE = /MSIE|Trident/.test(ua);
|
||||
if ( isIE ) {
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -120,6 +120,39 @@ def ifaginadminagn(agn_id, agencyid):
|
|||
|
||||
return agency_is_admin
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def ifmember(agn_id, agencyid):
|
||||
agn = AgencyNetwork.objects.get(pk=agn_id)
|
||||
ag = Agency.objects.get(pk=agencyid)
|
||||
|
||||
ismember = False
|
||||
if ag in agn.members.all():
|
||||
ismember = True
|
||||
|
||||
return ismember
|
||||
|
||||
@register.simple_tag
|
||||
def ifsharemember(agn_id, agencyid):
|
||||
agn = AgencyNetwork.objects.get(pk=agn_id)
|
||||
ag = Agency.objects.get(pk=agencyid)
|
||||
|
||||
sharemember = False
|
||||
if ag in agn.sharemembers.all():
|
||||
sharemember = True
|
||||
|
||||
return sharemember
|
||||
|
||||
@register.simple_tag
|
||||
def ifstandardinagn(agn_id, standardid):
|
||||
agn = AgencyNetwork.objects.get(pk=agn_id)
|
||||
s = Standards.objects.get(pk=standardid)
|
||||
|
||||
isin = False
|
||||
if s in agn.standards.all():
|
||||
isin = True
|
||||
return isin
|
||||
|
||||
@register.simple_tag
|
||||
def getoutstandinginvites(agnetwork):
|
||||
outstanding = False
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ from django.contrib.auth.decorators import login_required
|
|||
from tasks.models import Tasks
|
||||
from areas.models import Areas
|
||||
from datetime import datetime
|
||||
from users.models import AgencyGroup
|
||||
from users.models import AgencyGroup, AgencyNetwork
|
||||
from cloud.models import DataFile, DataDir
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
|
|
@ -283,6 +283,9 @@ def StandardUpdate(request, id):
|
|||
if pv not in standard.representative.all():
|
||||
possible_ver_final.append(pv)
|
||||
|
||||
agencynetworks = AgencyNetwork.objects.filter(creator_agency=request.user.profile.agency) | AgencyNetwork.objects.filter(adminagencys__in=[request.user.profile.agency.pk]) | AgencyNetwork.objects.filter(members__in=[request.user.profile.agency.pk]) | AgencyNetwork.objects.filter(sharemembers__in=[request.user.profile.agency.pk])
|
||||
|
||||
|
||||
|
||||
context = {
|
||||
'normalForm' : normalForm,
|
||||
|
|
@ -297,7 +300,8 @@ def StandardUpdate(request, id):
|
|||
'poss_verant' : possible_verant_final,
|
||||
'poss_ex' : possible_ex_final,
|
||||
'poss_ver' : possible_ver_final,
|
||||
'possiblestandards' : possiblestandards_final
|
||||
'possiblestandards' : possiblestandards_final,
|
||||
"agencynetworks" : agencynetworks
|
||||
}
|
||||
return render(request, 'standards/standards_update.html', context)
|
||||
|
||||
|
|
@ -440,6 +444,17 @@ def updatesbyajax(request, pk):
|
|||
workingstandard.representative.remove(User.objects.get(pk=request.GET["userid"], profile__agency=request.user.profile.agency))
|
||||
elif(request.GET["action"] == "s_addver"):
|
||||
workingstandard.representative.add(User.objects.get(pk=request.GET["userid"], profile__agency=request.user.profile.agency))
|
||||
# ADD STANDARD TO AGENCYNETWORK
|
||||
elif(request.GET["action"] == "s_addtonetwork"):
|
||||
if workingstandard.public and request.user.profile.agency == workingstandard.agency:
|
||||
agn = AgencyNetwork.objects.get(pk=request.GET["agn_id"])
|
||||
if(request.GET["newstat"] == "true"):
|
||||
agn.standards.add(workingstandard)
|
||||
else:
|
||||
agn.standards.remove(workingstandard)
|
||||
agn.lastactivity = datetime.now()
|
||||
agn.save()
|
||||
|
||||
else:
|
||||
success = False
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ class AgencyNetwork(models.Model):
|
|||
sharemembers = models.ManyToManyField("Agency", related_name="ShareMemberAgencys", blank=True)
|
||||
publicjoin = models.BooleanField(default=False)
|
||||
networkid = models.CharField(default="", max_length=30)
|
||||
standards = models.ManyToManyField("standards.Standards", related_name="sharedstandards", blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}'
|
||||
|
|
|
|||
|
|
@ -193,3 +193,5 @@ right connector from last child*/
|
|||
|
||||
/*Thats all. I hope you enjoyed it.
|
||||
Thanks :)*/
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -52,8 +52,9 @@
|
|||
<!--<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">-->
|
||||
|
||||
<!-- DATATABLES -->
|
||||
<!--<link href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet">-->
|
||||
<link href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet">
|
||||
|
||||
|
||||
<!-- Custom styles for this template-->
|
||||
<link href="{% static 'users/css/sb-admin-2.css' %}" rel="stylesheet">
|
||||
|
|
|
|||
Loading…
Reference in New Issue