File:  [Repository] / OSAS / OSA_system / OSAS_project.py
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Fri Mar 19 22:17:01 2004 UTC (20 years, 3 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
bugs fixesCVS: ----------------------------------------------------------------------

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

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