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

1.6     ! dwinter     1: """ Begin March,17 2004, Class OSAS_viewerTemplateSet contains all layout information for the viewenvironment"""
1.1       dwinter     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"""
1.5       dwinter    15:    text= self.document_src({'raw':1})
                     16:         #text= self.read()
                     17:    #text=getattr(self,'source.html') 
1.1       dwinter    18:         if not os.path.exists(self.templatePath+"/"+self.aq_parent.getId()):
                     19:             os.mkdir(self.templatePath+"/"+self.aq_parent.getId())
1.2       dwinter    20:        os.chmod(self.templatePath+"/"+self.aq_parent.getId(),0755)
1.1       dwinter    21:         path=self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
                     22:         fh=file(path,"w")
                     23:         
                     24:         fh.write(text)
                     25:         fh.close()
                     26:         os.chmod(path,0664)
                     27:         return path
                     28: 
                     29: def getPath(self,filename):
                     30:     """get path"""
                     31:     return self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
                     32: 
                     33: class OSAS_thumbTemplate(ZopePageTemplate):
                     34:     """pageTemplate Objekt"""
                     35:     meta_type="OSAS_thumbTemplate"
                     36: 
                     37:     _default_content_fn = os.path.join(package_home(globals()),
                     38:                                        'zpt/OSAS_thumbTemplateDefault.zpt')
                     39: 
                     40:     manage_options=ZopePageTemplate.manage_options+(
                     41:         {'label':'Copy to Filesystem','action':'copyContent'},
                     42:        )
                     43: 
                     44:     def getPath(self):
                     45:         """get path"""
                     46:         return getPath(self,'thumbtemplate.templ')
                     47:     
                     48:     ## def changeECHO_pageTemplateWeightForm(self):
                     49: ##         """change"""
                     50: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
                     51: ##         return pt()
                     52: 
                     53: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
                     54: ##         """change"""
                     55: ##         self.weight=weight
                     56: ##         self.content_type=content_type
                     57: 
                     58: ##         if RESPONSE is not None:
                     59: ##             RESPONSE.redirect('manage_main')
                     60:         
                     61: 
                     62:     def copyContent(self):
                     63:         """copycontent to path"""
                     64: 
                     65:         return "copied to:"+copyContent(self,'thumbtemplate.templ')
                     66:         
                     67:     
                     68: def manage_addOSAS_thumbTemplateForm(self):
                     69:     """Form for adding"""
                     70:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_thumbTemplate.zpt').__of__(self)
                     71:     return pt()
                     72: 
                     73: 
                     74: 
                     75: 
                     76: def manage_addOSAS_thumbTemplate(self, id,title=None, text=None,
                     77:                            REQUEST=None, submit=None):
                     78:     "Add a Page Template with optional file content."
                     79: 
                     80:     
                     81:     id = str(id)
                     82:     if REQUEST is None:
                     83:         self._setObject(id, OSAS_thumbTemplate(id, text))
                     84:         ob = getattr(self, id)
                     85:        
                     86:         if title:
                     87:             ob.pt_setTitle(title)
                     88:         return ob
                     89:     else:
                     90:         file = REQUEST.form.get('file')
                     91:         headers = getattr(file, 'headers', None)
                     92:         if headers is None or not file.filename:
                     93:             zpt = OSAS_thumbTemplate(id)
                     94:         else:
                     95:             zpt = OSAS_thumbTemplate(id, file, headers.get('content_type'))
                     96: 
                     97:         self._setObject(id, zpt)
                     98:         ob = getattr(self, id)
                     99: 
                    100: 
                    101:         try:
                    102:             u = self.DestinationURL()
                    103:         except AttributeError:
                    104:             u = REQUEST['URL1']
                    105: 
                    106:         if submit == " Add and Edit ":
                    107:             u = "%s/%s" % (u, quote(id))
                    108:         REQUEST.RESPONSE.redirect(u+'/manage_main')
                    109:     return ''
                    110: 
1.4       dwinter   111: class OSAS_thumbRuler(ZopePageTemplate):
                    112:     """pageTemplate Objekt"""
                    113:     meta_type="OSAS_thumbRuler"
                    114: 
                    115:     _default_content_fn = os.path.join(package_home(globals()),
                    116:                                        'zpt/OSAS_thumbRulerDefault.zpt')
                    117: 
                    118:     manage_options=ZopePageTemplate.manage_options+(
                    119:         {'label':'Copy to Filesystem','action':'copyContent'},
                    120:        )
                    121: 
                    122:     def getPath(self):
                    123:         """get path"""
1.5       dwinter   124:         return getPath(self,'thumbruler.tmpl')
1.4       dwinter   125:     
                    126:     ## def changeECHO_pageTemplateWeightForm(self):
                    127: ##         """change"""
                    128: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
                    129: ##         return pt()
                    130: 
                    131: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
                    132: ##         """change"""
                    133: ##         self.weight=weight
                    134: ##         self.content_type=content_type
                    135: 
                    136: ##         if RESPONSE is not None:
                    137: ##             RESPONSE.redirect('manage_main')
                    138:         
                    139: 
                    140:     def copyContent(self):
                    141:         """copycontent to path"""
                    142: 
1.5       dwinter   143:         return "copied to:"+copyContent(self,'thumbruler.tmpl')
1.4       dwinter   144: 
                    145: def manage_addOSAS_thumbRulerForm(self):
                    146:     """Form for adding"""
                    147:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_thumbRuler.zpt').__of__(self)
                    148:     return pt()
                    149: 
                    150: 
                    151: 
                    152: 
                    153: def manage_addOSAS_thumbRuler(self, id,title=None, text=None,
                    154:                            REQUEST=None, submit=None):
                    155:     "Add a Page Template with optional file content."
                    156: 
                    157:     
                    158:     id = str(id)
                    159:     if REQUEST is None:
                    160:         self._setObject(id, OSAS_thumbRuler(id, text))
                    161:         ob = getattr(self, id)
                    162:        
                    163:         if title:
                    164:             ob.pt_setTitle(title)
                    165:         return ob
                    166:     else:
                    167:         file = REQUEST.form.get('file')
                    168:         headers = getattr(file, 'headers', None)
                    169:         if headers is None or not file.filename:
                    170:             zpt = OSAS_thumbRuler(id)
                    171:         else:
                    172:             zpt = OSAS_thumbRuler(id, file, headers.get('content_type'))
                    173: 
                    174:         self._setObject(id, zpt)
                    175:         ob = getattr(self, id)
                    176: 
                    177: 
                    178:         try:
                    179:             u = self.DestinationURL()
                    180:         except AttributeError:
                    181:             u = REQUEST['URL1']
                    182: 
                    183:         if submit == " Add and Edit ":
                    184:             u = "%s/%s" % (u, quote(id))
                    185:         REQUEST.RESPONSE.redirect(u+'/manage_main')
                    186:     return ''
                    187: 
1.3       dwinter   188: class OSAS_digiLibTemplate(ZopePageTemplate):
                    189:     """pageTemplate Objekt"""
                    190:     meta_type="OSAS_digiLibTemplate"
                    191: 
                    192:     _default_content_fn = os.path.join(package_home(globals()),
                    193:                                        'zpt/OSAS_digiLibTemplateDefault.zpt')
                    194: 
                    195:     manage_options=ZopePageTemplate.manage_options+(
                    196:         {'label':'Copy to Filesystem','action':'copyContent'},
                    197:        )
                    198: 
                    199:     def getPath(self):
                    200:         """get path"""
                    201:         return getPath(self,'digilibtemplate.templ')
                    202:     
                    203:     ## def changeECHO_pageTemplateWeightForm(self):
                    204: ##         """change"""
                    205: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
                    206: ##         return pt()
                    207: 
                    208: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
                    209: ##         """change"""
                    210: ##         self.weight=weight
                    211: ##         self.content_type=content_type
                    212: 
                    213: ##         if RESPONSE is not None:
                    214: ##             RESPONSE.redirect('manage_main')
                    215:         
                    216: 
                    217:     def copyContent(self):
                    218:         """copycontent to path"""
                    219: 
                    220:         return "copied to:"+copyContent(self,'digilibtemplate.templ')
                    221:         
                    222:     
                    223: def manage_addOSAS_digiLibTemplateForm(self):
                    224:     """Form for adding"""
                    225:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_digiLibTemplate.zpt').__of__(self)
                    226:     return pt()
                    227: 
                    228: 
                    229: 
                    230: 
                    231: def manage_addOSAS_digiLibTemplate(self, id,title=None, text=None,
                    232:                            REQUEST=None, submit=None):
                    233:     "Add a Page Template with optional file content."
                    234: 
                    235:     
                    236:     id = str(id)
                    237:     if REQUEST is None:
                    238:         self._setObject(id, OSAS_digiLibTemplate(id, text))
                    239:         ob = getattr(self, id)
                    240:        
                    241:         if title:
                    242:             ob.pt_setTitle(title)
                    243:         return ob
                    244:     else:
                    245:         file = REQUEST.form.get('file')
                    246:         headers = getattr(file, 'headers', None)
                    247:         if headers is None or not file.filename:
                    248:             zpt = OSAS_digiLibTemplate(id)
                    249:         else:
                    250:             zpt = OSAS_digiLibTemplate(id, file, headers.get('content_type'))
                    251: 
                    252:         self._setObject(id, zpt)
                    253:         ob = getattr(self, id)
                    254: 
                    255: 
                    256:         try:
                    257:             u = self.DestinationURL()
                    258:         except AttributeError:
                    259:             u = REQUEST['URL1']
                    260: 
                    261:         if submit == " Add and Edit ":
                    262:             u = "%s/%s" % (u, quote(id))
                    263:         REQUEST.RESPONSE.redirect(u+'/manage_main')
                    264:     return ''
                    265: 
1.1       dwinter   266: class OSAS_topTemplate(ZopePageTemplate):
                    267:     """pageTemplate Objekt"""
                    268:     meta_type="OSAS_topTemplate"
                    269: 
                    270:     _default_content_fn = os.path.join(package_home(globals()),
                    271:                                        'zpt/OSAS_topTemplateDefault.zpt')
                    272:     manage_options=ZopePageTemplate.manage_options+(
                    273:         {'label':'Copy to Filesystem','action':'copyContent'},
                    274:        )
                    275: 
                    276:     def getPath(self):
                    277:         """get path"""
                    278:         return getPath(self,'toptemplate.templ')
                    279: 
                    280:     ## def changeECHO_pageTemplateWeightForm(self):
                    281: ##         """change"""
                    282: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
                    283: ##         return pt()
                    284: 
                    285: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
                    286: ##         """change"""
                    287: ##         self.weight=weight
                    288: ##         self.content_type=content_type
                    289: 
                    290: ##         if RESPONSE is not None:
                    291: ##             RESPONSE.redirect('manage_main')
                    292: 
                    293:     def copyContent(self):
                    294:         """copycontent to path"""
                    295:         return "copied to:"+copyContent(self,'toptemplate.templ')
                    296:         
                    297: 
                    298: def manage_addOSAS_topTemplateForm(self):
                    299:     """Form for adding"""
                    300:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
                    301:     return pt()
                    302: 
                    303: 
                    304: 
                    305: 
                    306: def manage_addOSAS_topTemplate(self, id,title=None, text=None,
                    307:                            REQUEST=None, submit=None):
                    308:     "Add a Page Template with optional file content."
                    309: 
                    310:     
                    311:     id = str(id)
                    312:     if REQUEST is None:
                    313:         self._setObject(id, OSAS_topTemplate(id, text))
                    314:         ob = getattr(self, id)
                    315:        
                    316:         if title:
                    317:             ob.pt_setTitle(title)
                    318:         return ob
                    319:     else:
                    320:         file = REQUEST.form.get('file')
                    321:         headers = getattr(file, 'headers', None)
                    322:         if headers is None or not file.filename:
                    323:             zpt = OSAS_topTemplate(id)
                    324:         else:
                    325:             zpt = OSAS_topTemplate(id, file, headers.get('content_type'))
                    326: 
                    327:         self._setObject(id, zpt)
                    328:         ob = getattr(self, id)
                    329: 
                    330: 
                    331:         try:
                    332:             u = self.DestinationURL()
                    333:         except AttributeError:
                    334:             u = REQUEST['URL1']
                    335: 
                    336:         if submit == " Add and Edit ":
                    337:             u = "%s/%s" % (u, quote(id))
                    338:         REQUEST.RESPONSE.redirect(u+'/manage_main')
                    339:     return ''
                    340: 
                    341: 
1.6     ! dwinter   342: class OSAS_viewerTemplateSet(Folder):
        !           343:     """Main viewerTemplateSet"""
1.1       dwinter   344: 
1.6     ! dwinter   345:     meta_type="OSAS_viewerTemplateSet"
1.1       dwinter   346:     
                    347:     def __init__(self,id, title, startpage, xsl, templatePath):
                    348:         """init"""
                    349:         self.id=id
                    350:         self.title=title
                    351:         self.startpage=startpage
                    352:         self.xsl=xsl
                    353:         self.templatePath=templatePath
1.3       dwinter   354:    self._setObject('digiLibTemplate',OSAS_digiLibTemplate(id='digiLibTemplate'))
1.1       dwinter   355:         self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
                    356:         self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
1.5       dwinter   357:    self._setObject('thumbruler',OSAS_thumbRuler(id='topRuler'))
1.1       dwinter   358: 
                    359: 
                    360:     manage_options = Folder.manage_options+(
1.6     ! dwinter   361:         {'label':'Main Config','action':'configOSAS_viewerTemplateSetForm'},
        !           362:         {'label':'Update Files at the Server','Action':'copyAllFiles'},
1.1       dwinter   363:         )
                    364: 
                    365:     def copyAllFiles(self):
1.3       dwinter   366:        """copy all"""
                    367:        fis=self.ZopeFind(self)
                    368:        ret=""
                    369:        for fi in fis:
                    370:            if hasattr(fi[1],'copyContent'):
                    371:                ret=ret+fi[1].copyContent()+"</br>"
                    372:        return ret
                    373: 
                    374:     def getField(self,name):
                    375:        """get Field"""
                    376:        try:
                    377:            return(getattr(self,name))
                    378:        except:
                    379:            return ""
1.6     ! dwinter   380:     def configOSAS_viewerTemplateSetForm(self):
1.1       dwinter   381:         """config"""
1.6     ! dwinter   382:         pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_viewerTemplateSet.zpt').__of__(self)
1.1       dwinter   383:         return pt()
                    384: 
1.6     ! dwinter   385:     def configOSAS_viewerTemplateSet(self,title, startpage, xsl, templatePath,RESPONSE=None):
1.1       dwinter   386:         """config"""
                    387:         self.title=title
                    388:         self.startpage=startpage
                    389:         self.xsl=xsl
                    390:         self.templatePath=templatePath
1.3       dwinter   391: 
                    392:    
                    393:    
1.1       dwinter   394:         if RESPONSE is not None:
                    395:             RESPONSE.redirect('manage_main')
                    396:         
                    397:     
                    398: 
                    399: 
                    400:     
1.6     ! dwinter   401: def manage_addOSAS_viewerTemplateSetForm(self):
1.1       dwinter   402:     """interface for adding the OSAS_root"""
1.6     ! dwinter   403:     pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_viewerTemplateSet.zpt').__of__(self)
1.1       dwinter   404:     return pt()
                    405: 
1.6     ! dwinter   406: def manage_addOSAS_viewerTemplateSet(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
1.1       dwinter   407:     """add the OSAS_root"""
1.6     ! dwinter   408:     newObj=OSAS_viewerTemplateSet(id,title, startpage, xsl,templatePath)
1.1       dwinter   409:     self._setObject(id,newObj)
                    410:     if RESPONSE is not None:
                    411:         RESPONSE.redirect('manage_main')
                    412: 
                    413: 
                    414:     
                    415: 

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