--- ECHO_content/ECHO_collection.py 2012/09/03 13:11:09 1.310.2.9 +++ ECHO_content/ECHO_collection.py 2013/08/05 08:20:10 1.310.2.12 @@ -544,6 +544,10 @@ class ECHO_link(ECHO_externalLink): {'label':'add links config','action':'ECHO_link_addLinksForm'}, ) + def getMDValueSimpleSearchField(self): + """returns value for simple search""" + return " ".join([self.getTitle(),self.getDescription()]) + def ECHO_link_addLinksForm(self): """Main configuration""" @@ -920,6 +924,46 @@ class ECHO_collection(CatalogAware, Fold return ret+"" + def getExportCollectionsAsJSON(self,metatypes=['ECHO_resource'],REQUEST=None): + import json + ret = self.getExport(metatypes=metatypes) + + if REQUEST: + REQUEST.response.setHeader("Content-type", "text/json; charset=utf-8") + + return json.dumps(ret) + + 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=metatypes) + + ret['description']=self.getDescription(); + ret['title']=self.getTitle(); + ret['label']=self.getLabel(); + ret['content']=[] + ret['echo_path']=self.absolute_url().replace(self.echo_pages.absolute_url(),'') + + + for content in contents: + + ret['content'].append(content[1].getDRI(type="mpiwg")) + + 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(),'') + + + def changeLabels(self): """change form""" @@ -1582,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):