</permacrud>
</class>
+ <class id="scd" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="student_card::district" oils_persist:tablename="student_card.district" reporter:label="Student Card School District">
+ <fields oils_persist:primary="id">
+ <field name="id" reporter:datatype="id" reporter:label="District ID"/>
+ <field name="code" reporter:datatype="text" reporter:label="District Code"/>
+ <field name="name" reporter:datatype="text" reporter:label="District Name"/>
+ <field name="context_org" reporter:datatype="org_unit" reporter:label="Context Org" oils_obj:required="true"/>
+ <field name="enabled" reporter:datatype="bool" reporter:label="Enabled"/>
+ <field name="perm" reporter:datatype="link" reporter:label="Permission Required by User" oils_obj:required="true"/>
+ <field name="restrict_to_org" reporter:datatype="bool" reporter:label="Restrict by Home Library"/>
+ <field name="allow_inactive" reporter:datatype="bool" reporter:label="Allow Inactive Users"/>
+ <field name="allow_expired" reporter:datatype="bool" reporter:label="Allow Expired Users"/>
+ <field name="block_list" reporter:datatype="text" reporter:label="Block List"/>
+ <field name="usr_activity_type" reporter:datatype="link" reporter:label="User Activity Type"/>
+ </fields>
+ <links>
+ <link field="context_org" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
+ <link field="usr_activity_type" reltype="has_a" key="id" map="" class="cuat"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="ADMIN_REMOTEAUTH" context_field="context_org"/>
+ <retrieve permission="STAFF_LOGIN" context_field="context_org"/>
+ <update permission="ADMIN_REMOTEAUTH" context_field="context_org"/>
+ <delete permission="ADMIN_REMOTEAUTH" context_field="context_org"/>
+ </actions>
+ </permacrud>
+ </class>
+
<class id="qred" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="quick_reports::executive_reports_data" oils_persist:tablename="quick_reports.executive_reports_data" reporter:label="Quick Reports Executive Data">
<fields oils_persist:primary="id">
<field reporter:label="ID" name="id" reporter:datatype="id"/>
--- /dev/null
+BEGIN;
+
+CREATE SCHEMA student_card;
+
+CREATE TABLE student_card.district (
+ id SERIAL PRIMARY KEY,
+ code TEXT NOT NULL UNIQUE,
+ name TEXT NOT NULL UNIQUE,
+ state_id INTEGER NOT NULL UNIQUE,
+ contact_name TEXT,
+ contact_email TEXT,
+ remote_host TEXT NOT NULL,
+ remote_user TEXT,
+ remote_pass VARCHAR(255), --TODO: encrypt this data with PGP?
+ remote_remote_dir TEXT,
+ exceptions_dir TEXT
+);
+
+CREATE TABLE student_card.school (
+ id SERIAL PRIMARY KEY,
+ district_id INTEGER NOT NULL REFERENCES student_card.district (id),
+ name TEXT NOT NULL UNIQUE,
+ state_id INTEGER NOT NULL,
+ grades TEXT,
+ addr_street_1 TEXT,
+ addr_street_2 TEXT,
+ addr_city TEXT,
+ addr_county TEXT,
+ addr_state TEXT,
+ addr_post_code TEXT,
+ eg_perm_group INTEGER NOT NULL REFERENCES permission.grp_tree (id),
+ home_ou INTEGER NOT NULL REFERENCES actor.org_unit (id)
+);
+CREATE UNIQUE INDEX student_card_school_state_id_idx ON student_card.school (district_id, state_id);
+
+CREATE TABLE student_card.import (
+ id SERIAL PRIMARY KEY,
+ import_time TIMESTAMPTZ NOT NULL DEFAULT NOW(),
+ district_id INTEGER NOT NULL REFERENCES student_card.district (id),
+ filename TEXT,
+ error_message TEXT
+);
+
+COMMIT;