Zeiterfassung für QS bereit

This commit is contained in:
Holger Trampe 2020-07-27 00:40:03 +02:00
parent e8ec54e7f5
commit 51d7a746f7
5 changed files with 139 additions and 26 deletions

View File

@ -648,3 +648,27 @@ def kontingent(user):
pass
return kon
'''
Zählt ausgegebene Arbeitstage MIT
'''
workdaycounter = 0
@register.simple_tag
def counterWDUp():
global workdaycounter
workdaycounter += 1
return ''
@register.simple_tag
def counterWDreset():
global workdaycounter
workdaycounter = 0
return ''
@register.simple_tag
def getCounterWD():
global workdaycounter
return workdaycounter

View File

@ -9,7 +9,6 @@
<hr>
<!-- TODO: Hier noch Jahr speichern und Monat usw. -->
<div class="btn-group" role="group" aria-label="" style="min-width: 100% !important">
<a type="button" class="btn btn-primary mr-1" href="{% url 'tm-management' prev_month prev_year %}" ><i class="fas fa-arrow-circle-left"></i></a>
<button type="button" class="btn btn-primary mr-1" style="min-width: 150px !important;" onclick="javascript:fastChangeModal()">{{active_month}} {{active_year}}</button>
@ -18,6 +17,14 @@
<hr>
<!--
# TODO: Sichtbarkeit durch andere Nutzer absprechen?
# TODO: Bis wann darf rückwirkend eine Abwesenheit bearbeitet werden? Monatlich?
# TODO: CronJob einmal umbauen
# TODO: Halber Tag mit Workday verbinden
-->
<div class="table-responsive ">
<table class="table table-hover" id="table_timemanagement" >
<thead>
@ -50,62 +57,135 @@
<td>
{{da|date:"d.m.y"}}
</td>
<td>
<td {% if abday != False %} colspan="3" {% endif %}>
{% if abday != False %}
{{abday.reason}}
{% if abday.start == da%}
{% if abday.startday_info == "1" %}
(nur Vormittags)
{% elif abday.startday_info == "2" %}
(nur Nachmittags)
{% endif %}
{% elif abday.end == da%}
{% if abday.endday_info == "1" %}
(nur Vormittags)
{% elif abday.endday_info == "2" %}
(nur Nachmittags)
{% endif %}
{% endif %}
{% else %}
{% if abday == False %}
{% counterWDreset %}
{% for workday in workdays %}
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
{% getCounterWD as wd_counter %}
{% if wd_counter > 0 %}
<br />
{% endif %}
{% counterWDUp %}
{{workday.start|date:"H:i"}}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
</td>
{% if abday == False %}
<td>
{% if abday == False %}
{% counterWDreset %}
{% for workday in workdays %}
{% if workday.end|date:"d-m-y" == da|date:"d-m-y" %}
{% getCounterWD as wd_counter %}
{% if wd_counter > 0 %}
<br />
{% endif %}
{% counterWDUp %}
{{workday.end|date:"H:i"}}
{% endif %}
{% endfor %}
{% endif %}
</td>
<td>
{% if abday == False %}
{% for workday in workdays %}
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
{% getsumworkdayexcludebreak workday as sumworkday %}
{{ sumworkday }}
{% endif %}
{% endfor %}
{% endif %}
{% counterWDreset %}
{% for workday in workdays %}
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
{% getCounterWD as wd_counter %}
{% if wd_counter > 0 %}
<br />
{% endif %}
{% counterWDUp %}
{% getsumworkdayexcludebreak workday as sumworkday %}
{{ sumworkday }}
{% endif %}
{% endfor %}
</td>
<td>
{% if abday == False %}
{% counterWDreset %}
{% for workday in workdays %}
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
{% getCounterWD as wd_counter %}
{% if wd_counter > 0 %}
<br />
{% endif %}
{% counterWDUp %}
{% getsumbreak workday as sumbreakofday %}
{{sumbreakofday}} min. ({{workday.breaks.all|length}})
{% endif %}
{% endfor %}
{% endif %}
</td>
<td>
{% if abday == False %}
{% counterWDreset %}
{% for workday in workdays %}
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
{% getCounterWD as wd_counter %}
{% if wd_counter > 0 %}
<br />
{% endif %}
{% counterWDUp %}
{% getsumworkday workday as sumwd %}
{{sumwd}}
{% endif %}
{% endfor %}
{% endif %}
</td>
<td>
{% if abday == False %}
{% counterWDreset %}
{% for workday in workdays %}
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
{% getCounterWD as wd_counter %}
{% if wd_counter > 0 %}
<br />
{% endif %}
{% counterWDUp %}
{% gettimeoveralldiff workday user as erg%}
{% if erg.1 == 0 %}
<span style="color: green">+{{erg.0}}</span>
@ -116,26 +196,37 @@
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
</td>
<td>
{% if abday == False %}
{% counterWDreset %}
{% for workday in workdays %}
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
{% getCounterWD as wd_counter %}
{% if wd_counter > 0 %}
<br />
{% endif %}
{% counterWDUp %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %}
{% endfor %}
{% endif %}
</td>
{% else %}
<td></td><td></td><td></td><td></td><td style="display: none;"></td><td style="display: none;"></td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="modal fade" tabindex="-1" id="fastjumpmodal" data-backdrop="static">
<div class="modal-dialog" role="document">
<div class="modal-content">
@ -170,7 +261,7 @@
</div>
<script type="text/javascript">
var choosenyear = "{{active_year}}";
var choosenyear = "{{active_year}}";
function goFastToMonth(month){
location.href = "/tm/" + month +"/" + choosenyear
}

View File

@ -9,8 +9,7 @@
<hr>
<!-- TODO: Hier noch Jahr speichern und Monat usw. -->
<div class="btn-group" role="group" aria-label="" style="min-width: 100% !important">
<div class="btn-group" role="group" aria-label="" style="min-width: 100% !important">
<a type="button" class="btn btn-primary mr-1" href="{% url 'tm-management' prev_month prev_year %}" ><i class="fas fa-arrow-circle-left"></i></a>
<button type="button" class="btn btn-primary mr-1" style="min-width: 150px !important;" onclick="">{{active_month}} {{active_year}}</button>
<a type="button" class="btn btn-primary mr-1" href="{% url 'tm-management' next_month next_year %}"><i class="fas fa-arrow-circle-right"></i></a>

View File

@ -283,7 +283,6 @@ def AbsenceManagmenet(request, activemonth=False, activeyear=False):
@login_required
def TimeManagement(request, activemonth=False, activeyear=False):
# TODO: Abwesenheiten mit berücksichtigen!
# Setzt die Monatsausgabe auf Deutsch
locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')