</actions>
</permacrud>
</class>
- <class id="asfg" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::search_filter_group" oils_persist:tablename="actor.search_filter_group" reporter:label="Org Address">
+ <class id="asfg" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::search_filter_group" oils_persist:tablename="actor.search_filter_group" reporter:label="Search Filter Group" oils_persist:field_safe="true">
<fields oils_persist:primary="id" oils_persist:sequence="actor.search_filter_group_id_seq">
<field name="id" reporter:datatype="id" reporter:selector="label"/>
<field name="owner" reporter:datatype="org_unit"/>
</actions>
</permacrud>
</class>
- <class id="asfge" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::search_filter_group_entry" oils_persist:tablename="actor.search_filter_group_entry" reporter:label="Org Address">
+ <class id="asfge" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="actor::search_filter_group_entry" oils_persist:tablename="actor.search_filter_group_entry" reporter:label="Search Filter Group Entry" oils_persist:field_safe="true">
<fields oils_persist:primary="id" oils_persist:sequence="actor.search_filter_group_entry_id_seq">
<field name="id" reporter:datatype="id" reporter:selector="label"/>
<field name="grp" reporter:datatype="link"/>
<field name="label" reporter:datatype="text" oils_persist:i18n="true"/>
+ <field name="pos" reporter:datatype="int"/>
<field name="query_text" reporter:datatype="text"/>
</fields>
<links>
code TEXT NOT NULL, -- use in templates / CGI params
label TEXT NOT NULL, -- i18n
create_date TIMESTAMPTZ NOT NULL DEFAULT now(),
- CONSTRAINT code_once_per_org UNIQUE (owner, code)
+ CONSTRAINT code_once_per_org UNIQUE (owner, code),
+ CONSTRAINT label_once_per_org UNIQUE (owner, label)
);
id SERIAL PRIMARY KEY,
grp INT NOT NULL REFERENCES actor.search_filter_group(id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
label TEXT NOT NULL, -- i18n
+ pos INT NOT NULL DEFAULT 0,
query_text TEXT NOT NULL, -- QP text
CONSTRAINT query_once_per_group UNIQUE (grp, query_text)
);
/*
-- Fictional Example
+BEGIN;
INSERT INTO actor.search_filter_group (owner, code, label) VALUES (4, 'reading_level', 'Reading Level');
-INSERT INTO actor.search_filter_group_entry (grp, label, query_text) VALUES (1, 'Children', 'audience(a,b,c) || locations(3,4,5,6)');
-INSERT INTO actor.search_filter_group_entry (grp, label, query_text) VALUES (1, 'Juvenile', '(audience(j,d) && locations(1,2,7,8)) || locations(10, 11, 12, 13)');
+INSERT INTO actor.search_filter_group_entry (grp, label, query_text) VALUES (1, 'Children', 'audience(a,b,c) locations(3,4,5,6)');
+INSERT INTO actor.search_filter_group_entry (grp, label, query_text) VALUES (1, 'Juvenile', 'audience(j,d) locations(1,2,7,8)');
INSERT INTO actor.search_filter_group_entry (grp, label, query_text) VALUES (1, 'General', 'audience(e,f,g)');
+COMMIT;
*/
/* UNDO
+BEGIN;
DROP TABLE actor.search_filter_group_entry;
DROP TABLE actor.search_filter_group;
+COMMIT;
*/