--- ECHO_content/ECHO_collection.py 2008/02/04 18:49:13 1.294 +++ ECHO_content/ECHO_collection.py 2008/11/20 10:45:15 1.298 @@ -429,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""" @@ -1200,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) @@ -1447,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""" @@ -2591,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: @@ -3203,6 +3239,12 @@ class ECHO_root(Folder,Persistent,Implic ) + def getECHORootURL(self): + return self.absolute_url() + + def getECHORoot(self): + return self + def copySearchFields(self,RESPONSE=None): """copys < metadatafields to the object""" resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) @@ -3515,8 +3557,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') @@ -3906,6 +3950,20 @@ class ECHO_root(Folder,Persistent,Implic ret +="""\n""" 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):