/[opental]/opental/OpenPT/ZOPT.py
ViewVC logotype

Diff of /opental/OpenPT/ZOPT.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.39 by lalo, Fri Jan 17 00:21:30 2003 UTC revision 1.40 by lalo, Mon Jan 27 02:04:16 2003 UTC
# Line 21  from ZPythonExpr import PythonExpr, Secu Line 21  from ZPythonExpr import PythonExpr, Secu
21  import cPickle as pickle  import cPickle as pickle
22  #import pickle  #import pickle
23    
24  import os, AccessControl, Acquisition, sys  import os, AccessControl, Acquisition, sys, fnmatch
25    from App.FactoryDispatcher import FactoryDispatcher
26  from Acquisition import aq_base  from Acquisition import aq_base
27  from Globals import DTMLFile, ImageFile, MessageDialog, package_home  from Globals import DTMLFile, ImageFile, MessageDialog, package_home
28  from zLOG import LOG, ERROR, INFO  from zLOG import LOG, ERROR, INFO
# Line 176  source_types = {'HTML':pax.html2pax, 'Te Line 177  source_types = {'HTML':pax.html2pax, 'Te
177  if hasattr(pax, 'xml2pax'):  if hasattr(pax, 'xml2pax'):
178      source_types['XML'] = pax.xml2pax      source_types['XML'] = pax.xml2pax
179    
180    default_text_dir = os.path.join(package_home(globals()), 'default_text')
181    
182  # FIXME: lots of stuff below can probably be refactored out -  # FIXME: lots of stuff below can probably be refactored out -
183  # there is still a lot of cruft pasted from ZPT  # there is still a lot of cruft pasted from ZPT
184    
# Line 213  class ZopePageTemplate(Script, Historica Line 216  class ZopePageTemplate(Script, Historica
216                           'name_request': 'request',                           'name_request': 'request',
217                           'name_modules': 'modules',                           'name_modules': 'modules',
218                           }                           }
     _default_content_fn = os.path.join(package_home(globals()),  
                                        'www', 'default.html')  
219    
220      manage_options = (      manage_options = (
221          {'label':'Edit', 'action':'pt_editForm',          {'label':'Edit', 'action':'pt_editForm',
# Line 234  class ZopePageTemplate(Script, Historica Line 235  class ZopePageTemplate(Script, Historica
235                    'select_variable': 'pt_handler_list'},                    'select_variable': 'pt_handler_list'},
236                   )                   )
237    
238      def __init__(self, id, text=None):      def __init__(self, id, text_fn):
239          self.id = str(id)          self.id = str(id)
240          self.ZBindings_edit(self._default_bindings)          self.ZBindings_edit(self._default_bindings)
241          if text is None:          if text_fn is None:
242              text = open(self._default_content_fn).read()              text = '<openpt />'
243            else:
244                text = open(os.path.join(default_text_dir, text_fn)+'.pt').read()
245          self.macros = make_macro_collection()          self.macros = make_macro_collection()
246          self.pt_edit(text)          self.pt_edit(text)
247    
# Line 561  class ZopePageTemplate(Script, Historica Line 564  class ZopePageTemplate(Script, Historica
564  Globals.InitializeClass(ZopePageTemplate)  Globals.InitializeClass(ZopePageTemplate)
565    
566    
567  manage_addPageTemplateForm = PageTemplateFile(  manage_addPageTemplateForm = ZopePageTemplate('manage_addPageTemplateForm', None)
568      'www/ptAdd.pt', globals(), __name__='manage_addPageTemplateForm')  manage_addPageTemplateForm.write(
569        open(os.path.join(package_home(globals()), 'www', 'ptAdd.pt')).read())
570    manage_addPageTemplateForm.__name__ = manage_addPageTemplateForm.id
571    
572  from urllib import quote  from urllib import quote
573    
574  def manage_addPageTemplate(self, id, title=None, text=None,  def manage_addPageTemplate(self, id, title=None, text_fn=None,
575                             REQUEST=None, submit=None):                             REQUEST=None, submit=None):
576      "Add a Page Template with optional file content."      "Add a Page Template with optional file content."
577    
578      id = str(id)      id = str(id)
579      if REQUEST is None:      if REQUEST is None:
580          self._setObject(id, ZopePageTemplate(id, text))          self._setObject(id, ZopePageTemplate(id, text_fn))
581          ob = getattr(self, id)          ob = getattr(self, id)
582          if title:          if title:
583              ob.pt_setTitle(title)              ob.pt_setTitle(title)
# Line 581  def manage_addPageTemplate(self, id, tit Line 586  def manage_addPageTemplate(self, id, tit
586          file = REQUEST.form.get('file')          file = REQUEST.form.get('file')
587          headers = getattr(file, 'headers', None)          headers = getattr(file, 'headers', None)
588          if headers is None or not file.filename:          if headers is None or not file.filename:
589              zpt = ZopePageTemplate(id)              zpt = ZopePageTemplate(id, text_fn)
590          else:          else:
591              zpt = ZopePageTemplate(id, file, headers.get('content_type'))              zpt = ZopePageTemplate(id, None)
592                zpt.pt_edit(file)
593                zpt.content_type = headers.get('content_type')
594                            
595          self._setObject(id, zpt)          self._setObject(id, zpt)
596    
# Line 593  def manage_addPageTemplate(self, id, tit Line 600  def manage_addPageTemplate(self, id, tit
600          REQUEST.RESPONSE.redirect(u+'/manage_main')          REQUEST.RESPONSE.redirect(u+'/manage_main')
601      return ''      return ''
602    
603    
604    class __FactoryDispatcher__(FactoryDispatcher):
605        "customized FactoryDispatcher for OpenPT"
606        security = AccessControl.ClassSecurityInfo()
607        security.declareObjectProtected('Add Page Templates')
608        security.declareProtected('Add Page Templates', 'default_text_dir')
609        def default_text_dir(*a, **kw):
610            return [name[:-3] for name in os.listdir(default_text_dir) if
611                    fnmatch.fnmatch(name, '*.pt')]
612    Globals.InitializeClass(__FactoryDispatcher__)
613    
614    
615  def initialize(context):  def initialize(context):
616      context.registerClass(      context.registerClass(
617          ZopePageTemplate,          ZopePageTemplate,

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26