--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+
+Copyright (C) 2013 Equinox Software, Inc
+Author: Mike Rylander <miker@esilibrary.com>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+############################
+ TEMPLATE
+############################
+
+ <class
+ id=""
+ controller="sharestuff.cstore sharestuff.pcrud"
+ oils_obj:fieldmapper=""
+ oils_persist:tablename=""
+ reporter:label=""
+ oils_persist:field_safe=""
+ oils_persist:virtual=""
+ oils_persist:readonly=""
+ reporter:core=""
+ >
+
+ <oils_persist:source_definition><![CDATA[
+ SELECT * FROM foo
+ ]]></oils_persist:source_definition>
+
+ <fields oils_persist:primary="" oils_persist:sequence="">
+ <field reporter:label="ID" name="id" reporter:datatype="id"/>
+ <field reporter:label="" name="" reporter:datatype="org_unit"/>
+ <field reporter:label="" name="" reporter:datatype="text"/>
+ <field reporter:label="" name="" reporter:datatype="link"/>
+ <field reporter:label="" name="" reporter:datatype="timestamp"/>
+ <field reporter:label="" name="" reporter:datatype="money"/>
+ <field reporter:label="" name="" reporter:datatype="bool"/>
+ <field reporter:label="" name="" reporter:datatype="int" oils_obj:required="true"/>
+ <field reporter:label="" name="" reporter:datatype="int" oils_persist:virtual="true"/>
+ </fields>
+
+ <links>
+ <link field="" reltype="has_a" key="" map="" class=""/>
+ </links>
+
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="" gloabl_required="true"/>
+ <retrieve/>
+ <update permission="" context_field=""/>
+ <delete permission="">
+ <context link="" field=""/>
+ </delete>
+ </actions>
+ </permacrud>
+
+ </class>
+
+
+-->
+
+<IDL xmlns="http://opensrf.org/spec/IDL/base/v1" xmlns:idl="http://opensrf.org/spec/IDL/base/v1" xmlns:oils_persist="http://open-ils.org/spec/opensrf/IDL/persistence/v1" xmlns:oils_obj="http://open-ils.org/spec/opensrf/IDL/objects/v1" xmlns:reporter="http://open-ils.org/spec/opensrf/IDL/reporter/v1" xmlns:permacrud="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+
+ <class id="cgf" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="config::global_flag" oils_persist:tablename="config.global_flag" reporter:label="Global Flags and Settings" oils_persist:field_safe="true">
+ <fields oils_persist:primary="name">
+ <field reporter:label="Name" name="name" reporter:datatype="text"/>
+ <field reporter:label="Label" name="label" reporter:datatype="text" oils_persist:i18n="true"/>
+ <field reporter:label="Value" name="value" reporter:datatype="text"/>
+ <field reporter:label="Enabled" name="enabled" reporter:datatype="bool"/>
+ </fields>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="ADMIN_GLOBAL_FLAG" global_required="true"/>
+ <retrieve permission="ADMIN_GLOBAL_FLAG" global_required="true"/>
+ <update permission="ADMIN_GLOBAL_FLAG" global_required="true"/>
+ <delete permission="ADMIN_GLOBAL_FLAG" global_required="true"/>
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="au" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="actor::user" oils_persist:tablename="actor.usr" reporter:core="true" reporter:label="ILS User">
+ <fields oils_persist:primary="id" oils_persist:sequence="actor.usr_id_seq">
+ <field reporter:label="Is Deleted" name="deleted" reporter:datatype="bool"/>
+ <field reporter:label="Active" name="active" reporter:datatype="bool"/>
+ <field reporter:label="Barred" name="barred" reporter:datatype="bool"/>
+ <field reporter:label="Record Creation Date/Time" name="create_date" reporter:datatype="timestamp"/>
+ <field reporter:label="Email Address" name="email" reporter:datatype="text"/>
+ <field reporter:label="Privilege Expiration Date" name="expire_date" reporter:datatype="timestamp"/>
+ <field reporter:label="Last Name" name="family_name" reporter:datatype="text"/>
+ <field reporter:label="First Name" name="first_given_name" reporter:datatype="text"/>
+ <field reporter:label="User ID" name="id" reporter:datatype="id" />
+ <field reporter:label="Last Transaction ID" name="last_xact_id" reporter:datatype="text"/>
+ <field reporter:label="Password" name="passwd" suppress_controller="sharestuff.pcrud open-ils.reporter-store" reporter:datatype="text"/>
+ <field reporter:label="Photo URL" name="photo_url" reporter:datatype="text"/>
+ <field reporter:label="Prefix/Title" name="prefix" reporter:datatype="text"/>
+ <field reporter:label="Home Organization" name="home_ou" reporter:datatype="link"/>
+ <field reporter:label="Main (Profile) Permission Group" name="profile" reporter:datatype="link"/>
+ <field reporter:label="Middle Name" name="second_given_name" reporter:datatype="text"/>
+ <field reporter:label="Suffix" name="suffix" reporter:datatype="text"/>
+ <field reporter:label="Is Super User" name="super_user" reporter:datatype="bool"/>
+ <field reporter:label="Record Last Update Time" name="last_update_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Additional Permission Groups" name="groups" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="All Permissions" name="permissions" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Settings" name="settings" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="User Notes" name="notes" oils_persist:virtual="true" reporter:datatype="link"/>
+ </fields>
+ <links>
+ <link field="profile" reltype="has_a" key="id" map="" class="pgt"/>
+ <link field="groups" reltype="has_many" key="usr" map="grp" class="pugm"/>
+ <link field="permissions" reltype="has_many" key="usr" map="perm" class="pupm"/>
+ <link field="settings" reltype="has_many" key="usr" map="" class="aus"/>
+ <link field="notes" reltype="has_many" key="usr" map="" class="aun"/>
+ <link field="home_ou" reltype="has_a" key="usr" map="" class="aou"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <retrieve permission="VIEW_USER" context_field="home_ou" />
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="aous" controller="sharestuff.cstore" oils_obj:fieldmapper="actor::org_unit_setting" oils_persist:tablename="actor.org_unit_setting" reporter:label="Organizational Unit Setting">
+ <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_setting_id_seq">
+ <field name="id" />
+ <field name="name" reporter:datatype="text"/>
+ <field name="org_unit" reporter:datatype="org_unit"/>
+ <field name="value" reporter:datatype="text"/>
+ </fields>
+ <links>
+ <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="name" reltype="has_a" key="name" map="" class="coust"/>
+ </links>
+ </class>
+
+ <class id="ppl" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="permission::perm_list" oils_persist:tablename="permission.perm_list" reporter:label="Permission List">
+ <fields oils_persist:primary="id" oils_persist:sequence="permission.perm_list_id_seq">
+ <field name="code" reporter:datatype="text"/>
+ <field name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+ <field name="id" reporter:selector="code" reporter:datatype="id"/>
+ </fields>
+ <links/>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="CREATE_PERM" global_required="true"/>
+ <retrieve permission="CREATE_PERM UPDATE_PERM DELETE_PERM" global_required="true"/>
+ <update permission="UPDATE_PERM" global_required="true"/>
+ <delete permission="DELETE_PERM" global_required="true"/>
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="aou" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="actor::org_unit" oils_persist:tablename="actor.org_unit" reporter:label="Organizational Unit" oils_persist:field_safe="true">
+ <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_id_seq">
+ <field reporter:label="Subordinate Organizational Units" name="children" oils_persist:virtual="true" reporter:datatype="org_unit"/>
+ <field reporter:label="Billing Address" name="billing_address" reporter:datatype="link"/>
+ <field reporter:label="Holds Receiving Address" name="holds_address" reporter:datatype="link"/>
+ <field reporter:label="Organizational Unit ID" name="id" reporter:datatype="org_unit" reporter:selector="shortname"/>
+ <field reporter:label="ILL Receiving Address" name="ill_address" reporter:datatype="link"/>
+ <field reporter:label="Mailing Address" name="mailing_address" reporter:datatype="link"/>
+ <field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+ <field reporter:label="Organizational Unit Type" name="ou_type" reporter:datatype="link"/>
+ <field reporter:label="Parent Organizational Unit" name="parent_ou" reporter:datatype="link"/>
+ <field reporter:label="Short (Policy) Name" name="shortname" reporter:datatype="text" oils_obj:required="true" oils_obj:validate="^.+$"/>
+ <field reporter:label="Email Address" name="email" reporter:datatype="text"/>
+ <field reporter:label="Phone Number" name="phone" reporter:datatype="text"/>
+ <field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool"/>
+ <field reporter:label="Fiscal Calendar" name="fiscal_calendar" reporter:datatype="link"/>
+ <field reporter:label="Users" name="users" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Closed Dates" name="closed_dates" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Circulations" name="circulations" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Settings" name="settings" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Addresses" name="addresses" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Checkins" name="checkins" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Workstations" name="workstations" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Fund Allocation Percentages" name="fund_alloc_pcts" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Copy Location Orders" name="copy_location_orders" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Transit Copy Prev Destinations" name="atc_prev_dests" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Reservation Requests" name="resv_requests" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Reservation Pickups" name="resv_pickups" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Resource Types" name="rsrc_types" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Resources" name="resources" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Resource Attributes" name="rsrc_attrs" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Attribute Values" name="attr_vals" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Hours of Operation" name="hours_of_operation" oils_persist:virtual="true" reporter:datatype="link"/>
+ </fields>
+ <links>
+ <link field="billing_address" reltype="has_a" key="id" map="" class="aoa"/>
+ <link field="holds_address" reltype="has_a" key="id" map="" class="aoa"/>
+ <link field="ou_type" reltype="has_a" key="id" map="" class="aout"/>
+ <link field="mailing_address" reltype="has_a" key="id" map="" class="aoa"/>
+ <link field="parent_ou" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="ill_address" reltype="has_a" key="id" map="" class="aoa"/>
+ <link field="fiscal_calendar" reltype="has_a" key="id" map="" class="acqfc"/>
+ <link field="users" reltype="has_many" key="home_ou" map="" class="au"/>
+ <link field="closed_dates" reltype="has_many" key="org_unit" map="" class="aoucd"/>
+ <link field="children" reltype="has_many" key="parent_ou" map="" class="aou"/>
+ <link field="circulations" reltype="has_many" key="circ_lib" map="" class="circ"/>
+ <link field="settings" reltype="has_many" key="org_unit" map="" class="aous"/>
+ <link field="addresses" reltype="has_many" key="org_unit" map="" class="aoa"/>
+ <link field="checkins" reltype="has_many" key="checkin_lib" map="" class="circ"/>
+ <link field="workstations" reltype="has_many" key="owning_lib" map="" class="aws"/>
+ <link field="fund_alloc_pcts" reltype="has_many" key="org" map="" class="acqfap"/>
+ <link field="copy_location_orders" reltype="has_many" key="org" map="" class="acplo"/>
+ <link field="atc_prev_dests" reltype="has_many" key="prev_dest" map="" class="atc"/>
+ <link field="resv_requests" reltype="has_many" key="request_lib" map="" class="bresv"/>
+ <link field="resv_pickups" reltype="has_many" key="pickup_lib" map="" class="bresv"/>
+ <link field="rsrc_types" reltype="has_many" key="owner" map="" class="brt"/>
+ <link field="resources" reltype="has_many" key="owner" map="" class="brsrc"/>
+ <link field="rsrc_attrs" reltype="has_many" key="owner" map="" class="bra"/>
+ <link field="attr_vals" reltype="has_many" key="owner" map="" class="brav"/>
+ <link field="hours_of_operation" reltype="might_have" key="id" map="" class="aouhoo"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="CREATE_ORG_UNIT" context_field="parent_ou"/>
+ <retrieve />
+ <update permission="UPDATE_ORG_UNIT" context_field="id"/>
+ <delete permission="DELETE_ORG_UNIT" context_field="parent_ou"/>
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="pgt" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="permission::grp_tree" oils_persist:tablename="permission.grp_tree" reporter:label="Permission Group">
+ <fields oils_persist:primary="id" oils_persist:sequence="permission.grp_tree_id_seq">
+ <field reporter:label="Child Groups" name="children" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Description" name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+ <field reporter:label="Group ID" name="id" reporter:selector="name" reporter:datatype="id"/>
+ <field reporter:label="Group Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+ <field reporter:label="Parent Group" name="parent" reporter:datatype="link"/>
+ <field reporter:label="User Expiration Interval" name="perm_interval" reporter:datatype="interval"/>
+ <field reporter:label="Required Permission" name="application_perm" reporter:datatype="text"/>
+ <field reporter:label="Is User Group" name="usergroup" reporter:datatype="bool"/>
+ <field reporter:label="Hold Priority" name="hold_priority" reporter:datatype="int"/>
+ </fields>
+ <links>
+ <link field="parent" reltype="has_a" key="id" map="" class="pgt"/>
+ <link field="children" reltype="has_many" key="parent" map="" class="pgt"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="CREATE_PERM" global_required="true"/>
+ <retrieve permission="STAFF_LOGIN" global_required="true"/>
+ <update permission="UPDATE_PERM" global_required="true"/>
+ <delete permission="DELETE_PERM" global_required="true"/>
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="pgpm" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="permission::grp_perm_map" oils_persist:tablename="permission.grp_perm_map" reporter:label="Group Permission Map">
+ <fields oils_persist:primary="id" oils_persist:sequence="permission.grp_perm_map_id_seq">
+ <field name="depth" reporter:datatype="int" />
+ <field name="grantable" reporter:datatype="bool"/>
+ <field name="grp" reporter:datatype="link"/>
+ <field name="id" reporter:datatype="id" />
+ <field name="perm" reporter:datatype="link"/>
+ </fields>
+ <links>
+ <link field="grp" reltype="has_a" key="id" map="" class="pgt"/>
+ <link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="ASSIGN_GROUP_PERM" global_required="true"/>
+ <retrieve permission="ASSIGN_GROUP_PERM UPDATE_GROUP_PERM REMOVE_GROUP_PERM" global_required="true"/>
+ <update permission="UPDATE_GROUP_PERM" global_required="true"/>
+ <delete permission="REMOVE_GROUP_PERM" global_required="true"/>
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="puwoum" controller="sharestuff.cstore" oils_obj:fieldmapper="permission::usr_work_ou_map" oils_persist:tablename="permission.usr_work_ou_map" reporter:label="User Work Org Unit Map">
+ <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_work_ou_map_id_seq">
+ <field name="id" reporter:datatype="int" />
+ <field name="usr" reporter:datatype="link"/>
+ <field name="work_ou" reporter:datatype="link"/>
+ </fields>
+ <links>
+ <link field="usr" reltype="has_a" key="id" map="" class="au"/>
+ <link field="work_ou" reltype="has_a" key="id" map="" class="aou"/>
+ </links>
+ </class>
+
+ <class id="pupm" controller="sharestuff.cstore" oils_obj:fieldmapper="permission::usr_perm_map" oils_persist:tablename="permission.usr_perm_map" reporter:label="User Permission Map">
+ <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_perm_map_id_seq">
+ <field name="depth" reporter:datatype="int"/>
+ <field name="grantable" reporter:datatype="bool"/>
+ <field name="id" reporter:datatype="id" />
+ <field name="perm" reporter:datatype="link"/>
+ <field name="usr" reporter:datatype="link"/>
+ </fields>
+ <links>
+ <link field="usr" reltype="has_a" key="id" map="" class="au"/>
+ <link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
+ </links>
+ </class>
+
+ <class id="puopm" controller="sharestuff.cstore" oils_obj:fieldmapper="permission::usr_object_perm_map" oils_persist:tablename="permission.usr_object_perm_map" reporter:label="User Object Permission Map">
+ <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_object_perm_map_id_seq">
+ <field name="object_id" reporter:datatype="text"/>
+ <field name="grantable" reporter:datatype="bool"/>
+ <field name="id" reporter:datatype="id" />
+ <field name="perm" reporter:datatype="link"/>
+ <field name="usr" reporter:datatype="link"/>
+ <field name="object_type" reporter:datatype="text"/>
+ </fields>
+ <links>
+ <link field="usr" reltype="has_a" key="id" map="" class="au"/>
+ <link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
+ </links>
+ </class>
+
+ <class id="pugm" controller="sharestuff.cstore" oils_obj:fieldmapper="permission::usr_grp_map" oils_persist:tablename="permission.usr_grp_map" reporter:label="User Group Map">
+ <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_grp_map_id_seq">
+ <field name="grp" />
+ <field name="id" reporter:datatype="id" />
+ <field name="usr" />
+ </fields>
+ <links>
+ <link field="grp" reltype="has_a" key="id" map="" class="pgt"/>
+ <link field="usr" reltype="has_a" key="id" map="" class="au"/>
+ </links>
+ </class>
+
+ <class id="i18n" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="config::i18n_core" oils_persist:tablename="config.i18n_core" oils_persist:field_safe="true" reporter:label="i18n Core">
+ <fields oils_persist:primary="id" oils_persist:sequence="config.i18n_core_id_seq">
+ <field name="id" reporter:datatype="id" />
+ <field name="fq_field" reporter:datatype="text"/>
+ <field name="identity_value" reporter:datatype="text"/>
+ <field name="translation" reporter:datatype="text"/>
+ <field name="string" reporter:datatype="text"/>
+ </fields>
+ <links>
+ <link field="translation" reltype="has_a" key="code" map="" class="i18n_l"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="CREATE_TRANSLATION" global_required="true"/>
+ <retrieve permission="CREATE_TRANSLATION UPDATE_TRANSLATION DELETE_TRANSLATION" global_required="true"/>
+ <update permission="UPDATE_TRANSLATION" global_required="true"/>
+ <delete permission="DELETE_TRANSLATION" global_required="true"/>
+ </actions>
+ </permacrud>
+ </class>
+
+ <class id="i18n_l" controller="sharestuff.cstore sharestuff.pcrud" oils_obj:fieldmapper="config::i18n_locale" oils_persist:tablename="config.i18n_locale" oils_persist:field_safe="true" reporter:label="Locale">
+ <fields oils_persist:primary="code">
+ <field name="code" reporter:datatype="id" />
+ <field name="marc_code" reporter:datatype="text"/>
+ <field name="name" reporter:datatype="text" oils_persist:i18n="true"/>
+ <field name="description" reporter:datatype="text" oils_persist:i18n="true"/>
+ </fields>
+ <links/>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="CREATE_LOCALE" global_required="true"/>
+ <retrieve/>
+ <update permission="UPDATE_LOCALE" global_required="true"/>
+ <delete permission="DELETE_LOCALE" global_required="true"/>
+ </actions>
+ </permacrud>
+ </class>
+</IDL>
+
+<!--
+ vim:noet:ts=4:sw=4:
+-->