def items(self): items = [] if ISite.providedBy(self.context): return self._site_items elif IPage.providedBy(self.context): return self._page_items elif IServer.providedBy(self.context): return self._server_items elif INews.providedBy(self.context): return self._news_items return []
def __call__(self, **kwargs): sursa = self.context['sursa'] for server in sursa.values(): if not IServer.providedBy(server): continue for news in server.values(): if not INews.providedBy(news): continue if 'updater' in news: del news['updater'] logger.info('Update updater for %s' % ( absoluteURL(news, self.request))) updater = NewsUpdater() news['updater'] = updater
def __call__(self, **kwargs): """ Evolve """ start = datetime.now() logger.info('Indexing objects: %s', start.strftime('%Y-%m-%d %H:%M:%S')) for news in self.context.values(): if not INews.providedBy(news): continue reindex = queryMultiAdapter((news, self.request), name=u'reindex.html') reindex() logger.info('Commit transaction') transaction.commit() end = datetime.now() delta = end - start logger.info('Done: %s', end.strftime('%Y-%m-%d %H:%M:%S')) logger.info('Done in %s seconds', delta.seconds) return 'Done in %s seconds' % delta.seconds
def tabs(self): """ Return the first IPage subobject """ root = ISite.providedBy(self.page) yield { 'url': absoluteURL(self.context, self.request), 'title': 'Revista presei', 'current': root } if INews.providedBy(self.page): server = self.page.__parent__ title = getattr(server, 'title', server.__name__) if len(title) > 25: title = title[:25] + '...' yield { 'url': absoluteURL(server, self.request), 'title': title, 'current': False } if not (root or ISection.providedBy(self.page)): title = getattr(self.page, 'title', self.page.__name__) if len(title) > 25: title = title[:25] + '...' yield { 'url': absoluteURL(self.page, self.request), 'title': title, 'current': True } content = ISortedContent(self.context) for section in content.children(ISection, sort_by='order'): yield { 'url': absoluteURL(section, self.request), 'title': section.title, 'current': self.page.__name__ == section.__name__ }
def body(self, xml): """ Body importer """ if isinstance(xml, (str, unicode)): parser = XMLTreeBuilder() parser.feed(xml) tree = parser.close() tree = ElementTree(tree) elem = tree.getroot() else: elem = xml if elem.tag != 'object': raise AttributeError('Invalid xml root element %s' % elem.tag) name = elem.get('name') if not name: raise AttributeError('No name provided for object') if hasattr(self.context, '__name__') and (name != self.context.__name__): raise AttributeError(('XML root object name %s ' 'should match context name %s') % (name, self.context.__name__)) for child in elem.getchildren(): if child.tag == 'property': self.attribute = child elif child.tag == 'object': self.child = child event.notify(ObjectModifiedEvent(self.context)) if INews.providedBy(self.context): logger.info('Commit transaction import for %s' % getattr( self.context, '__name__', '(no name)')) transaction.commit()
def __init__(self, context, request, view, manager): super(NewsRightViewlet, self).__init__(context, request, view, manager) self.page = self.context if INews.providedBy(self.context): self.context = context.__parent__