3 SELECT evergreen.upgrade_deps_block_check('1232', :eg_version);
5 CREATE TABLE asset.course_module_course (
8 course_number TEXT NOT NULL,
10 owning_lib INT REFERENCES actor.org_unit (id),
11 is_archived BOOLEAN NOT NULL DEFAULT false
14 CREATE TABLE asset.course_module_role (
15 id SERIAL PRIMARY KEY,
16 name TEXT UNIQUE NOT NULL,
17 is_public BOOLEAN NOT NULL DEFAULT false
20 CREATE TABLE asset.course_module_course_users (
21 id SERIAL PRIMARY KEY,
22 course INT NOT NULL REFERENCES asset.course_module_course (id),
23 usr INT NOT NULL REFERENCES actor.usr (id),
24 usr_role INT REFERENCES asset.course_module_role (id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED
27 CREATE TABLE asset.course_module_course_materials (
28 id SERIAL PRIMARY KEY,
29 course INT NOT NULL REFERENCES asset.course_module_course (id),
30 item INT REFERENCES asset.copy (id),
32 record INT REFERENCES biblio.record_entry (id),
33 temporary_record BOOLEAN,
34 original_location INT REFERENCES asset.copy_location,
35 original_status INT REFERENCES config.copy_status,
36 original_circ_modifier TEXT, --REFERENCES config.circ_modifier
37 original_callnumber INT REFERENCES asset.call_number,
38 unique (course, item, record)
41 CREATE TABLE asset.course_module_term (
42 id SERIAL PRIMARY KEY,
43 name TEXT UNIQUE NOT NULL,
44 owning_lib INT REFERENCES actor.org_unit (id),
45 start_date TIMESTAMP WITH TIME ZONE,
46 end_date TIMESTAMP WITH TIME ZONE
49 INSERT INTO asset.course_module_role (id, name, is_public) VALUES
50 (1, oils_i18n_gettext(1, 'Instructor', 'acmr', 'name'), true),
51 (2, oils_i18n_gettext(2, 'Teaching assistant', 'acmr', 'name'), true),
52 (3, oils_i18n_gettext(2, 'Student', 'acmr', 'name'), false);
54 SELECT SETVAL('asset.course_module_role_id_seq'::TEXT, 100);
56 CREATE TABLE asset.course_module_term_course_map (
57 id BIGSERIAL PRIMARY KEY,
58 term INT NOT NULL REFERENCES asset.course_module_term (id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
59 course INT NOT NULL REFERENCES asset.course_module_course (id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED
62 INSERT INTO permission.perm_list(id, code, description)
68 'Allows user to manage Courses, Course Materials, and associate Users with Courses.',
74 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
76 pgt.id, perm.id, aout.depth, TRUE
78 permission.grp_tree pgt,
79 permission.perm_list perm,
80 actor.org_unit_type aout
82 pgt.name = 'Circulation Administrator' AND
83 aout.name = 'Consortium' AND
84 perm.code = 'MANAGE_RESERVES'
87 INSERT INTO config.org_unit_setting_type
88 (grp, name, datatype, label, description, fm_class)
91 'circ.course_materials_opt_in', 'bool',
93 'circ.course_materials_opt_in',
94 'Opt Org Unit into the Course Materials Module',
99 'circ.course_materials_opt_in',
100 'If enabled, the Org Unit will utilize Course Material functionality.',
106 'circ.course_materials_browse_by_instructor', 'bool',
108 'circ.course_materials_browse_by_instructor',
109 'Allow users to browse Courses by Instructor',
114 'circ.course_materials_browse_by_instructor',
115 'If enabled, the Org Unit will allow OPAC users to browse Courses by instructor name.',
121 'circ.course_materials_brief_record_bib_source', 'link',
123 'circ.course_materials_brief_record_bib_source',
124 'Bib source for brief records created in the course materials module',
128 'circ.course_materials_brief_record_bib_source',
129 'The course materials module will use this bib source for any new brief bibliographic records made inside that module. For best results, use a transcendant bib source.',
130 'coust', 'description'
135 INSERT INTO config.bib_source (quality, source, transcendant) VALUES
136 (1, oils_i18n_gettext(4, 'Course materials module', 'cbs', 'source'), TRUE);
138 INSERT INTO actor.org_unit_setting (org_unit, name, value)
139 SELECT 1, 'circ.course_materials_brief_record_bib_source', id
140 FROM config.bib_source
141 WHERE source='Course materials module';