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

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: 
1.3     ! dwinter   109: class OSAS_digiLibTemplate(ZopePageTemplate):
        !           110:     """pageTemplate Objekt"""
        !           111:     meta_type="OSAS_digiLibTemplate"
        !           112: 
        !           113:     _default_content_fn = os.path.join(package_home(globals()),
        !           114:                                        'zpt/OSAS_digiLibTemplateDefault.zpt')
        !           115: 
        !           116:     manage_options=ZopePageTemplate.manage_options+(
        !           117:         {'label':'Copy to Filesystem','action':'copyContent'},
        !           118:        )
        !           119: 
        !           120:     def getPath(self):
        !           121:         """get path"""
        !           122:         return getPath(self,'digilibtemplate.templ')
        !           123:     
        !           124:     ## def changeECHO_pageTemplateWeightForm(self):
        !           125: ##         """change"""
        !           126: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
        !           127: ##         return pt()
        !           128: 
        !           129: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
        !           130: ##         """change"""
        !           131: ##         self.weight=weight
        !           132: ##         self.content_type=content_type
        !           133: 
        !           134: ##         if RESPONSE is not None:
        !           135: ##             RESPONSE.redirect('manage_main')
        !           136:         
        !           137: 
        !           138:     def copyContent(self):
        !           139:         """copycontent to path"""
        !           140: 
        !           141:         return "copied to:"+copyContent(self,'digilibtemplate.templ')
        !           142:         
        !           143:     
        !           144: def manage_addOSAS_digiLibTemplateForm(self):
        !           145:     """Form for adding"""
        !           146:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_digiLibTemplate.zpt').__of__(self)
        !           147:     return pt()
        !           148: 
        !           149: 
        !           150: 
        !           151: 
        !           152: def manage_addOSAS_digiLibTemplate(self, id,title=None, text=None,
        !           153:                            REQUEST=None, submit=None):
        !           154:     "Add a Page Template with optional file content."
        !           155: 
        !           156:     
        !           157:     id = str(id)
        !           158:     if REQUEST is None:
        !           159:         self._setObject(id, OSAS_digiLibTemplate(id, text))
        !           160:         ob = getattr(self, id)
        !           161:        
        !           162:         if title:
        !           163:             ob.pt_setTitle(title)
        !           164:         return ob
        !           165:     else:
        !           166:         file = REQUEST.form.get('file')
        !           167:         headers = getattr(file, 'headers', None)
        !           168:         if headers is None or not file.filename:
        !           169:             zpt = OSAS_digiLibTemplate(id)
        !           170:         else:
        !           171:             zpt = OSAS_digiLibTemplate(id, file, headers.get('content_type'))
        !           172: 
        !           173:         self._setObject(id, zpt)
        !           174:         ob = getattr(self, id)
        !           175: 
        !           176: 
        !           177:         try:
        !           178:             u = self.DestinationURL()
        !           179:         except AttributeError:
        !           180:             u = REQUEST['URL1']
        !           181: 
        !           182:         if submit == " Add and Edit ":
        !           183:             u = "%s/%s" % (u, quote(id))
        !           184:         REQUEST.RESPONSE.redirect(u+'/manage_main')
        !           185:     return ''
        !           186: 
1.1       dwinter   187: class OSAS_topTemplate(ZopePageTemplate):
                    188:     """pageTemplate Objekt"""
                    189:     meta_type="OSAS_topTemplate"
                    190: 
                    191:     _default_content_fn = os.path.join(package_home(globals()),
                    192:                                        'zpt/OSAS_topTemplateDefault.zpt')
                    193:     manage_options=ZopePageTemplate.manage_options+(
                    194:         {'label':'Copy to Filesystem','action':'copyContent'},
                    195:        )
                    196: 
                    197:     def getPath(self):
                    198:         """get path"""
                    199:         return getPath(self,'toptemplate.templ')
                    200: 
                    201:     ## def changeECHO_pageTemplateWeightForm(self):
                    202: ##         """change"""
                    203: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
                    204: ##         return pt()
                    205: 
                    206: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
                    207: ##         """change"""
                    208: ##         self.weight=weight
                    209: ##         self.content_type=content_type
                    210: 
                    211: ##         if RESPONSE is not None:
                    212: ##             RESPONSE.redirect('manage_main')
                    213: 
                    214:     def copyContent(self):
                    215:         """copycontent to path"""
                    216:         return "copied to:"+copyContent(self,'toptemplate.templ')
                    217:         
                    218: 
                    219: def manage_addOSAS_topTemplateForm(self):
                    220:     """Form for adding"""
                    221:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
                    222:     return pt()
                    223: 
                    224: 
                    225: 
                    226: 
                    227: def manage_addOSAS_topTemplate(self, id,title=None, text=None,
                    228:                            REQUEST=None, submit=None):
                    229:     "Add a Page Template with optional file content."
                    230: 
                    231:     
                    232:     id = str(id)
                    233:     if REQUEST is None:
                    234:         self._setObject(id, OSAS_topTemplate(id, text))
                    235:         ob = getattr(self, id)
                    236:        
                    237:         if title:
                    238:             ob.pt_setTitle(title)
                    239:         return ob
                    240:     else:
                    241:         file = REQUEST.form.get('file')
                    242:         headers = getattr(file, 'headers', None)
                    243:         if headers is None or not file.filename:
                    244:             zpt = OSAS_topTemplate(id)
                    245:         else:
                    246:             zpt = OSAS_topTemplate(id, file, headers.get('content_type'))
                    247: 
                    248:         self._setObject(id, zpt)
                    249:         ob = getattr(self, id)
                    250: 
                    251: 
                    252:         try:
                    253:             u = self.DestinationURL()
                    254:         except AttributeError:
                    255:             u = REQUEST['URL1']
                    256: 
                    257:         if submit == " Add and Edit ":
                    258:             u = "%s/%s" % (u, quote(id))
                    259:         REQUEST.RESPONSE.redirect(u+'/manage_main')
                    260:     return ''
                    261: 
                    262: 
                    263: class OSAS_project(Folder):
                    264:     """Main project"""
                    265: 
                    266:     meta_type="OSAS_project"
                    267:     
                    268:     def __init__(self,id, title, startpage, xsl, templatePath):
                    269:         """init"""
                    270:         self.id=id
                    271:         self.title=title
                    272:         self.startpage=startpage
                    273:         self.xsl=xsl
                    274:         self.templatePath=templatePath
1.3     ! dwinter   275:    self._setObject('digiLibTemplate',OSAS_digiLibTemplate(id='digiLibTemplate'))
1.1       dwinter   276:         self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
                    277:         self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
                    278: 
                    279: 
                    280:     manage_options = Folder.manage_options+(
                    281:         {'label':'Main Config','action':'configOSAS_projectForm'},
                    282:         {'label':'Copy all Files','action':'copyAllFiles'},
                    283:         )
                    284: 
                    285:     def copyAllFiles(self):
1.3     ! dwinter   286:        """copy all"""
        !           287:        fis=self.ZopeFind(self)
        !           288:        ret=""
        !           289:        for fi in fis:
        !           290:            if hasattr(fi[1],'copyContent'):
        !           291:                ret=ret+fi[1].copyContent()+"</br>"
        !           292:        return ret
        !           293: 
        !           294:     def getField(self,name):
        !           295:        """get Field"""
        !           296:        try:
        !           297:            return(getattr(self,name))
        !           298:        except:
        !           299:            return ""
1.1       dwinter   300:     def configOSAS_projectForm(self):
                    301:         """config"""
                    302:         pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_project.zpt').__of__(self)
                    303:         return pt()
                    304: 
                    305:     def configOSAS_project(self,title, startpage, xsl, templatePath,RESPONSE=None):
                    306:         """config"""
                    307:         self.title=title
                    308:         self.startpage=startpage
                    309:         self.xsl=xsl
                    310:         self.templatePath=templatePath
1.3     ! dwinter   311: 
        !           312:    
        !           313:    
1.1       dwinter   314:         if RESPONSE is not None:
                    315:             RESPONSE.redirect('manage_main')
                    316:         
                    317:     
                    318: 
                    319: 
                    320:     
                    321: def manage_addOSAS_projectForm(self):
                    322:     """interface for adding the OSAS_root"""
                    323:     pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_project.zpt').__of__(self)
                    324:     return pt()
                    325: 
                    326: def manage_addOSAS_project(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
                    327:     """add the OSAS_root"""
                    328:     newObj=OSAS_project(id,title, startpage, xsl,templatePath)
                    329:     self._setObject(id,newObj)
                    330:     if RESPONSE is not None:
                    331:         RESPONSE.redirect('manage_main')
                    332: 
                    333: 
                    334:     
                    335: 

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