--- ECHO_content/ECHO_collection.py 2013/05/17 06:20:22 1.310.2.11 +++ ECHO_content/ECHO_collection.py 2013/08/05 08:20:10 1.310.2.12 @@ -924,22 +924,22 @@ class ECHO_collection(CatalogAware, Fold return ret+"" - def getExportAsJSON(self,REQUEST=None): + def getExportCollectionsAsJSON(self,metatypes=['ECHO_resource'],REQUEST=None): import json - ret = self.getExport() + ret = self.getExport(metatypes=metatypes) if REQUEST: REQUEST.response.setHeader("Content-type", "text/json; charset=utf-8") return json.dumps(ret) - def getExport(self,REQUEST=None): + def getExport(self,metatypes=['ECHO_resource'],REQUEST=None): """JSON export collection content""" import json ret={} #contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) - contents=self.ZopeFind(self,obj_metatypes=['ECHO_resource']) + contents=self.ZopeFind(self,obj_metatypes=metatypes) ret['description']=self.getDescription(); ret['title']=self.getTitle(); @@ -954,7 +954,13 @@ class ECHO_collection(CatalogAware, Fold return ret - + + + def getDRI(self,type="escidoc"): + """sofar cho collections don't have dris + therefore return the path""" + + return self.absolute_url().replace(self.echo_pages.absolute_url(),'') @@ -1620,6 +1626,37 @@ class ECHO_collection(CatalogAware, Fold return [x.absolute_url() for x in self.getSubCols(searchSimple=searchSimple)] + def exportPageTemplateContents(self,REQUEST=None): + """hole nur den inhalt aus page templates""" + + import json + import base64 + from BeautifulSoup import BeautifulSoup + + + ret={} + #contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) + contents=self.ZopeFind(self,obj_metatypes=['Page Template'],search_sub=1) + #contents=self.ZopeFind(self) + + + for content in contents: + colId = content[1].absolute_url().replace(self.absolute_url(),'') + + html=content[1].render() + parsed = BeautifulSoup(html) + + + cnt = parsed.findAll(attrs={'class':'stage'}) + if len(cnt) > 0: #sollte nur einen gebenbt: + ret[colId]=base64.b64encode(cnt[0].prettify()) + + if REQUEST: + REQUEST.response.setHeader("Content-type", "text/json; charset=utf-8") + + + return json.dumps(ret) + Globals.InitializeClass(ECHO_collection) def manage_addECHO_collectionForm(self):