--- MPIWGWeb/Attic/MPIWGTemplate.py 2008/08/20 12:59:09 1.1.2.2 +++ MPIWGWeb/Attic/MPIWGTemplate.py 2008/08/28 18:20:09 1.1.2.3 @@ -1,35 +1,41 @@ -from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate -from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder -from Products.ZCatalog.CatalogPathAwareness import CatalogAware from Products.PageTemplates.PageTemplateFile import PageTemplateFile -from OFS.Image import Image from Globals import package_home -import urllib -import MPIWGStaff import string import re import os -from types import * import logging -import xmlhelper # Methoden zur Verwaltung der projekt xml -from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder -from Products.ZSQLMethods.SQL import SQLConnectionIDs from AccessControl import ClassSecurityInfo -from bibliography import * -import time -import xml.dom.minidom -import sys -from Ft.Xml.XPath import Evaluate -from Ft.Xml.XPath.Context import Context -from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print -from Ft.Xml import EMPTY_NAMESPACE -import copy -import updatePersonalWWW -import MPIWGStaff from MPIWGHelper import * + +def getBreadcrumbs(self): + """return list of breadcrumbs from here to the root""" + crumbs = [(self.title, self.absolute_url(), self)] + parent = self.aq_parent + if hasattr(parent, 'getBreadcrumbs'): + if self.title: + return parent.getBreadcrumbs() + crumbs + else: + # if there's no title, skip this level + return parent.getBreadcrumbs() + + return crumbs + + +def getSection(self): + """returns the current section name""" + p = self + sec = None + # descend parents to the root (and remember the last id) + while p is not None and p.meta_type != 'MPIWGRoot': + sec = p.getId() + p = p.aq_parent + + return sec + + class MPIWGTemplate(ZopePageTemplate): """Create a layout Template for different purposes""" @@ -51,11 +57,8 @@ class MPIWGTemplate(ZopePageTemplate): RESPONSE.redirect('manage') - def __init__(self, id, text=None, content_type=None,MPIWGType=None): + 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()), @@ -64,21 +67,23 @@ class MPIWGTemplate(ZopePageTemplate): self.pt_edit(text, content_type) - """change form""" - def isActiveItem(self): """teste ob ausgewaehlt""" if self.absolute_url()==self.REQUEST['URL']: return "aktiv" else: return "" + + getBreadcrumbs = getBreadcrumbs + + getSection = getSection + def manage_addMPIWGTemplateForm(self): """Form for adding""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self) return pt() -from urllib import quote def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None): @@ -122,4 +127,66 @@ def manage_addMPIWGTemplate(self, MPIWGT REQUEST.RESPONSE.redirect(u+'/manage_main') return '' + + +class MPIWGFolder(Folder): + """special Folder object for MPIWG website """ + + meta_type="MPIWGFolder" + + manage_options=Folder.manage_options+( + {'label':'Change Weight','action':'changeWeightForm'}, + {'label':'Main Config','action':'changeForm'}, + ) + + changeWeightForm = PageTemplateFile('zpt/MPIWGFolderChangeWeight', globals()) + changeForm = PageTemplateFile('zpt/MPIWGFolderConfig', globals()) + + def __init__(self, id, title=None, weight=0, canonicalName=None): + self.id = str(id) + self.weight = weight + if title is None: + self.title = id + else: + self.title = title + + if canonicalName is None: + self.canonicalName = self.id + else: + self.canonicalName = canonicalName + + def changeWeight(self,weight,RESPONSE=None): + """change weight""" + self.weight=weight + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + def changeMPIWGFolder(self, title=None, weight=None, canonicalName=None, RESPONSE=None): + """change everything""" + if title is not None: + self.title = title + if weight is not None: + self.weight = weight + if canonicalName is not None: + self.canonicalName = canonicalName + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + getBreadcrumbs = getBreadcrumbs + + getSection = getSection + + +def manage_addMPIWGFolderForm(self): + """Form for adding""" + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGFolder.zpt')).__of__(self) + return pt() + +def manage_addMPIWGFolder(self, id, title=None,weight=0,RESPONSE=None): + "Add a MPIWG Folder." + newObj=MPIWGFolder(id,title,weight) + self.Destination()._setObject(id,newObj) + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + \ No newline at end of file