def test_DirectoryViewFolderCustom(self): # Now we register a different class under the fake meta_type # "FOLDER" and test again... from Products.CMFCore.DirectoryView import registerMetaType registerMetaType('FOLDER', DummyDirectoryView) # In order to regenerate the FSDV data we need to remove and # register again, that way the newly registered meta_type is used self.ob._delObject('fake_skin') self._registerDirectory(self) testfolder = self.ob.fake_skin.test_directory self.failUnless(isinstance(testfolder, DummyDirectoryViewSurrogate))
self._read_action_metadata(self.getId(), self.filepath) self._read_validator_metadata(self.getId(), self.filepath) except: log(summary="metadata error", text="file = %s" % self.filepath) logException() raise def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ControllerPythonScript(self.getId(), filepath=self.filepath) obj.write(self.read()) obj.validators = copy.copy(Acquisition.aq_base(self.validators)) # XXX - don't forget to enable this obj.actions = copy.copy(Acquisition.aq_base(self.actions)) return obj security.declarePublic("writableDefaults") def writableDefaults(self): """Can default actions and validators be modified?""" return 0 def _getState(self): return getToolByName(self, "portal_form_controller").getState(self, is_validator=0) Globals.InitializeClass(FSControllerPythonScript) registerFileExtension("cpy", FSControllerPythonScript) registerMetaType("Controller Python Script", FSControllerPythonScript)
InitializeClass(PDFTemplate) class FSPDFTemplate(FSPageTemplate, PDFTemplate): meta_type = "ERP5 Filesystem PDF Template" icon = "www/PDF.png" def __call__(self, *args, **kwargs): return PDFTemplate.__call__(self, *args, **kwargs) InitializeClass(FSPDFTemplate) registerFileExtension('pdft', FSPDFTemplate) registerMetaType('ERP5 PDF Template', FSPDFTemplate) # Dynamic Patch try: from Products.CMFReportTool.ReportTool import ReportTool except ImportError: ReportTool = None if ReportTool: try: from Products.CMFReportTool.ReportTool import ZODBResourceHandler HAS_ZODB_RESOURCE_HANDLER = 1 except ImportError: from Products.CMFReportTool.ReportTool import ZODBHandler, ResourceHandler HAS_ZODB_RESOURCE_HANDLER = 0
## def get_groups(self): ## self._updateFromFS() ## return ZMIForm.get_groups(self) ## def get_form_encoding(self): ## self._updateFromFS() ## return ZMIForm.get_form_encoding(self) ## def header(self): ## self._updateFromFS() ## return ZMIForm.header(self) ## def get_xml(self): ## self._updateFromFS() ## return ZMIForm.get_xml(self) ## def all_meta_types(self): ## self._updateFromFS() ## return ZMIForm.all_meta_types(self) ## security.declareProtected('View management screens', 'get_group_rows') ## def get_group_rows(self): ## self._updateFromFS() ## return ZMIForm.get_group_rows(self) InitializeClass(FSForm) registerFileExtension('form', FSForm) registerMetaType('FSForm', FSForm)
def pt_render(self, source=0, extra_context={}): # Tie in on an opportunity to auto-reload self._updateFromFS() return FSPageTemplate.inheritedAttribute('pt_render')(self, source, extra_context) # Copy over more mothods security.declareProtected(FTPAccess, 'manage_FTPget') security.declareProtected(View, 'get_size') security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource', 'document_src') _exec = ZopePageTemplate._exec pt_getContext = ZopePageTemplate.pt_getContext ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams manage_FTPget = ZopePageTemplate.manage_FTPget get_size = ZopePageTemplate.get_size getSize = get_size PrincipiaSearchSource = ZopePageTemplate.PrincipiaSearchSource document_src = ZopePageTemplate.document_src d = FSPageTemplate.__dict__ d['source.xml'] = d['source.html'] = Src() Globals.InitializeClass(FSPageTemplate) registerFileExtension('pt', FSPageTemplate) registerMetaType('Page Template', FSPageTemplate)
f.write(result) f.seek(0) result=RDB.File(f,brain,p, zc) else: result=Results(result, brain, p, zc) columns=result._searchable_result_columns() if test__ and columns != self._col: self._col=columns # If run in test mode, return both the query and results so # that the template doesn't have to be rendered twice! if test__: return query, result return result if Globals.DevelopmentMode: # Provide an opportunity to update the properties. def __of__(self, parent): try: self = ImplicitAcquisitionWrapper(self, parent) self._updateFromFS() return self except: logger.exception("Error during __of__") raise Globals.InitializeClass(FSORAMethod) registerFileExtension('zora', FSORAMethod) registerMetaType('Oracle Method', FSORAMethod)
return self.getModTime() security.declareProtected(View, 'getContentType') def getContentType(self): """Get the content type of a file or image. Returns the content type (MIME type) of a file or image. """ self._updateFromFS() return self.content_type security.declareProtected(View, 'get_size') def get_size(self): """ Return the size of the image. """ self._updateFromFS() return self._data and len(self._data) or 0 security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = index_html InitializeClass(FSImage) registerFileExtension('gif', FSImage) registerFileExtension('jpg', FSImage) registerFileExtension('jpeg', FSImage) registerFileExtension('png', FSImage) registerFileExtension('bmp', FSImage) registerMetaType('Image', FSImage)
self._read_action_metadata(self.getId(), self.filepath) self._read_validator_metadata(self.getId(), self.filepath) except: log(summary='metadata error', text='file = %s' % self.filepath) logException() raise def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ControllerPythonScript(self.getId(), filepath=self.filepath) obj.write(self.read()) obj.validators = copy.copy(Acquisition.aq_base(self.validators)) # XXX - don't forget to enable this obj.actions = copy.copy(Acquisition.aq_base(self.actions)) return obj security.declarePublic('writableDefaults') def writableDefaults(self): """Can default actions and validators be modified?""" return 0 def _getState(self): return getToolByName(self, 'portal_form_controller').getState(self, is_validator=0) InitializeClass(FSControllerPythonScript) registerFileExtension('cpy', FSControllerPythonScript) registerMetaType('Controller Python Script', FSControllerPythonScript)
finally: security.removeContext(self) return result # Copy over more methods security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = ZopeSimplate.manage_FTPget security.declareProtected(View, 'get_size') get_size = ZopeSimplate.get_size getSize = get_size security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') PrincipiaSearchSource = ZopeSimplate.PrincipiaSearchSource security.declareProtected(ViewManagementScreens, 'document_src') document_src = ZopeSimplate.document_src simplate_getContext = ZopeSimplate.simplate_getContext ZScriptHTML_tryParams = ZopeSimplate.ZScriptHTML_tryParams Globals.InitializeClass(FSSimplate) registerFileExtension('smpt', FSSimplate) registerFileExtension('smpl', FSSimplate) registerFileExtension('spt', FSSimplate) registerMetaType('Simplate', FSSimplate) registerIcon(FSSimplate, 'www/fssimplate.png', globals())
security.removeContext(self) return result # Copy over more methods security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = ZopePageTemplate.manage_FTPget.im_func security.declareProtected(View, 'get_size') get_size = ZopePageTemplate.get_size.im_func getSize = get_size security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') PrincipiaSearchSource = ZopePageTemplate.PrincipiaSearchSource.im_func security.declareProtected(ViewManagementScreens, 'document_src') document_src = ZopePageTemplate.document_src.im_func pt_getContext = ZopePageTemplate.pt_getContext.im_func ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams.im_func source_dot_xml = Src() setattr(PDFPageTemplate, 'source.xml', PDFPageTemplate.source_dot_xml) setattr(PDFPageTemplate, 'source.html', PDFPageTemplate.source_dot_xml) InitializeClass(PDFPageTemplate) registerMetaType('PDF Page Template', PDFPageTemplate)
self.height = height self.script = script security.declareProtected(View, '__call__') def continuePDF(self,c,x,y,request,parent,pagenumber): # Here is where it has to process the instructions in the .pd script #self._updateFromFS() # Make sure the template has been loaded. #fptr = open (self._filepath,"r") #allLines = fptr.readlines() script = self.script textobject = c.beginText() textobject.textLine(script) c.drawText(textobject) return (x,y) source_dot_xml = Src() setattr(PDFPageTemplate, 'source.xml', PDFPageTemplate.source_dot_xml) setattr(PDFPageTemplate, 'source.html', PDFPageTemplate.source_dot_xml) InitializeClass(PDFPageTemplate) registerMetaType('PDF Page Template', PDFPageTemplate) setattr(ScriptedPageTemplate, 'source.xml', ScriptedPageTemplate.source_dot_xml) setattr(ScriptedPageTemplate, 'source.html', ScriptedPageTemplate.source_dot_xml) InitializeClass(ScriptedPageTemplate) registerMetaType('Scripted Page Template', ScriptedPageTemplate)
security.removeContext(self) return result # Copy over more methods security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = ZopePageTemplate.manage_FTPget.im_func security.declareProtected(View, 'get_size') get_size = ZopePageTemplate.get_size.im_func getSize = get_size security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') PrincipiaSearchSource = ZopePageTemplate.PrincipiaSearchSource.im_func security.declareProtected(ViewManagementScreens, 'document_src') document_src = ZopePageTemplate.document_src.im_func pt_getContext = ZopePageTemplate.pt_getContext.im_func ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams.im_func source_dot_xml = Src() setattr(NHPPageTemplate, 'source.xml', NHPPageTemplate.source_dot_xml) setattr(NHPPageTemplate, 'source.html', NHPPageTemplate.source_dot_xml) InitializeClass(NHPPageTemplate) registerFileExtension('nhp', NHPPageTemplate) registerMetaType('NHP Page Template', NHPPageTemplate)
from AccessControl import ClassSecurityInfo from Products.CMFCore.DirectoryView import registerMetaType from Products.CMFCore.FSObject import FSObject from Products.ExternalMethod.ExternalMethod import ExternalMethod from zope.interface import implements class FSExternalMethod(FSObject, ExternalMethod): meta_type = 'Filesystem External Method' manage_options = ({'label':'Customize', 'action':'manage_main'}, {'label':'Test', 'action':'ZScriptHTML_tryForm',} ) def _createZODBClone(self): em = ExternalMethod(id=self.id) em.manage_edit(self.title, self.module, self.function, REQUEST=None) return em def _readFile(self, reparse): return def __init__(self, *args, **kwargs): super(FSExternalMethod, self).__init__(*args, **kwargs) props = kwargs['properties'] self.manage_edit(props['title'], props['module'], props['function'], REQUEST=None) return InitializeClass(FSExternalMethod) registerFileExtension('em', FSExternalMethod) registerMetaType('External Method', FSExternalMethod)
proptype, propvstr = proptv.split( '=', 1 ) propname = propname.strip() proptype = proptype.strip() propvstr = propvstr.strip() converter = get_converter( proptype, lambda x: x ) propvalue = converter( propvstr ) # Should be safe since we're loading from # the filesystem. setattr(self, propname, propvalue) map.append({'id':propname, 'type':proptype, 'mode':'', 'default_value':propvalue, }) except: raise ValueError, ( 'Error processing line %s of %s:\n%s' % (lino,self._filepath,line) ) self._properties = tuple(map) if Globals.DevelopmentMode: # Provide an opportunity to update the properties. def __of__(self, parent): self = ImplicitAcquisitionWrapper(self, parent) self._updateFromFS() return self InitializeClass(FSPropertiesObject) registerFileExtension('props', FSPropertiesObject) registerMetaType('Properties Object', FSPropertiesObject)
cache_time = parameters.get("cache_time", 0) class_name = parameters.get("class_name", "") class_file = parameters.get("class_file", "") connection_hook = parameters.get("connection_hook", None) direct = parameters.get("allow_simple_one_argument_traversal", None) self.manage_edit(title, connection_id, arguments, template=data) self.manage_advanced( max_rows, max_cache, cache_time, class_name, class_file, connection_hook=connection_hook, direct=direct ) # do we need to do anything on reparse? if Globals.DevelopmentMode: # Provide an opportunity to update the properties. def __of__(self, parent): try: self = ImplicitAcquisitionWrapper(self, parent) self._updateFromFS() return self except: logger.exception("Error during __of__") raise InitializeClass(FSZSQLMethod) registerFileExtension("zsql", FSZSQLMethod) registerMetaType("Z SQL Method", FSZSQLMethod)
InitializeClass(PDFTemplate) class FSPDFTemplate(FSPageTemplate, PDFTemplate): meta_type = "ERP5 Filesystem PDF Template" icon = "www/PDF.png" def __call__(self, *args, **kwargs): return PDFTemplate.__call__(self, *args, **kwargs) InitializeClass(FSPDFTemplate) registerFileExtension("pdft", FSPDFTemplate) registerMetaType("ERP5 PDF Template", FSPDFTemplate) # Dynamic Patch try: from Products.CMFReportTool.ReportTool import ReportTool except ImportError: ReportTool = None if ReportTool: try: from Products.CMFReportTool.ReportTool import ZODBResourceHandler HAS_ZODB_RESOURCE_HANDLER = 1 except ImportError: from Products.CMFReportTool.ReportTool import ZODBHandler, ResourceHandler
def __init__(self, id, filepath, fullname=None, properties=None): FSObject.__init__(self, id, filepath, fullname, properties) def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ERP5Form(self.getId(), self.title) obj.set_xml(self.get_xml()) return obj def _readFile(self, reparse): f = open(expandpath(self._filepath), 'rb') # update the form with the xml data try: XMLToForm(f.read(), self) except: # bare except here, but I hope this is ok, as the # exception should be reraised # (except if the LOG raises another one ... should we be more paranoid here?) import zLOG zLOG.LOG('Formulator.FSForm',zLOG.ERROR, 'error reading form from file '+expandpath(self._filepath)) raise f.close() Globals.InitializeClass(ERP5FSForm) registerFileExtension('form', ERP5FSForm) registerMetaType('FSForm', ERP5FSForm)
#posargs = (self, REQUEST, RESPONSE) posargs = (self, REQUEST) else: posargs = () kwargs = {'cooked': self.cook()} return template(*posargs, **kwargs) security.declareProtected(FTPAccess, 'manage_FTPget') def manage_FTPget(self): """ Fetch our source for delivery via FTP. """ return self.raw security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') def PrincipiaSearchSource(self): """ Fetch our source for indexing in a catalog. """ return self.raw security.declareProtected(ViewManagementScreens, 'document_src') def document_src( self ): """ Fetch our source for rendering in the ZMI. """ return self.raw InitializeClass(FSSTXMethod) registerFileExtension('stx', FSSTXMethod) registerMetaType('STX Method', FSSTXMethod)
def __call__(self, *args, **kwargs): return self._call(FSControllerPageTemplate.inheritedAttribute('__call__'), *args, **kwargs) def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ControllerPageTemplate(self.getId(), self._text, self.content_type) obj.expand = 0 obj.write(self.read()) obj.validators = copy.copy(Acquisition.aq_base(self.validators)) obj.actions = copy.copy(Acquisition.aq_base(self.actions)) return obj security.declarePublic('writableDefaults') def writableDefaults(self): """Can default actions and validators be modified?""" return 0 _s = Src() setattr(FSControllerPageTemplate, 'source.xml', _s) setattr(FSControllerPageTemplate, 'source.html', _s) del _s Globals.InitializeClass(FSControllerPageTemplate) registerFileExtension('cpt', FSControllerPageTemplate) registerMetaType('Controller Page Template', FSControllerPageTemplate)
def __call__(self, *args, **kwargs): return self._call(FSControllerPageTemplate.inheritedAttribute("__call__"), *args, **kwargs) def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ControllerPageTemplate(self.getId(), self._text, self.content_type) obj.expand = 0 obj.write(self.read()) obj.validators = copy.copy(Acquisition.aq_base(self.validators)) obj.actions = copy.copy(Acquisition.aq_base(self.actions)) return obj security.declarePublic("writableDefaults") def writableDefaults(self): """Can default actions and validators be modified?""" return 0 _s = Src() setattr(FSControllerPageTemplate, "source.xml", _s) setattr(FSControllerPageTemplate, "source.html", _s) del _s InitializeClass(FSControllerPageTemplate) registerFileExtension("cpt", FSControllerPageTemplate) registerMetaType("Controller Page Template", FSControllerPageTemplate)
self.manage_advanced(max_rows, max_cache, cache_time, '', # don't really see any point in allowing '') # brain specification... # do we need to do anything on reparse? if Globals.DevelopmentMode: # Provide an opportunity to update the properties. def __of__(self, parent): try: self = Acquisition.ImplicitAcquisitionWrapper(self, parent) self._updateFromFS() return self except: from zLOG import LOG, ERROR import sys LOG('FS Z SQL Method', ERROR, 'Error during __of__', error=sys.exc_info()) raise Globals.InitializeClass(FSZSQLMethod) registerFileExtension('zsql', FSZSQLMethod) registerMetaType('Z SQL Method', FSZSQLMethod)
self.id, err_type, err_msg ) raise RuntimeError, msg else: return FSPageTemplate.inheritedAttribute('pt_render')(self, source, extra_context ) # Copy over more mothods security.declareProtected(FTPAccess, 'manage_FTPget') security.declareProtected(View, 'get_size') security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource', 'document_src') _exec = ZopePageTemplate._exec pt_getContext = ZopePageTemplate.pt_getContext ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams manage_FTPget = ZopePageTemplate.manage_FTPget get_size = ZopePageTemplate.get_size getSize = get_size PrincipiaSearchSource = ZopePageTemplate.PrincipiaSearchSource document_src = ZopePageTemplate.document_src d = FSPageTemplate.__dict__ d['source.xml'] = d['source.html'] = Src() Globals.InitializeClass(FSPageTemplate) registerFileExtension('pt', FSPageTemplate) registerMetaType('Page Template', FSPageTemplate)
#posargs = (self, REQUEST, RESPONSE) posargs = (self, REQUEST) else: posargs = () kwargs = {'cooked': self.cook()} return template(*posargs, **kwargs) security.declareProtected(FTPAccess, 'manage_FTPget') def manage_FTPget(self): """ Fetch our source for delivery via FTP. """ return self.raw security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') def PrincipiaSearchSource(self): """ Fetch our source for indexing in a catalog. """ return self.raw security.declareProtected(ViewManagementScreens, 'document_src') def document_src( self ): """ Fetch our source for rendering in the ZMI. """ return self.raw InitializeClass(FSReSTMethod) registerFileExtension('rst', FSReSTMethod) registerMetaType('ReST Method', FSReSTMethod)
security.removeContext(self) return result # Copy over more methods security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = ZopePageTemplate.manage_FTPget.im_func security.declareProtected(View, 'get_size') get_size = ZopePageTemplate.get_size.im_func getSize = get_size security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') PrincipiaSearchSource = ZopePageTemplate.PrincipiaSearchSource.im_func security.declareProtected(ViewManagementScreens, 'document_src') document_src = ZopePageTemplate.document_src.im_func pt_getContext = ZopePageTemplate.pt_getContext.im_func ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams.im_func source_dot_xml = Src() setattr(PDTPageTemplate, 'source.xml', PDTPageTemplate.source_dot_xml) setattr(PDTPageTemplate, 'source.html', PDTPageTemplate.source_dot_xml) InitializeClass(PDTPageTemplate) registerFileExtension('pdt', PDTPageTemplate) registerMetaType('(PDF) Page Template', PDTPageTemplate)
from Products.CMFCore.FSFile import FSFile from Products.CMFCore.DirectoryView import registerFileExtension from Products.CMFCore.DirectoryView import registerMetaType from zope.i18nmessageid import MessageFactory messageFactory = MessageFactory('medialog.googlefonts') registerFileExtension('ttf', FSFile) registerFileExtension('svg', FSFile) registerFileExtension('woff', FSFile) registerFileExtension('eot', FSFile) registerMetaType('File', FSFile) def initialize(context): pass
icons = icons + ({'path': 'misc_/PageTemplates/exclamation.gif', 'alt': 'Error', 'title': 'This template has an error'},) return icons def _getFileName(self): """Returns the filename used for content-disposition header. """ # The "filename" property has a TALES type, but getProperty for TALES types # only works if the context has an ERP5 Site in his acquisition context. # If it's not the case, we will not evaluate the TALES, but simply use the # template's title or id as filename. if getattr(self, 'getPortalObject', None) is None: return self.title_or_id() return self.getProperty('filename') InitializeClass(OOoTemplate) class FSOOoTemplate(FSPageTemplate, OOoTemplate): meta_type = "ERP5 Filesystem OOo Template" icon = "www/OOo.png" def __call__(self, *args, **kwargs): return OOoTemplate.__call__(self, *args, **kwargs) InitializeClass(FSOOoTemplate) registerFileExtension('ooot', FSOOoTemplate) registerMetaType(OOoTemplate.meta_type, FSOOoTemplate)
return icons def _getFileName(self): """Returns the filename used for content-disposition header. """ # The "filename" property has a TALES type, but getProperty for TALES types # only works if the context has an ERP5 Site in his acquisition context. # If it's not the case, we will not evaluate the TALES, but simply use the # template's title or id as filename. if getattr(self, 'getPortalObject', None) is None: return self.title_or_id() return self.getProperty('filename') InitializeClass(OOoTemplate) class FSOOoTemplate(FSPageTemplate, OOoTemplate): meta_type = "ERP5 Filesystem OOo Template" icon = "www/OOo.png" def __call__(self, *args, **kwargs): return OOoTemplate.__call__(self, *args, **kwargs) InitializeClass(FSOOoTemplate) registerFileExtension('ooot', FSOOoTemplate) registerMetaType(OOoTemplate.meta_type, FSOOoTemplate)
title = ComputedAttribute(title, 1) def getBindingAssignments(self): # Override of the version in Bindings.py. # This version ensures that bindings get loaded on demand. if not hasattr(self, '_bind_names'): # Set a default first to avoid recursion self._setupBindings() # Now do it for real self._updateFromFS() return self._bind_names InitializeClass(FSPythonScript) class FSPythonScriptTracebackSupplement: """Implementation of ITracebackSupplement Makes script-specific info available in exception tracebacks. """ def __init__(self, script, line=-1): self.object = script # If line is set to -1, it means to use tb_lineno. self.line = line registerFileExtension('py', FSPythonScript) registerMetaType('Script (Python)', FSPythonScript)
posargs = (self, REQUEST) else: posargs = () kwargs = {'cooked': self.cook()} return template(*posargs, **kwargs) @security.protected(FTPAccess) def manage_FTPget(self): """ Fetch our source for delivery via FTP. """ return self.raw @security.protected(ViewManagementScreens) def PrincipiaSearchSource(self): """ Fetch our source for indexing in a catalog. """ return self.raw @security.protected(ViewManagementScreens) def document_src(self): """ Fetch our source for rendering in the ZMI. """ return self.raw InitializeClass(FSSTXMethod) registerFileExtension('stx', FSSTXMethod) registerMetaType('STX Method', FSSTXMethod)
**kwargs) def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ControllerPageTemplate(self.getId(), self._text, self.content_type) obj.expand = 0 obj.write(self.read()) obj.validators = copy.copy(Acquisition.aq_base(self.validators)) obj.actions = copy.copy(Acquisition.aq_base(self.actions)) return obj security.declarePublic('writableDefaults') def writableDefaults(self): """Can default actions and validators be modified?""" return 0 _s = Src() setattr(FSControllerPageTemplate, 'source.xml', _s) setattr(FSControllerPageTemplate, 'source.html', _s) del _s InitializeClass(FSControllerPageTemplate) registerFileExtension('cpt', FSControllerPageTemplate) registerMetaType('Controller Page Template', FSControllerPageTemplate)
def manage_afterAdd(self, object, container): try: BaseClass.manage_afterAdd(self, object, container) except: logException() raise def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ControllerValidator(self.getId()) obj.write(self.read()) return obj security.declarePublic('writableDefaults') def writableDefaults(self): """Can default actions and validators be modified?""" return 0 def _getState(self): return getToolByName(self, 'portal_form_controller').getState(self, is_validator=1) InitializeClass(FSControllerValidator) registerFileExtension('vpy', FSControllerValidator) registerMetaType('Controller Validator', FSControllerValidator)
keyset = { # Why oh why? # All this code is cut and paste # here to make sure that we # dont call _getContext and hence can't cache # Annoying huh? 'here': self.aq_parent.getPhysicalPath(), 'bound_names': bound_names} result = self.ZCacheable_get(keywords=keyset) if result is not None: # Got a cached value. return result # Execute the template in a new security context. security.addContext(self) try: result = self.pt_render(extra_context=bound_names) if keyset is not None: # Store the result in the cache. self.ZCacheable_set(result, keywords=keyset) return result finally: security.removeContext(self) return result InitializeClass(FSMailTemplate) registerFileExtension('mt', FSMailTemplate) registerMetaType('Mail Template', FSMailTemplate)
def _setOldCacheHeaders(self): # return False to disable this simple caching behaviour return _FSCacheHeaders(self) security.declareProtected(View, 'getContentType') def getContentType(self): """Get the content type of a file or image. Returns the content type (MIME type) of a file or image. """ self._updateFromFS() return self.content_type security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = index_html InitializeClass(FSFile) registerFileExtension('doc', FSFile) registerFileExtension('txt', FSFile) registerFileExtension('pdf', FSFile) registerFileExtension('swf', FSFile) registerFileExtension('jar', FSFile) registerFileExtension('cab', FSFile) registerFileExtension('ico', FSFile) registerFileExtension('js', FSFile) registerFileExtension('css', FSFile) registerMetaType('File', FSFile)
InitializeClass(PDFTemplate) class FSPDFTemplate(FSPageTemplate, PDFTemplate): meta_type = "ERP5 Filesystem PDF Template" icon = "www/PDF.png" def __call__(self, *args, **kwargs): return PDFTemplate.__call__(self, *args, **kwargs) InitializeClass(FSPDFTemplate) registerFileExtension('pdft', FSPDFTemplate) registerMetaType('ERP5 PDF Template', FSPDFTemplate) # Dynamic Patch try: from Products.CMFReportTool.ReportTool import ReportTool except ImportError: ReportTool = None if ReportTool: try: from Products.CMFReportTool.ReportTool import ZODBResourceHandler HAS_ZODB_RESOURCE_HANDLER=1 except ImportError: from Products.CMFReportTool.ReportTool import ZODBHandler, ResourceHandler HAS_ZODB_RESOURCE_HANDLER=0
propname = propname.strip() proptype = proptype.strip() propvstr = propvstr.strip() converter = get_converter(proptype, lambda x: x) propvalue = converter(propvstr) # Should be safe since we're loading from # the filesystem. setattr(self, propname, propvalue) map.append({'id': propname, 'type': proptype, 'mode': '', 'default_value': propvalue, }) except Exception: raise ValueError('Error processing line %s of %s:\n%s' % (lino, self._filepath, line)) self._properties = tuple(map) if getConfiguration().debug_mode: # Provide an opportunity to update the properties. def __of__(self, parent): self = ImplicitAcquisitionWrapper(self, parent) self._updateFromFS() return self InitializeClass(FSPropertiesObject) registerFileExtension('props', FSPropertiesObject) registerMetaType('Properties Object', FSPropertiesObject)
self.manage_advanced( max_rows, max_cache, cache_time, '', # don't really see any point in allowing '') # brain specification... # do we need to do anything on reparse? if Globals.DevelopmentMode: # Provide an opportunity to update the properties. def __of__(self, parent): try: self = Acquisition.ImplicitAcquisitionWrapper(self, parent) self._updateFromFS() return self except: from zLOG import LOG, ERROR import sys LOG('FS Z SQL Method', ERROR, 'Error during __of__', error=sys.exc_info()) raise Globals.InitializeClass(FSZSQLMethod) registerFileExtension('zsql', FSZSQLMethod) registerMetaType('Z SQL Method', FSZSQLMethod)
''' ks = [] for key in keys: key = str(key).strip() if key: ks.append(key) self._cache_namespace_keys = tuple(ks) if REQUEST is not None: return self.ZCacheable_manage(self, REQUEST) # Zope 2.3.x way: def validate(self, inst, parent, name, value, md=None): return getSecurityManager().validate(inst, parent, name, value) security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = DTMLMethod.manage_FTPget.im_func security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') PrincipiaSearchSource = DTMLMethod.PrincipiaSearchSource.im_func security.declareProtected(ViewManagementScreens, 'document_src') document_src = DTMLMethod.document_src.im_func security.declareProtected(ViewManagementScreens, 'manage_haveProxy') manage_haveProxy = DTMLMethod.manage_haveProxy.im_func InitializeClass(FSDTMLMethod) registerFileExtension('dtml', FSDTMLMethod) registerMetaType('DTML Method', FSDTMLMethod)
security.declarePrivate('manage_afterAdd') def manage_afterAdd(self, object, container): try: BaseClass.manage_afterAdd(self, object, container) except: logException() raise def _createZODBClone(self): """Create a ZODB (editable) equivalent of this object.""" obj = ControllerValidator(self.getId()) obj.write(self.read()) return obj security.declarePublic('writableDefaults') def writableDefaults(self): """Can default actions and validators be modified?""" return 0 def _getState(self): return getToolByName(self, 'portal_form_controller').getState(self, is_validator=1) InitializeClass(FSControllerValidator) registerFileExtension('vpy', FSControllerValidator) registerMetaType('Controller Validator', FSControllerValidator)
security.removeContext(self) return result # Copy over more methods security.declareProtected(FTPAccess, 'manage_FTPget') manage_FTPget = ZopePageTemplate.manage_FTPget.im_func security.declareProtected(View, 'get_size') get_size = ZopePageTemplate.get_size.im_func getSize = get_size security.declareProtected(ViewManagementScreens, 'PrincipiaSearchSource') PrincipiaSearchSource = ZopePageTemplate.PrincipiaSearchSource.im_func security.declareProtected(ViewManagementScreens, 'document_src') document_src = ZopePageTemplate.document_src.im_func pt_getContext = ZopePageTemplate.pt_getContext.im_func ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams.im_func source_dot_xml = Src() setattr(BookTemplate, 'source.xml', BookTemplate.source_dot_xml) setattr(BookTemplate, 'source.html', BookTemplate.source_dot_xml) InitializeClass(BookTemplate) registerMetaType('Book Template', BookTemplate)