]> rtime.felk.cvut.cz Git - coffee/coffee-flask.git/blob - templates/events.html
Colorize coffee machine cleaning event box when cleaning is due
[coffee/coffee-flask.git] / templates / events.html
1 <style>
2
3 .warning {
4     background-color: navajowhite;
5 }
6
7 .bad {
8     background-color: orangered;
9     color: white;
10 }
11
12 .events {
13     margin: 0.8em;
14     margin-bottom: 1.5em;
15     padding: 2px;
16     border-spacing: 2em 0;
17 }
18
19 .events h3 {
20     display: inline-block;
21     margin-top: 1ex;
22     margin-right: 0.7em;
23 }
24
25 .events-box {
26     border: 1px solid black;
27     padding: 0.5em;
28     display: inline-block;
29     vertical-align: top;
30 }
31
32 .events-box h4 {
33     margin: 0.5ex;
34 }
35 .events-box .btnline {
36     text-align: left;
37 }
38 .events-box input {
39     padding: 1.5ex;
40     margin: 0.5ex;
41 }
42 </style>
43
44     <br />
45     <form>
46       {%- macro event_box(title, events, warn_days=999, bad_days=9999) -%}
47         {# Calculate maximum timestamp of all relevant events #}
48         {%- set when = last_events.items() | selectattr(0, 'in', events) | map(attribute=1) | max -%}
49         {%- set days = when | days | default(0) -%}
50         <div class="events-box{% if days >= bad_days %} bad {% elif days >= warn_days %} warning{% endif %}">
51           <h4>{{title | capitalize}}</h4>
52           {#- The first item in the list is used as button label, last item in the overview -#}
53           {%- set verb = {
54                            "COFFEE_MACHINE_CLEANED": ["cleaned"],
55                            "COFFEE_PACK_OPENED": ["opened"],
56                            "LAST_COFFEE_PACK_OPENED": ["last opened"],
57                            "MILK_CONTAINER_CLEANED": ["cleaned (water)", "cleaned"],
58                            "MILK_CONTAINER_CLEANED_WITH_TABLET": ["cleaned (tablet)"],
59                          }
60           -%}
61           {% if name -%} {# User logged in - show action buttons #}
62             {%- for event in events %}
63               <div class="btnline">
64                 <input type="button" value="{{ verb[event]|first }}"
65                        onclick="addEvent('{{ event }}', '{{ verb[events[0]]|last }} the {{ title }}')" />
66                        ({{ last_events[event] | humanize(max_interval="days") if event in last_events else "never" }})
67               </div>
68             {%- endfor -%}
69           {%- else -%}    {# Nobody logged in - show overview with summary times #}
70               {%- if when -%}
71                 {{ verb[events[0]]|last }} {{ when | humanize(max_interval="days") }}
72               {%- else -%}
73                 never {{ verb[events[0]]|last }}
74               {%- endif -%}
75           {%- endif %}
76         </div>
77       {%- endmacro %}
78       <div class="events">
79         <h3>{{ ("Record<br />event" if name else "Events") | safe }}:</h3>
80         {{ event_box('coffee machine', ['COFFEE_MACHINE_CLEANED'], warn_days=7, bad_days=21 ) }}
81         {{ event_box('milk container', ['MILK_CONTAINER_CLEANED', 'MILK_CONTAINER_CLEANED_WITH_TABLET'], warn_days=4, bad_days=7) }}
82         &nbsp;&nbsp;
83         {{ event_box('coffee pack', ['COFFEE_PACK_OPENED'] ) }}
84       </div>
85     </form>