Ansicht ADM
This commit is contained in:
parent
e1620e740d
commit
47b8be9670
|
|
@ -22,11 +22,12 @@ class AdmWorkdayForm(forms.ModelForm):
|
||||||
"start" : "Start",
|
"start" : "Start",
|
||||||
"end" : "Ende",
|
"end" : "Ende",
|
||||||
"target" : "Zielarbeitszeit",
|
"target" : "Zielarbeitszeit",
|
||||||
"freefield" : "Notiz"
|
"freefield" : "Notiz",
|
||||||
|
"delflag" : "Nicht berücksichtigen (delflag)"
|
||||||
}
|
}
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
"start", "end", "target", "freefield"
|
"start", "end", "target", "freefield", "delflag"
|
||||||
]
|
]
|
||||||
widgets = {
|
widgets = {
|
||||||
'start': DatePickerInput(options={"format":'DD.MM.YYYY HH:mm', "locale":'de'}),
|
'start': DatePickerInput(options={"format":'DD.MM.YYYY HH:mm', "locale":'de'}),
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,17 @@
|
||||||
<span>Benutzer</span></a>
|
<span>Benutzer</span></a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Dashboard -->
|
||||||
|
{% if active_link == 'adm-tm-wd-bug' %}
|
||||||
|
<li class="nav-item active">
|
||||||
|
{% else %}
|
||||||
|
<li class="nav-item">
|
||||||
|
{%endif%}
|
||||||
|
<a class="nav-link" href="{% url 'adm-tm-wd-bug' %}">
|
||||||
|
<i class="fas fa-user"></i>
|
||||||
|
<span>TM-WD-Bug</span></a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<hr class="sidebar-divider my-0">
|
<hr class="sidebar-divider my-0">
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
{% extends "adm/adm_base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
{% load adm_tags %}
|
||||||
|
{% load mathfilters %}
|
||||||
|
{% load humanize %}
|
||||||
|
{% load counter_tag %}
|
||||||
|
<div class="content-section col-12">
|
||||||
|
<h4>Übersicht Arbeitstag und Abwesenheit
|
||||||
|
</h4>
|
||||||
|
<table class="table table-striped" id="wdabdays">
|
||||||
|
<thead>
|
||||||
|
<trd>
|
||||||
|
<td>Name</td>
|
||||||
|
<td>Relevante Arbeitstage</td>
|
||||||
|
</trd>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for user in users %}
|
||||||
|
{% getADMAbsenceWorkdays user as workdays %}
|
||||||
|
<tr>
|
||||||
|
<td>{{user.username}}</td>
|
||||||
|
<td>
|
||||||
|
{% for wd in workdays %} <a href="{% url 'adm-workday-update' wd.pk %}">{{wd.pk}}</a>, {% endfor %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('#wdabdays').DataTable({
|
||||||
|
order: [0, 'desc'],
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"pageLength": 50,
|
||||||
|
"buttons" : {
|
||||||
|
"className" : "btn-danger"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
{% endblock content %}
|
||||||
|
|
@ -23,4 +23,5 @@ urlpatterns = [
|
||||||
path('wd/<int:pk>/delete', AdmWorkdayDelete.as_view(), name="adm-workday-delete"),
|
path('wd/<int:pk>/delete', AdmWorkdayDelete.as_view(), name="adm-workday-delete"),
|
||||||
path('wd/break/<int:pk>/delete', AdmBreakDelete.as_view(), name="adm-break-delete"),
|
path('wd/break/<int:pk>/delete', AdmBreakDelete.as_view(), name="adm-break-delete"),
|
||||||
path('wd/<int:pk>/break/add', AdmAddBreak.as_view(), name="adm-break-add"),
|
path('wd/<int:pk>/break/add', AdmAddBreak.as_view(), name="adm-break-add"),
|
||||||
|
path('tmbug/', AdmTmWorkdayColl.as_view(), name="adm-tm-wd-bug"),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
11
adm/views.py
11
adm/views.py
|
|
@ -29,9 +29,20 @@ from django.template.loader import render_to_string
|
||||||
from cloud.models import DataFile
|
from cloud.models import DataFile
|
||||||
import math
|
import math
|
||||||
import requests
|
import requests
|
||||||
|
from digitaleagentur.timemanagement_utils import *
|
||||||
|
|
||||||
# TODO: ADM-Oberfläche Auswertung machen, an welchen Tagen eines Mitarbeiters auch eine Abwesenheit
|
# TODO: ADM-Oberfläche Auswertung machen, an welchen Tagen eines Mitarbeiters auch eine Abwesenheit
|
||||||
|
|
||||||
|
class AdmTmWorkdayColl(TemplateView):
|
||||||
|
template_name = "adm/adm_tmworkday.html"
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super().get_context_data(**kwargs)
|
||||||
|
context.update({'active_link' : "adm-tm-wd-bug"})
|
||||||
|
|
||||||
|
context.update({'users' : User.objects.all().order_by('username') })
|
||||||
|
return context
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Prüfung, ob angemeldeter User Mitarbeiterstatus hat. IMMER PER DISPATCH EINBAUEN!
|
Prüfung, ob angemeldeter User Mitarbeiterstatus hat. IMMER PER DISPATCH EINBAUEN!
|
||||||
'''
|
'''
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1110,3 +1110,17 @@ def getAbsenceLastHistory(absence):
|
||||||
return absence.history.first()
|
return absence.history.first()
|
||||||
|
|
||||||
|
|
||||||
|
# Gibt die Arbeitstage zurück, an denen auch eine Abwesenheit liegt
|
||||||
|
from digitaleagentur.timemanagement_utils import *
|
||||||
|
@register.simple_tag
|
||||||
|
def getADMAbsenceWorkdays(user):
|
||||||
|
workdays_final = []
|
||||||
|
for absence in Absence.objects.filter(user=user):
|
||||||
|
for day in daterange(absence.start, absence.end):
|
||||||
|
# Arbeitstage an diesem Tag werden geladen
|
||||||
|
workdays = Workday.objects.filter(user=absence.user, start__day=day.day, start__month=day.month, start__year=day.year)
|
||||||
|
|
||||||
|
# Wenn es Arbeitstage gibt, dann wird geprüft, ob die Abwesenheit diesen verändert hat.
|
||||||
|
for workday in workdays:
|
||||||
|
workdays_final.append(workday)
|
||||||
|
return workdays_final
|
||||||
Loading…
Reference in New Issue