From 5bb16c410d8464787aba89d18ddc30b60715a6eb Mon Sep 17 00:00:00 2001 From: Rodrigo Ferreira de Souza Date: Mon, 2 May 2016 12:20:59 -0300 Subject: [PATCH] Remove grok depencency --- CHANGES.rst | 4 ++ setup.py | 3 +- .../liveblog/browser/configure.zcml | 37 +++++++++++++++++++ src/collective/liveblog/browser/header.py | 15 +------- .../liveblog/browser/recent_updates.py | 15 +------- .../liveblog/browser/templates/header.pt | 4 +- src/collective/liveblog/browser/update.py | 23 ++++-------- src/collective/liveblog/browser/view.py | 12 +----- src/collective/liveblog/configure.zcml | 4 -- src/collective/liveblog/content.py | 5 +-- 10 files changed, 59 insertions(+), 63 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index f3704ba..6629332 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,9 @@ Changelog 1.1b2 (unreleased) ------------------ +- Remove grok dependency (closes `#5`_). + [rodfersou] + - Package is now compatible with Plone 5. [hvelarde] @@ -95,6 +98,7 @@ Changelog - Initial release. .. _`#3`: https://github.com/collective/collective.liveblog/issues/3 +.. _`#5`: https://github.com/collective/collective.liveblog/issues/5 .. _`#6`: https://github.com/collective/collective.liveblog/issues/6 .. _`#7`: https://github.com/collective/collective.liveblog/issues/7 .. _`#10`: https://github.com/collective/collective.liveblog/issues/10 diff --git a/setup.py b/setup.py index 4e1f581..2dd998c 100644 --- a/setup.py +++ b/setup.py @@ -40,9 +40,8 @@ include_package_data=True, zip_safe=False, install_requires=[ - 'five.grok', 'plone.api', - 'plone.app.dexterity [grok]', + 'plone.app.dexterity', 'plone.app.layout', 'plone.batching', 'plone.dexterity', diff --git a/src/collective/liveblog/browser/configure.zcml b/src/collective/liveblog/browser/configure.zcml index ac86323..18d3258 100644 --- a/src/collective/liveblog/browser/configure.zcml +++ b/src/collective/liveblog/browser/configure.zcml @@ -29,4 +29,41 @@ layer="collective.liveblog.interfaces.IBrowserLayer" /> + + + + + + + + diff --git a/src/collective/liveblog/browser/header.py b/src/collective/liveblog/browser/header.py index 94faf6f..247cf70 100644 --- a/src/collective/liveblog/browser/header.py +++ b/src/collective/liveblog/browser/header.py @@ -1,22 +1,11 @@ # -*- coding: utf-8 -*- -from five import grok -from plone.app.layout.viewlets.interfaces import IAboveContent -from collective.liveblog.interfaces import ILiveblog -from collective.liveblog.interfaces import IBrowserLayer +from plone.app.layout.viewlets.common import ViewletBase -grok.templatedir('templates') - -class Header(grok.Viewlet): +class Header(ViewletBase): """A viewlet to include a header in the Liveblog.""" - grok.name('collective.liveblog.header') - grok.context(ILiveblog) - grok.layer(IBrowserLayer) - grok.require('zope2.View') - grok.viewletmanager(IAboveContent) - def available(self): """Return True if an image has been defined.""" return self.context.image is not None diff --git a/src/collective/liveblog/browser/recent_updates.py b/src/collective/liveblog/browser/recent_updates.py index eb31b16..eb75ab0 100644 --- a/src/collective/liveblog/browser/recent_updates.py +++ b/src/collective/liveblog/browser/recent_updates.py @@ -2,30 +2,19 @@ from App.Common import rfc1123_date from collective.liveblog.browser.base import BaseView from collective.liveblog.config import PROJECTNAME -from collective.liveblog.interfaces import IBrowserLayer -from collective.liveblog.interfaces import ILiveblog from datetime import datetime -from five import grok -# from plone.memoize import ram from time import time +from zope.publisher.browser import BrowserView import logging logger = logging.getLogger(PROJECTNAME) -grok.templatedir('templates') - -class RecentUpdates(grok.View, BaseView): +class RecentUpdates(BrowserView, BaseView): """Helper view for Liveblog.""" - grok.context(ILiveblog) - grok.layer(IBrowserLayer) - grok.name('recent-updates') - grok.require('zope2.View') - grok.template('recent_updates') - def _needs_hard_refresh(self): """Return True if a hard refresh of the page is needed. diff --git a/src/collective/liveblog/browser/templates/header.pt b/src/collective/liveblog/browser/templates/header.pt index ef3015e..6ced7ac 100644 --- a/src/collective/liveblog/browser/templates/header.pt +++ b/src/collective/liveblog/browser/templates/header.pt @@ -5,11 +5,11 @@ i18n:domain="collective.liveblog" tal:omit-tag=""> - +
- \ No newline at end of file + diff --git a/src/collective/liveblog/browser/update.py b/src/collective/liveblog/browser/update.py index 0155460..c0467f3 100644 --- a/src/collective/liveblog/browser/update.py +++ b/src/collective/liveblog/browser/update.py @@ -3,32 +3,16 @@ from collective.liveblog.browser.view import View from collective.liveblog.config import BATCH_SIZE from collective.liveblog.config import ORPHAN -from collective.liveblog.interfaces import IBrowserLayer -from collective.liveblog.interfaces import ILiveblog -from five import grok from plone import api from plone.batching import Batch from zope.i18n import translate from zope.security import checkPermission -grok.templatedir('templates') - - class Update(View): """View to add micro-updates to a Liveblog.""" - grok.context(ILiveblog) - grok.layer(IBrowserLayer) - grok.require('collective.liveblog.AddMicroUpdate') - - def update(self): - self.start = int(self.request.get('b_start', 0)) - if self.start != 0: - msg = _(u'You must be on the first page of the batch to add micro-updates.') - api.portal.show_message(msg, self.request, type='info') - @property def batch(self): """Encapsulate sequence in batches of size.""" @@ -52,3 +36,10 @@ def automatic_updates_enabled(self): """ enabled = super(Update, self).automatic_updates_enabled return enabled and self.start == 0 + + def __call__(self): + self.start = int(self.request.get('b_start', 0)) + if self.start != 0: + msg = _(u'You must be on the first page of the batch to add micro-updates.') + api.portal.show_message(msg, self.request, type='info') + return self.index() diff --git a/src/collective/liveblog/browser/view.py b/src/collective/liveblog/browser/view.py index 546b726..8fa09bb 100644 --- a/src/collective/liveblog/browser/view.py +++ b/src/collective/liveblog/browser/view.py @@ -1,27 +1,19 @@ # -*- coding: utf-8 -*- from collective.liveblog.browser.base import BaseView -from collective.liveblog.interfaces import IBrowserLayer -from collective.liveblog.interfaces import ILiveblog -from five import grok from plone import api from plone.memoize import ram from time import time - -grok.templatedir('templates') +from zope.publisher.browser import BrowserView def _updates_cachekey(method, self): return (self.context.absolute_url_path(), int(self.context.modified())) -class View(grok.View, BaseView): +class View(BrowserView, BaseView): """Default view for Liveblog.""" - grok.context(ILiveblog) - grok.layer(IBrowserLayer) - grok.require('zope2.View') - @ram.cache(_updates_cachekey) def updates(self): """Return the list of micro-updates in the Liveblog in reverse order; diff --git a/src/collective/liveblog/configure.zcml b/src/collective/liveblog/configure.zcml index 6af62d8..191e913 100644 --- a/src/collective/liveblog/configure.zcml +++ b/src/collective/liveblog/configure.zcml @@ -2,14 +2,12 @@ xmlns="http://namespaces.zope.org/zope" xmlns:browser="http://namespaces.zope.org/browser" xmlns:five="http://namespaces.zope.org/five" - xmlns:grok="http://namespaces.zope.org/grok" xmlns:i18n="http://namespaces.zope.org/i18n" i18n_domain="collective.liveblog"> - @@ -24,8 +22,6 @@ title="collective.liveblog: Add MicroUpdate" /> - - diff --git a/src/collective/liveblog/content.py b/src/collective/liveblog/content.py index d28f790..c904f7a 100644 --- a/src/collective/liveblog/content.py +++ b/src/collective/liveblog/content.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- from collective.liveblog.adapters import IMicroUpdateContainer from collective.liveblog.interfaces import ILiveblog -from five import grok from plone import api from plone.dexterity.content import Container +from zope.interface import implementer +@implementer(ILiveblog) class Liveblog(Container): """A liveblog is a blog post which is intended to provide a rolling @@ -15,8 +16,6 @@ class Liveblog(Container): are used to detect if a hard refresh of the views is needed. """ - grok.implements(ILiveblog) - _last_microupdate_edition = '0.0' _last_microupdate_deletion = '0.0'