File:  [Repository] / OSAS / OSA_system / OSAS_project.py
Revision 1.3: download - view: text, annotated - select for diffs - revision graph
Sun Mar 21 15:31:36 2004 UTC (20 years, 3 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
weiterentwicklung OSAS.project

    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_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: 
  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
  275: 	self._setObject('digiLibTemplate',OSAS_digiLibTemplate(id='digiLibTemplate'))
  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):
  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 ""
  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
  311: 
  312: 	
  313: 	
  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>