--- ECHO_content/ECHO_collection.py 2007/04/30 16:30:09 1.288
+++ ECHO_content/ECHO_collection.py 2008/11/19 14:22:42 1.297
@@ -196,12 +196,15 @@ class ECHO_locale(ZopePageTemplate):
meta_type="ECHO_locale"
def __init__(self,id,lang,title,label,text=None,content_type=None):
- self.lang=lang
- self.title=title
- self.label=label
- if text:
- self.pt_edit(text, content_type)
- self.id=id
+ self.lang=lang
+ self.title=title
+ self.label=label
+ # default content
+ if not text:
+ text = open(self._default_content_fn).read()
+ content_type = 'text/html'
+ self.pt_edit(text, content_type)
+ self.id=id
manage_options = ZopePageTemplate.manage_options+(
{'label':'Main Config','action':'change_ECHO_localeForm'},
@@ -218,6 +221,8 @@ class ECHO_locale(ZopePageTemplate):
self.title=title
self.label=label
if not text is None:
+ if content_type is None:
+ content_type = self.content_type
self.pt_edit(text, content_type)
if RESPONSE is not None:
@@ -307,6 +312,8 @@ class ECHO_layoutTemplate(ZopePageTempla
if text is None:
self._default_content_fn = os.path.join(package_home(globals()),'zpt','ECHO_%s_template_standard.zpt'%EchoType)
text = open(self._default_content_fn).read()
+ if content_type is None:
+ content_type = self.content_type
self.pt_edit(text, content_type)
@@ -422,6 +429,22 @@ class ECHO_resource(CatalogAware,Folder,
getSubCols = ECHO_helpers.getSubCols
+ def index_meta(self,RESPONSE=None):
+ """ gibt das im metalink gespeicher xml-file zurueck"""
+ url = self.metalink
+ txt=""
+ logging.debug("ml:%s"%url)
+ try:
+ page = urllib.urlopen(url);
+ if RESPONSE:
+ RESPONSE.setHeader("Content-Type","text/xml")
+
+ txt = page.read();
+ except:
+ logging.error("Cannot read metadata of: %s"%self.getId())
+
+ return txt
+
def reindex(self):
"""generate fields for indexing and reindex"""
@@ -1193,7 +1216,7 @@ class ECHO_resource(CatalogAware,Folder,
vl=False
if not vl: # geht immer noch nicht, dann setzte wieder zurueck
- self.metaLink=oldLink
+ self.metalink=oldLink
logging.info("change Viewer (mew Metadatafile) %s"%self.metalink)
@@ -1379,10 +1402,7 @@ class ECHO_resource(CatalogAware,Folder,
ret= self.metaDataHash.get(fieldNameTest,empty)
- if type(ret) is StringType:
- return ret.decode('utf-8')
- else:
- return ret
+ return unicodify(ret)
getFieldValue=getMDValue #depricated
@@ -1443,6 +1463,10 @@ class ECHO_resource(CatalogAware,Folder,
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
return writeMetadata(self.metalink,self.metaDataHash)
+ def getMetaDataLink(self):
+ """get link to the meta data"""
+ return self.metalink
+
def changeECHO_resource(self,metalink,link,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None):
"""Aenderung der Properties"""
@@ -1999,7 +2023,7 @@ class ECHO_link(ECHO_externalLink):
params['backLink']=self.aq_parent.absolute_url()
params['startLink']=splitted[0]+"?"+urllib.urlencode(params)
-
+
return self.REQUEST.RESPONSE.redirect(splitted[0]+"?"+urllib.urlencode(params))
else:
return ""
@@ -2010,10 +2034,10 @@ def manage_addECHO_linkForm(self):
return pt()
-def manage_addECHO_link(self,id,title,label,description="",contentType="",responsible="",link="",weight="",coords=[],credits=None,RESPONSE=None):
+def manage_addECHO_link(self,id,title,label,description="",contentType="",responsible="",link="",weight="",coords=[],credits=None,linkType="external",RESPONSE=None):
"""Add an external Link"""
- newObj=ECHO_link(id,link,title,label,description,contentType,responsible,credits,weight,coords)
+ newObj=ECHO_link(id,link,title,label,description,contentType,responsible,credits,weight,coords,linkType)
self._setObject(id,newObj)
@@ -2164,16 +2188,16 @@ class ECHO_collection(CatalogAware, Fold
if obj.meta_type=="ECHO_mapText":
if splitted[1]=="en":
- obj.locale_en.pt_edit(REQUEST.form[key],None)
+ obj.locale_en.pt_edit(REQUEST.form[key],obj.locale_en.content_type)
else:
- obj.pt_edit(REQUEST.form[key],None)
+ obj.pt_edit(REQUEST.form[key],obj.content_type)
else:
text=obj.ZopeFind(obj,obj_metatypes=['ECHO_mapText'])
if splitted[1]=="en":
- text[0][1].locale_en.pt_edit(REQUEST.form[key],None)
+ text[0][1].locale_en.pt_edit(REQUEST.form[key],text[0][1].locale_en.content_type)
else:
- text[0][1].pt_edit(REQUEST.form[key],None)
+ text[0][1].pt_edit(REQUEST.form[key],text[0][1].content_type)
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
@@ -2587,8 +2611,24 @@ class ECHO_collection(CatalogAware, Fold
manage_addECHO_resource(self,id,title,label,description,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None)
return "done"
except:
- return None
+ logging.error("ECHOcollection: (AddResource): %s %s"%sys.exc_info()[0:2])
+ return None
+ def addResourceAndCreateLabelAndTitle(self,id,title,label,description,contentType,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None):
+ """SSS"""
+ ret = self.addResource(id,title,label,description,contentType,responsible,link,metalink,weight,credits,coords,RESPONSE)
+ if ret is None:
+ return None
+
+ try:
+ server2=getattr(self,id)
+ server2.copyIndex_meta2echo_resource()
+ server2.generate_label()
+ server2.generate_title()
+ except:
+ logging.error("An Error occured adding the resource A\n %s %s"%sys.exc_info()[0:2])
+ return None
+ return "done"
def getSecondaryLink(self):
"""secondary link"""
try:
@@ -3511,8 +3551,10 @@ class ECHO_root(Folder,Persistent,Implic
"""ret attribute if existing"""
try:
- return getattr(found,field).decode('ascii','ignore')
+ return getattr(found,field)#.decode('utf-8','ignore')
except:
+ logging.error("can't: decode: %s"%repr(field))
+ logging.error(" %s %s"%(sys.exc_info()[0],sys.exc_info()[1]))
return ""
security.declarePublic('getImageTag')
@@ -3749,7 +3791,10 @@ class ECHO_root(Folder,Persistent,Implic
def formatAscii(self,str,url=None):
"""ersetze ascii umbrueche durch
"""
- #url=None
+
+ if not str:
+ return ""
+
if url:
retStr=""
@@ -3761,9 +3806,10 @@ class ECHO_root(Folder,Persistent,Implic
retStr+="""%s
"""%(strUrl,word)
str=retStr
if str:
- return re.sub(r"[\n]","
",str)
+ str = re.sub(r"[\n]","
",str)
+ return unicodify(str)
else:
- return ""
+ return u""
link2html=vlp_xmlhelpers.link2html
related2html=vlp_xmlhelpers.related2html
@@ -3900,6 +3946,20 @@ class ECHO_root(Folder,Persistent,Implic
self.REQUEST.RESPONSE.setHeader("Content-Type", "text/xml")
self.REQUEST.RESPONSE.write(ret)
+ def getCollectionsXML(self,viewerType=None,filter=None):
+ """gebe collections aus"""
+ ret="""
+ """
+ for resource in self.ZopeFind(self,obj_metatypes=['ECHO_collection','ECHO_group'],search_sub=1):
+
+ echo_url=resource[1].absolute_url()
+
+ ret+="""\n"""%urllib.quote(echo_url,safe='/:?')
+ ret +="""\n"""
+
+ self.REQUEST.RESPONSE.setHeader("Content-Type", "text/xml")
+ self.REQUEST.RESPONSE.write(ret)
+
def getFullTextsXML(self,viewerType=None,filter=None):
"""gebe all ressourcen aus"""
ret="""
@@ -4134,6 +4194,8 @@ class ECHO_linkList(ZopePageTemplate,ECH
self.ZBindings_edit(self._default_bindings)
if text is None:
text = ''
+ if content_type is None:
+ content_type = self.content_type
self.pt_edit(text, contentType)