File:  [Repository] / OSAS / OSA_system / OSAS_project.py
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Sat Apr 17 12:35:41 2004 UTC (20 years, 2 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
work at rulertemplate:x

    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_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: 
  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: 
  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
  352: 	self._setObject('digiLibTemplate',OSAS_digiLibTemplate(id='digiLibTemplate'))
  353:         self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
  354:         self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
  355: 	self._setObject('thumbruler',OSAS_rulerTemplate(id='topTemplate'))
  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):
  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 ""
  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
  389: 
  390: 	
  391: 	
  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>