[% META title = 'Resources » User Workload' %] [% # PROCESS dumper.tt dump = detail %] [% # PROCESS dumper.tt dump = c.stash.vars %] [% # USE Math; # int() function not suitable for rounding actions = data.keys; cols = ['BMAT' 'BMA' 'PB' 'Tissue' 'Other']; %] [% # use instead of Math.int(): MACRO round(n) GET n + 0.5 FILTER format("%d"); %]

Workload by user for [% c.stash.duration | html %]

[% PROCESS site/date_constraints.tt func_name = 'get_page' target_url = app_url _ '/audit/user_workload/' restricted = { # too slow to allow these: no_constraint = 1, this_year = 1, previous_year = 1, all_since = 1, } %]
[% FOREACH action IN actions.sort.reverse; # happy co-incidence !! users = data.item(action); # PROCESS dumper.tt dump = users; total = 0; # total units in each action FOREACH user IN users.keys; count = sum(data.item(action).item(user).values); total = total + count; END; %]

[% action | ucfirst %] [[% total %]]

[% FOREACH col IN cols %] [% END %] [% FOREACH user IN users.keys.sort; results = data.item(action).item(user); details = detail.item(action).item(user); class = c.authen.username == user ? 'bkgd_light_yellow' : 'normal'; %] [% FOREACH col IN cols %] [% END %] [% IF loop.first; # users.size; # only once per action # pass query params to chart: vars = []; FOREACH v IN c.stash.vars; vars.push(v.key _ '=' _ v.value); END; chart_url = app_url _ '/chart/process/user_workload/user_workload_stats'; %] [% END %] [% END %]
UserID[% col %]Total
[% user | upper %] [% result = results.item(col); IF result; str = []; FOREACH pair IN details.item(col).pairs; str.push( pair.key _ ' = ' _ pair.value ); END; %] [% result %] [% ELSE; site.html.grey_null; END; %] [% n = sum(results.values); # PROCESS dumper.tt dump = results.values %] [% n %] ([% round(100 * n / total) %]%)
[% END %]

[% site.html.back_button %]