</actions>
</permacrud>
</class>
- <!-- A note: Please update alhr when updating ahr -->
+ <!-- A note: Please update alhr and ahpl when updating ahr -->
<class id="ahr" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_request" oils_persist:tablename="action.hold_request" reporter:core="true" reporter:label="Hold Request">
<fields oils_persist:primary="id" oils_persist:sequence="action.hold_request_id_seq">
<field reporter:label="Status" name="status" oils_persist:virtual="true" />
<link field="sms_carrier" reltype="might_have" key="code" map="" class="csc"/>
</links>
</class>
+ <class id="ahpl" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="action::hold_pull_list" oils_persist:tablename="action.hold_pull_list" reporter:label="Hold Pull List" oils_persist:readonly="true">
+ <fields oils_persist:primary="id">
+ <field reporter:label="Status" name="status" oils_persist:virtual="true" />
+ <field reporter:label="Transit" name="transit" oils_persist:virtual="true" />
+ <field reporter:label="Capture Date/Time" name="capture_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Currently Targeted Copy" name="current_copy" />
+ <field reporter:label="Notify by Email?" name="email_notify" reporter:datatype="bool"/>
+ <field reporter:label="Hold Expire Date/Time" name="expire_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Fulfilling Library" name="fulfillment_lib" reporter:datatype="org_unit"/>
+ <field reporter:label="Fulfilling Staff" name="fulfillment_staff" />
+ <field reporter:label="Fulfillment Date/Time" name="fulfillment_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Hold Type" name="hold_type" reporter:datatype="text"/>
+ <field reporter:label="Holdable Formats (for M-type hold)" name="holdable_formats" reporter:datatype="text"/>
+ <field reporter:label="Hold ID" name="id" reporter:datatype="id" />
+ <field reporter:label="Notifications Phone Number" name="phone_notify" reporter:datatype="text"/>
+ <field reporter:label="Notifications SMS Number" name="sms_notify" reporter:datatype="text"/>
+ <field reporter:label="Notifications SMS Carrier" name="sms_carrier" reporter:datatype="text"/>
+ <field reporter:label="Pickup Library" name="pickup_lib" reporter:datatype="org_unit"/>
+ <field reporter:label="Last Targeting Date/Time" name="prev_check_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Requesting Library" name="request_lib" reporter:datatype="org_unit"/>
+ <field reporter:label="Request Date/Time" name="request_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Requesting User" name="requestor" reporter:datatype="link"/>
+ <field reporter:label="Item Selection Depth" name="selection_depth" />
+ <field reporter:label="Selection Locus" name="selection_ou" reporter:datatype="org_unit"/>
+ <field reporter:label="Target Object ID" name="target" reporter:datatype="link"/>
+ <field reporter:label="Hold User" name="usr" reporter:datatype="link"/>
+ <field reporter:label="Hold Cancel Date/Time" name="cancel_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Notify Time" name="notify_time" oils_persist:virtual="true" reporter:datatype="timestamp"/>
+ <field reporter:label="Notify Count" name="notify_count" oils_persist:virtual="true" reporter:datatype="int" />
+ <field reporter:label="Notifications" name="notifications" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Bib Record link" name="bib_rec" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Eligible Copies" name="eligible_copies" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Currently Frozen" name="frozen" reporter:datatype="bool"/>
+ <field reporter:label="Thaw Date (if frozen)" name="thaw_date" reporter:datatype="timestamp"/>
+ <field reporter:label="Shelf Time" name="shelf_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Cancelation cause" name="cancel_cause" reporter:datatype="link" />
+ <field reporter:label="Cancelation note" name="cancel_note" reporter:datatype="text" />
+ <field reporter:label="Top of Queue" name="cut_in_line" reporter:datatype="bool" />
+ <field reporter:label="Is Mint Condition" name="mint_condition" reporter:datatype="bool" />
+ <field reporter:label="Shelf Expire Time" name="shelf_expire_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Notes" name="notes" reporter:datatype="link" oils_persist:virtual="true"/>
+ <field reporter:label="Current Shelf Lib" name="current_shelf_lib" reporter:datatype="org_unit"/>
+ <field reporter:label="Copy Location Sort Order" name="copy_location_order_position" reporter:datatype="int" />
+ </fields>
+ <links>
+ <link field="fulfillment_lib" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="fulfillment_staff" reltype="has_a" key="id" map="" class="au"/>
+ <link field="pickup_lib" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="selection_ou" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="requestor" reltype="has_a" key="id" map="" class="au"/>
+ <link field="current_copy" reltype="has_a" key="id" map="" class="acp"/>
+ <link field="usr" reltype="has_a" key="id" map="" class="au"/>
+ <link field="request_lib" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="transit" reltype="might_have" key="hold" map="" class="ahtc"/>
+ <link field="notifications" reltype="has_many" key="hold" map="" class="ahn"/>
+ <link field="eligible_copies" reltype="has_many" key="hold" map="target_copy" class="ahcm"/>
+ <link field="bib_rec" reltype="might_have" key="id" map="" class="rhrr"/>
+ <link field="cancel_cause" reltype="might_have" key="id" map="" class="ahrcc"/>
+ <link field="notes" reltype="has_many" key="hold" map="" class="ahrn"/>
+ <link field="current_shelf_lib" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="sms_carrier" reltype="might_have" key="code" map="" class="csc"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <retrieve permission="VIEW_HOLD" context_field="pickup_lib" />
+ </actions>
+ </permacrud>
+ </class>
<class id="alhr" controller="open-ils.cstore" oils_obj:fieldmapper="action::last_hold_request" reporter:label="Last Captured Hold Request" oils_persist:readonly="true">
<oils_persist:source_definition>
SELECT ahr.* FROM action.hold_request ahr JOIN (SELECT current_copy, MAX(capture_time) AS capture_time FROM action.hold_request WHERE capture_time IS NOT NULL GROUP BY current_copy)x USING (current_copy, capture_time)
<link field="folder" reltype="has_a" key="id" map="" class="rof"/>
</links>
</class>
- <class id="rmsr" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::materialized_simple_record" oils_persist:tablename="reporter.materialized_simple_record" reporter:label="Fast Simple Record Extracts">
+ <class id="rmsr" controller="open-ils.reporter-store open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="reporter::materialized_simple_record" oils_persist:tablename="reporter.materialized_simple_record" reporter:label="Fast Simple Record Extracts">
<fields oils_persist:primary="id">
<field reporter:label="Record ID" name="id" reporter:datatype="id" />
<field reporter:label="Fingerprint" name="fingerprint" reporter:datatype="text"/>
<links>
<link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/>
</links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <retrieve />
+ </actions>
+ </permacrud>
</class>
<class id="rssr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::super_simple_record" oils_persist:tablename="reporter.super_simple_record" reporter:label="Simple Record Extracts">
<fields oils_persist:primary="id">
--- /dev/null
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Hold Pull List' %]
+<script type="text/javascript">
+ dojo.require("dijit.form.Button");
+ dojo.require("openils.widget.FlattenerGrid");
+</script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+ <div dojoType="dijit.layout.ContentPane"
+ layoutAlign="top" class="oils-header-panel">
+ <div>Hold Pull List</div>
+ <div>
+ <button dojoType="dijit.form.Button"
+ onClick="print_pull_list()">Print Pull List</button>
+ </div>
+ </div>
+ <!-- <div class="oils-acq-basic-roomy">
+ blah, a dropdown or something here (optional; typical interfaces might
+ have a filtering org select here. Then again, why not use
+ showLoadFilter on the Grid instead?)
+ </div> -->
+ <table
+ id="gridNode"
+ jsid="grid"
+ dojoType="openils.widget.FlattenerGrid"
+ columnPersistKey='"circ.hold_pull_list"'
+ autoHeight="10"
+ editOnEnter="true"
+ editStyle="pane"
+ showLoadFilter="true"
+ fmClass="'ahpl'"
+ baseSort="['copy_location_sort_order','call_number']"
+ mapExtras="{copy_circ_lib:{path:'current_copy.circ_lib',filter:true}}"
+ query="{copy_circ_lib: 4}">
+ <thead>
+ <tr>
+ <th field="barcode" fpath="current_copy.barcode">Barcode</th>
+ <th field="title" fpath="current_copy.call_number.record.simple_record.title"></th>
+ <th field="author" fpath="current_copy.call_number.record.simple_record.author"></th>
+ <th field="call_number" fpath="current_copy.call_number.label" ffilter="true"></th><!-- FIXME: prefix & suffix -->
+ <th field="shelving_loc" fpath="current_copy.location.name" ffilter="true">Shelving Location</th>
+ </tr>
+ </thead>
+ </table>
+</div>
+[% END %]