Minor cosmetic tweaks, approve lineitems for purchase (lineitem.state == "approved")
authordjfiander <djfiander@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 21 Mar 2008 20:31:32 +0000 (20:31 +0000)
committerdjfiander <djfiander@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 21 Mar 2008 20:31:32 +0000 (20:31 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9109 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/lineitem_summary.html
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_lineitem.html

index 48a88ee..2852110 100644 (file)
@@ -160,6 +160,26 @@ class PicklistController(BaseController):
         return redirect_to(controller='acq/picklist', action='view_lineitem',
                            id=r.ctx.acq.lineitem_id.value)
 
+    def approve_lineitem(self):
+        r = RequestMgr()
+        ses = ClientSession(oils.const.OILS_APP_ACQ)
+        ses.connect
+
+        li = ses.request('open-ils.acq.lineitem.retrieve',
+                         r.ctx.core.authtoken.value,
+                         r.ctx.acq.lineitem_id.value).Recv().content()
+        li = Event.parse_and_raise(li)
+
+        li.state("approved")
+
+        li = ses.request('open-ils.acq.lineitem.update',
+                         r.ctx.core.authtoken.value,
+                         li).recv().content()
+        li = Event.parse_and_raise(li)
+
+        return redirect_to(controller='acq/picklist', action='view',
+                           id=r.ctx.acq.picklist_id.value)
+
     def _update_lineitem_count(self, r, ses):
         ''' Updates # of copies to order for single lineitem '''
 
index aefcd21..13f4af9 100644 (file)
@@ -1,6 +1,9 @@
 <%namespace file='../../common/widgets.html' name='widget' />
+<%
+    from oilsweb.lib.acq.picklist import PicklistMgr
+%>
 <div id='oils-acq-lineitem-header'>
-    ${_('Picklist Entry')}
+    ${PicklistMgr.find_lineitem_attr(c.oils.acq.lineitem.value, 'title')}
     <div class='oils-acq-lineitem-attributes'>
         <%
        provider_map = [(provider.id(), provider.name()) for provider in c.oils.acq.provider_list.value]
@@ -13,6 +16,8 @@
         meta4 = _("Last update time %s") % c.oils.acq.lineitem.value.edit_time()
         %>
         <div>${meta}</div>
+        <div>${meta3}</div>
+        <div>${meta4}</div>
         <div>
            <form method="post"
                  action="${c.oils.acq.prefix.value}/picklist/update_lineitem">
                  
            </form>
        </div>
-        <div>${meta3}</div>
-        <div>${meta4}</div>
+       <div>
+           <form method="post"
+                   action="${c.oils.acq.prefix.value}/picklist/approve_lineitem">
+             
+               <button name="${c.oils.acq.lineitem_id.cgi_name}"
+                       value="${c.oils.acq.lineitem.value.id()}">
+                   ${_("Approve for Purchase")}
+               </button>
+           </form>
+       </div>
     </div>
 </div>
 
index c013e88..b2b1a30 100644 (file)
@@ -57,16 +57,21 @@ o        </select>&nbsp;<input type='submit' value='${_("Submit")}'/>
                ${PicklistMgr.find_lineitem_attr(lineitem, "price")}
            </td>
            <td class="oils-acq-picklist-records-copies">
-               <form method="POST"
-                     action="${c.oils.acq.prefix.value}/picklist/update">
-                   <input name="${c.oils.acq.picklist_source_id.cgi_name}"
-                          type="hidden"
-                          value="${c.oils.acq.picklist.value.id()}" />
-                   <input name="${c.oils.acq.lineitem_item_count.cgi_name}"
-                      type="text" size="3" value="${lineitem.item_count()}" />
-            <button name='${c.oils.acq.lineitem_id.cgi_name}'
-             value='${lineitem.id()}'>${_("Update")}</button>
-               </form>
+               % if lineitem.state() == 'approved':
+                   ${lineitem.item_count()} Approved
+               % else:
+                   <form method="POST"
+                         action="${c.oils.acq.prefix.value}/picklist/update">
+                       <input name="${c.oils.acq.picklist_source_id.cgi_name}"
+                              type="hidden"
+                              value="${c.oils.acq.picklist.value.id()}" />
+                       <input name="${c.oils.acq.lineitem_item_count.cgi_name}"
+                              type="text" size="3"
+                              value="${lineitem.item_count()}" />
+                       <button name='${c.oils.acq.lineitem_id.cgi_name}'
+                               value='${lineitem.id()}'>${_("Update")}</button>
+                   </form>
+               % endif
            </td>
         </tr>
     % endfor
index a20095c..f1a5833 100644 (file)
@@ -8,6 +8,8 @@
 
 <%
      fund_map = [(fund.id(), fund.name()) for fund in c.oils.acq.fund_list.value]
+     def sort_lid(a, b):
+         return cmp(a.id(), b.id())
 %>
 
 ${picklist.summary(c.oils.acq.picklist.value, link=True)}
@@ -16,37 +18,43 @@ ${picklist.summary(c.oils.acq.picklist.value, link=True)}
 
 <table id='oils-acq-lineitem-summary'>
     % for attr in c.oils.acq.lineitem.value.attributes():
-        <tr>
-            <td class='oils-acq-lineitem-attr-name'>
-                ${attr.attr_name()}
-            </td>
-            <td class='oils-acq-lineitem-attr-value'>
-                ${attr.attr_value()}
-            </td>
-        </tr>
+        % if attr.attr_name() != 'title':
+            <tr>
+                <td class='oils-acq-lineitem-attr-name'>
+                    ${attr.attr_name()}
+               </td>
+               <td class='oils-acq-lineitem-attr-value'>
+                    ${attr.attr_value()}
+               </td>
+            </tr>
+       % endif
     % endfor
 </table>
 
 <table id="oils-acq-lineitem-details-table">
     <thead>
-        <tr><td>Fund</td><td>Home Library</td></tr>
+        <tr><td>ID</td><td>Fund</td><td>Home Library</td></tr>
     </thead>
     <tbody>
+        ${c.oils.acq.lineitem.value.lineitem_details().sort(sort_lid)}
         % for detail in c.oils.acq.lineitem.value.lineitem_details():
-           <tr>
-               <td>
-                   <form method="post"
-                         action="${c.oils.acq.prefix.value}/picklist/update_lineitem">
-                       <input type="hidden"
-                              name="${c.oils.acq.lineitem_id.cgi_name}"
-                              value="${c.oils.acq.lineitem.value.id()}" />
+           <Form method="post"
+                 action="${c.oils.acq.prefix.value}/picklist/update_lineitem">
+               <input type="hidden"
+                      name="${c.oils.acq.lineitem_id.cgi_name}"
+                      value="${c.oils.acq.lineitem.value.id()}" />
+               <tr>
+                   <td>${detail.id()}</td>
+                   <td>
+                       ${widget.build_selector(c.oils.acq.fund_id.cgi_name, fund_map, detail.fund())}
+                   </td>
+                   <td>${detail.owning_lib() or 'None'}</td>
+                   <td>
                        <button name='${c.oils.acq.lineitem_detail_id.cgi_name}'
                                value='${detail.id()}'>${_("Update")}</button>
-                       ${widget.build_selector(c.oils.acq.fund_id.cgi_name, fund_map, detail.fund())}
-                   </form>
-               </td>
-               <td>${detail.owning_lib() or '&nbsp;'}</td>
-           </tr>
+                   </td>
+               </tr>
+           </form>
        % endfor
     </tbody>
 </table>