added simple picklist create interface, repaired some bugs in the fund retrievel...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 7 Feb 2008 22:05:14 +0000 (22:05 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 7 Feb 2008 22:05:14 +0000 (22:05 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8694 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py
Open-ILS/web/oilsweb/oilsweb/controllers/acq/fund.py
Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py
Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py
Open-ILS/web/oilsweb/oilsweb/lib/user.py
Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/skin/default/acq.css
Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/theme/default/acq.css
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/navigate.html
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html

index c03ccf0..13f52db 100644 (file)
@@ -27,8 +27,9 @@ class AcqContext(SubContext):
 
         self.picklist = ContextItem() # picklist object
         self.picklist_list = ContextItem() # list of picklist objects
-        self.picklist_id_list = ContextItem() # list of picklist objects
+        self.picklist_id_list = ContextItem(cgi_name='acq.pli') # list of picklist IDs
         self.picklist_entry = ContextItem() # picklist_entry object
+        self.picklist_name = ContextItem(cgi_name='acq.pln')
 
         self.currency_types = ContextItem()
 
index 532b755..2005115 100644 (file)
@@ -72,12 +72,12 @@ class FundController(BaseController):
         if r.ctx.acq.fund_allocation_source:
             return self._allocate(r, ses)
 
-        fund = self._retrieve_fund(r, ses, fund_id)
+        fund = self._retrieve_fund(r, ses, r.ctx.acq.fund_id)
 
-        source_list = self.ses.request(
+        source_list = ses.request(
             'open-ils.acq.funding_source.org.retrieve', 
-            self.request_mgr.ctx.core.authtoken, None, 'MANAGE_FUNDING_SOURCE').recv().content()
-        oils.event.Event.parse_and_raise(sources)
+            r.ctx.core.authtoken, None, 'MANAGE_FUNDING_SOURCE').recv().content()
+        oils.event.Event.parse_and_raise(source_list)
 
         r.ctx.acq.fund = fund
         r.ctx.acq.fund_source_list = source_list
index e5b2469..1c9364a 100644 (file)
@@ -17,6 +17,19 @@ class PicklistController(BaseController):
         r.ctx.acq.picklist = pl_manager.picklist
         return r.render('acq/picklist/view.html')
 
+    def create(self, **kwargs):
+        r = RequestMgr()
+        if r.ctx.acq.picklist_name:
+            picklist = osrf.net_obj.NetworkObject.acqpl()
+            picklist.name(r.ctx.acq.picklist_name)
+            picklist.owner(r.ctx.core.user.id())
+            picklist_id = osrf.ses.ClientSession.atomic_request(
+                oils.const.OILS_APP_ACQ,
+                'open-ils.acq.picklist.create', r.ctx.core.authtoken, picklist)
+            oils.event.Event.parse_and_raise(picklist_id)
+            return redirect_to(controller='acq/picklist', action='view', id=picklist_id)
+        return r.render('acq/picklist/create.html')
+
     def view_entry(self, **kwargs):
         r = RequestMgr()
         pl_manager = oilsweb.lib.acq.picklist.PicklistMgr(r)
index a50b2a7..62e8fab 100644 (file)
@@ -1,5 +1,7 @@
 import osrf.cache, osrf.json, osrf.ses, osrf.net_obj
 import oils.const, oils.utils.utils, oils.event
+import oilsweb.lib.user
+import mx.DateTime.ISO
 
 class PicklistMgr(object):
     def __init__(self, request_mgr, **kwargs):
@@ -16,6 +18,17 @@ class PicklistMgr(object):
         oils.event.Event.parse_and_raise(picklist)
         self.picklist = picklist
 
+        usermgr = oilsweb.lib.user.User(self.request_mgr.ctx.core)
+
+        picklist.create_time(
+            mx.DateTime.ISO.ParseAny(
+            picklist.create_time()).strftime(usermgr.get_date_format()))
+
+        picklist.edit_time(
+            mx.DateTime.ISO.ParseAny(
+            picklist.edit_time()).strftime(usermgr.get_date_format()))
+           
+
     def delete(self, picklist_id=None):
         picklist_id = picklist_id or self.id
         status = self.ses.request(
@@ -63,6 +76,18 @@ class PicklistMgr(object):
             'open-ils.acq.picklist.user.retrieve', 
             self.request_mgr.ctx.core.authtoken).recv().content()
         oils.event.Event.parse_and_raise(list)
+
+        usermgr = oilsweb.lib.user.User(self.request_mgr.ctx.core)
+
+        for picklist in list:
+            picklist.create_time(
+                mx.DateTime.ISO.ParseAny(
+                picklist.create_time()).strftime(usermgr.get_date_format()))
+    
+            picklist.edit_time(
+                mx.DateTime.ISO.ParseAny(
+                picklist.edit_time()).strftime(usermgr.get_date_format()))
+    
         return list
         
 
index 2be4fea..523da71 100644 (file)
@@ -1,4 +1,4 @@
-import osrf.ses, oils.utils.csedit, pylons.config, oils.utils.utils, oils.event
+import osrf.ses, oils.utils.csedit, pylons.config, oils.utils.utils, oils.event, oils.const
 from gettext import gettext as _
 
 class AuthException(Exception):
@@ -73,4 +73,24 @@ class User(object):
         self.ctx.perm_tree[perm] = oils.org.OrgUtil.get_union_tree(perm_orgs)
         return self.ctx.perm_tree[perm]
 
+    def fetch_user_setting(self, setting):
+        setting = osrf.ses.ClientSession.atomic_request(
+            oils.const.OILS_APP_ACTOR,
+            'open-ils.actor.patron.settings.retrieve',
+            self.ctx.authtoken, self.ctx.user.id(), setting)
+        oils.event.Event.parse_and_raise(setting)
+        return setting
+
+    def get_date_format(self):
+        setting = self.fetch_user_setting('common.date_format')
+        if not setting:
+            return '%Y-%m-%d'
+        return setting
+
+    def get_datetime_format(self):
+        setting = self.fetch_user_setting('common.datetime_format')
+        if not setting:
+            return '%Y-%m-%d %H:%M'
+        return setting
+
 
index 032b787..8b7ed88 100644 (file)
@@ -36,6 +36,9 @@
 .oils-acq-picklist-records-author-row td { padding-left: 30px; }
 .oils-acq-picklist-records-phys_desc-row td { padding-left: 30px; }
 .oils-acq-picklist-records-phys_desc-row {}
+#oils-acq-picklist-list-header { margin: 10px; width: 98%;}
+#oils-acq-picklist-list-header-label { float: left; }
+#oils-acq-picklist-list-header-create { float: right; }
 
 /* picklist entry page */
 #oils-acq-picklist-entry-header { padding: 4px; margin-bottom: 20px; }
index ea931fb..0175f7b 100644 (file)
 .oils-acq-picklist-picklist-td { border-style: solid; border-color: #A1A1A1; border-width: 0px 1px 0px 1px; } 
 .oils-acq-picklist-records-service-td { font-size: 85%; }
 .oils-acq-picklist-entry-delete-link { font-size: 85%; }
+#oils-acq-picklist-list-header {border-bottom: 1px solid #6BA160;}
+#oils-acq-picklist-list-header-label { font-weight: bold; font-size: 110%; }
+#oils-acq-picklist-list-header-create { font-weight: bold; }
+
 
 /* entry display */
 #oils-acq-picklist-entry-marc-block { border: 1px solid #6BA160; }
index 1fb1437..a082d1e 100644 (file)
@@ -1,8 +1,8 @@
 # -*- coding: utf-8 -*-
 <div class='oils-base-navigate-item'>
-    <a href='${c.oils.core.prefix}/acq/picklist/list'>${_('My Picklists')}</a>
+    <a href='${c.oils.core.prefix}/acq/picklist/list'>${_('Manage')}</a>
 </div>
 <div class='oils-base-navigate-item'>
-    <a href='${c.oils.core.prefix}/acq/picklist/search'>${_('Bib Search')}</a>
+    <a href='${c.oils.core.prefix}/acq/picklist/search'>${_('Title Search')}</a>
 </div>
    
index 2bd51a3..8f07cc1 100644 (file)
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 <%inherit file='../base.html'/>
-<%def name="page_title()">${_('Evergreen ACQ Picklist')}</%def>
+<%def name="page_title()">${_('Picklist')}</%def>
 <%def name="block_content()">
 
 <%include file='picklist_summary.html'/>
@@ -41,9 +41,9 @@
                 ${entry.provider().name()}
             % endif
         </td>
+        <td><input type='checkbox' name='${c.oils.acq.picklist_id_list_.cgi_name}' value='${c.oils.acq.picklist.id()}'/></td>
     </tr>
 
-    </tr>
     <tr class='oils-acq-picklist-records-author-row'>
         <td colspan='4'>${c.oils.acq.find_entry_attr(entry, "author")}
     </tr>
index 0839450..d5f1e67 100644 (file)
@@ -3,14 +3,19 @@
 <%def name="page_title()">${_('Evergreen My Picklists')}</%def>
 <%def name="block_content()">
 
-<h3>${_('My Picklists')}</h3>
+<div id='oils-acq-picklist-list-header' class='container'>
+    <div id='oils-acq-picklist-list-header-label'>${_('My Picklists')}</div>
+    <div id='oils-acq-picklist-list-header-create'>
+        <a href='${c.oils.acq.prefix}/picklist/create'>${_('New Picklist')}</a>
+    </div>
+</div>
 
 <table id='oils-acq-picklist-list-table'>
     <thead>
         <tr>
             <td>${_('Name')}</td>
-            <td>${_('Create Time')}</td>
-            <td>${_('Edit Time')}</td>
+            <td>${_('Creation Date')}</td>
+            <td>${_('Edit Date')}</td>
             <td/>
             <td/>
         </tr>