File:  [Repository] / OSAS / OSA_system / OSAS_project.py
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Fri Mar 19 21:28:21 2004 UTC (20 years, 2 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
add config fuer thumb and top

""" Begin March,17 2004, Class OSAS_project contains all layout information for the viewenvironment"""

from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from Acquisition import Implicit
from OFS.Folder import Folder
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from urllib import quote
from Products.PageTemplates.PageTemplate import PageTemplate
import os
from Globals import package_home


def copyContent(self,filename):
        """copycontent to path"""
        text= self.document_src()
        if not os.path.exists(self.templatePath+"/"+self.aq_parent.getId()):
            os.mkdir(self.templatePath+"/"+self.aq_parent.getId())
        path=self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
        fh=file(path,"w")
        
        fh.write(text)
        fh.close()
        os.chmod(path,0664)
        return path

def getPath(self,filename):
    """get path"""
    return self.templatePath+"/"+self.aq_parent.getId()+"/"+filename

class OSAS_thumbTemplate(ZopePageTemplate):
    """pageTemplate Objekt"""
    meta_type="OSAS_thumbTemplate"

    _default_content_fn = os.path.join(package_home(globals()),
                                       'zpt/OSAS_thumbTemplateDefault.zpt')

    manage_options=ZopePageTemplate.manage_options+(
        {'label':'Copy to Filesystem','action':'copyContent'},
       )

    def getPath(self):
        """get path"""
        return getPath(self,'thumbtemplate.templ')
    
    ## def changeECHO_pageTemplateWeightForm(self):
##         """change"""
##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
##         return pt()

##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
##         """change"""
##         self.weight=weight
##         self.content_type=content_type

##         if RESPONSE is not None:
##             RESPONSE.redirect('manage_main')
        

    def copyContent(self):
        """copycontent to path"""

        return "copied to:"+copyContent(self,'thumbtemplate.templ')
        
    
def manage_addOSAS_thumbTemplateForm(self):
    """Form for adding"""
    pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_thumbTemplate.zpt').__of__(self)
    return pt()




def manage_addOSAS_thumbTemplate(self, id,title=None, text=None,
                           REQUEST=None, submit=None):
    "Add a Page Template with optional file content."

    
    id = str(id)
    if REQUEST is None:
        self._setObject(id, OSAS_thumbTemplate(id, text))
        ob = getattr(self, id)
       
        if title:
            ob.pt_setTitle(title)
        return ob
    else:
        file = REQUEST.form.get('file')
        headers = getattr(file, 'headers', None)
        if headers is None or not file.filename:
            zpt = OSAS_thumbTemplate(id)
        else:
            zpt = OSAS_thumbTemplate(id, file, headers.get('content_type'))

        self._setObject(id, zpt)
        ob = getattr(self, id)


        try:
            u = self.DestinationURL()
        except AttributeError:
            u = REQUEST['URL1']

        if submit == " Add and Edit ":
            u = "%s/%s" % (u, quote(id))
        REQUEST.RESPONSE.redirect(u+'/manage_main')
    return ''

class OSAS_topTemplate(ZopePageTemplate):
    """pageTemplate Objekt"""
    meta_type="OSAS_topTemplate"

    _default_content_fn = os.path.join(package_home(globals()),
                                       'zpt/OSAS_topTemplateDefault.zpt')
    manage_options=ZopePageTemplate.manage_options+(
        {'label':'Copy to Filesystem','action':'copyContent'},
       )

    def getPath(self):
        """get path"""
        return getPath(self,'toptemplate.templ')

    ## def changeECHO_pageTemplateWeightForm(self):
##         """change"""
##         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
##         return pt()

##     def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
##         """change"""
##         self.weight=weight
##         self.content_type=content_type

##         if RESPONSE is not None:
##             RESPONSE.redirect('manage_main')

    def copyContent(self):
        """copycontent to path"""
        return "copied to:"+copyContent(self,'toptemplate.templ')
        

def manage_addOSAS_topTemplateForm(self):
    """Form for adding"""
    pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
    return pt()




def manage_addOSAS_topTemplate(self, id,title=None, text=None,
                           REQUEST=None, submit=None):
    "Add a Page Template with optional file content."

    
    id = str(id)
    if REQUEST is None:
        self._setObject(id, OSAS_topTemplate(id, text))
        ob = getattr(self, id)
       
        if title:
            ob.pt_setTitle(title)
        return ob
    else:
        file = REQUEST.form.get('file')
        headers = getattr(file, 'headers', None)
        if headers is None or not file.filename:
            zpt = OSAS_topTemplate(id)
        else:
            zpt = OSAS_topTemplate(id, file, headers.get('content_type'))

        self._setObject(id, zpt)
        ob = getattr(self, id)


        try:
            u = self.DestinationURL()
        except AttributeError:
            u = REQUEST['URL1']

        if submit == " Add and Edit ":
            u = "%s/%s" % (u, quote(id))
        REQUEST.RESPONSE.redirect(u+'/manage_main')
    return ''


class OSAS_project(Folder):
    """Main project"""

    meta_type="OSAS_project"
    
    def __init__(self,id, title, startpage, xsl, templatePath):
        """init"""
        self.id=id
        self.title=title
        self.startpage=startpage
        self.xsl=xsl
        self.templatePath=templatePath
        self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
        self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))


    manage_options = Folder.manage_options+(
        {'label':'Main Config','action':'configOSAS_projectForm'},
        {'label':'Copy all Files','action':'copyAllFiles'},
        )

    def copyAllFiles(self):
        """copy all"""
        fis=self.ZopeFind(self)
        ret=""
        for fi in fis:
            if hasattr(fi[1],'copyContent'):
                ret=ret+fi[1].copyContent()+"</br>"
        return ret
        
    def configOSAS_projectForm(self):
        """config"""
        pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_project.zpt').__of__(self)
        return pt()

    def configOSAS_project(self,title, startpage, xsl, templatePath,RESPONSE=None):
        """config"""
        self.title=title
        self.startpage=startpage
        self.xsl=xsl
        self.templatePath=templatePath
        if RESPONSE is not None:
            RESPONSE.redirect('manage_main')
        
    


    
def manage_addOSAS_projectForm(self):
    """interface for adding the OSAS_root"""
    pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_project.zpt').__of__(self)
    return pt()

def manage_addOSAS_project(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
    """add the OSAS_root"""
    newObj=OSAS_project(id,title, startpage, xsl,templatePath)
    self._setObject(id,newObj)
    if RESPONSE is not None:
        RESPONSE.redirect('manage_main')


    


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