Annotation of OSAS/OSA_system/OSAS_project.py, revision 1.2

1.1       dwinter     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())
1.2     ! dwinter    18:        os.chmod(self.templatePath+"/"+self.aq_parent.getId(),0755)
1.1       dwinter    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>