self.po_id = ContextItem(cgi_name='acq.poid')
self.po_li_id_list = ContextItem(cgi_name='acq.poliil', multi=True)
self.po_li = ContextItem()
+ self.po_li_sum = ContextItem()
# -------------------------------------------------------------
# utility functions
po_mgr.retrieve_lineitem()
r.ctx.acq.po_li.value = po_mgr.li
+ summary = dict()
+ for det in po_mgr.li.lineitem_details():
+ fund = det.fund().name()
+ try:
+ summary[fund] += 1
+ except LookupError:
+ summary[fund] = 1
+ r.ctx.acq.po_li_sum.value = summary
+
po_mgr.id = po_mgr.li.purchase_order()
po_mgr.retrieve(flesh_lineitems=0)
r.ctx.acq.po.value = po_mgr.po
po.edit_time(mx.DateTime.ISO.ParseAny(po.edit_time()).strftime(datefmt))
self.po = po
- def retrieve_lineitem(self):
+ def retrieve_lineitem(self, **kwargs):
li = self.ses.request('open-ils.acq.po_lineitem.retrieve',
self.request_mgr.ctx.core.authtoken.value,
- self.liid, {'flesh_details':1}).recv().content()
+ self.liid, {'flesh_li_details':1}).recv().content()
datefmt = oilsweb.lib.user.User(self.request_mgr.ctx.core).get_date_format()
li.create_time(mx.DateTime.ISO.ParseAny(li.create_time()).strftime(datefmt))
li.edit_time(mx.DateTime.ISO.ParseAny(li.edit_time()).strftime(datefmt))
@staticmethod
def find_li_attr(li, attr_name, attr_type='picklist_marc_attr_definition'):
+ if not li.attributes():
+ return ''
for li_attr in li.attributes():
if li_attr.attr_type() == attr_type and li_attr.attr_name() == attr_name:
return li_attr.attr_value()
.oils-acq-po-li-attr-name {}
.oils-acq-po-li-attr-value {}
#oils-acq-po-li-marc-block { margin-top: 10px; padding: 6px; }
+#oils-acq-po-li-details-table { width: 100%; }
+.oils-acq-po-li-detail-row {}
/* picklist entry page */
#oils-acq-picklist-entry-header { padding: 4px; margin-bottom: 20px; }
<div>${ctime}</div>
<div>${etime}</div>
</div>
+ <div>
+ <table>
+ <%
+ import oilsweb.lib.bib
+ from oilsweb.lib.acq.po_manager import PO_Manager
+
+ li = c.oils.acq.po_li.value
+%>
+
+ <tr class='oils-acq-po-records-title-row'>
+ <td rowspan='3'>
+ <img class='oils-acq-po-records-jacket'
+ src='${c.oils.core.ac_prefix.value}/jacket/small/${oilsweb.lib.bib.scrub_isbn(PO_Manager.find_li_attr(li, "isbn"))}'/>
+ </td>
+ <td>
+ </tr>
+
+ <tr class='oils-acq-po-records-author-row'>
+ <td colspan='4'>${PO_Manager.find_li_attr(li, "author")}
+ </tr>
+ <tr class='oils-acq-po-records-phys_desc-row'>
+ <td colspan='3'>
+ ${PO_Manager.find_li_attr(li, "isbn")} |
+ ${PO_Manager.find_li_attr(li, "pubdate")} |
+ ${PO_Manager.find_li_attr(li, "pagination")}
+ </td>
+ <td>${PO_Manager.find_li_attr(li, "price")}</td>
+ </tr>
+
+ </table>
+ </div>
</div>
<%include file='po_summary.html' />
<%include file='po_li_summary.html' />
+<%
+ from oilsweb.lib.acq.po_manager import PO_Manager
+%>
+
+<table id="oils-acq-po-li-details-table">
+ <Thead>
+ <tr><td>Fund</td><td># of Copies</td></tr>
+ </thead>
+ <tbody>
+ % for fund, count in c.oils.acq.po_li_sum.value.iteritems():
+ <tr class="oils-acq-po-li-detail-row">
+ <td>${fund}</td><td>${count}</td>
+ </tr>
+ % endfor
+ </tbody>
+</table>
+
</%def>