diff --git a/entities.py b/entities.py index 1837cce77178c2dadee3da35e4c86e8ba3515392_ZW50aXRpZXMucHk=..bf536a14d2eb8c0e2cea4d4f80c5562fe83201e2_ZW50aXRpZXMucHk= 100644 --- a/entities.py +++ b/entities.py @@ -44,9 +44,6 @@ descr = u'%s %s' % (_('posted on'), self.format_date(self.creation_date)) return descr - def isioc_item_creator(self): - return self.creator - - def isioc_item_content(self): + def isioc_content(self): return self.content @@ -51,5 +48,5 @@ return self.content - def isioc_item_container(self): + def isioc_container(self): rset = self.related('entry_of') entity = rset.get_entity(0, 0) @@ -54,16 +51,7 @@ rset = self.related('entry_of') entity = rset.get_entity(0, 0) - return entity - - def isioc_item_get_reply(self): - pass - - def isioc_item_creation_date(self): - return self.creation_date - - def isioc_item_modification_date(self): - return self.modification_date - + return entity + class Blog(AnyEntity): """customized class for Blog entities""" @@ -78,6 +66,6 @@ rql = 'Any E ORDERBY D DESC WHERE E is BlogEntry, E entry_of X, X eid %s, E creation_date D' % self.eid return self.build_url(rql=rql, vid='rss', vtitle=self.dc_title()) - def isioc_container_type(self): + def isioc_type(self): return 'Weblog' @@ -82,7 +70,3 @@ return 'Weblog' - def isioc_container_creation_date(self): - return self.creation_date - - def isioc_container_modification_date(self): - return self.modification_date + diff --git a/views.py b/views.py index 1837cce77178c2dadee3da35e4c86e8ba3515392_dmlld3MucHk=..bf536a14d2eb8c0e2cea4d4f80c5562fe83201e2_dmlld3MucHk= 100644 --- a/views.py +++ b/views.py @@ -21,8 +21,8 @@ from cubicweb.web.views.calendar import MONTHNAMES from cubicweb.web.views.navigation import PageNavigation from cubicweb.web.htmlwidgets import BoxLink, BoxWidget -from cubicweb.interfaces import IFeed, ISIOC +from cubicweb.interfaces import ISiocItem, ISiocContainer class SIOCView(EntityView): id = 'sioc' @@ -25,6 +25,7 @@ class SIOCView(EntityView): id = 'sioc' - __selectors__ = (implement_interface,) + __selectors__ = EntityView.__selectors__ + (implement_interface,) + accepts_interfaces = (ISiocItem, ISiocContainer) title = _('sioc') @@ -30,3 +31,2 @@ title = _('sioc') - accepts = ('Blog', 'BlogEntry') templatable = False @@ -32,5 +32,4 @@ templatable = False - accepts_interfaces = (ISIOC,) content_type = 'text/xml' item_vid = 'sioc_item' @@ -49,6 +48,10 @@ self.w(u'</rdf:RDF>\n') def cell_call(self, row, col): - self.wview(self.item_vid, self.rset, row=row, col=col) + entity = self.complete_entity(row,col) + if entity.id =='BlogEntry': + self.wview(self.item_vid, self.rset, row=row, col=col) + else: + self.wview('sioc_container', self.rset, row=row, col=col) @@ -53,7 +56,8 @@ -class SIOCBlogItemView(EntityView): - id = 'sioc_item' - accepts = ('Blog',) +class SIOCBlogContainerView(EntityView): + id = 'sioc_container' + __selectors__ = EntityView.__selectors__ + (implement_interface,) + accepts_interfaces = (ISiocContainer,) templatable = False content_type = 'text/xml' @@ -58,5 +62,6 @@ templatable = False content_type = 'text/xml' + accepts = ('Blog',) def cell_call(self, row, col): entity = self.complete_entity(row, col) @@ -60,11 +65,9 @@ def cell_call(self, row, col): entity = self.complete_entity(row, col) - self.w(u' <sioc:Weblog rdf:about="%s">\n' % html_escape(entity.absolute_url())) - self.render_title_date(entity) - self.w(u'</sioc:Weblog>\n') - - def render_title_date(self, entity): + self.w(u' <sioc:%s rdf:about="%s">\n' % (html_escape(entity.isioc_type()), + html_escape(entity.absolute_url()))) + self.w(u'<dcterms:title>%s</dcterms:title>'% html_escape(unicode(entity.title))) self.w(u'<dcterms:created>%s</dcterms:created>'% entity.creation_date) self.w(u'<dcterms:modified>%s</dcterms:modified>' % entity.modification_date) @@ -68,7 +71,9 @@ self.w(u'<dcterms:title>%s</dcterms:title>'% html_escape(unicode(entity.title))) self.w(u'<dcterms:created>%s</dcterms:created>'% entity.creation_date) self.w(u'<dcterms:modified>%s</dcterms:modified>' % entity.modification_date) - - -class SIOCItemView(SIOCBlogItemView): + + self.w(u'</sioc:%s>\n' % entity.isioc_type()) + +class SIOCItemView(SIOCBlogContainerView): + id ='sioc_item' accepts = ('BlogEntry',) @@ -74,5 +79,7 @@ accepts = ('BlogEntry',) + accepts_interfaces = (ISiocItem,) + def cell_call(self, row, col): entity = self.complete_entity(row, col) self.w(u' <sioc:Post rdf:about="%s">\n' % html_escape(entity.absolute_url())) @@ -75,6 +82,8 @@ def cell_call(self, row, col): entity = self.complete_entity(row, col) self.w(u' <sioc:Post rdf:about="%s">\n' % html_escape(entity.absolute_url())) - self.render_title_date(entity) + self.w(u'<dcterms:title>%s</dcterms:title>'% html_escape(unicode(entity.title))) + self.w(u'<dcterms:created>%s</dcterms:created>'% entity.creation_date) + self.w(u'<dcterms:modified>%s</dcterms:modified>' % entity.modification_date) if entity.content: @@ -80,3 +89,3 @@ if entity.content: - self.w(u'<sioc:content>%s</sioc:content>''' % html_escape(entity.content)) + self.w(u'<sioc:content>%s</sioc:content>''' % html_escape(entity.isioc_content())) if entity.related('entry_of'): @@ -82,7 +91,5 @@ if entity.related('entry_of'): - rset = entity.related('entry_of') - entity = rset.get_entity(0, 0) - self.w(u'<sioc:has_contenainer rdf:resource="%s"/>\n' % html_escape(entity.absolute_url())) + self.w(u'<sioc:has_container rdf:resource="%s"/>\n' % html_escape(entity.isioc_container().absolute_url())) if entity.creator: foaf = entity.creator.view('foaf') self.w(u'<sioc:has_creator>\n') @@ -86,8 +93,8 @@ if entity.creator: foaf = entity.creator.view('foaf') self.w(u'<sioc:has_creator>\n') - self.w(u'<sioc:User rdf:about="%s">\n' % entity.creator.absolute_url()) - self.w('%s' % foaf) + self.w(u'<sioc:User rdf:about="%s">\n' % entity.dc_creator().absolute_url()) + self.w(foaf) self.w(u'</sioc:User>\n') self.w(u'</sioc:has_creator>\n') self.w(u' </sioc:Post>\n') @@ -245,7 +252,6 @@ if title is None and not ('vtitle' in self.req.form or 'subvid' in kwargs): self.w(u'<h1>%s</h1>' % display_name(self.req, 'BlogEntry', form='plural')) super(BlogEntryListView, self).call(klass=klass, **kwargs) - class BlogEntryListItemView(baseviews.ListItemView): accepts = ('BlogEntry',) @@ -316,3 +322,4 @@ def index_display(self, start, stop): return u'%s' % (int(start / self.page_size)+1) +