From 6c59cda02264672b13b2434fb61b3d15a242806a Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 7 Feb 2008 22:05:14 +0000 Subject: [PATCH] added simple picklist create interface, repaired some bugs in the fund retrievel/update code git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8694 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../oilsweb/oilsweb/controllers/acq/__init__.py | 3 ++- .../web/oilsweb/oilsweb/controllers/acq/fund.py | 8 +++---- .../oilsweb/oilsweb/controllers/acq/picklist.py | 13 +++++++++++ Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py | 25 ++++++++++++++++++++++ Open-ILS/web/oilsweb/oilsweb/lib/user.py | 22 ++++++++++++++++++- .../public/oils/media/css/skin/default/acq.css | 3 +++ .../public/oils/media/css/theme/default/acq.css | 4 ++++ .../oils/default/acq/picklist/navigate.html | 4 ++-- .../templates/oils/default/acq/picklist/view.html | 4 ++-- .../oils/default/acq/picklist/view_list.html | 11 +++++++--- 10 files changed, 84 insertions(+), 13 deletions(-) diff --git a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py index c03ccf03c9..13f52db6fb 100644 --- a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py +++ b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/__init__.py @@ -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() diff --git a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/fund.py b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/fund.py index 532b755c00..2005115cde 100644 --- a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/fund.py +++ b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/fund.py @@ -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 diff --git a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py index e5b246945a..1c9364ac22 100644 --- a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py +++ b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py @@ -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) diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py b/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py index a50b2a7081..62e8fab50b 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py @@ -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 diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/user.py b/Open-ILS/web/oilsweb/oilsweb/lib/user.py index 2be4fea56a..523da7171c 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/user.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/user.py @@ -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 + 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 032b787bbf..8b7ed88f2d 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 @@ -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; } diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/theme/default/acq.css b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/theme/default/acq.css index ea931fbb73..0175f7b2f2 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/theme/default/acq.css +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/css/theme/default/acq.css @@ -26,6 +26,10 @@ .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; } diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/navigate.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/navigate.html index 1fb1437fad..a082d1e09e 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/navigate.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/navigate.html @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*-
- ${_('My Picklists')} + ${_('Manage')}
- ${_('Bib Search')} + ${_('Title Search')}
diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html index 2bd51a3719..8f07cc1126 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- <%inherit file='../base.html'/> -<%def name="page_title()">${_('Evergreen ACQ Picklist')} +<%def name="page_title()">${_('Picklist')} <%def name="block_content()"> <%include file='picklist_summary.html'/> @@ -41,9 +41,9 @@ ${entry.provider().name()} % endif + - ${c.oils.acq.find_entry_attr(entry, "author")} diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html index 083945030b..d5f1e67d70 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html @@ -3,14 +3,19 @@ <%def name="page_title()">${_('Evergreen My Picklists')} <%def name="block_content()"> -

${_('My Picklists')}

+
+
${_('My Picklists')}
+ +
- - + + -- 2.11.0
${_('Name')}${_('Create Time')}${_('Edit Time')}${_('Creation Date')}${_('Edit Date')}