<!-- BEGIN [% component.name %] -->
[% # set Report link:
screen = data.request_initial_screen.screen.description;
specimen = specimen_map.item(data.id).sample_code.join(' ');
# CMP needs to be screened as outreach or expected data structures not loaded:
report_link = specimen.match('CMP') AND screen.lower.match('outreach')
AND c.cfg('settings').have_outreach ? 'outreach' : 'report';
%]
[%
IF # unscreened:
NOT has_optional.initial_screen
AND c.user_can('screen');
url = app_url _ '/screen/=/' _ data.id;
link = c.html_link(url, 'Screen');
all_links.push(link);
ELSIF # outreach case & user can report or edit outreach:
report_link.match('outreach')
AND ( c.user_can('report')
OR c.user_can([ 'view_outreach_data', 'edit_outreach_data' ]) );
url = app_url _ '/report/outreach/' _ data.id;
link = c.html_link(url, 'Outreach');
all_links.push(link);
ELSIF # screened but not reported:
has_optional.initial_screen
AND c.user_can('report')
AND NOT history.reported.user;
url = app_url _ '/' _ report_link _ '/=/' _ data.id;
title = report_link | ucfirst;
link = c.html_link(url, title);
all_links.push(link);
ELSIF # reported but not authorised (if 'authorise' option active):
has_optional.report
AND c.user_can('report')
AND status_options.authorised.is_active.match('yes')
AND NOT history.authorised.user
AND NOT data.status_option.description.match('complete');
IF history.reported.user.username == c.authen.username;
url = app_url _ '/report/=/' _ data.id;
link = c.html_link(url, 'Report'); # allow edit own report
ELSE;
url = app_url _ '/report/authorise/' _ data.id;
link = c.html_link(url, 'Authorise');
END;
all_links.push(link);
ELSIF # reported & authorised (if in use) but still incomplete:
has_optional.report
AND c.user_can('report')
AND ( history.authorised.user # in case authorisation disabled:
OR status_options.authorised.is_active.match('no') )
# AND NOT data.status_option.description.match('complete')
AND NOT is_locked;
url = app_url _ '/' _ report_link _ '/=/' _ data.id;
title = report_link | ucfirst;
link = c.html_link(url, title);
all_links.push(link);
ELSE;
# all_links.push('Report'); # don't really need it
END;
%]
<!-- END [% component.name %] -->