From: erickson Date: Sun, 6 Jan 2008 19:47:24 +0000 (+0000) Subject: upated IDL calls to match new API. added better session data handling in the context... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=dd3f563ca87fe9ebb7b670061d2562f2f857ebae;p=Evergreen.git upated IDL calls to match new API. added better session data handling in the context object. changed block_title to page_title in templates since it is more of a page variable than a block of content git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8333 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/oilsweb/oilsweb/controllers/admin.py b/Open-ILS/web/oilsweb/oilsweb/controllers/admin.py index df8e6934b7..df1ae22317 100644 --- a/Open-ILS/web/oilsweb/oilsweb/controllers/admin.py +++ b/Open-ILS/web/oilsweb/oilsweb/controllers/admin.py @@ -21,39 +21,40 @@ Context.applySubContext('adm', AdminContext) class AdminController(BaseController): - def init(self, type, id=None): + def init(self, obj_type, obj_id=None): r = RequestMgr() - r.ctx.adm.object_class = type - meta = r.ctx.adm.object_meta = oils.utils.idl.oilsGetIDLParser().IDLObject[type] + r.ctx.adm.object_class = obj_type + meta = r.ctx.adm.object_meta = oils.utils.idl.IDLParser.get_class(obj_type) - if id is not None: + if obj_id is not None: r.ctx.adm.object = osrf.ses.AtomicRequest( 'open-ils.cstore', 'open-ils.cstore.direct.%s.retrieve' % - meta['fieldmapper'].replace('::', '.'), id) + meta.fieldmapper.replace('::', '.'), obj_id) return r - def test(self, type, id): - r = self.init() - return r.render('dashboard.html') + def index(self): + r = RequestMgr() + return r.render('admin/index.html') - def view(self, type, id): - r = self.init(type, id) + def view(self, **kwargs): + r = self.init(kwargs['type'], kwargs['id']) + r.ctx.adm.mode = 'view' return r.render('admin/object.html') - def update(self, type, id): - r = self.init(type, id) - c.oils.adm.mode = 'update' + def update(self, **kwargs): + r = self.init(kwargs['type'], kwargs['id']) + r.ctx.adm.mode = 'update' return r.render('admin/object.html') - def create(self, type): - r = self.init(type, id) - c.oils.adm.mode = 'create' + def create(self, **kwargs): + r = self.init(kwargs['type']) + r.ctx.adm.mode = 'create' return r.render('admin/object.html') - def delete(self, type, id): - r = self.init(type, id) - c.oils.adm.mode = 'delete' + def delete(self, **kwargs): + r = self.init(kwargs['type'], kwargs['id']) + r.ctx.adm.mode = 'delete' return r.render('admin/object.html') diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/__init__.py b/Open-ILS/web/oilsweb/oilsweb/lib/__init__.py index 8b6eca6a30..1012679283 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/__init__.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/__init__.py @@ -17,7 +17,7 @@ class CoreContext(SubContext): self.ac_prefix = ContextItem() # added content prefix self.skin = ContextItem() # web skin self.theme = ContextItem() # web theme - self.authtoken = ContextItem(cgi_name='ses', cookie=True) # authtoken string + self.authtoken = ContextItem(cgi_name='ses', session=True) # authtoken string self.user = ContextItem() # logged in user object self.workstation = ContextItem() # workstation object diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/context.py b/Open-ILS/web/oilsweb/oilsweb/lib/context.py index 0eceea40c6..80262f0588 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/context.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/context.py @@ -15,7 +15,7 @@ class ContextItem(object): self.default_value = kwargs.get('default_value') self.qname = None self.multi = kwargs.get('multi') - self.cookie = kwargs.get('cookie') + self.session = kwargs.get('session') class SubContext(object): ''' A SubContext is a class-specific context object that lives inside the global context object ''' @@ -42,7 +42,7 @@ class Context(object): q = '' for f in self._fields: - if f.cgi_name and not f.cookie: + if f.cgi_name and not f.session: val = getattr(getattr(self, f.app), f.name) if val != f.default_value: if isinstance(val, list): @@ -55,12 +55,13 @@ class Context(object): return q[:-1] # strip the trailing & - def apply_cookies(self): + def apply_session_vars(self): + from oilsweb.lib.base import session for f in self._fields: - if f.cgi_name and f.cookie: + if f.cgi_name and f.session: val = getattr(getattr(self, f.app), f.name) - if isinstance(val, str) or isinstance(val, unicode): - self._resp.set_cookie(f.cgi_name, val) # config var for timeout? + if val is not None and val != f.default_value: + session[f.cgi_name] = val @staticmethod @@ -76,6 +77,7 @@ class Context(object): @staticmethod def init(req, resp): global _context, _subContexts + from oilsweb.lib.base import session c = _context = Context() c._req = req c._resp = resp @@ -91,6 +93,11 @@ class Context(object): item.name = name c._fields.append(item) + # ------------------------------------------------------------------- + # Load the cgi/session data. First try the URL params, then try the + # session cache, and finally see if the data is in a cookie. If + # no data is found, use the default + # ------------------------------------------------------------------- set = False if item.cgi_name: if item.cgi_name in req.params: @@ -100,9 +107,14 @@ class Context(object): setattr(getattr(c, app), name, req.params[item.cgi_name]) set = True else: - if item.cookie and item.cgi_name in req.cookies: - setattr(getattr(c, app), name, req.cookies[item.cgi_name]) - set = True + if item.session: + if item.cgi_name in session: + setattr(getattr(c, app), name, session[item.cgi_name]) + set = True + else: + if item.cgi_name in req.cookies: + setattr(getattr(c, app), name, req.cookies[item.cgi_name]) + set = True if not set: setattr(getattr(c, app), name, item.default_value) diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/request.py b/Open-ILS/web/oilsweb/oilsweb/lib/request.py index fe9f57c6b1..7e41443423 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/request.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/request.py @@ -25,8 +25,8 @@ class RequestMgr(object): def finalize(self): ''' Perform any last minute cleanup just prior to sending the result ''' if not self.finalized: + self.ctx.apply_session_vars() self.session.save() - self.ctx.apply_cookies() self.pylons_context.oils = self.ctx self.finalized = True diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/util.py b/Open-ILS/web/oilsweb/oilsweb/lib/util.py index 5669fb8d6a..2acb62f3c9 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/util.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/util.py @@ -1,26 +1,17 @@ import pylons.config, pylons.templating import libxml2, libxslt -import oils.utils.utils +#import oils.utils.utils def childInit(): ''' Global child-init handler. - 1. Connects to the OpenSRF network. Note that the OpenSRF - layer ensures that there is only one connection per thread. - 2. Parses the IDL file ''' - import osrf.system, osrf.set, oils.utils.idl, oils.utils.csedit, osrf.cache - osrf.system.connect(pylons.config['osrf_config'], pylons.config['osrf_config_ctxt']) - oils.utils.idl.oilsParseIDL() - oils.utils.csedit.oilsLoadCSEditor() - - # live in opensrf somewhere - servers = osrf.set.get('cache.global.servers.server') - if not isinstance(servers, list): - servers = [servers] - if not osrf.cache.CacheClient.get_client(): - osrf.cache.CacheClient.connect(servers) - + 1. Connects to the OpenSRF network. + 2. Parses the IDL file + ''' + import oils.system, osrf.system + oils.system.oilsConnect(pylons.config['osrf_config'], pylons.config['osrf_config_ctxt']) + osrf.system.connect_cache() _parsedSheets = {} def apply_xsl(xmlStr, xslFile, xslParams={}): diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/base.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/base.html index 544c8e8086..cd131df3a1 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/base.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/base.html @@ -11,8 +11,8 @@ <%def name='block_head()'> - <%def name="block_title()">${_('Evergreen Acquisitions')} - ${self.block_title()} + <%def name="page_title()">${_('Evergreen Acquisitions')} + ${self.page_title()} ${self.block_css()} diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/admin.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/admin.html index dc243e9772..b140be12ec 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/admin.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/admin.html @@ -1,5 +1,5 @@ <%inherit file='../base.html'/> -<%def name="block_title()">${_('Evergreen Acquisitions Administration ')} +<%def name="page_title()">${_('Evergreen Acquisitions Administration ')} <%def name="block_content()">

${_('Evergreen Acquisitions Administration ')}

diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/base.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/base.html
index 8f3ad6b8ed..502f92128b 100644
--- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/base.html
+++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/base.html
@@ -2,3 +2,4 @@
 <%def name="block_sub_navigate()">
     <%include file='navigate.html'/>
 
+
diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/index.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/index.html
index 1e658fc6b6..1bf7ef5372 100644
--- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/index.html
+++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/index.html
@@ -1,6 +1,6 @@
 <%inherit file='base.html'/>
 
-<%def name="block_title()">${_('Evergreen Acquisitions Home')}
+<%def name="page_title()">${_('Evergreen Acquisitions Home')}
 <%def name="block_content()">
     
ACQ HOME diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist.html index 4eaa2d93f3..99d2959007 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist.html @@ -1,5 +1,5 @@ <%inherit file='base.html'/> -<%def name="block_title()">${_('Evergreen ACQ Picklist')} +<%def name="page_title()">${_('Evergreen ACQ Picklist')} <%def name="block_content()"> % for rec in c.oils_acq_records: diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/pl_builder.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/pl_builder.html index 02f0623db3..1e8670db21 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/pl_builder.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/pl_builder.html @@ -1,5 +1,5 @@ <%inherit file='base.html'/> -<%def name="block_title()">${_('Evergreen Acquisitions Results')} +<%def name="page_title()">${_('Evergreen Acquisitions Results')} <%def name="block_content()"> diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/rdetails.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/rdetails.html index d14904185c..595905c764 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/rdetails.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/rdetails.html @@ -1,5 +1,5 @@ <%inherit file='base.html'/> -<%def name="block_title()">${_('Evergreen ACQ Details')} +<%def name="page_title()">${_('Evergreen ACQ Details')} <%def name="block_content()">
Summary
diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/search.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/search.html index d38ed70b52..1a01a58653 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/search.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/search.html @@ -1,5 +1,5 @@ <%inherit file='base.html'/> -<%def name="block_title()">${_('Evergreen Acquisitions Search')} +<%def name="page_title()">${_('Evergreen Acquisitions Search')} <%def name="block_content()"> diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/admin/object.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/admin/object.html index 1cbcd50c02..f25a25a7c2 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/admin/object.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/admin/object.html @@ -1,8 +1,10 @@ + <%inherit file='base.html'/> +<%namespace name='widget' file='widgets.html'/> -<%def name="block_title()">${_('Evergreen Admin')} +<%def name="page_title()">${_('Evergreen Admin')} <%def name="block_content()"> -
${c.oils.adm.object_meta['rpt_label']}
+
${c.oils.adm.object_meta.label}
% if c.oils.adm.mode == 'delete':
<% @@ -12,19 +14,21 @@ ${string}
% else: +
- % for fieldmeta in [ f for f in c.oils.adm.object_meta['fields'] if not f['virtual']]: + % for fieldmeta in [ f for f in c.oils.adm.object_meta.fields if not f.virtual]: - + % endfor
${fieldmeta['rpt_label']}${fieldmeta.label} % if c.oils.adm.mode == 'update': - + (${fieldmeta.rpt_datatype}) + ${widget.load(fieldmeta.rpt_datatype,fieldmeta.name, getattr(c.oils.adm.object, fieldmeta.name)())} % else: % if c.oils.adm.mode == 'create': % else: % if c.oils.adm.mode == 'view': - ${unicode(getattr(c.oils.adm.object, fieldmeta['name'])())} + ${unicode(getattr(c.oils.adm.object, fieldmeta.name)())} % endif % endif % endif @@ -32,6 +36,7 @@
+ % endif diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/base.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/base.html index 4240efd738..2f7eb4bbef 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/base.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/base.html @@ -33,10 +33,10 @@ ${self.block_content()} <%def name='block_content()'/> +<%def name='block_sub_navigate()'/> <%def name='block_navigate()'> <%include file='navigate.html'/> <%def name='block_footer()'> <%include file='footer.html'/> -<%def name='block_sub_navigate()'/> diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/dashboard.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/dashboard.html index d67abe6fe7..0af5db53ef 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/dashboard.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/dashboard.html @@ -1,6 +1,6 @@ <%inherit file='base.html'/> -<%def name="block_title()">${_('Evergreen Dashboard')} +<%def name="page_title()">${_('Evergreen Dashboard')} <%def name="block_content()">
DASHBOARD