File:  [Repository] / OSAS / OSA_system / OSAS_project.py
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Fri Mar 19 21:28:21 2004 UTC (20 years, 3 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
add config fuer thumb and top

    1: """ Begin March,17 2004, Class OSAS_project contains all layout information for the viewenvironment"""
    2: 
    3: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
    4: from Acquisition import Implicit
    5: from OFS.Folder import Folder
    6: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
    7: from urllib import quote
    8: from Products.PageTemplates.PageTemplate import PageTemplate
    9: import os
   10: from Globals import package_home
   11: 
   12: 
   13: def copyContent(self,filename):
   14:         """copycontent to path"""
   15:         text= self.document_src()
   16:         if not os.path.exists(self.templatePath+"/"+self.aq_parent.getId()):
   17:             os.mkdir(self.templatePath+"/"+self.aq_parent.getId())
   18:         path=self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
   19:         fh=file(path,"w")
   20:         
   21:         fh.write(text)
   22:         fh.close()
   23:         os.chmod(path,0664)
   24:         return path
   25: 
   26: def getPath(self,filename):
   27:     """get path"""
   28:     return self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
   29: 
   30: class OSAS_thumbTemplate(ZopePageTemplate):
   31:     """pageTemplate Objekt"""
   32:     meta_type="OSAS_thumbTemplate"
   33: 
   34:     _default_content_fn = os.path.join(package_home(globals()),
   35:                                        'zpt/OSAS_thumbTemplateDefault.zpt')
   36: 
   37:     manage_options=ZopePageTemplate.manage_options+(
   38:         {'label':'Copy to Filesystem','action':'copyContent'},
   39:        )
   40: 
   41:     def getPath(self):
   42:         """get path"""
   43:         return getPath(self,'thumbtemplate.templ')
   44:     
   45:     ## def changeECHO_pageTemplateWeightForm(self):
   46: ##         """change"""
   47: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
   48: ##         return pt()
   49: 
   50: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
   51: ##         """change"""
   52: ##         self.weight=weight
   53: ##         self.content_type=content_type
   54: 
   55: ##         if RESPONSE is not None:
   56: ##             RESPONSE.redirect('manage_main')
   57:         
   58: 
   59:     def copyContent(self):
   60:         """copycontent to path"""
   61: 
   62:         return "copied to:"+copyContent(self,'thumbtemplate.templ')
   63:         
   64:     
   65: def manage_addOSAS_thumbTemplateForm(self):
   66:     """Form for adding"""
   67:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_thumbTemplate.zpt').__of__(self)
   68:     return pt()
   69: 
   70: 
   71: 
   72: 
   73: def manage_addOSAS_thumbTemplate(self, id,title=None, text=None,
   74:                            REQUEST=None, submit=None):
   75:     "Add a Page Template with optional file content."
   76: 
   77:     
   78:     id = str(id)
   79:     if REQUEST is None:
   80:         self._setObject(id, OSAS_thumbTemplate(id, text))
   81:         ob = getattr(self, id)
   82:        
   83:         if title:
   84:             ob.pt_setTitle(title)
   85:         return ob
   86:     else:
   87:         file = REQUEST.form.get('file')
   88:         headers = getattr(file, 'headers', None)
   89:         if headers is None or not file.filename:
   90:             zpt = OSAS_thumbTemplate(id)
   91:         else:
   92:             zpt = OSAS_thumbTemplate(id, file, headers.get('content_type'))
   93: 
   94:         self._setObject(id, zpt)
   95:         ob = getattr(self, id)
   96: 
   97: 
   98:         try:
   99:             u = self.DestinationURL()
  100:         except AttributeError:
  101:             u = REQUEST['URL1']
  102: 
  103:         if submit == " Add and Edit ":
  104:             u = "%s/%s" % (u, quote(id))
  105:         REQUEST.RESPONSE.redirect(u+'/manage_main')
  106:     return ''
  107: 
  108: class OSAS_topTemplate(ZopePageTemplate):
  109:     """pageTemplate Objekt"""
  110:     meta_type="OSAS_topTemplate"
  111: 
  112:     _default_content_fn = os.path.join(package_home(globals()),
  113:                                        'zpt/OSAS_topTemplateDefault.zpt')
  114:     manage_options=ZopePageTemplate.manage_options+(
  115:         {'label':'Copy to Filesystem','action':'copyContent'},
  116:        )
  117: 
  118:     def getPath(self):
  119:         """get path"""
  120:         return getPath(self,'toptemplate.templ')
  121: 
  122:     ## def changeECHO_pageTemplateWeightForm(self):
  123: ##         """change"""
  124: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
  125: ##         return pt()
  126: 
  127: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
  128: ##         """change"""
  129: ##         self.weight=weight
  130: ##         self.content_type=content_type
  131: 
  132: ##         if RESPONSE is not None:
  133: ##             RESPONSE.redirect('manage_main')
  134: 
  135:     def copyContent(self):
  136:         """copycontent to path"""
  137:         return "copied to:"+copyContent(self,'toptemplate.templ')
  138:         
  139: 
  140: def manage_addOSAS_topTemplateForm(self):
  141:     """Form for adding"""
  142:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
  143:     return pt()
  144: 
  145: 
  146: 
  147: 
  148: def manage_addOSAS_topTemplate(self, id,title=None, text=None,
  149:                            REQUEST=None, submit=None):
  150:     "Add a Page Template with optional file content."
  151: 
  152:     
  153:     id = str(id)
  154:     if REQUEST is None:
  155:         self._setObject(id, OSAS_topTemplate(id, text))
  156:         ob = getattr(self, id)
  157:        
  158:         if title:
  159:             ob.pt_setTitle(title)
  160:         return ob
  161:     else:
  162:         file = REQUEST.form.get('file')
  163:         headers = getattr(file, 'headers', None)
  164:         if headers is None or not file.filename:
  165:             zpt = OSAS_topTemplate(id)
  166:         else:
  167:             zpt = OSAS_topTemplate(id, file, headers.get('content_type'))
  168: 
  169:         self._setObject(id, zpt)
  170:         ob = getattr(self, id)
  171: 
  172: 
  173:         try:
  174:             u = self.DestinationURL()
  175:         except AttributeError:
  176:             u = REQUEST['URL1']
  177: 
  178:         if submit == " Add and Edit ":
  179:             u = "%s/%s" % (u, quote(id))
  180:         REQUEST.RESPONSE.redirect(u+'/manage_main')
  181:     return ''
  182: 
  183: 
  184: class OSAS_project(Folder):
  185:     """Main project"""
  186: 
  187:     meta_type="OSAS_project"
  188:     
  189:     def __init__(self,id, title, startpage, xsl, templatePath):
  190:         """init"""
  191:         self.id=id
  192:         self.title=title
  193:         self.startpage=startpage
  194:         self.xsl=xsl
  195:         self.templatePath=templatePath
  196:         self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
  197:         self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
  198: 
  199: 
  200:     manage_options = Folder.manage_options+(
  201:         {'label':'Main Config','action':'configOSAS_projectForm'},
  202:         {'label':'Copy all Files','action':'copyAllFiles'},
  203:         )
  204: 
  205:     def copyAllFiles(self):
  206:         """copy all"""
  207:         fis=self.ZopeFind(self)
  208:         ret=""
  209:         for fi in fis:
  210:             if hasattr(fi[1],'copyContent'):
  211:                 ret=ret+fi[1].copyContent()+"</br>"
  212:         return ret
  213:         
  214:     def configOSAS_projectForm(self):
  215:         """config"""
  216:         pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_project.zpt').__of__(self)
  217:         return pt()
  218: 
  219:     def configOSAS_project(self,title, startpage, xsl, templatePath,RESPONSE=None):
  220:         """config"""
  221:         self.title=title
  222:         self.startpage=startpage
  223:         self.xsl=xsl
  224:         self.templatePath=templatePath
  225:         if RESPONSE is not None:
  226:             RESPONSE.redirect('manage_main')
  227:         
  228:     
  229: 
  230: 
  231:     
  232: def manage_addOSAS_projectForm(self):
  233:     """interface for adding the OSAS_root"""
  234:     pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_project.zpt').__of__(self)
  235:     return pt()
  236: 
  237: def manage_addOSAS_project(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
  238:     """add the OSAS_root"""
  239:     newObj=OSAS_project(id,title, startpage, xsl,templatePath)
  240:     self._setObject(id,newObj)
  241:     if RESPONSE is not None:
  242:         RESPONSE.redirect('manage_main')
  243: 
  244: 
  245:     
  246: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>