Exemple #1
0
def rss_item_for_object(obj, lang):
    syndication_tool = obj.getSyndicationTool()
    namespaces = syndication_tool.getNamespaceItemsList()
    nsmap = get_nsmap(namespaces)
    dc_namespace = nsmap['dc']
    Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap)
    rdf_namespace = nsmap['rdf']
    E = ElementMaker(None, nsmap=nsmap)
    xml = E.item(
        {'{%s}about' % rdf_namespace: obj.absolute_url()},
        E.link(replace_illegal_xml(obj.absolute_url())),
        E.title(replace_illegal_xml(obj.non_empty_title(lang))),
        E.description(
            replace_illegal_xml(obj.getLocalProperty('description', lang))),
        Dc.title(replace_illegal_xml(obj.non_empty_title(lang))),
        Dc.identifier(replace_illegal_xml(obj.identifier())),
        Dc.date(obj.utShowFullDateTimeHTML(obj.releasedate)),
        Dc.description(
            replace_illegal_xml(obj.getLocalProperty('description', lang))),
        Dc.contributor(replace_illegal_xml(obj.contributor)),
        Dc.language(lang))
    for k in obj.getLocalProperty('coverage', lang).split(','):
        xml.append(Dc.coverage(replace_illegal_xml(k.strip())))
    for k in obj.getLocalProperty('keywords', lang).split(','):
        xml.append(Dc.subject(replace_illegal_xml(k.strip())))
    xml.append(Dc.rights(replace_illegal_xml(obj.rights)))
    return xml
 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()
     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")
Exemple #5
0
 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)
     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")
Exemple #7
0
def rss_item_for_object(obj,lang):
    syndication_tool = obj.getSyndicationTool()
    namespaces = syndication_tool.getNamespaceItemsList()
    nsmap = get_nsmap(namespaces)
    dc_namespace = nsmap['dc']
    Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap)
    rdf_namespace = nsmap['rdf']
    E = ElementMaker(None, nsmap=nsmap)
    xml = E.item(
        {'{%s}about'%rdf_namespace : obj.absolute_url()},
        E.link(replace_illegal_xml(obj.absolute_url())),
        E.title(replace_illegal_xml(obj.non_empty_title(lang))),
        E.description(replace_illegal_xml(obj.getLocalProperty('description', lang))),
        Dc.title(replace_illegal_xml(obj.non_empty_title(lang))),
        Dc.identifier(replace_illegal_xml(obj.identifier())),
        Dc.date(obj.utShowFullDateTimeHTML(obj.releasedate)),
        Dc.description(replace_illegal_xml(obj.getLocalProperty('description', lang))),
        Dc.contributor(replace_illegal_xml(obj.contributor)),
        Dc.language(lang)
        )
    for k in obj.getLocalProperty('coverage', lang).split(','):
        xml.append(Dc.coverage(replace_illegal_xml(k.strip())))
    for k in obj.getLocalProperty('keywords', lang).split(','):
        xml.append(Dc.subject(replace_illegal_xml(k.strip())))
    xml.append(Dc.rights(replace_illegal_xml(obj.rights)))
    return xml
Exemple #8
0
    def syndicateThis(self, lang=None):
        """
        Generates RDF item tag for an object.

        B{This method can be overwritten by some types of objects in order to
        add specific tags.}
        @param lang: content language
        @type lang: string
        """

        l_site = self.getSite()
        if lang is None: lang = self.gl_get_selected_language()
        syndication_tool = self.getSyndicationTool()
        namespaces = syndication_tool.getNamespaceItemsList()
        nsmap = get_nsmap(namespaces)
        rdf_namespace = nsmap['rdf']
        dc_namespace = nsmap['dc']
        Rdf = ElementMaker(namespace=rdf_namespace, nsmap=nsmap)
        Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap)
        E = ElementMaker(None, nsmap=nsmap)
        xml = Rdf.RDF(
                E.item(
                    {'{%s}about'%rdf_namespace : self.absolute_url()},
                    E.link(self.absolute_url()),
                    E.title(self.non_empty_title(lang)),
                    E.description(self.getLocalProperty('description', lang)),
                    Dc.title(self.non_empty_title(lang)),
                    Dc.identifier(self.identifier()),
                    Dc.date(self.utShowFullDateTimeHTML(self.releasedate)),
                    Dc.description(self.getLocalProperty('description', lang)),
                    Dc.contributor(self.contributor),
                    Dc.language(lang)
                )
            )
        item = xml[0]
        for k in self.getLocalProperty('coverage', lang).split(','):
            item.append(Dc.coverage(k.strip()))
        for k in self.getLocalProperty('keywords', lang).split(','):
            item.append(Dc.subject(k.strip()))
        item.append(Dc.rights(self.getLocalProperty('rights', lang)))
        the_rest = (
                Dc.publisher(l_site.getLocalProperty('publisher', lang)),
                Dc.creator(l_site.getLocalProperty('creator', lang)),
                Dc.type(self.type()),
                Dc.format(self.format()),
                Dc.source(l_site.getLocalProperty('publisher', lang)),
               )
        item.extend(the_rest)
        return etree.tostring(item, xml_declaration=False, encoding="utf-8")
Exemple #9
0
 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")
Exemple #10
0
 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")
Exemple #12
0
    def syndicateThis(self, lang=None):
        """
        Generates RDF item tag for an object.

        B{This method can be overwritten by some types of objects in order to
        add specific tags.}
        @param lang: content language
        @type lang: string
        """

        l_site = self.getSite()
        if lang is None: lang = self.gl_get_selected_language()
        syndication_tool = self.getSyndicationTool()
        namespaces = syndication_tool.getNamespaceItemsList()
        nsmap = get_nsmap(namespaces)
        rdf_namespace = nsmap['rdf']
        dc_namespace = nsmap['dc']
        Rdf = ElementMaker(namespace=rdf_namespace, nsmap=nsmap)
        Dc = ElementMaker(namespace=dc_namespace, nsmap=nsmap)
        E = ElementMaker(None, nsmap=nsmap)
        xml = Rdf.RDF(
            E.item({'{%s}about' % rdf_namespace: self.absolute_url()},
                   E.link(self.absolute_url()),
                   E.title(self.non_empty_title(lang)),
                   E.description(self.getLocalProperty('description', lang)),
                   Dc.title(self.non_empty_title(lang)),
                   Dc.identifier(self.identifier()),
                   Dc.date(self.utShowFullDateTimeHTML(self.releasedate)),
                   Dc.description(self.getLocalProperty('description', lang)),
                   Dc.contributor(self.contributor), Dc.language(lang)))
        item = xml[0]
        for k in self.getLocalProperty('coverage', lang).split(','):
            item.append(Dc.coverage(k.strip()))
        for k in self.getLocalProperty('keywords', lang).split(','):
            item.append(Dc.subject(k.strip()))
        item.append(Dc.rights(self.getLocalProperty('rights', lang)))
        the_rest = (
            Dc.publisher(l_site.getLocalProperty('publisher', lang)),
            Dc.creator(l_site.getLocalProperty('creator', lang)),
            Dc.type(self.type()),
            Dc.format(self.format()),
            Dc.source(l_site.getLocalProperty('publisher', lang)),
        )
        item.extend(the_rest)
        return etree.tostring(item, xml_declaration=False, encoding="utf-8")
Exemple #13
0
    def index_html(self, feed='', REQUEST=None, RESPONSE=None):
        """ """
        if feed == 'atom':
            return self.syndicateAtom(self, self.get_objects_for_rdf(),
                                      self.language)

        s = self.getSite()
        lang = self.language
        if lang == 'auto':
            lang = self.gl_get_selected_language()
        l_items = self.get_objects_for_rdf()
        namespaces = self.getNamespaceItemsList()
        nsmap = get_nsmap(namespaces)
        header = []
        for n in namespaces:
            header.append(str(n))
        rdf_namespace = nsmap['rdf']
        Rdf = ElementMaker(namespace=rdf_namespace, nsmap=nsmap)
        E = ElementMaker(None, nsmap=nsmap)

        xml = Rdf.RDF(rss_channel_for_channel(self, lang))

        channel = xml[0]
        items = channel[-1]
        seq = etree.SubElement(items, '{%s}Seq' % rdf_namespace)
        for i in l_items:
            x = etree.SubElement(seq, '{%s}li' % rdf_namespace,
                                 resource=i.absolute_url())
        if self.hasImage():
            image = E.image(
                E.title(self.title),
                E.url(self.getImagePath()),
                E.link(s.absolute_url()),
                E.description(self.utToUtf8(self.description))
                )
            xml.append(image)
        received_items = ''.join([i.syndicateThis() for i in l_items])
        received = '<rdf:RDF %s>%s</rdf:RDF>' % (' '.join(header),
                                                 received_items)
        xml_received = etree.XML(received,
                                 etree.XMLParser(strip_cdata=False))
        xml.extend(xml_received)
        self.REQUEST.RESPONSE.setHeader('content-type', 'text/xml')
        return etree.tostring(xml, xml_declaration=True, encoding="utf-8")
Exemple #14
0
 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")
Exemple #15
0
 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")
Exemple #17
0
 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")