Zeiterfassung für QS bereit
This commit is contained in:
parent
e8ec54e7f5
commit
51d7a746f7
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue