Modulcommit Zeiterfassung
This commit is contained in:
parent
226eecb46e
commit
787f08596c
Binary file not shown.
|
|
@ -357,3 +357,30 @@ def getdailybreaktimetoday(user):
|
|||
breaksum += (b.end - b.start).seconds
|
||||
return breaksum*1000
|
||||
|
||||
@register.simple_tag
|
||||
def getsumworkday(workday):
|
||||
|
||||
sum_break = 0
|
||||
|
||||
if(len(workday.breaks.all()) > 0):
|
||||
|
||||
for ele in workday.breaks.all():
|
||||
sum_break += (ele.end - ele.start).seconds
|
||||
|
||||
finalsum = ((workday.end - workday.start).seconds - sum_break)
|
||||
|
||||
mon, sec = divmod(finalsum, 60)
|
||||
hr, mon = divmod(mon, 60)
|
||||
#return ("%d Stunden und %02d:%02d" % (hr, mon, sec))
|
||||
return ("%d Stunden und %02d Minuten" % (hr, mon))
|
||||
|
||||
@register.simple_tag
|
||||
def getsumbreak(workday):
|
||||
sum_break = 0
|
||||
|
||||
if(len(workday.breaks.all()) > 0):
|
||||
|
||||
for ele in workday.breaks.all():
|
||||
sum_break += (ele.end - ele.start).seconds
|
||||
|
||||
return int(sum_break/60)
|
||||
Binary file not shown.
|
|
@ -1,11 +1,64 @@
|
|||
{% extends "users/base.html" %}
|
||||
{% block content %}
|
||||
{% load counter_tag %}
|
||||
{% if request.user.profile.agency.module_timemanagement %}
|
||||
<div class="content-section col-12">
|
||||
<h3>Zeiterfassung <small><i data-toggle="tooltip" data-placement="top" title="Bearbeiten Sie hier Ihre Zeiterfassung." class="far fa-question-circle"></i></small></h3>
|
||||
<hr>
|
||||
|
||||
<div class="table-responsive ">
|
||||
<table class="table table-hover" id="table_timemanagement" >
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">Start</th>
|
||||
<th scope="col">Ende</th>
|
||||
<th scope="col">Stunden</th>
|
||||
<th scope="col">Pausen</th>
|
||||
<th scope="col">Gesamtzeit</th>
|
||||
<th scope="col">Gleitzeit in h</th>
|
||||
<th scope="col"> </th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="table_contacts" >
|
||||
{% for workday in workdays %}
|
||||
<tr>
|
||||
<td>
|
||||
{{forloop.counter}}
|
||||
</td>
|
||||
<td>
|
||||
{{workday.start}}
|
||||
</td>
|
||||
<td>
|
||||
{{workday.end}}
|
||||
</td>
|
||||
<td>
|
||||
{{ workday.end|timeuntil:workday.start }}
|
||||
</td>
|
||||
<td>
|
||||
{% getsumbreak workday as sumbreakofday %}
|
||||
{{sumbreakofday}} min. ({{workday.breaks.all|length}})
|
||||
|
||||
</td>
|
||||
<td>
|
||||
{% getsumworkday workday as sumwd %}
|
||||
{{sumwd}}
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-secondary btn-sm ml-2" href=""><small><i class="fas fa-trash"></i></small></a>
|
||||
<a class="btn btn-secondary btn-sm " href=""><small><i class="fas fa-pen"></i></small></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
<style>
|
||||
/* DATATABLES */
|
||||
.paginate_button {
|
||||
padding: 0px !important;
|
||||
|
|
@ -14,8 +67,8 @@
|
|||
</style>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
/*
|
||||
$('#activenews').DataTable({
|
||||
|
||||
$('#table_timemanagement').DataTable({
|
||||
"language": {
|
||||
"search" : "Suche",
|
||||
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
|
|
@ -31,9 +84,9 @@ $(document).ready(function(){
|
|||
},
|
||||
"buttons" : {
|
||||
"className" : "btn-danger"
|
||||
}*/
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
{% else %}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ from django.utils import timezone
|
|||
@login_required
|
||||
def TimeManagement(request):
|
||||
context = {
|
||||
"active_link" : "timemanagement"
|
||||
"active_link" : "timemanagement",
|
||||
"workdays" : Workday.objects.filter(agency=request.user.profile.agency, user=request.user).order_by("-start")
|
||||
}
|
||||
return render(request, 'timemanagement/timemanagement_management.html', context)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue