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

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.4     ! dwinter   109: class OSAS_thumbRuler(ZopePageTemplate):
        !           110:     """pageTemplate Objekt"""
        !           111:     meta_type="OSAS_thumbRuler"
        !           112: 
        !           113:     _default_content_fn = os.path.join(package_home(globals()),
        !           114:                                        'zpt/OSAS_thumbRulerDefault.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,'thumbtemplate.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,'thumbruler.templ')
        !           142: 
        !           143: def manage_addOSAS_thumbRulerForm(self):
        !           144:     """Form for adding"""
        !           145:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_thumbRuler.zpt').__of__(self)
        !           146:     return pt()
        !           147: 
        !           148: 
        !           149: 
        !           150: 
        !           151: def manage_addOSAS_thumbRuler(self, id,title=None, text=None,
        !           152:                            REQUEST=None, submit=None):
        !           153:     "Add a Page Template with optional file content."
        !           154: 
        !           155:     
        !           156:     id = str(id)
        !           157:     if REQUEST is None:
        !           158:         self._setObject(id, OSAS_thumbRuler(id, text))
        !           159:         ob = getattr(self, id)
        !           160:        
        !           161:         if title:
        !           162:             ob.pt_setTitle(title)
        !           163:         return ob
        !           164:     else:
        !           165:         file = REQUEST.form.get('file')
        !           166:         headers = getattr(file, 'headers', None)
        !           167:         if headers is None or not file.filename:
        !           168:             zpt = OSAS_thumbRuler(id)
        !           169:         else:
        !           170:             zpt = OSAS_thumbRuler(id, file, headers.get('content_type'))
        !           171: 
        !           172:         self._setObject(id, zpt)
        !           173:         ob = getattr(self, id)
        !           174: 
        !           175: 
        !           176:         try:
        !           177:             u = self.DestinationURL()
        !           178:         except AttributeError:
        !           179:             u = REQUEST['URL1']
        !           180: 
        !           181:         if submit == " Add and Edit ":
        !           182:             u = "%s/%s" % (u, quote(id))
        !           183:         REQUEST.RESPONSE.redirect(u+'/manage_main')
        !           184:     return ''
        !           185: 
1.3       dwinter   186: class OSAS_digiLibTemplate(ZopePageTemplate):
                    187:     """pageTemplate Objekt"""
                    188:     meta_type="OSAS_digiLibTemplate"
                    189: 
                    190:     _default_content_fn = os.path.join(package_home(globals()),
                    191:                                        'zpt/OSAS_digiLibTemplateDefault.zpt')
                    192: 
                    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,'digilibtemplate.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: 
                    215:     def copyContent(self):
                    216:         """copycontent to path"""
                    217: 
                    218:         return "copied to:"+copyContent(self,'digilibtemplate.templ')
                    219:         
                    220:     
                    221: def manage_addOSAS_digiLibTemplateForm(self):
                    222:     """Form for adding"""
                    223:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_digiLibTemplate.zpt').__of__(self)
                    224:     return pt()
                    225: 
                    226: 
                    227: 
                    228: 
                    229: def manage_addOSAS_digiLibTemplate(self, id,title=None, text=None,
                    230:                            REQUEST=None, submit=None):
                    231:     "Add a Page Template with optional file content."
                    232: 
                    233:     
                    234:     id = str(id)
                    235:     if REQUEST is None:
                    236:         self._setObject(id, OSAS_digiLibTemplate(id, text))
                    237:         ob = getattr(self, id)
                    238:        
                    239:         if title:
                    240:             ob.pt_setTitle(title)
                    241:         return ob
                    242:     else:
                    243:         file = REQUEST.form.get('file')
                    244:         headers = getattr(file, 'headers', None)
                    245:         if headers is None or not file.filename:
                    246:             zpt = OSAS_digiLibTemplate(id)
                    247:         else:
                    248:             zpt = OSAS_digiLibTemplate(id, file, headers.get('content_type'))
                    249: 
                    250:         self._setObject(id, zpt)
                    251:         ob = getattr(self, id)
                    252: 
                    253: 
                    254:         try:
                    255:             u = self.DestinationURL()
                    256:         except AttributeError:
                    257:             u = REQUEST['URL1']
                    258: 
                    259:         if submit == " Add and Edit ":
                    260:             u = "%s/%s" % (u, quote(id))
                    261:         REQUEST.RESPONSE.redirect(u+'/manage_main')
                    262:     return ''
                    263: 
1.1       dwinter   264: class OSAS_topTemplate(ZopePageTemplate):
                    265:     """pageTemplate Objekt"""
                    266:     meta_type="OSAS_topTemplate"
                    267: 
                    268:     _default_content_fn = os.path.join(package_home(globals()),
                    269:                                        'zpt/OSAS_topTemplateDefault.zpt')
                    270:     manage_options=ZopePageTemplate.manage_options+(
                    271:         {'label':'Copy to Filesystem','action':'copyContent'},
                    272:        )
                    273: 
                    274:     def getPath(self):
                    275:         """get path"""
                    276:         return getPath(self,'toptemplate.templ')
                    277: 
                    278:     ## def changeECHO_pageTemplateWeightForm(self):
                    279: ##         """change"""
                    280: ##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
                    281: ##         return pt()
                    282: 
                    283: ##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
                    284: ##         """change"""
                    285: ##         self.weight=weight
                    286: ##         self.content_type=content_type
                    287: 
                    288: ##         if RESPONSE is not None:
                    289: ##             RESPONSE.redirect('manage_main')
                    290: 
                    291:     def copyContent(self):
                    292:         """copycontent to path"""
                    293:         return "copied to:"+copyContent(self,'toptemplate.templ')
                    294:         
                    295: 
                    296: def manage_addOSAS_topTemplateForm(self):
                    297:     """Form for adding"""
                    298:     pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
                    299:     return pt()
                    300: 
                    301: 
                    302: 
                    303: 
                    304: def manage_addOSAS_topTemplate(self, id,title=None, text=None,
                    305:                            REQUEST=None, submit=None):
                    306:     "Add a Page Template with optional file content."
                    307: 
                    308:     
                    309:     id = str(id)
                    310:     if REQUEST is None:
                    311:         self._setObject(id, OSAS_topTemplate(id, text))
                    312:         ob = getattr(self, id)
                    313:        
                    314:         if title:
                    315:             ob.pt_setTitle(title)
                    316:         return ob
                    317:     else:
                    318:         file = REQUEST.form.get('file')
                    319:         headers = getattr(file, 'headers', None)
                    320:         if headers is None or not file.filename:
                    321:             zpt = OSAS_topTemplate(id)
                    322:         else:
                    323:             zpt = OSAS_topTemplate(id, file, headers.get('content_type'))
                    324: 
                    325:         self._setObject(id, zpt)
                    326:         ob = getattr(self, id)
                    327: 
                    328: 
                    329:         try:
                    330:             u = self.DestinationURL()
                    331:         except AttributeError:
                    332:             u = REQUEST['URL1']
                    333: 
                    334:         if submit == " Add and Edit ":
                    335:             u = "%s/%s" % (u, quote(id))
                    336:         REQUEST.RESPONSE.redirect(u+'/manage_main')
                    337:     return ''
                    338: 
                    339: 
                    340: class OSAS_project(Folder):
                    341:     """Main project"""
                    342: 
                    343:     meta_type="OSAS_project"
                    344:     
                    345:     def __init__(self,id, title, startpage, xsl, templatePath):
                    346:         """init"""
                    347:         self.id=id
                    348:         self.title=title
                    349:         self.startpage=startpage
                    350:         self.xsl=xsl
                    351:         self.templatePath=templatePath
1.3       dwinter   352:    self._setObject('digiLibTemplate',OSAS_digiLibTemplate(id='digiLibTemplate'))
1.1       dwinter   353:         self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
                    354:         self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
1.4     ! dwinter   355:    self._setObject('thumbruler',OSAS_rulerTemplate(id='topTemplate'))
1.1       dwinter   356: 
                    357: 
                    358:     manage_options = Folder.manage_options+(
                    359:         {'label':'Main Config','action':'configOSAS_projectForm'},
                    360:         {'label':'Copy all Files','action':'copyAllFiles'},
                    361:         )
                    362: 
                    363:     def copyAllFiles(self):
1.3       dwinter   364:        """copy all"""
                    365:        fis=self.ZopeFind(self)
                    366:        ret=""
                    367:        for fi in fis:
                    368:            if hasattr(fi[1],'copyContent'):
                    369:                ret=ret+fi[1].copyContent()+"</br>"
                    370:        return ret
                    371: 
                    372:     def getField(self,name):
                    373:        """get Field"""
                    374:        try:
                    375:            return(getattr(self,name))
                    376:        except:
                    377:            return ""
1.1       dwinter   378:     def configOSAS_projectForm(self):
                    379:         """config"""
                    380:         pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_project.zpt').__of__(self)
                    381:         return pt()
                    382: 
                    383:     def configOSAS_project(self,title, startpage, xsl, templatePath,RESPONSE=None):
                    384:         """config"""
                    385:         self.title=title
                    386:         self.startpage=startpage
                    387:         self.xsl=xsl
                    388:         self.templatePath=templatePath
1.3       dwinter   389: 
                    390:    
                    391:    
1.1       dwinter   392:         if RESPONSE is not None:
                    393:             RESPONSE.redirect('manage_main')
                    394:         
                    395:     
                    396: 
                    397: 
                    398:     
                    399: def manage_addOSAS_projectForm(self):
                    400:     """interface for adding the OSAS_root"""
                    401:     pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_project.zpt').__of__(self)
                    402:     return pt()
                    403: 
                    404: def manage_addOSAS_project(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
                    405:     """add the OSAS_root"""
                    406:     newObj=OSAS_project(id,title, startpage, xsl,templatePath)
                    407:     self._setObject(id,newObj)
                    408:     if RESPONSE is not None:
                    409:         RESPONSE.redirect('manage_main')
                    410: 
                    411: 
                    412:     
                    413: 

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