Ansicht ADM

This commit is contained in:
Holger Trampe 2021-10-07 19:39:17 +02:00
parent e1620e740d
commit 47b8be9670
7 changed files with 93 additions and 2 deletions

View File

@ -22,11 +22,12 @@ class AdmWorkdayForm(forms.ModelForm):
"start" : "Start",
"end" : "Ende",
"target" : "Zielarbeitszeit",
"freefield" : "Notiz"
"freefield" : "Notiz",
"delflag" : "Nicht berücksichtigen (delflag)"
}
fields = [
"start", "end", "target", "freefield"
"start", "end", "target", "freefield", "delflag"
]
widgets = {
'start': DatePickerInput(options={"format":'DD.MM.YYYY HH:mm', "locale":'de'}),

View File

@ -118,6 +118,17 @@
<span>Benutzer</span></a>
</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">
<li class="nav-item">

View File

@ -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 %}

View File

@ -23,4 +23,5 @@ urlpatterns = [
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/<int:pk>/break/add', AdmAddBreak.as_view(), name="adm-break-add"),
path('tmbug/', AdmTmWorkdayColl.as_view(), name="adm-tm-wd-bug"),
]

View File

@ -29,9 +29,20 @@ from django.template.loader import render_to_string
from cloud.models import DataFile
import math
import requests
from digitaleagentur.timemanagement_utils import *
# 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!
'''

View File

@ -1110,3 +1110,17 @@ def getAbsenceLastHistory(absence):
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