Display Line Item details
authordjfiander <djfiander@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 22 Feb 2008 20:21:40 +0000 (20:21 +0000)
committerdjfiander <djfiander@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 22 Feb 2008 20:21:40 +0000 (20:21 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8826 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py
Open-ILS/web/oilsweb/oilsweb/controllers/acq/po.py
Open-ILS/web/oilsweb/oilsweb/lib/acq/po_manager.py
Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/skin/default/acq.css
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/po_li_summary.html
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_lineitem.html

index c574ec8..e942037 100644 (file)
@@ -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
index 7e683a0..208bed1 100644 (file)
@@ -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
index 7b58f2c..f08178c 100644 (file)
@@ -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()
index d072506..599e7c0 100644 (file)
@@ -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; }
index c584435..a3b8045 100644 (file)
@@ -8,4 +8,35 @@
         <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>
index 20d74fc..bde0555 100644 (file)
@@ -8,4 +8,21 @@
 <%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>