Copy Location Circ Limit Sets : DB/IDL 1
authorBill Erickson <berick@esilibrary.com>
Fri, 13 Apr 2012 19:39:18 +0000 (15:39 -0400)
committerBill Erickson <berick@esilibrary.com>
Fri, 13 Apr 2012 19:39:34 +0000 (15:39 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/examples/fm_IDL.xml
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_loc_circ_limits.sql [new file with mode: 0644]

index 375f93f..f4052cd 100644 (file)
@@ -1568,6 +1568,31 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
             </actions>
         </permacrud>
     </class>
+    <class id="cclsccm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::circ_limit_set_copy_loc_map" oils_persist:tablename="config.circ_limit_set_copy_loc_map" reporter:label="Circulation Limit Set Copy Location Map">
+        <fields oils_persist:primary="id" oils_persist:sequence="config.circ_limit_set_copy_loc_map_id_seq">
+            <field reporter:label="ID" name="id" reporter:datatype="id"/>
+            <field reporter:label="Limit Set" name="limit_set" reporter:datatype="link"/>
+            <field reporter:label="Copy Location" name="copy_loc" reporter:datatype="link"/>
+        </fields>
+        <links>
+            <link field="limit_set" reltype="has_a" key="id" map="" class="ccls"/>
+            <link field="copy_loc" reltype="has_a" key="code" map="" class="acpl"/>
+        </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="limit_set" field="owning_lib"/>
+                </create>
+                <retrieve/>
+                <update permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="limit_set" field="owning_lib"/>
+                </update>
+                <delete permission="ADMIN_CIRC_MATRIX_MATCHPOINT">
+                    <context link="limit_set" field="owning_lib"/>
+                </delete>
+            </actions>
+        </permacrud>
+    </class>
 
     <class id="cclsgm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::circ_limit_set_group_map" oils_persist:tablename="config.circ_limit_set_group_map" reporter:label="Circulation Limit Set Group Map">
         <fields oils_persist:primary="id" oils_persist:sequence="config.circ_limit_set_group_map_id_seq">
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_loc_circ_limits.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_loc_circ_limits.sql
new file mode 100644 (file)
index 0000000..1e9ce1a
--- /dev/null
@@ -0,0 +1,14 @@
+
+-- Linkage between limit sets and circ mods
+CREATE TABLE config.circ_limit_set_copy_loc_map (
+    id          SERIAL  PRIMARY KEY,
+    limit_set   INT     NOT NULL REFERENCES config.circ_limit_set (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+    copy_loc    INT     NOT NULL REFERENCES asset.copy_location (id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,
+    CONSTRAINT cl_once_per_set UNIQUE (limit_set, copy_loc)
+);
+
+/* 
+-- UNDO
+DROP TABLE IF EXISTS config.circ_limit_set_copy_loc_map;
+*/
+