Weekly reporting view (#1892)
This commit is contained in:
@@ -4,6 +4,13 @@
|
||||
|
||||
{% block report %}
|
||||
|
||||
{% set hasData = false %}
|
||||
{% for day in days %}
|
||||
{% if day.details is not empty %}
|
||||
{% set hasData = true %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% embed '@AdminLTE/Widgets/box-widget.html.twig' %}
|
||||
{% import "macros/widgets.html.twig" as widgets %}
|
||||
{% block box_before %}
|
||||
@@ -20,10 +27,14 @@
|
||||
{% endif %}
|
||||
{{ form_widget(form.date) }}
|
||||
{% endblock %}
|
||||
{% block box_body_class %}user-month-reporting-box no-padding table-responsive{% endblock %}
|
||||
{% block box_body_class %}user-month-reporting-box table-responsive{% if hasData %} no-padding{% endif %}{% endblock %}
|
||||
{% block box_body %}
|
||||
{% if not hasData %}
|
||||
{{ widgets.nothing_found() }}
|
||||
{% else %}
|
||||
<table class="table table-bordered table-hover dataTable">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th></th>
|
||||
{% for day in days %}
|
||||
<th class="text-center text-nowrap{% if day.day is weekend %} weekend{% endif %}">
|
||||
@@ -31,52 +42,54 @@
|
||||
{{ day.day|date_format('d.m') }}
|
||||
</th>
|
||||
{% endfor %}
|
||||
<th></th>
|
||||
</tr>
|
||||
{% for project in rows %}
|
||||
<tr>
|
||||
<td class="text-nowrap">
|
||||
<strong>{{ widgets.label_project(project.project) }}</strong>
|
||||
</td>
|
||||
<th class="text-nowrap text-center">{{ project.duration|duration }}</th>
|
||||
{% for day in project.days %}
|
||||
<td class="text-nowrap{% if day.date is weekend %} weekend{% endif %}">
|
||||
<td class="text-nowrap text-center{% if day.date is weekend %} weekend{% endif %}">
|
||||
{% if day.duration > 0 %}
|
||||
{{ day.duration|duration }}
|
||||
<strong>{{ day.duration|duration }}</strong>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
<th class="text-nowrap">{{ project.duration|duration }}</th>
|
||||
</tr>
|
||||
{% for activity in project.activities %}
|
||||
<tr>
|
||||
<td class="text-nowrap">
|
||||
{{ widgets.label_activity(activity.activity) }}
|
||||
</td>
|
||||
<th class="text-nowrap text-center">{{ activity.duration|duration }}</th>
|
||||
{% for day in activity.days %}
|
||||
<td class="text-nowrap{% if day.date is weekend %} weekend{% endif %}">
|
||||
<td class="text-nowrap text-center{% if day.date is weekend %} weekend{% endif %}">
|
||||
{% if day.duration > 0 %}
|
||||
{{ day.duration|duration }}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
<th class="text-nowrap">{{ activity.duration|duration }}</th>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% set total = 0 %}
|
||||
<tr>
|
||||
<th></th>
|
||||
{% for day in days %}
|
||||
<th class="text-nowrap{% if day.day is weekend %} weekend{% endif %}">
|
||||
{% set total = total + day.totalDuration %}
|
||||
{% endfor %}
|
||||
<th></th>
|
||||
<th class="text-nowrap text-center">{{ total|duration }}</th>
|
||||
{% for day in days %}
|
||||
<th class="text-nowrap text-center{% if day.day is weekend %} weekend{% endif %}">
|
||||
{% if day.totalDuration > 0 %}
|
||||
{{ day.totalDuration|duration }}
|
||||
{% set total = total + day.totalDuration %}
|
||||
{% endif %}
|
||||
</th>
|
||||
{% endfor %}
|
||||
<th class="text-nowrap">{{ total|duration }}</th>
|
||||
</tr>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endembed %}
|
||||
|
||||
|
||||
@@ -15,10 +15,11 @@
|
||||
{% block box_title %}
|
||||
{{ form_widget(form.date) }}
|
||||
{% endblock %}
|
||||
{% block box_body_class %}monthly-user-list-reporting-box no-padding table-responsive{% endblock %}
|
||||
{% block box_body_class %}monthly-user-list-reporting-box table-responsive no-padding{% endblock %}
|
||||
{% block box_body %}
|
||||
<table class="table table-bordered table-hover dataTable">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th></th>
|
||||
{% for day in days %}
|
||||
<th class="text-center text-nowrap{% if day is weekend %} weekend{% endif %}">
|
||||
@@ -26,7 +27,6 @@
|
||||
{{ day|date_format('d.m') }}
|
||||
</th>
|
||||
{% endfor %}
|
||||
<th></th>
|
||||
</tr>
|
||||
{% for userDay in rows %}
|
||||
{% set usersMonthDuration = 0 %}
|
||||
@@ -34,15 +34,25 @@
|
||||
<td class="text-nowrap">
|
||||
<strong>{{ widgets.username(userDay.user) }}</strong>
|
||||
</td>
|
||||
{% for day in userDay.days %}
|
||||
{% if day.totalDuration > 0 %}
|
||||
{% set usersMonthDuration = usersMonthDuration + day.totalDuration %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<th class="text-nowrap text-center">
|
||||
{% if usersMonthDuration == 0 %}
|
||||
-
|
||||
{% else %}
|
||||
{{ usersMonthDuration|duration }}
|
||||
{% endif %}
|
||||
</th>
|
||||
{% for day in userDay.days %}
|
||||
<td class="text-nowrap{% if day.day is weekend %} weekend{% endif %}">
|
||||
{% if day.totalDuration > 0 %}
|
||||
{{ day.totalDuration|duration }}
|
||||
{% set usersMonthDuration = usersMonthDuration + day.totalDuration %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
<th class="text-nowrap">{{ usersMonthDuration|duration }}</th>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
112
templates/reporting/week_by_user.html.twig
Normal file
112
templates/reporting/week_by_user.html.twig
Normal file
@@ -0,0 +1,112 @@
|
||||
{% extends 'reporting/layout.html.twig' %}
|
||||
|
||||
{% block report_title %}{{ 'report_user_week'|trans({}, 'reporting') }}{% endblock %}
|
||||
|
||||
{% block report %}
|
||||
|
||||
{% set hasData = false %}
|
||||
{% for day in days %}
|
||||
{% if day.details is not empty %}
|
||||
{% set hasData = true %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% embed '@AdminLTE/Widgets/box-widget.html.twig' %}
|
||||
{% import "macros/widgets.html.twig" as widgets %}
|
||||
{% block box_before %}
|
||||
{{ form_start(form, {'action': path('report_user_week'), 'attr': {'class': 'form-inline'}}) }}
|
||||
{% endblock %}
|
||||
{% block box_after %}
|
||||
{{ form_end(form) }}
|
||||
{% endblock %}
|
||||
{% block box_title %}
|
||||
{% if form.user is defined %}
|
||||
{{ form_widget(form.user) }}
|
||||
{% else %}
|
||||
{{ widgets.username(user) }}
|
||||
{% endif %}
|
||||
{{ form_widget(form.date) }}
|
||||
{% endblock %}
|
||||
{% block box_body_class %}user-week-reporting-box table-responsive{% if hasData %} no-padding{% endif %}{% endblock %}
|
||||
{% block box_body %}
|
||||
{% if not hasData %}
|
||||
{{ widgets.nothing_found() }}
|
||||
{% else %}
|
||||
<table class="table table-bordered table-hover dataTable">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th></th>
|
||||
{% for day in days %}
|
||||
<th class="text-center text-nowrap{% if day.day is weekend %} weekend{% endif %}">
|
||||
{{ day.day|day_name(true) }}<br>
|
||||
{{ day.day|date_format('d.m') }}
|
||||
</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% for project in rows %}
|
||||
<tr>
|
||||
<td class="text-nowrap">
|
||||
<strong>{{ widgets.label_project(project.project) }}</strong>
|
||||
</td>
|
||||
<th class="text-nowrap text-center">{{ project.duration|duration }}</th>
|
||||
{% for day in project.days %}
|
||||
<td class="text-nowrap text-center{% if day.date is weekend %} weekend{% endif %}">
|
||||
{% if day.duration > 0 %}
|
||||
<strong>{{ day.duration|duration }}</strong>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% for activity in project.activities %}
|
||||
<tr>
|
||||
<td class="text-nowrap">
|
||||
{{ widgets.label_activity(activity.activity) }}
|
||||
</td>
|
||||
<th class="text-nowrap text-center">{{ activity.duration|duration }}</th>
|
||||
{% for day in activity.days %}
|
||||
<td class="text-nowrap text-center{% if day.date is weekend %} weekend{% endif %}">
|
||||
{% if day.duration > 0 %}
|
||||
{{ day.duration|duration }}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% set total = 0 %}
|
||||
<tr>
|
||||
{% for day in days %}
|
||||
{% set total = total + day.totalDuration %}
|
||||
{% endfor %}
|
||||
<th></th>
|
||||
<th class="text-nowrap text-center">{{ total|duration }}</th>
|
||||
{% for day in days %}
|
||||
<th class="text-nowrap text-center{% if day.day is weekend %} weekend{% endif %}">
|
||||
{% if day.totalDuration > 0 %}
|
||||
{{ day.totalDuration|duration }}
|
||||
{% endif %}
|
||||
</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endembed %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
<script type="text/javascript">
|
||||
document.addEventListener('kimai.initialized', function() {
|
||||
{% if form.user is defined %}
|
||||
$('#{{ form.user.vars.id }}').on('change', function(ev) {
|
||||
$(this).closest('form').submit();
|
||||
});
|
||||
{% endif %}
|
||||
$('#{{ form.date.vars.id }}').on('change', function(ev) {
|
||||
$(this).closest('form').submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user