From bd83f20a8e0701f3b41dbfacbbc9e9bb0b3238b0 Mon Sep 17 00:00:00 2001 From: djfiander Date: Fri, 22 Feb 2008 20:21:40 +0000 Subject: [PATCH] Display Line Item details git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8826 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../oilsweb/oilsweb/controllers/acq/__init__.py | 1 + Open-ILS/web/oilsweb/oilsweb/controllers/acq/po.py | 9 +++++++ Open-ILS/web/oilsweb/oilsweb/lib/acq/po_manager.py | 6 +++-- .../public/oils/media/css/skin/default/acq.css | 2 ++ .../oils/default/acq/po/po_li_summary.html | 31 ++++++++++++++++++++++ .../oils/default/acq/po/view_lineitem.html | 17 ++++++++++++ 6 files changed, 64 insertions(+), 2 deletions(-) diff --git a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py index c574ec853e..e942037796 100644 --- a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py +++ b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py @@ -75,6 +75,7 @@ class AcqContext(SubContext): 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 diff --git a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/po.py b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/po.py index 7e683a03a6..208bed1075 100644 --- a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/po.py +++ b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/po.py @@ -37,6 +37,15 @@ class PoController(BaseController): 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 diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/acq/po_manager.py b/Open-ILS/web/oilsweb/oilsweb/lib/acq/po_manager.py index 7b58f2c5db..f08178c7cc 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/acq/po_manager.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/acq/po_manager.py @@ -52,10 +52,10 @@ class PO_Manager(object): 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)) @@ -63,6 +63,8 @@ class PO_Manager(object): @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() diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/skin/default/acq.css b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/skin/default/acq.css index d072506ce9..599e7c0f6f 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/skin/default/acq.css +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/skin/default/acq.css @@ -72,6 +72,8 @@ .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; } diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/po_li_summary.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/po_li_summary.html index c584435eb4..a3b8045da3 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/po_li_summary.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/po_li_summary.html @@ -8,4 +8,35 @@
${ctime}
${etime}
+
+ + <% + import oilsweb.lib.bib + from oilsweb.lib.acq.po_manager import PO_Manager + + li = c.oils.acq.po_li.value +%> + + + + + + + + + + + + +
+ + +
${PO_Manager.find_li_attr(li, "author")} +
+ ${PO_Manager.find_li_attr(li, "isbn")} | + ${PO_Manager.find_li_attr(li, "pubdate")} | + ${PO_Manager.find_li_attr(li, "pagination")} + ${PO_Manager.find_li_attr(li, "price")}
+
diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_lineitem.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_lineitem.html index 20d74fc43a..bde0555cb6 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_lineitem.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_lineitem.html @@ -8,4 +8,21 @@ <%include file='po_summary.html' /> <%include file='po_li_summary.html' /> +<% + from oilsweb.lib.acq.po_manager import PO_Manager +%> + + + + + + + % for fund, count in c.oils.acq.po_li_sum.value.iteritems(): + + + + % endfor + +
Fund# of Copies
${fund}${count}
+ -- 2.11.0