--- ECHO_content/ECHO_collection.py 2010/10/11 13:15:00 1.309 +++ ECHO_content/ECHO_collection.py 2012/01/18 16:57:00 1.310.2.5 @@ -9,11 +9,7 @@ class ECHO_externalLink contains informa """ -try: - from reportlab.pdfgen import canvas - from reportlab.lib.pagesizes import A4 -except: - print "PDF generation will not work" + import urlparse import string @@ -40,6 +36,7 @@ from Globals import Persistent, package_ from Acquisition import Implicit from Products.ZCatalog.CatalogPathAwareness import CatalogAware from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon +from Acquisition import aq_parent try: from Products.MetaDataProvider.MetaDataClient import MetaDataClient except: @@ -49,14 +46,15 @@ import urllib2 import cgi import smtplib import time -from Ft.Xml.Domlette import NonvalidatingReader -from Ft.Xml.Domlette import PrettyPrint, Print -from Ft.Xml import EMPTY_NAMESPACE - -import Ft.Xml.XPath +#from Ft.Xml.Domlette import NonvalidatingReader +#from Ft.Xml.Domlette import PrettyPrint, Print +#from Ft.Xml import EMPTY_NAMESPACE +# +#import Ft.Xml.XPath import cStringIO import sys +import logging try: from psycopg import libpq @@ -696,11 +694,64 @@ class ECHO_collection(CatalogAware, Fold meta_type='ECHO_collection' default_catalog='resourceCatalog' + rootMetaTypes = ['ECHO_root', 'ECHO_main', 'ECHO_nav'] + # viewClassificationList=viewClassificationListMaster displayTypes=displayTypes path="/mpiwg/online/permanent/shipbuilding" + def getSection(self, crumbs=None): + """returns the current section name""" + # use breadcrumbs if available + if crumbs is not None and len(crumbs) > 0: + return crumbs[0][2].getId() + + p = self + sec = None + # descend parents to the root (and remember the last id) + while p is not None and p.meta_type not in self.rootMetaTypes: + sec = p.getId() + p = aq_parent(p.context) + + return sec + + def getSubSection(self, crumbs=None): + """returns the current subsection name""" + # use breadcrumbs if available + if crumbs is not None and len(crumbs) > 1: + return crumbs[1][2].getId() + + p = self + sec = None + subsec = None + # descend parents to the root (and remember the last id) + while p is not None and p.meta_type not in self.rootMetaTypes: + subsec = sec + sec = p.getId() + p = aq_parent(p.context) + + return subsec + + def getHierCrumbs(self): + """returns a list of hierarchical breadcrumbs from self to the ECHO_root""" + # crumb for this object + crumb = {'obj': self, + 'url': self.absolute_url(), + 'label': self.getLabel()} + crumbs = [crumb] + # call the parent's method recursively + parent = aq_parent(self) + if hasattr(parent, 'getHierCrumbs'): + if self.title: + return parent.getHierCrumbs() + crumbs + else: + # if there's no title, skip this level + return parent.getHierCrumbs() + + return crumbs + + def exportImportObjects_html(self,RESPONSE): """ImportObject""" @@ -1100,38 +1151,7 @@ class ECHO_collection(CatalogAware, Fold if RESPONSE is not None: RESPONSE.write("
Done