File:  [Repository] / MPIWGWeb / Attic / MPIWGTemplate.py
Revision 1.1.2.14: download - view: text, annotated - select for diffs - revision graph
Mon Feb 27 09:36:19 2012 UTC (12 years, 3 months ago) by dwinter
Branches: r2
*** empty log message ***

from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Globals import package_home
import string
import re
import os
import logging
from OFS.Folder import Folder
from AccessControl import ClassSecurityInfo
from MPIWGHelper import *
from ZODB import FileStorage, DB
import transaction

# dummy definitions for backwards compatibility
import MPIWGFeature

class MPIWGFeature(MPIWGFeature.MPIWGFeature):
    """deprecated! use class in MPIWGFeature.py"""

import MPIWGFolder

class MPIWGFolder(MPIWGFolder.MPIWGFolder):
    """deprecated! use class in MPIWGFolder.py"""



class MPIWGTemplate(ZopePageTemplate):
    """Create a layout Template for different purposes"""

    meta_type="MPIWGTemplate"

    manage_options=ZopePageTemplate.manage_options+(
        {'label':'Change Weight','action':'changeWeightForm'},
        )

    def changeWeightForm(self):
        """change weight form"""
        pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGTemplateChangeWeight.zpt')).__of__(self)
        return pt()

    def changeWeight(self,weight,RESPONSE=None):
        """change weight"""
        self.weight=weight
        if RESPONSE is not None:
            RESPONSE.redirect('manage')

        
    def __init__(self, id, text=None, content_type="text/html",MPIWGType=None):
        self.id = str(id)
        self.ZBindings_edit(self._default_bindings)
        if text is None:
            self._default_content_fn = os.path.join(package_home(globals()),
                                               'zpt/MPIWG_%s_template_standard.zpt'%MPIWGType)
            text = open(self._default_content_fn).read()
        self.pt_edit(text, content_type)

    
    def isActiveItem(self):
        """teste ob ausgewaehlt"""
        if self.absolute_url()==self.REQUEST['URL']:
            return "aktiv"
        else:
            return ""
    
    getBreadcrumbs = getBreadcrumbs
    getSection = getSection
    getSubSection = getSubSection
    
    def harvest_page(self,mode="normal"):
        """harvest main"""
        
       

        # Ensure that a 'userdb' key is present
        # in the root
       
        templates = self.en.getHarvestCache()
        #templates = getattr(self,'getHarvestCache',self.en.getHarvestCache)()
        try:
            rendered = self.pt_render()
            templates[self.absolute_url()]=rendered
            logging.debug("harvest:"+self.absolute_url())
            transaction.commit()
            return rendered
        except:
            logging.error("cannot harvest: %s"%self.absolute_url())
        
        
       
        
        
                     
def manage_addMPIWGTemplateForm(self):
    """Form for adding"""
    pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
    return pt()



def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None):
    "Add a Page Template with optional file content."
    if type(MPIWGType)==StringType:
        MPIWGTypes=[MPIWGType]
    else:
        MPIWGTypes=MPIWGType
        
    for singleType in MPIWGTypes:


        if REQUEST is None:
            self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType))
            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 = MPIWGTemplate(id,MPIWGType=singleType)
            else:
                zpt = MPIWGTemplate(id, file, headers.get('content_type'))

            self._setObject(id, zpt)
            ob = getattr(self, id)
            if title:
                ob.pt_setTitle(title)

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

    ob = getattr(self, id)
    ob.weight=weight
    
    REQUEST.RESPONSE.redirect(u+'/manage_main')
    return ''
    

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