def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) syndication_tool = self.getSyndicationTool() namespaces = syndication_tool.getNamespaceItemsList() nsmap = get_nsmap(namespaces) dc_namespace = nsmap['dc'] ev_namespace = nsmap['ev'] Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap) Ev = ElementMaker(namespace=ev_namespace, nsmap=nsmap) the_rest = Dc.root( Dc.type('Meeting'), Dc.format('text'), Dc.source(l_site.getLocalProperty('publisher', lang)), Dc.creator(l_site.getLocalProperty('creator', lang)), Dc.publisher(l_site.getLocalProperty('publisher', lang)), Ev.startdate(self.utShowFullDateTimeHTML( self.interval.start_date)), Ev.enddate(self.utShowFullDateTimeHTML(self.interval.end_date)), Ev.location(self.geo_address()), Ev.organizer(self.contact_person), Ev.type('Meeting') ) item.extend(the_rest) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap["dc"], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap["ut"], nsmap=nsmap) item.extend( Dc.root( Dc.type(self.document_type), Dc.format(self.format()), Dc.source(self.getLocalProperty("source", lang)), Dc.creator(self.getLocalProperty("creator", lang)), Dc.publisher(self.getLocalProperty("publisher", lang)), Dc.relation(self.relation), Ut.file_link(self.getLocalProperty("file_link", lang)), Ut.file_link_local(self.getLocalProperty("file_link_local", lang)), ) ) for k in self.subject: if k: theme_ob = self.getPortalThesaurus().getThemeByID(k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(Dc.subject(theme_name.strip())) item.extend( Dc.root( Ut.creator_mail(self.creator_email), Ut.type_document(self.document_type), Ut.source_link(self.source_link), ) ) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap['dc'], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap['ut'], nsmap=nsmap) item.extend( Dc.root( Dc.type(self.document_type), Dc.format(self.format()), Dc.source(self.getLocalProperty('source', lang)), Dc.creator(self.getLocalProperty('creator', lang)), Dc.publisher(self.getLocalProperty('publisher', lang)), Dc.relation(self.relation), Ut.file_link(self.getLocalProperty('file_link', lang)), Ut.file_link_local( self.getLocalProperty('file_link_local', lang)))) for k in self.subject: if k: theme_ob = self.getPortalThesaurus().getThemeByID( k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(Dc.subject(theme_name.strip())) item.extend( Dc.root(Ut.creator_mail(self.creator_email), Ut.type_document(self.document_type), Ut.source_link(self.source_link))) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() self.getLocalProperty('location') item = rss_item_for_object(self, lang) syndication_tool = self.getSyndicationTool() namespaces = syndication_tool.getNamespaceItemsList() nsmap = get_nsmap(namespaces) dc_namespace = nsmap['dc'] ev_namespace = nsmap['ev'] Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap) Ev = ElementMaker(namespace=ev_namespace, nsmap=nsmap) the_rest = Dc.root( Dc.type('Event'), Dc.format('text'), Dc.source(l_site.publisher), Dc.creator(l_site.creator), Dc.publisher(l_site.publisher), Ev.location(self.location), Ev.organizer(self.host), Ev.type(self.getPortalI18n().get_translation('', self.getEventTypeTitle(self.event_type))), Ev.startdate(self.utShowFullDateTimeHTML(self.start_date)) ) if self.end_date: the_rest.append(Ev.enddate(self.utShowFullDateTimeHTML(self.end_date))) item.extend(the_rest) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap['dc'], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap['ut'], nsmap=nsmap) item.extend(Dc.root( Dc.type(self.type_law), Dc.format(self.format()), Dc.source(self.getLocalProperty('source', lang)), Dc.creator(l_site.getLocalProperty('creator', lang)), Dc.publisher(l_site.getLocalProperty('publisher', lang)), Dc.relation(self.relation) )) for k in self.subject: if k: theme_ob = self.getPortalThesaurus().getThemeByID(k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(Dc.subject(theme_name.strip())) item.extend(Dc.root( Ut.type_law(self.type_law), Ut.file_link(self.file_link), #Ut.file_link_local(self.file_link_local), Ut.official_journal_ref(self.getLocalProperty('official_journal_ref', lang)), Ut.source_link(self.source_link), Ut.geozone(self.geozone), Ut.original_language(self.original_language), Ut.statute(self.statute) )) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap['dc'], nsmap=nsmap) Ev = ElementMaker(namespace=nsmap['ev'], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap['ut'], nsmap=nsmap) item.extend(Dc.root( Dc.type('Event'), Dc.format(self.format()), Dc.source(self.getLocalProperty('source', lang)), Dc.creator(self.getLocalProperty('creator', lang)), Dc.publisher(l_site.getLocalProperty('publisher', lang)), Dc.relation(self.relation), )) for k in self.subject: theme_ob = self.getPortalThesaurus().getThemeByID(k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(Dc.subject(theme_name.strip())) item.extend(Ev.root( Ev.organizer(self.getLocalProperty('organizer', lang)), Ev.type(self.event_type), Ev.startdate(self.utShowFullDateTimeHTML(self.start_date)) )) if self.end_date: item.append(Ev.enddate(self.utShowFullDateTimeHTML(self.end_date))) for k in self.getLocalProperty('keywords', lang).split(','): item.append(Ut.keyword(k)) item.extend(Ut.root( Ut.creator_mail(self.creator_email), Ut.contact_name(self.getLocalProperty('contact_person', lang)), Ut.contact_mail(self.contact_email), Ut.contact_phone(self.contact_phone), Ut.event_type(self.event_type), Ut.file_link(self.getLocalProperty('file_link', lang)), Ut.file_link_copy(self.getLocalProperty('file_link_copy', lang)), Ut.source_link(self.source_link), Ut.organizer(self.getLocalProperty('organizer', lang)), Ut.geozone(self.geozone), Ut.address(self.getLocalProperty('address', lang)), Ut.duration(self.getLocalProperty('duration', lang)), Ut.event_status(self.event_status), Ut.start_date(self.utShowFullDateTimeHTML(self.start_date)) )) if self.end_date: item.append(Ut.end_date(self.utShowFullDateTimeHTML(self.end_date))) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) syndication_tool = self.getSyndicationTool() namespaces = syndication_tool.getNamespaceItemsList() nsmap = get_nsmap(namespaces) dc_namespace = nsmap['dc'] Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap) the_rest = Dc.root(Dc.type('Text'), Dc.format('application'), Dc.source(l_site.publisher), Dc.creator(l_site.creator), Dc.publisher(l_site.publisher)) item.extend(the_rest) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) syndication_tool = self.getSyndicationTool() namespaces = syndication_tool.getNamespaceItemsList() nsmap = get_nsmap(namespaces) dc_namespace = nsmap['dc'] Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap) the_rest = Dc.root( Dc.type('Text'), Dc.format('application'), Dc.source(l_site.publisher), Dc.creator(l_site.creator), Dc.publisher(l_site.publisher)) item.extend(the_rest) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def test_rss_item_for_object(self): syndication_tool = self.portal.getSyndicationTool() namespaces = {} for n in syndication_tool.getNamespaceItemsList(): if n.prefix != '': namespaces[n.prefix] = n.value else: namespaces['a'] = n.value addNyEvent(self.portal['info'], id='9000', contributor='Me', title='Eveniment', start_date='12/12/2012', description='About something') event = self.portal['info']['9000'] event.approveThis() self.portal.recatalogNyObject(self.portal['info']['9000']) lang = self.portal.gl_get_selected_language() self.portal._setLocalPropValue('rights', lang, 'No rights') tree = rss_item_for_object(event, lang) title = tree.xpath('./title', namespaces=namespaces)[0] link = tree.xpath('./link', namespaces=namespaces)[0] description = tree.xpath('./description', namespaces=namespaces)[0] dc_title = tree.xpath('./dc:title', namespaces=namespaces)[0] identifier = tree.xpath('./dc:identifier', namespaces=namespaces)[0] dc_description = tree.xpath('./dc:description', namespaces=namespaces)[0] contributor = tree.xpath('./dc:contributor', namespaces=namespaces)[0] language = tree.xpath('./dc:language', namespaces=namespaces)[0] rights = tree.xpath('./dc:rights', namespaces=namespaces)[0] self.assertEqual(title.text, event.title) self.assertEqual(link.text, event.absolute_url()) self.assertEqual(description.text, event.description) self.assertEqual(dc_title.text, event.title) self.assertEqual(identifier.text, event.absolute_url()) self.assertEqual(dc_description.text, event.description) self.assertEqual(contributor.text, event.contributor) self.assertEqual(language.text, lang) self.assertEqual(rights.text, event.rights)
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap['dc'], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap['ut'], nsmap=nsmap) item.extend( Dc.root(Dc.type('Text'), Dc.format(self.format()), Dc.source(self.getLocalProperty('source', lang)), Dc.creator(self.getLocalProperty('creator', lang)), Dc.publisher(self.getLocalProperty('publisher', lang)), Dc.relation(self.relation))) for k in self.subject: if k: theme_ob = self.getPortalThesaurus().getThemeByID( k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(Dc.subject(theme_name.strip())) for k in self.getLocalProperty('keywords', lang).split(','): item.append(Ut.keywords(k)) item.extend( Ut.root( Ut.creator_mail(self.creator_email), Ut.contact_name(self.getLocalProperty('contact_person', lang)), Ut.contact_mail(self.getLocalProperty('contact_email', lang)), Ut.contact_phone(self.getLocalProperty('contact_phone', lang)), Ut.news_type(self.news_type), Ut.file_link(self.getLocalProperty('file_link', lang)), Ut.file_link_local( self.getLocalProperty('file_link_local', lang)), Ut.source_link(self.source_link), Ut.start_date(self.utShowFullDateTimeHTML(self.news_date)), Ut.save_date( self.utShowFullDateTimeHTML( self.bobobase_modification_time())))) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap['dc'], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap['ut'], nsmap=nsmap) item.extend(Dc.root( Dc.type('Text'), Dc.format(self.format()), Dc.source(self.getLocalProperty('source', lang)), Dc.creator(self.getLocalProperty('creator', lang)), Dc.publisher(self.getLocalProperty('publisher', lang)), Dc.relation(self.relation) )) for k in self.subject: if k: theme_ob = self.getPortalThesaurus().getThemeByID(k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(Dc.subject(theme_name.strip())) for k in self.getLocalProperty('keywords', lang).split(','): item.append(Ut.keywords(k)) item.extend(Ut.root( Ut.creator_mail(self.creator_email), Ut.contact_name(self.getLocalProperty('contact_person', lang)), Ut.contact_mail(self.getLocalProperty('contact_email', lang)), Ut.contact_phone(self.getLocalProperty('contact_phone', lang)), Ut.news_type(self.news_type), Ut.file_link(self.getLocalProperty('file_link', lang)), Ut.file_link_local(self.getLocalProperty('file_link_local', lang)), Ut.source_link(self.source_link), Ut.start_date(self.utShowFullDateTimeHTML(self.news_date)), Ut.save_date(self.utShowFullDateTimeHTML(self.bobobase_modification_time())) )) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap['dc'], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap['ut'], nsmap=nsmap) item.extend( Dc.root(Dc.type('Text'), Dc.format(self.format()), Dc.source(l_site.getLocalProperty('creator', lang)), Dc.creator(l_site.getLocalProperty('creator', lang)), Dc.publisher(l_site.getLocalProperty('publisher', lang)))) for k in self.subject: if k: theme_ob = self.getPortalThesaurus().getThemeByID( k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(theme_name.strip()) item.extend( Ut.root( Ut.ID(self.id), Ut.Acronym(self.getLocalProperty('acronym', lang)), Ut.Title(self.getLocalProperty('title', lang)), Ut.Budget_Total(self.budget, Currency="EUR"), )) for k in self.getLocalProperty('keywords', lang).split(','): item.append(Ut.keywords(k)) for fund_item in self.getFundings(): item.extend( Ut.Root( Ut.Funding( Ut.Source( fund_item.getLocalProperty('funding_source', lang)), Ut.Programme( fund_item.getLocalProperty('funding_programme', lang)), Ut.Type( fund_item.getLocalProperty('funding_type', lang)), Ut.Funding_Rate( fund_item.getLocalProperty('funding_rate', lang))), Ut.Programme_Field(self.getLocalProperty( 'programme', lang)), Ut.Source(self.getLocalProperty('source', lang)), Ut.WebSite(self.resourceurl), Ut.Background(self.getLocalProperty('description', lang)), Ut.Objectives(self.getLocalProperty('objectives', lang)), Ut.Results(self.getLocalProperty('results', lang)), Ut.Starting_Date(self.start_date), Ut.Ending_date(self.end_date))) for doc_item in self.getDocuments(): item.append( Ut.Document( Dc.title(doc_item.getLocalProperty('title', lang)), Dc.file_link(doc_item.getLocalProperty('file_link', lang)), Ut.type_document(doc_item.document_type), )) partners = Ut.Partners() #TODO: the acronym property was not specified for org_item in self.getOrganisations(): partners.extend( Ut.root( Ut.Or_Name(org_item.getLocalProperty('results', lang), Or_Acronym='acronym'), Ut.Or_Type(org_item.org_type), Ut.Or_Desc(org_item.getLocalProperty('description', lang)), Ut.Or_address(org_item.getLocalProperty('address', lang)))) for k in self.splitToList( org_item.getLocalProperty('coverage', lang)): partners.append(Ut.Or_Country(k)) partners.extend( Ut.root( Ut.Or_WebSite(org_item.org_url), #TODO: explain the coordinator attribute #TODO: contacts must be a list Ut.Or_Contact( #TODO: explain attribute 'Project_Manager Ut.Co_Title( org_item.getLocalProperty('contact_title', lang)), Ut.Co_FirstName( org_item.getLocalProperty('contact_firstname', lang)), Ut.Co_LastName( org_item.getLocalProperty('contact_lastname', lang)), Ut.Co_Position( org_item.getLocalProperty('contact_position', lang)), Ut.Co_Email(org_item.contact_email), Ut.Co_Tel(org_item.contact_phone), Ut.Co_Fax(org_item.contact_fax), Coordinator="0"))) if self.getOrganisations(): item.append(partners) field_sites = Ut.Field_sites() for fs_item in self.getFieldSites(): field_sites = Ut.Field_sites( Ut.Site_name(fs_item.getLocalProperty('title', lang)), Ut.Site_country(fs_item.getLocalProperty('coverage', lang))) for k in self.splitToList( fs_item.getLocalProperty('fieldsite_rb', lang)): field_sites.append(Ut.River_basin(k)) if self.getFieldSites(): item.append(field_sites) return etree.tostring(item, xml_declaration=False, encoding="utf-8")
def syndicateThis(self, lang=None): l_site = self.getSite() if lang is None: lang = self.gl_get_selected_language() item = rss_item_for_object(self, lang) nsmap = get_nsmap(self.getSyndicationTool().getNamespaceItemsList()) Dc = ElementMaker(namespace=nsmap['dc'], nsmap=nsmap) Ut = ElementMaker(namespace=nsmap['ut'], nsmap=nsmap) item.extend(Dc.root( Dc.type('Text'), Dc.format(self.format()), Dc.source(l_site.getLocalProperty('creator', lang)), Dc.creator(l_site.getLocalProperty('creator', lang)), Dc.publisher(l_site.getLocalProperty('publisher', lang)) )) for k in self.subject: if k: theme_ob = self.getPortalThesaurus().getThemeByID(k, self.gl_get_selected_language()) theme_name = theme_ob.theme_name if theme_name: item.append(theme_name.strip()) item.extend(Ut.root( Ut.ID(self.id), Ut.Acronym(self.getLocalProperty('acronym', lang)), Ut.Title(self.getLocalProperty('title', lang)), Ut.Budget_Total(self.budget, Currency="EUR"), )) for k in self.getLocalProperty('keywords', lang).split(','): item.append(Ut.keywords(k)) for fund_item in self.getFundings(): item.extend(Ut.Root( Ut.Funding( Ut.Source(fund_item.getLocalProperty('funding_source', lang)), Ut.Programme(fund_item.getLocalProperty('funding_programme', lang)), Ut.Type(fund_item.getLocalProperty('funding_type', lang)), Ut.Funding_Rate(fund_item.getLocalProperty('funding_rate', lang))), Ut.Programme_Field(self.getLocalProperty('programme', lang)), Ut.Source(self.getLocalProperty('source', lang)), Ut.WebSite(self.resourceurl), Ut.Background(self.getLocalProperty('description', lang)), Ut.Objectives(self.getLocalProperty('objectives', lang)), Ut.Results(self.getLocalProperty('results', lang)), Ut.Starting_Date(self.start_date), Ut.Ending_date(self.end_date) )) for doc_item in self.getDocuments(): item.append(Ut.Document( Dc.title(doc_item.getLocalProperty('title', lang)), Dc.file_link(doc_item.getLocalProperty('file_link', lang)), Ut.type_document(doc_item.document_type), )) partners = Ut.Partners() #TODO: the acronym property was not specified for org_item in self.getOrganisations(): partners.extend(Ut.root( Ut.Or_Name(org_item.getLocalProperty('results', lang), Or_Acronym='acronym'), Ut.Or_Type(org_item.org_type), Ut.Or_Desc(org_item.getLocalProperty('description', lang)), Ut.Or_address(org_item.getLocalProperty('address', lang)) )) for k in self.splitToList(org_item.getLocalProperty('coverage', lang)): partners.append(Ut.Or_Country(k)) partners.extend(Ut.root( Ut.Or_WebSite(org_item.org_url), #TODO: explain the coordinator attribute #TODO: contacts must be a list Ut.Or_Contact( #TODO: explain attribute 'Project_Manager Ut.Co_Title(org_item.getLocalProperty('contact_title', lang)), Ut.Co_FirstName(org_item.getLocalProperty('contact_firstname', lang)), Ut.Co_LastName(org_item.getLocalProperty('contact_lastname', lang)), Ut.Co_Position(org_item.getLocalProperty('contact_position', lang)), Ut.Co_Email(org_item.contact_email), Ut.Co_Tel(org_item.contact_phone), Ut.Co_Fax(org_item.contact_fax), Coordinator="0" ) )) if self.getOrganisations(): item.append(partners) field_sites = Ut.Field_sites() for fs_item in self.getFieldSites(): field_sites = Ut.Field_sites( Ut.Site_name(fs_item.getLocalProperty('title', lang)), Ut.Site_country(fs_item.getLocalProperty('coverage', lang)) ) for k in self.splitToList(fs_item.getLocalProperty('fieldsite_rb', lang)): field_sites.append(Ut.River_basin(k)) if self.getFieldSites(): item.append(field_sites) return etree.tostring(item, xml_declaration=False, encoding="utf-8")