]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/1320.schema.simple_reporter.sql
LP1615805 No inputs after submit in patron search (AngularJS)
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 1320.schema.simple_reporter.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('1320', :eg_version); -- jboyer /  / 
4
5 ALTER TABLE reporter.template_folder ADD COLUMN simple_reporter BOOLEAN DEFAULT FALSE;
6 ALTER TABLE reporter.report_folder ADD COLUMN simple_reporter BOOLEAN DEFAULT FALSE;
7 ALTER TABLE reporter.output_folder ADD COLUMN simple_reporter BOOLEAN DEFAULT FALSE;
8
9 DROP INDEX reporter.rpt_template_folder_once_idx;
10 DROP INDEX reporter.rpt_report_folder_once_idx;
11 DROP INDEX reporter.rpt_output_folder_once_idx;
12
13 CREATE UNIQUE INDEX rpt_template_folder_once_idx ON reporter.template_folder (name,owner,simple_reporter) WHERE parent IS NULL;
14 CREATE UNIQUE INDEX rpt_report_folder_once_idx ON reporter.report_folder (name,owner,simple_reporter) WHERE parent IS NULL;
15 CREATE UNIQUE INDEX rpt_output_folder_once_idx ON reporter.output_folder (name,owner,simple_reporter) WHERE parent IS NULL;
16
17 -- Private "transform" to allow for simple report permissions verification
18 CREATE OR REPLACE FUNCTION reporter.intersect_user_perm_ou(context_ou BIGINT, staff_id BIGINT, perm_code TEXT)
19 RETURNS BOOLEAN AS $$
20   SELECT CASE WHEN context_ou IN (SELECT * FROM permission.usr_has_perm_at_all(staff_id::INT, perm_code)) THEN TRUE ELSE FALSE END;
21 $$ LANGUAGE SQL;
22
23 -- Hey committer, make sure this id is good to go and also in 950.data.seed-values.sql
24 INSERT INTO permission.perm_list (id, code, description) VALUES
25  ( 638, 'RUN_SIMPLE_REPORTS', oils_i18n_gettext(638,
26     'Build and run simple reports', 'ppl', 'description'));
27
28
29 INSERT INTO config.workstation_setting_type (name, grp, datatype, label)
30 VALUES (
31     'eg.grid.reporter.simple.reports', 'gui', 'object',
32     oils_i18n_gettext(
33         'eg.grid.reporter.simple.reports',
34         'Grid Config: eg.grid.reporter.simple.reports',
35         'cwst', 'label'
36     )
37 ), (
38     'eg.grid.reporter.simple.outputs', 'gui', 'object',
39     oils_i18n_gettext(
40         'eg.grid.reporter.simple.outputs',
41         'Grid Config: eg.grid.reporter.simple.outputs',
42         'cwst', 'label'
43     )
44 );
45
46 -- new view parallel to reporter.currently_running
47 -- and reporter.overdue_reports
48 CREATE OR REPLACE VIEW reporter.completed_reports AS
49   SELECT s.id AS run,
50          r.id AS report,
51          t.id AS template,
52          t.owner AS template_owner,
53          r.owner AS report_owner,
54          s.runner AS runner,
55          t.folder AS template_folder,
56          r.folder AS report_folder,
57          s.folder AS output_folder,
58          r.name AS report_name,
59          t.name AS template_name,
60          s.start_time,
61          s.run_time,
62          s.complete_time,
63          s.error_code,
64          s.error_text
65   FROM reporter.schedule s
66     JOIN reporter.report r ON r.id = s.report
67     JOIN reporter.template t ON t.id = r.template
68   WHERE s.complete_time IS NOT NULL;
69
70 COMMIT;
71