Exemplo n.º 1
0
    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 []
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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__
            }
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
    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__