bernhard@540: {#- using projects keys as zeiterfassungs workpackages bernhard@540: -#} bernhard@540: {%- for day, day_entries bernhard@540: in entries|sort(attribute='startisoday')|groupby('startisoday') -%} bernhard@540: {%- for project in projects -%} bernhard@540: {%- for project_id, project_day_entries bernhard@540: in day_entries|sort(attribute='project_id')|groupby('project_id') %} bernhard@540: bernhard@540: {%- if project_id == project.id -%} bernhard@540: {{ day }} {{ (project_day_entries|duration|human_time).rjust(5) bernhard@540: }}h a {{ user.ljust(3) }} [{{ project.key }}] bernhard@540: {%- for entry in project_day_entries -%} bernhard@540: {%- if loop.index == 1 -%}{{ ' ' }} bernhard@540: {%- else -%}{{ ';\n ' }} bernhard@540: {%- endif -%} bernhard@540: {{ entry.get_comment() }} bernhard@540: {%- endfor %}{{'\n'}} bernhard@540: {%- endif -%} bernhard@540: {%- endfor -%} bernhard@540: {%- endfor -%} bernhard@540: # d total: {{ (day_entries|duration|human_time).rjust(5) }}h bernhard@540: bernhard@540: {% endfor -%}