--- ECHO_content/ECHO_collection.py 2009/04/14 16:31:27 1.304
+++ ECHO_content/ECHO_collection.py 2012/01/16 16:53:18 1.315
@@ -21,6 +21,7 @@ import tempfile
import zipfile
import re
import os,shutil
+import traceback
import OFS.Image
from types import *
from OFS.Cache import Cacheable
@@ -57,6 +58,7 @@ import Ft.Xml.XPath
import cStringIO
import sys
+import logging
try:
from psycopg import libpq
@@ -380,7 +382,7 @@ class ECHO_fullText(ZopePageTemplate,ECH
try:
dom=xml.dom.minidom.parseString(self())
except:
- dom=xml.dom.minidom.parseString(self().encode('latin-1'))
+ dom=xml.dom.minidom.parseString(self.utf8ify(self()))
pages=dom.getElementsByTagName('page')
return pages[int(nr)-1].toxml()
@@ -701,6 +703,39 @@ class ECHO_collection(CatalogAware, Fold
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 != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav':
+ sec = p.getId()
+ p = p.aq_parent
+
+ 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 != 'ECHO_root' and p.meta_type!='ECHO_main' and p.meta_type!='ECHO_nav':
+ subsec = sec
+ sec = p.getId()
+ p = p.aq_parent
+
+ return subsec
+
def exportImportObjects_html(self,RESPONSE):
"""ImportObject"""
@@ -856,20 +891,24 @@ class ECHO_collection(CatalogAware, Fold
if not urn:
urn=self.absolute_url()
- li="""
"
+ metalink=metaDataUrl+re.sub("/mpiwg/online/","",path+"/"+fileName+"/index.meta")
+
+ #metalink=metaDataUrl+"/"+path+"/"+fileName+"/index.meta"
+
+ newindexMeta =re.sub("/mpiwg/online/","",path+"/"+fileName)
+
+ try:
+ type=self.metadata.getBibTypeFromIndexMeta(newindexMeta)
+
+ try:
+
+ #link="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir="+fileName+"&step=thumb"
+ logging.debug("create:"+fileName);
+ logging.debug("type:"+type);
+ newObj=ECHO_resource(fileName,link,metalink,fileName,fileName,fileName,'',type,'','','','','','')
+ self._setObject(fileName,newObj)
+
+ genObj=getattr(self,fileName)
+ #genObj.createIndexFile()
+ ret+="OK:"+fileName+"
"
+ except:
+ exc_type, exc_value, exc_traceback = sys.exc_info();
+ #logging.error("%s %s %s"%[sys.exc_info()[0],ssys.exc_info()[1],;
+ traceback.print_exception(exc_type, exc_value, exc_traceback,
+ limit=2, file=sys.stdout)
+ ret+="ERROR:"+fileName+"
"
except:
- print "ERROR"
- ret+="ERROR:"+fileName+"
"
+ exc_type, exc_value, exc_traceback = sys.exc_info();
+ #logging.error("%s %s %s"%[sys.exc_info()[0],ssys.exc_info()[1],;
+ traceback.print_exception(exc_type, exc_value, exc_traceback,
+ limit=2, file=sys.stdout)
+ ret+="not a file ERROR:"+fileName+"
"
return ret
@@ -1077,32 +1179,21 @@ class ECHO_collection(CatalogAware, Fold
RESPONSE.write("
OK: %s"%resource[0]) - else: - if RESPONSE is not None: - RESPONSE.write("
ERROR: %s (%s)"%(resource[1].absolute_url()+'/ECHO_resource_config_main',resource[0],msg)) + resource[1].newViewer=newViewer; + +# done,msg=resource[1].changeViewer(newViewer) +# if done: +# if RESPONSE is not None: +# RESPONSE.write("
OK: %s"%resource[0]) +# else: +# if RESPONSE is not None: +# RESPONSE.write("
ERROR: %s (%s)"%(resource[1].absolute_url()+'/ECHO_resource_config_main',resource[0],msg)) if RESPONSE is not None: RESPONSE.write("
Done
") - def changeViewerTemplateSets(self,project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix,RESPONSE=None): - """change the templates""" - - resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) - - for resource in resources: - - resource[1].changeViewerTemplateSet(project,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix) - - if RESPONSE is not None: - RESPONSE.redirect('manage_main') - def setStartpageFolderForm(self): """Form for changing the startpage""" @@ -1394,6 +1485,8 @@ class ECHO_collection(CatalogAware, Fold {'label':'Main Config','action':'ECHO_collection_config'}, {'label':'Change Labels','action':'changeLabels'}, {'label':'Change Titles','action':'changeTitles'}, + {'label':'Change MetaLinks','action':'changeMetaLinks'}, + {'label':'Change Image Viewer','action':'changeViewerTemplateSetsForm'}, {'label':'Localize','action':'localizeObjects'}, {'label':'Change Weights','action':'changeWeights'}, {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMDWarning'}, @@ -1401,7 +1494,6 @@ class ECHO_collection(CatalogAware, Fold {'label':'Graphic Coords','action':'ECHO_graphicEntry'}, {'label':'create resources from XML','action':'createRessourcesFromXMLForm'}, {'label':'Set Startpage','action':'setStartpageFolderForm'}, - {'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'}, {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, {'label':'ImportCollection','action':'importCollection'}, {'label':'Copy MD for indexing and search','action':'copySearchFields'}, @@ -1432,7 +1524,7 @@ class ECHO_collection(CatalogAware, Fold security.declarePublic('changeECHO_collection') - def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix="",isVisible=True): + def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix="",isVisible=True,fullTextBasisUrl=None): """Aenderung der Properties""" self.secondaryLink=secondaryLink @@ -1444,6 +1536,7 @@ class ECHO_collection(CatalogAware, Fold self.prefix=prefix[0:] self.suffix=suffix[0:] self.setIsVisible(isVisible) + self.fullTextBasisUrl=fullTextBasisUrl setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) @@ -1452,6 +1545,9 @@ class ECHO_collection(CatalogAware, Fold if RESPONSE is not None: RESPONSE.redirect('manage_main') + def getFullTextBasisUrl(self): + return self.fullTextBasisUrl + def setAlwaysClickable(self,flag="yes"): """set clickable""" if flag=="yes": @@ -1463,8 +1559,15 @@ class ECHO_collection(CatalogAware, Fold def showOverview(self): """overview""" + # ECHO_overview.html template for this instance if 'ECHO_overview.html' in self.__dict__.keys(): return getattr(self,'ECHO_overview.html')() + + # ECHO_overview_main template in path + if hasattr(self, 'ECHO_overview_main'): + return getattr(self, 'ECHO_overview_main')() + + # template from product pt=zptFile(self, 'zpt/ECHO_content_overview.zpt') return pt() @@ -1617,17 +1720,17 @@ class ECHO_group(ECHO_collection): if not urn: urn=self.absolute_url() - li="""