Commit 5a34ae85 authored by Arnaud Fontaine's avatar Arnaud Fontaine

2to3: Use @implementer decorator introduced in zope.interface 3.6.0 (2010).

The implements syntax used under Python 2.X does not work under 3.X, since it
depends on how metaclasses are implemented and this has changed. Instead it
now supports a decorator syntax (also under Python 2.X).

Applied thanks to 2to3 `zope.fixers` package.
parent ede3a09e
......@@ -36,6 +36,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class PaymentSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
"""
Payment Rule generates payment simulation movement from invoice
......@@ -49,11 +52,6 @@ class PaymentSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -31,8 +31,9 @@
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import PropertySheet, Permissions, interfaces
from Products.ERP5Type.Core.Predicate import Predicate
from zope.interface import implements
from zope.interface import implementer
@implementer( interfaces.IPredicate,)
class Archive(Predicate):
"""
A Catalog Archive object
......@@ -47,9 +48,6 @@ class Archive(Predicate):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
implements( interfaces.IPredicate, )
# Default Properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -37,6 +37,7 @@ import re
_marker = object()
@zope.interface.implementer(ICoordinate,)
class Coordinate(Base):
"""
Coordinates is a mix-in class which is used to store elementary
......@@ -81,9 +82,6 @@ class Coordinate(Base):
portal_type = 'Coordinate'
add_permission = Permissions.AddPortalContent
# Declarative interface
zope.interface.implements(ICoordinate, )
# Declarative security (replaces __ac_permissions__)
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -33,6 +33,7 @@ from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5Type.XMLObject import XMLObject
@zope.interface.implementer(interfaces.INode)
class Login(EncryptedPasswordMixin, XMLObject, LoginAccountProviderMixin):
"""Login
"""
......@@ -40,8 +41,6 @@ class Login(EncryptedPasswordMixin, XMLObject, LoginAccountProviderMixin):
portal_type = 'Login'
add_permission = Permissions.AddPortalContent
zope.interface.implements(interfaces.INode)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -32,6 +32,7 @@ from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.interface.IMovementGroup import IMovementGroup
import zope.interface
@zope.interface.implementer( IMovementGroup,)
class MovementGroup(XMLObject):
"""
The purpose of MovementGroup is to define how movements
......@@ -59,8 +60,6 @@ class MovementGroup(XMLObject):
meta_type = 'ERP5 Movement Group'
portal_type = 'Movement Group'
zope.interface.implements( IMovementGroup, )
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -32,6 +32,7 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5.Document.Node import Node
@zope.interface.implementer(interfaces.INode)
class Organisation(Node):
"""
An Organisation object holds the information about
......@@ -52,8 +53,6 @@ class Organisation(Node):
portal_type = 'Organisation'
add_permission = Permissions.AddPortalContent
zope.interface.implements(interfaces.INode)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -60,6 +60,7 @@ class UserExistsError(
super(UserExistsError, self).__init__('user id %s already exists' % (user_id, ))
@zope.interface.implementer(interfaces.INode)
class Person(EncryptedPasswordMixin, Node, LoginAccountProviderMixin, ERP5UserMixin):
"""
An Person object holds the information about
......@@ -81,8 +82,6 @@ class Person(EncryptedPasswordMixin, Node, LoginAccountProviderMixin, ERP5UserMi
portal_type = 'Person'
add_permission = Permissions.AddPortalContent
zope.interface.implements(interfaces.INode)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -32,6 +32,7 @@ from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5Type.ERP5Type \
import ERP5TYPE_SECURITY_GROUP_ID_GENERATION_SCRIPT
@zope.interface.implementer(interfaces.ILocalRoleGenerator)
class RoleDefinition(XMLObject):
# CMF Type Definition
meta_type = 'ERP5 Role Definition'
......@@ -42,8 +43,6 @@ class RoleDefinition(XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
zope.interface.implements(interfaces.ILocalRoleGenerator)
# Default Properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -39,6 +39,7 @@ from Products.ERP5Type.Globals import PersistentMapping
from Products.CMFCore.utils import _checkPermission
from Products.CMFCore.exceptions import AccessControl_Unauthorized
@zope.interface.implementer(IEncryptedPassword,)
class EncryptedPasswordMixin(object):
"""Encrypted Password Mixin
"""
......@@ -46,9 +47,6 @@ class EncryptedPasswordMixin(object):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IEncryptedPassword,)
security.declareProtected(Permissions.SetOwnPassword, 'checkPassword')
def checkPassword(self, value) :
"""
......
......@@ -35,6 +35,7 @@ from AccessControl.AuthEncoding import pw_validate
from AccessControl import ClassSecurityInfo
from Products.ERP5Type.Globals import InitializeClass
@zope.interface.implementer(ILoginAccountProvider)
class LoginAccountProviderMixin:
"""
This class provides a generic implementation of ILoginAccountProvider.
......@@ -43,9 +44,6 @@ class LoginAccountProviderMixin:
# Declarative security
security = ClassSecurityInfo()
# Declarative interfaces
zope.interface.implements(ILoginAccountProvider)
security.declareProtected(Permissions.SetOwnPassword, 'notifyLoginFailure')
def notifyLoginFailure(self, **kw):
"""
......
# -*- coding: utf-8 -*-
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from erp5.component.document.Document import DocumentConversionServerProxy, ConversionError, enc, dec
@implementer(ITransform)
class DocumentConversionServerTransform:
"""
Transformer using Conversion Server
"""
implements(ITransform)
# Name of the Transform as registered in portal_transforms
__name__ = None
......
......@@ -39,6 +39,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class LoyaltyTransactionSimulationRule(RuleMixin,MovementCollectionUpdaterMixin):
""" """
# CMF Type Definition
......@@ -49,11 +52,6 @@ class LoyaltyTransactionSimulationRule(RuleMixin,MovementCollectionUpdaterMixin)
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class AccountConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup an Accounting Account. """
......@@ -48,9 +49,6 @@ class AccountConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class AccountingPeriodConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup an Accounting Period. """
......@@ -47,9 +48,6 @@ class AccountingPeriodConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class AdvancedPurchaseTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Purchase Trade Conditions. """
......@@ -48,9 +49,6 @@ class AdvancedPurchaseTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLO
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class AdvancedSaleTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Sale Trade Conditions. """
......@@ -48,9 +49,6 @@ class AdvancedSaleTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObjec
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
from DateTime import DateTime
@zope.interface.implementer(IConfiguratorItem)
class AlarmConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup an Alarm """
......@@ -48,9 +49,6 @@ class AlarmConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -36,6 +36,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class BankAccountConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup bank account. """
......@@ -49,9 +50,6 @@ class BankAccountConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class BusinessProcessConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Rules. """
......@@ -48,9 +49,6 @@ class BusinessProcessConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class CatalogKeywordKeyConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"""Set up catalog keyword keys."""
......@@ -48,9 +49,6 @@ class CatalogKeywordKeyConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -40,6 +40,7 @@ class UnrestrictedStringIO(StringIO):
__allow_access_to_unprotected_subobjects__ = 1
@zope.interface.implementer(IConfiguratorItem)
class CategoriesSpreadsheetConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"""Import a categories spreadsheet.
"""
......@@ -54,9 +55,6 @@ class CategoriesSpreadsheetConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class CategoryConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"""This class is meta build step for customization of ERP5 site."""
......@@ -47,9 +48,6 @@ class CategoryConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class CurrencyConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup currency. """
......@@ -48,9 +49,6 @@ class CurrencyConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -33,6 +33,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class CustomerBT5ConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Create a new bt5 for customer configuration.
......@@ -49,9 +50,6 @@ class CustomerBT5ConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -36,6 +36,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class OrganisationConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" This class install a Organisation."""
......@@ -49,9 +50,6 @@ class OrganisationConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class PermissionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Set permission matrix on module."""
......@@ -47,9 +48,6 @@ class PermissionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -37,6 +37,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class PersonConfiguratorItem(XMLObject, ConfiguratorItemMixin):
""" Setup user. """
......@@ -50,9 +51,6 @@ class PersonConfiguratorItem(XMLObject, ConfiguratorItemMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class PortalTypeConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"""Configure Portal Type."""
......@@ -47,9 +48,6 @@ class PortalTypeConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class PortalTypeRolesSpreadsheetConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"""Import a portal type roles spreadsheet.
"""
......@@ -48,9 +49,6 @@ class PortalTypeRolesSpreadsheetConfiguratorItem(ConfiguratorItemMixin, XMLObjec
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class PreferenceConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup preference. """
......@@ -47,9 +48,6 @@ class PreferenceConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class PurchaseTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Purchase Trade Conditions. """
......@@ -48,9 +49,6 @@ class PurchaseTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -36,6 +36,7 @@ from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
from zLOG import LOG, INFO
@zope.interface.implementer(IConfiguratorItem)
class RoleConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup role per module basis. """
......@@ -49,9 +50,6 @@ class RoleConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from Products.ERP5Type.XMLObject import XMLObject
from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class RuleConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Rules. """
......@@ -47,9 +48,6 @@ class RuleConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class SaleTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Sale Trade Conditions. """
......@@ -48,9 +49,6 @@ class SaleTradeConditionConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -35,6 +35,7 @@ from erp5.component.mixin.SkinConfiguratorItemMixin import \
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class SecurityCategoryMappingConfiguratorItem(SkinConfiguratorItemMixin,
XMLObject):
""" Setup the ERP5Type_getSecurityCategoryMapping Python Script which
......@@ -50,9 +51,6 @@ class SecurityCategoryMappingConfiguratorItem(SkinConfiguratorItemMixin,
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -36,6 +36,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class ServiceConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"""Create default service documents."""
......@@ -49,9 +50,6 @@ class ServiceConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class SitePropertyConfiguratorItem(ConfiguratorItemMixin, XMLObject):
"""Set up site properties."""
......@@ -47,9 +48,6 @@ class SitePropertyConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class SolverConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup Solvers. """
......@@ -47,9 +48,6 @@ class SolverConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -36,6 +36,7 @@ from Products.ERP5Type.Cache import CachingMethod
from zLOG import LOG, INFO
@zope.interface.implementer(IConfiguratorItem)
class StandardBT5ConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" This class will install standard ERP5 template from a repository to
fake site. """
......@@ -50,9 +51,6 @@ class StandardBT5ConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -34,6 +34,7 @@ from erp5.component.mixin.ConfiguratorItemMixin import ConfiguratorItemMixin
from erp5.component.interface.IConfiguratorItem import IConfiguratorItem
@zope.interface.implementer(IConfiguratorItem)
class SystemPreferenceConfiguratorItem(ConfiguratorItemMixin, XMLObject):
""" Setup System preference. """
......@@ -47,9 +48,6 @@ class SystemPreferenceConfiguratorItem(ConfiguratorItemMixin, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfiguratorItem)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -53,9 +53,9 @@ if 1: # BBB
from zope.i18n.interfaces import ITranslationDomain, \
IFallbackTranslationDomainFactory
@zope.interface.implementer(ITranslationDomain)
@zope.interface.provider(IFallbackTranslationDomainFactory)
class DummyTranslationDomainFallback(object):
zope.interface.implements(ITranslationDomain)
zope.interface.classProvides(IFallbackTranslationDomainFactory)
def __init__(self, domain):
self.domain = domain
......
......@@ -40,6 +40,7 @@ from zLOG import LOG, INFO, PROBLEM
import errno
from StringIO import StringIO
@zope.interface.implementer(IWatermarkable)
class PDFDocument(Image):
"""
PDFDocument is a subclass of Image which is able to
......@@ -68,8 +69,6 @@ class PDFDocument(Image):
, PropertySheet.Periodicity
)
zope.interface.implements(IWatermarkable)
security.declareProtected(Permissions.AccessContentsInformation,
'getWatermarkedData')
def getWatermarkedData(self, watermark_data, repeat_watermark=True,
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class DocToDocx:
"""Transforms doc to docx by using Cloudooo"""
implements(itransform)
__name__ = 'doc_to_docx'
inputs = ('application/msword',)
output = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class DocToHtml:
"""Transforms doc to html by using Cloudooo"""
implements(itransform)
__name__ = 'doc_to_html'
inputs = ('application/msword',)
output = 'text/html'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class DocxToDocy:
"""Transforms docx to docy by using Cloudooo"""
implements(itransform)
__name__ = 'docx_to_docy'
inputs = ('application/vnd.openxmlformats-officedocument.wordprocessingml.document',)
output = 'application/x-asc-text'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class DocxToOdt:
"""Transforms docx to odt by using Cloudooo"""
implements(itransform)
__name__ = 'docx_to_odt'
inputs = ('application/vnd.openxmlformats-officedocument.wordprocessingml.document',)
output = 'application/vnd.oasis.opendocument.text'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class DocyToDocx:
"""Transforms docy to docx by using Cloudooo"""
implements(itransform)
__name__ = 'docy_to_docx'
inputs = ('application/x-asc-text',)
output = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdpToHtml:
"""Transforms odp to html by using Cloudooo"""
implements(itransform)
__name__ = 'odp_to_html'
inputs = ('application/vnd.oasis.opendocument.presentation',)
output = 'text/html'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdpToPdf:
"""Transforms odp to pdf by using Cloudooo"""
implements(itransform)
__name__ = 'odp_to_pdf'
inputs = ('application/vnd.oasis.opendocument.presentation',)
output = 'application/pdf'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdpToPptx:
"""Transforms odp to pptx by using Cloudooo"""
implements(itransform)
__name__ = 'odp_to_pptx'
inputs = ('application/vnd.oasis.opendocument.presentation',)
output = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdpToSxi:
"""Transforms odp to sxi by using Cloudooo"""
implements(itransform)
__name__ = 'odp_to_sxi'
inputs = ('application/vnd.oasis.opendocument.presentation',)
output = 'application/vnd.sun.xml.impress'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdsToHtml:
"""Transforms ods to html by using Cloudooo"""
implements(itransform)
__name__ = 'ods_to_html'
inputs = ('application/vnd.oasis.opendocument.spreadsheet',)
output = 'text/html'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdsToPdf:
"""Transforms ods to pdf by using Cloudooo"""
implements(itransform)
__name__ = 'ods_to_pdf'
inputs = ('application/vnd.oasis.opendocument.spreadsheet',)
output = 'application/pdf'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdsToXlsx:
"""Transforms ods to xlsx by using Cloudooo"""
implements(itransform)
__name__ = 'ods_to_xlsx'
inputs = ('application/vnd.oasis.opendocument.spreadsheet',)
output = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdtToDocx:
"""Transforms odt to docx by using Cloudooo"""
implements(itransform)
__name__ = 'odt_to_docx'
inputs = ('application/vnd.oasis.opendocument.text',)
output = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class OdtToHtml:
"""Transforms odt to html by using Cloudooo"""
implements(itransform)
__name__ = 'odt_to_html'
inputs = ('application/vnd.oasis.opendocument.text',)
output = 'text/html'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class PdfToBmp:
"""Transforms pdf to bmp by using Cloudooo"""
implements(itransform)
__name__ = 'pdf_to_bmp'
inputs = ('application/pdf',)
output = 'image/x-ms-bmp' # image/bmp
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class PptToPptx:
"""Transforms ppt to pptx by using Cloudooo"""
implements(itransform)
__name__ = 'ppt_to_pptx'
inputs = ('application/vnd.ms-powerpoint',
'application/powerpoint',
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class PptxToOdp:
"""Transforms pptx to odp by using Cloudooo"""
implements(itransform)
__name__ = 'pptx_to_odp'
inputs = ('application/vnd.openxmlformats-officedocument.presentationml.presentation',)
output = 'application/vnd.oasis.opendocument.presentation'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class PptxToPpty:
"""Transforms pptx to ppty by using Cloudooo"""
implements(itransform)
__name__ = 'pptx_to_ppty'
inputs = ('application/vnd.openxmlformats-officedocument.presentationml.presentation',)
output = 'application/x-asc-presentation'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class PptyToPptx:
"""Transforms ppty to pptx by using Cloudooo"""
implements(itransform)
__name__ = 'ppty_to_pptx'
inputs = ('application/x-asc-presentation',)
output = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class SxiToHtml:
"""Transforms sxi to html by using Cloudooo"""
implements(itransform)
__name__ = 'sxi_to_html'
inputs = ('application/vnd.sun.xml.impress',)
output = 'text/html'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class SxiToOdp:
"""Transforms sxi to odp by using Cloudooo"""
implements(itransform)
__name__ = 'sxi_to_odp'
inputs = ('application/vnd.sun.xml.impress',)
output = 'application/vnd.oasis.opendocument.presentation'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class XlsToOds:
"""Transforms xls to ods by using Cloudooo"""
implements(itransform)
__name__ = 'xls_to_ods'
inputs = ('application/vnd.ms-excel',)
output = 'application/vnd.oasis.opendocument.spreadsheet'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class XlsToXlsx:
"""Transforms xls to xlsx by using Cloudooo"""
implements(itransform)
__name__ = 'xls_to_xlsx'
inputs = ('application/vnd.ms-excel',)
output = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class XlsxToOds:
"""Transforms xlsx to ods by using Cloudooo"""
implements(itransform)
__name__ = 'xlsx_to_ods'
inputs = ('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',)
output = 'application/vnd.oasis.opendocument.spreadsheet'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class XlsxToXlsy:
"""Transforms xlsx to xlsy by using Cloudooo"""
implements(itransform)
__name__ = 'xlsx_to_xlsy'
inputs = ('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',)
output = 'application/x-asc-spreadsheet'
......
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5OOo.transforms.oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
@implementer(itransform)
class XlsyToXlsx:
"""Transforms xlsy to xlsx by using Cloudooo"""
implements(itransform)
__name__ = 'xlsy_to_xlsx'
inputs = ('application/x-asc-spreadsheet',)
output = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
......
......@@ -34,6 +34,7 @@ from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5Type.XMLObject import XMLObject
from erp5.component.document.Delivery import Delivery
@zope.interface.implementer( interfaces.IVariated,)
class Immobilisation(Delivery, XMLObject):
"""
An Immobilisation object holds the information about
......@@ -51,9 +52,6 @@ class Immobilisation(Delivery, XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements( interfaces.IVariated, )
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -37,6 +37,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class InvoiceSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
"""
Invoicing Rule expand simulation created by a order or delivery rule.
......@@ -49,11 +52,6 @@ class InvoiceSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -38,6 +38,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class InvoiceTransactionSimulationRule(RuleMixin,
MovementCollectionUpdaterMixin, PredicateMatrix):
"""
......@@ -54,11 +57,6 @@ class InvoiceTransactionSimulationRule(RuleMixin,
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -38,6 +38,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class TradeModelSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
"""
Rule for Trade Model
......@@ -50,11 +53,6 @@ class TradeModelSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -35,13 +35,12 @@ from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.interface.IJSONConvertable import IJSONConvertable
@zope.interface.implementer(
IJSONConvertable,)
class JSONType(XMLObject):
"""
Represents a portal type with JSON Schema
"""
zope.interface.implements(
IJSONConvertable,
)
# Default Properties
property_sheets = ( PropertySheet.Base
......
......@@ -39,6 +39,7 @@ from Products.ERP5.mixin.periodicity import PeriodicityMixin
from Products.ERP5Type.Base import Base
from erp5.component.interface.IMovementGenerator import IMovementGenerator
@zope.interface.implementer(IMovementGenerator,)
class SubscriptionItem(Item, CompositionMixin, MovementGeneratorMixin,
SimulableMixin, PeriodicityMixin):
"""
......@@ -67,10 +68,6 @@ class SubscriptionItem(Item, CompositionMixin, MovementGeneratorMixin,
, PropertySheet.Periodicity
)
# Declarative interfaces
zope.interface.implements(IMovementGenerator,
)
def _createRootAppliedRule(self):
# only try to expand if we are not in draft state
if self.getValidationState() in ('draft', ): # XXX-JPS harcoded
......
......@@ -35,13 +35,13 @@ from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.XMLObject import XMLObject
from erp5.component.interface.IPaymentService import IPaymentService
@zope.interface.implementer(IPaymentService)
class PaypalService(XMLObject):
"""Paypal Service for payment"""
meta_type = 'Paypal Service'
portal_type = 'Paypal Service'
security = ClassSecurityInfo()
zope.interface.implements(IPaymentService)
# Declarative security
security = ClassSecurityInfo()
......
......@@ -90,12 +90,11 @@ class PayzenREST:
from erp5.component.interface.IPaymentService import IPaymentService
@zope.interface.implementer(IPaymentService)
class PayzenService(XMLObject, PayzenREST):
meta_type = 'Payzen Service'
portal_type = 'Payzen Service'
zope.interface.implements(IPaymentService)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -47,6 +47,9 @@ from Products import ERP5Security
from erp5.component.interface.ISmsSendingGateway import ISmsSendingGateway
from erp5.component.interface.ISmsReceivingGateway import ISmsReceivingGateway
@zope.interface.implementer(
ISmsSendingGateway,
ISmsReceivingGateway)
class DummyGateway(XMLObject):
"""Dummy SMS Gateway Implementation"""
......@@ -57,10 +60,6 @@ class DummyGateway(XMLObject):
add_permission = Permissions.AddPortalContent
zope.interface.implements(
ISmsSendingGateway,
ISmsReceivingGateway)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -50,6 +50,9 @@ from erp5.component.module.SMSGatewayError import SMSGatewayError
from erp5.component.interface.ISmsSendingGateway import ISmsSendingGateway
from erp5.component.interface.ISmsReceivingGateway import ISmsReceivingGateway
@zope.interface.implementer(
ISmsSendingGateway,
ISmsReceivingGateway)
class EssendexGateway(XMLObject):
"""Base of SMS an Gateway. You can use push notification for delivered and new message notification."""
......@@ -60,10 +63,6 @@ class EssendexGateway(XMLObject):
add_permission = Permissions.AddPortalContent
zope.interface.implements(
ISmsSendingGateway,
ISmsReceivingGateway)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -48,6 +48,9 @@ from erp5.component.module.SMSGatewayError import SMSGatewayError
from erp5.component.interface.ISmsSendingGateway import ISmsSendingGateway
from erp5.component.interface.ISmsReceivingGateway import ISmsReceivingGateway
@zope.interface.implementer(
ISmsSendingGateway,
ISmsReceivingGateway)
class MobytGateway(XMLObject):
"""Mobyt SMS Gateway Implementation"""
......@@ -57,10 +60,6 @@ class MobytGateway(XMLObject):
add_permission = Permissions.AddPortalContent
zope.interface.implements(
ISmsSendingGateway,
ISmsReceivingGateway)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -32,6 +32,7 @@ from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.XMLObject import XMLObject
from erp5.component.interface.IDeliverySolver import IDeliverySolver
@zope.interface.implementer(IDeliverySolver,)
class FIFODeliverySolver(XMLObject):
"""
The FIFO solver reduces delivered quantity by reducing the quantity of
......@@ -54,9 +55,6 @@ class FIFODeliverySolver(XMLObject):
, PropertySheet.DeliverySolver
)
# Declarative interfaces
zope.interface.implements(IDeliverySolver,)
# IDeliverySolver Implementation
security.declareProtected(Permissions.AccessContentsInformation, 'getTotalQuantity')
def getTotalQuantity(self):
......
......@@ -38,6 +38,8 @@ from erp5.component.module.MovementCollectionDiff import _getPropertyAndCategory
from erp5.component.interface.ISolver import ISolver
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(ISolver,
IConfigurable,)
class ItemListSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
"""Target solver that split the prevision based on aggregated items.
......@@ -61,10 +63,6 @@ class ItemListSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
, PropertySheet.Arrow
, PropertySheet.TargetSolver
)
# Declarative interfaces
zope.interface.implements(ISolver,
IConfigurable,
)
def _solve(self, activate_kw=None):
"""This method create new movement based on difference of aggregate sets.
......
......@@ -32,6 +32,7 @@ from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.document.FIFODeliverySolver import FIFODeliverySolver
from erp5.component.interface.IDeliverySolver import IDeliverySolver
@zope.interface.implementer(IDeliverySolver,)
class LIFODeliverySolver(FIFODeliverySolver):
"""
The LIFO solver reduces delivered quantity by reducing the quantity of
......@@ -54,9 +55,6 @@ class LIFODeliverySolver(FIFODeliverySolver):
, PropertySheet.DeliverySolver
)
# Declarative interfaces
zope.interface.implements(IDeliverySolver,)
def _getSimulationMovementList(self):
"""
Returns a list of simulation movement sorted from the first order.
......
......@@ -32,6 +32,7 @@ from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.document.FIFODeliverySolver import FIFODeliverySolver
from erp5.component.interface.IDeliverySolver import IDeliverySolver
@zope.interface.implementer(IDeliverySolver,)
class MinimisePriceDeliverySolver(FIFODeliverySolver):
"""
The Minimise Price deliver solver distributes quantity in order to minimise
......@@ -54,9 +55,6 @@ class MinimisePriceDeliverySolver(FIFODeliverySolver):
, PropertySheet.DeliverySolver
)
# Declarative interfaces
zope.interface.implements(IDeliverySolver,)
# IDeliverySolver Implementation
security.declareProtected(Permissions.ModifyPortalContent, 'setTotalQuantity')
def setTotalQuantity(self, new_quantity, activate_kw=None):
......
......@@ -37,6 +37,8 @@ from Products.ERP5Type.Message import translateString
from erp5.component.interface.ISolver import ISolver
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(ISolver,
IConfigurable,)
class MovementSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
meta_type = 'ERP5 Movement Split Solver'
portal_type = 'Movement Split Solver'
......@@ -55,10 +57,6 @@ class MovementSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
, PropertySheet.Arrow
, PropertySheet.TargetSolver
)
# Declarative interfaces
zope.interface.implements(ISolver,
IConfigurable,
)
def _solve(self, activate_kw=None):
"""
......
......@@ -34,6 +34,8 @@ from erp5.component.document.QuantitySplitSolver import QuantitySplitSolver
from erp5.component.interface.ISolver import ISolver
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(ISolver,
IConfigurable,)
class QuantitySplitMoveSolver(QuantitySplitSolver):
"""Target solver that split the prevision based on quantity.
......@@ -52,11 +54,6 @@ class QuantitySplitMoveSolver(QuantitySplitSolver):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(ISolver,
IConfigurable,
)
# ISolver Implementation
def _solve(self, activate_kw=None):
"""
......
......@@ -39,6 +39,8 @@ from erp5.component.module.MovementCollectionDiff import _getPropertyAndCategory
from erp5.component.interface.ISolver import ISolver
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(ISolver,
IConfigurable,)
class QuantitySplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
"""Target solver that split the prevision based on quantity.
......@@ -62,10 +64,6 @@ class QuantitySplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
, PropertySheet.Arrow
, PropertySheet.TargetSolver
)
# Declarative interfaces
zope.interface.implements(ISolver,
IConfigurable,
)
# ISolver Implementation
def _solve(self, activate_kw=None):
......
......@@ -34,6 +34,7 @@ from Products.ERP5Type.XMLObject import XMLObject
from erp5.component.mixin.ConfigurableMixin import ConfigurableMixin
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(IConfigurable,)
class SolverDecision(ConfigurableMixin, XMLObject):
"""Solver Decision
......@@ -71,15 +72,6 @@ class SolverDecision(ConfigurableMixin, XMLObject):
, PropertySheet.SolverSelection
, PropertySheet.Configurable
)
# XXX-JPS missing property sheet or categories to specify
# (default)delivery or solver_application or order -> the object of application of resolution
# ie. a specified delivery, a specified delivery line, etc.
# (delivery should be enough)
# all property sheets of target solvers (with their configuration properties)
# Declarative interfaces
zope.interface.implements(IConfigurable,
)
security.declareProtected(Permissions.AccessContentsInformation,
'getDefaultConfigurationPropertyDict')
......
......@@ -37,6 +37,8 @@ from erp5.component.interface.IMovement import IMovement
from erp5.component.interface.ISolver import ISolver
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(ISolver,
IConfigurable,)
class SolverProcess(XMLObject, ActiveProcess):
"""
Solver Process class represents the decision of the user
......@@ -74,11 +76,6 @@ class SolverProcess(XMLObject, ActiveProcess):
, PropertySheet.DublinCore
)
# Declarative interfaces
zope.interface.implements(ISolver,
IConfigurable,
)
# Implementation
security.declareProtected(Permissions.ModifyPortalContent, 'buildTargetSolverList')
@UnrestrictedMethod
......
......@@ -32,6 +32,7 @@ from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.document.AcceptSolver import AcceptSolver
from erp5.component.interface.ISolver import ISolver
@zope.interface.implementer(ISolver,)
class TradeModelSolver(AcceptSolver):
"""Solve Divergences on Invoice Lines, and dependant trade model lines.
......@@ -55,9 +56,6 @@ class TradeModelSolver(AcceptSolver):
, PropertySheet.TargetSolver
)
# Declarative interfaces
zope.interface.implements(ISolver,)
def _solve(self, activate_kw=None):
"""
Adopt new values to simulation movements, with keeping the original
......
......@@ -33,6 +33,7 @@ from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.document.AcceptSolver import AcceptSolver
from erp5.component.interface.ISolver import ISolver
@zope.interface.implementer(ISolver,)
class UnifySolver(AcceptSolver):
"""
"""
......@@ -53,9 +54,6 @@ class UnifySolver(AcceptSolver):
, PropertySheet.TargetSolver
)
# Declarative interfaces
zope.interface.implements(ISolver,)
def _getActualTargetMovement(self, movement, solved_property):
# The movement might not be the right place to correct the
# divergence, if the property is obtained by direct Acquisition.
......
......@@ -34,6 +34,7 @@ from Products.ERP5Type import Permissions
from Products.ERP5Type.Globals import PersistentMapping
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(IConfigurable,)
class ConfigurableMixin:
"""
This class provides a generic implementation of IConfigurable.
......@@ -47,9 +48,6 @@ class ConfigurableMixin:
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IConfigurable,)
security.declareProtected(Permissions.AccessContentsInformation,
'getConfigurationProperty')
def getConfigurationProperty(self, key, default=None):
......
......@@ -37,6 +37,8 @@ from erp5.component.mixin.ConfigurableMixin import ConfigurableMixin
from erp5.component.interface.ISolver import ISolver
from erp5.component.interface.IConfigurable import IConfigurable
@zope.interface.implementer(ISolver,
IConfigurable,)
class ConfigurablePropertySolverMixin(SolverMixin,
ConfigurableMixin,
XMLObject):
......@@ -53,9 +55,6 @@ class ConfigurablePropertySolverMixin(SolverMixin,
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
zope.interface.implements(ISolver,
IConfigurable,)
# Default Properties
property_sheets = ( PropertySheet.Base
, PropertySheet.XMLObject
......
......@@ -36,6 +36,7 @@ from Products.PythonScripts.standard import html_quote as h
from zLOG import LOG, WARNING
from erp5.component.interface.IEquivalenceTester import IEquivalenceTester
@zope.interface.implementer(IEquivalenceTester,)
class EquivalenceTesterMixin:
"""
Provides generic methods and helper methods to implement
......@@ -45,9 +46,6 @@ class EquivalenceTesterMixin:
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IEquivalenceTester,)
# Implementation of IEquivalenceTester
security.declarePrivate('testEquivalence')
def testEquivalence(self, simulation_movement):
......
......@@ -34,6 +34,7 @@ from Products.ERP5Type import Permissions
from Products.ERP5Type.UnrestrictedMethod import super_user
from erp5.component.interface.ISolver import ISolver
@zope.interface.implementer(ISolver,)
class SolverMixin(object):
"""
Provides generic methods and helper methods to implement ISolver.
......@@ -42,9 +43,6 @@ class SolverMixin(object):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(ISolver,)
workflow_list = ()
def _solve(self, activate_kw=None):
raise NotImplementedError
......
......@@ -31,6 +31,7 @@ from Products.PythonScripts.Utility import allow_class
from Products.ERP5Type.ObjectMessage import ObjectMessage
from erp5.component.interface.IDivergenceMessage import IDivergenceMessage
@zope.interface.implementer(IDivergenceMessage,)
class DivergenceMessage(ObjectMessage):
"""
Divergence Message is used for notifications to user about divergences.
......@@ -59,8 +60,6 @@ class DivergenceMessage(ObjectMessage):
User understandable message about divergence
"""
zope.interface.implements(IDivergenceMessage,)
def getMovementGroup(self):
"""Returns movement group of a builder which was responsible for generating tested_property"""
divergence_scope = getattr(self, 'divergence_scope', None)
......
......@@ -37,6 +37,7 @@ from Products.ERP5Type.Tool.BaseTool import BaseTool
from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
from erp5.component.interface.IDivergenceController import IDivergenceController
@zope.interface.implementer(IDivergenceController,)
class SolverProcessTool(BaseTool):
""" Container for solver processes.
"""
......@@ -49,9 +50,6 @@ class SolverProcessTool(BaseTool):
# Declarative Security
security = ClassSecurityInfo()
# Declarative interfaces
zope.interface.implements(IDivergenceController, )
# IDivergenceController implementation
security.declareProtected(Permissions.AccessContentsInformation,
'isDivergent')
......
......@@ -46,7 +46,7 @@ parser = etree.XMLParser(remove_blank_text=True)
from xml_marshaller.xml_marshaller import load_tree as unmarshaller
from xupdate_processor import xuproc
from base64 import standard_b64decode
from zope.interface import implements
from zope.interface import implementer
from copy import deepcopy
import logging
......@@ -91,6 +91,7 @@ WORKFLOW_ACTION_NOT_ADDABLE = 0
WORKFLOW_ACTION_ADDABLE = 1
WORKFLOW_ACTION_INSERTABLE = 2
@implementer( IConduit,)
class ERP5Conduit(XMLSyncUtilsMixin):
"""
A conduit is a piece of code in charge of
......@@ -128,9 +129,6 @@ class ERP5Conduit(XMLSyncUtilsMixin):
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
"""
# Declarative interfaces
implements( IConduit, )
# Declarative security
security = ClassSecurityInfo()
......
......@@ -39,6 +39,8 @@ from erp5.component.interface.IBusinessLink import IBusinessLink
import zope.interface
@zope.interface.implementer(IBusinessLink,
interfaces.IPredicate,)
class BusinessLink(Path, Predicate):
"""
The BusinessLink class embeds all information related to
......@@ -93,11 +95,6 @@ class BusinessLink(Path, Predicate):
, PropertySheet.PaymentCondition # XXX-JPS must be renames some day
)
# Declarative interfaces
zope.interface.implements(IBusinessLink,
interfaces.IPredicate,
)
# Helper Methods
def _getExplanationRelatedSimulationMovementValueList(self, explanation):
explanation_cache = _getExplanationCache(explanation)
......
......@@ -37,6 +37,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class DeliveryRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
"""
Delivery Rule object make sure an Delivery in the simulation
......@@ -52,11 +55,6 @@ class DeliveryRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -37,6 +37,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class DeliverySimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
"""
Delivery Rule object make sure an Delivery in the simulation
......@@ -52,11 +55,6 @@ class DeliverySimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -37,6 +37,9 @@ from erp5.component.interface.IRule import IRule
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class OrderRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
"""
Order Rule object make sure an Order in the simulation
......@@ -52,11 +55,6 @@ class OrderRootSimulationRule(RuleMixin, MovementCollectionUpdaterMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Default Properties
property_sheets = (
PropertySheet.Base,
......
......@@ -44,6 +44,9 @@ from erp5.component.interface.IMovementCollectionUpdater import IMovementCollect
from erp5.component.interface.IAmountGenerator import IAmountGenerator
from erp5.component.interface.IMovementGenerator import IMovementGenerator
@zope.interface.implementer(IAmountGenerator,
IMovementGenerator,
IMovementCollectionUpdater,)
class TradeCondition(MappedValue, AmountGeneratorMixin, VariatedMixin):
"""
Trade Conditions are used to store the conditions (payment, logistic,...)
......@@ -75,10 +78,6 @@ class TradeCondition(MappedValue, AmountGeneratorMixin, VariatedMixin):
# if not present. Cleaning required.
)
zope.interface.implements(IAmountGenerator,
IMovementGenerator,
IMovementCollectionUpdater,)
# Mapped Value implementation
# Transformation itself provides no properties or categories
......
......@@ -34,6 +34,8 @@ from erp5.component.interface.IAmountGenerator import IAmountGenerator
import zope.interface
@zope.interface.implementer(
IAmountGenerator)
class TradeModelCell(TradeModelLine):
"""Trade Model Line
"""
......@@ -45,12 +47,6 @@ class TradeModelCell(TradeModelLine):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
# interfaces.IVariated as soon as interfaces.IVariated will be zope3
zope.interface.implements(
IAmountGenerator
)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.SimpleItem
......
......@@ -39,6 +39,10 @@ from erp5.component.interface.IArrowBase import IArrowBase
import zope.interface
@zope.interface.implementer(interfaces.ICategoryAccessProvider,
IArrowBase,
ITradeModelPath,
interfaces.IPredicate,)
class TradeModelPath(Path):
"""
The TradeModelPath class embeds all information related to
......@@ -93,13 +97,6 @@ class TradeModelPath(Path):
, PropertySheet.PaymentCondition # XXX-JPS must be renames some day
)
# Declarative interfaces
zope.interface.implements(interfaces.ICategoryAccessProvider,
IArrowBase,
ITradeModelPath,
interfaces.IPredicate,
)
# Helper Methods
def _getExplanationRelatedSimulationMovementValueList(self, explanation):
explanation_cache = _getExplanationCache(explanation)
......
# -*- coding: utf-8 -*-
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from erp5.component.module.TransformLib import DocumentConversionServerTransform
@implementer(ITransform)
class TransformHtmlToPdf(DocumentConversionServerTransform):
"""
Transforms HTML to PDF through document conversion server
"""
implements(ITransform)
__name__ = 'html_to_pdf'
inputs = ('text/html',)
......
......@@ -16,6 +16,7 @@ class WechatException(Exception):
super(WechatException, self).__init__(msg)
from erp5.component.interface.IPaymentService import IPaymentService
@zope.interface.implementer(IPaymentService)
class WechatService(XMLObject):
meta_type = 'Wechat Service'
portal_type = 'Wechat Service'
......@@ -23,8 +24,6 @@ class WechatService(XMLObject):
ORDER_URL = "/pay/unifiedorder" # Wechat unified order API
QUERY_URL = "/pay/orderquery"
zope.interface.implements(IPaymentService)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -34,11 +34,11 @@ from Products.ERP5Type.Base import Base
from Products.CMFCore.utils import getToolByName
from zLOG import LOG, INFO
@zope.interface.implementer(interfaces.IIdGenerator)
class IdGenerator(Base):
"""
Generator of Ids
"""
zope.interface.implements(interfaces.IIdGenerator)
# CMF Type Definition
meta_type = 'ERP5 Id Generator'
portal_type = 'Id Generator'
......
......@@ -32,6 +32,7 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5Type.XMLObject import XMLObject
@zope.interface.implementer(interfaces.INode)
class Node(XMLObject):
"""Node base class.
......@@ -41,8 +42,6 @@ class Node(XMLObject):
portal_type = 'Node'
add_permission = Permissions.AddPortalContent
zope.interface.implements(interfaces.INode)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -37,12 +37,12 @@ from MySQLdb.constants.ER import NO_SUCH_TABLE
from zLOG import LOG, INFO
from BTrees.OOBTree import OOBTree
@zope.interface.implementer(interfaces.IIdGenerator)
class SQLNonContinuousIncreasingIdGenerator(IdGenerator):
"""
Generate some ids with mysql storage and also zodb is enabled
by the checkbox : StoredInZodb
"""
zope.interface.implements(interfaces.IIdGenerator)
# CMF Type Definition
meta_type = 'ERP5 SQL Non Continous Increasing Id Generator'
portal_type = 'SQL Non Continous Increasing Id Generator'
......
......@@ -34,11 +34,11 @@ from BTrees.OOBTree import OOBTree
from zLOG import LOG, INFO
@zope.interface.implementer(interfaces.IIdGenerator)
class ZODBContinuousIncreasingIdGenerator(IdGenerator):
"""
Create some Ids with the zodb storage
"""
zope.interface.implements(interfaces.IIdGenerator)
# CMF Type Definition
meta_type = 'ERP5 ZODB Continous Increasing Id Generator'
portal_type = 'ZODB Continous Increasing Id Generator'
......
......@@ -42,11 +42,11 @@ from BTrees.Length import Length
_marker = object()
@zope.interface.implementer(interfaces.IIdTool)
class IdTool(BaseTool):
"""
This tools handles the generation of IDs.
"""
zope.interface.implements(interfaces.IIdTool)
id = 'portal_ids'
meta_type = 'ERP5 Id Tool'
portal_type = 'Id Tool'
......
......@@ -36,6 +36,7 @@ from Products.ERP5Type import Permissions, interfaces
from Products.ERP5Type.Tool.TypesTool import TypeProvider
from Products.ERP5Type.Message import translateString
@zope.interface.implementer(interfaces.IDeliverySolverFactory,)
class SolverTool(TypeProvider):
""" The SolverTool provides API to find out which solver can be applied in
which case and contains SolverProcess instances which are used to keep track
......@@ -51,9 +52,6 @@ class SolverTool(TypeProvider):
# Declarative Security
security = ClassSecurityInfo()
# Declarative interfaces
zope.interface.implements(interfaces.IDeliverySolverFactory,)
# IDeliverySolverFactory implementation
security.declareProtected(Permissions.AccessContentsInformation,
'newDeliverySolver')
......
......@@ -42,6 +42,7 @@ from zLOG import LOG, ERROR
from warnings import warn
@zope.interface.implementer(IAmount)
class Amount(Base, VariatedMixin):
"""
A mix-in class which provides some utilities
......@@ -58,9 +59,6 @@ class Amount(Base, VariatedMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IAmount)
property_sheets = ( PropertySheet.SimpleItem
, PropertySheet.Amount
, PropertySheet.Price
......
......@@ -35,6 +35,7 @@ from erp5.component.document.MappedValue import MappedValue
from erp5.component.mixin.AmountGeneratorMixin import AmountGeneratorMixin
from erp5.component.interface.IAmountGeneratorLine import IAmountGeneratorLine
@zope.interface.implementer(IAmountGeneratorLine)
class AmountGeneratorLine(MappedValue, XMLMatrix, Amount,
AmountGeneratorMixin):
"""Abstract class to represent amount transformation for movements"""
......@@ -45,9 +46,6 @@ class AmountGeneratorLine(MappedValue, XMLMatrix, Amount,
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IAmountGeneratorLine)
# Declarative properties
property_sheets = (PropertySheet.DublinCore,
PropertySheet.AmountGeneratorLine)
......
......@@ -46,6 +46,8 @@ from erp5.component.mixin.RuleMixin import RuleMixin
from erp5.component.interface.IExpandable import IExpandable
from erp5.component.interface.IMovementCollection import IMovementCollection
@zope.interface.implementer(IExpandable,
IMovementCollection)
class AppliedRule(XMLObject, ExplainableMixin):
"""
An applied rule holds a list of simulation movements.
......@@ -81,10 +83,6 @@ class AppliedRule(XMLObject, ExplainableMixin):
, PropertySheet.AppliedRule
)
# Declarative interfaces
zope.interface.implements(IExpandable,
IMovementCollection)
def tpValues(self) :
""" show the content in the left pane of the ZMI """
return self.objectValues()
......
......@@ -43,6 +43,8 @@ import zope.interface
_marker = object()
@zope.interface.implementer(IBusinessProcess,
IArrowBase)
class BusinessProcess(Path, XMLObject):
"""The BusinessProcess class is a container class which is used
to describe business processes in the area of trade, payroll
......@@ -117,10 +119,6 @@ class BusinessProcess(Path, XMLObject):
, PropertySheet.BusinessProcess
)
# Declarative interfaces
zope.interface.implements(IBusinessProcess,
IArrowBase)
# Cache used by composition mixin (as a composed document always inherit
# from BusinessProcess. The cache avoids memory leak, and has been moved
# here to be automatically flushed when BusinessProcess class is reseted
......
......@@ -47,6 +47,9 @@ from erp5.component.interface.IMovementCollection import IMovementCollection
from erp5.component.interface.IDivergenceController import IDivergenceController
from erp5.component.interface.IAmountGenerator import IAmountGenerator
@zope.interface.implementer(IAmountGenerator,
IDivergenceController,
IMovementCollection)
class Delivery(XMLObject, ImmobilisationDelivery, SimulableMixin,
CompositionMixin, AmountGeneratorMixin):
"""
......@@ -75,11 +78,6 @@ class Delivery(XMLObject, ImmobilisationDelivery, SimulableMixin,
, PropertySheet.Price
)
# Declarative interfaces
zope.interface.implements(IAmountGenerator,
IDivergenceController,
IMovementCollection)
security.declareProtected(Permissions.AccessContentsInformation, 'isAccountable')
def isAccountable(self):
"""
......
......@@ -39,6 +39,7 @@ from erp5.component.document.MappedValue import MappedValue
from erp5.component.document.ImmobilisationMovement import ImmobilisationMovement
from erp5.component.interface.IDivergenceController import IDivergenceController
@zope.interface.implementer(IDivergenceController,)
class DeliveryCell(MappedValue, Movement, ImmobilisationMovement):
"""
A DeliveryCell allows to define specific quantities
......@@ -65,9 +66,6 @@ class DeliveryCell(MappedValue, Movement, ImmobilisationMovement):
, PropertySheet.ItemAggregation
)
# Declarative interfaces
zope.interface.implements(IDivergenceController,)
security.declareProtected(Permissions.AccessContentsInformation, 'isPredicate')
def isPredicate(self):
"""Movements are not predicates.
......
......@@ -42,6 +42,7 @@ edit_args_list = getargspec(Base._edit).args
from erp5.component.interface.IDivergenceController import IDivergenceController
@zope.interface.implementer(IDivergenceController,)
class DeliveryLine(Movement, XMLMatrix, ImmobilisationMovement):
"""
A DeliveryLine object allows to implement lines in
......@@ -71,9 +72,6 @@ class DeliveryLine(Movement, XMLMatrix, ImmobilisationMovement):
, PropertySheet.SortIndex
)
# Declarative interfaces
zope.interface.implements(IDivergenceController,)
# Multiple inheritance definition
updateRelatedContent = XMLMatrix.updateRelatedContent
......
......@@ -219,6 +219,16 @@ from erp5.component.interface.ICrawlable import ICrawlable
from erp5.component.interface.IDocument import IDocument
from erp5.component.interface.IDiscoverable import IDiscoverable
from erp5.component.interface.IUrl import IUrl
@zope.interface.implementer(IConvertable,
ITextConvertable,
IHtmlConvertable,
ICachedConvertable,
IVersionable,
IDownloadable,
ICrawlable,
IDocument,
IDiscoverable,
IUrl,)
class Document(DocumentExtensibleTraversableMixin, XMLObject, UrlMixin,
CachedConvertableMixin, CrawlableMixin, TextConvertableMixin,
DownloadableMixin, DocumentMixin, DiscoverableMixin):
......@@ -391,18 +401,6 @@ class Document(DocumentExtensibleTraversableMixin, XMLObject, UrlMixin,
isDocument = ConstantGetter('isDocument', value=True)
__dav_collection__=0
zope.interface.implements(IConvertable,
ITextConvertable,
IHtmlConvertable,
ICachedConvertable,
IVersionable,
IDownloadable,
ICrawlable,
IDocument,
IDiscoverable,
IUrl,
)
# Regular expressions
# XXX those regex are weak, fast but not reliable.
# this is a valid url than regex are not able to parse
......
......@@ -53,6 +53,7 @@ NEGLIGEABLE_PRICE = 10e-8
from Products.ERP5Type.Errors import ImmobilisationValidityError
from Products.ERP5Type.Errors import ImmobilisationCalculationError
@zope.interface.implementer(IImmobilisationItem)
class ImmobilisableItem(Item, Amount):
"""
An Immobilisable Item is an Item which can be immobilised
......@@ -79,8 +80,6 @@ class ImmobilisableItem(Item, Amount):
, PropertySheet.Amortisation
)
zope.interface.implements(IImmobilisationItem)
# IExpandableItem interface implementation
def getSimulationMovementSimulationState(self, simulation_movement):
"""Returns the simulation state for this simulation movement.
......
......@@ -36,6 +36,7 @@ from erp5.component.interface.IMappedValue import IMappedValue
TRANSFORMATION_FIX = True
_MARKER = object()
@zope.interface.implementer(IMappedValue,)
class MappedValue(Predicate):
"""
A MappedValue allows to associate a value to a predicate
......@@ -55,9 +56,6 @@ class MappedValue(Predicate):
, PropertySheet.Predicate
, PropertySheet.MappedValue
)
# Declarative interfaces
zope.interface.implements(IMappedValue,
)
security.declareProtected(Permissions.AccessContentsInformation,
'getMappedValueBaseCategoryList')
......
......@@ -60,6 +60,9 @@ def getExchangeRate(currency_value, section_currency, date):
price_currency=section_currency
))
@zope.interface.implementer(IAmountGenerator,
interfaces.IVariated,
IMovement)
class Movement(XMLObject, Amount, CompositionMixin, AmountGeneratorMixin):
"""
The Movement class allows to implement ERP5 universal accounting model.
......@@ -203,11 +206,6 @@ class Movement(XMLObject, Amount, CompositionMixin, AmountGeneratorMixin):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IAmountGenerator,
interfaces.IVariated,
IMovement)
# Declarative properties
property_sheets = ( PropertySheet.Base
, PropertySheet.SimpleItem
......
......@@ -38,6 +38,7 @@ from erp5.component.document.Movement import Movement
from erp5.component.interface.IMovement import IMovement
from Products.ERP5Type.XMLMatrix import XMLMatrix
@zope.interface.implementer(interfaces.INode, IMovement)
class Project(Node, Movement, XMLMatrix):
"""
Project is a class which describes a typical project in consulting firm.
......@@ -55,8 +56,6 @@ class Project(Node, Movement, XMLMatrix):
isDelivery = ConstantGetter('isDelivery', value=True)
isAccountable = ConstantGetter('isAccountable', value=False)
zope.interface.implements(interfaces.INode, IMovement)
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -61,6 +61,8 @@ parent_to_movement_simulation_state = {
'invoiced' : 'planned',
}
@zope.interface.implementer(IExpandable,
interfaces.IPropertyRecordable)
class SimulationMovement(PropertyRecordableMixin, Movement, ExplainableMixin):
"""
Simulation movements belong to a simulation workflow which includes
......@@ -118,10 +120,6 @@ class SimulationMovement(PropertyRecordableMixin, Movement, ExplainableMixin):
, PropertySheet.Reference
)
# Declarative interfaces
zope.interface.implements(IExpandable,
interfaces.IPropertyRecordable)
def tpValues(self) :
""" show the content in the left pane of the ZMI """
return self.objectValues()
......
......@@ -239,6 +239,7 @@ class BaseAmountResolver(BaseAmountDict):
return 0
@zope.interface.implementer(IAmountGenerator,)
class AmountGeneratorMixin:
"""
This class provides a generic implementation of IAmountGenerator.
......@@ -255,9 +256,6 @@ class AmountGeneratorMixin:
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IAmountGenerator,)
security.declareProtected(Permissions.AccessContentsInformation,
'getGeneratedAmountList')
def getGeneratedAmountList(self, amount_list=None, rounding=False,
......
......@@ -32,6 +32,7 @@ from Products.ERP5Type.Globals import InitializeClass
from Products.ERP5Type import Permissions
from erp5.component.interface.IExplainable import IExplainable
@zope.interface.implementer(IExplainable,)
class ExplainableMixin:
"""A mixin which provides common implementation of
IExplainable to simulation movements and applied rules
......@@ -44,9 +45,6 @@ class ExplainableMixin:
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IExplainable,)
# IExplainable implementation
security.declareProtected(Permissions.AccessContentsInformation,'getExplanationValueList')
def getExplanationValueList(self):
......
......@@ -35,6 +35,7 @@ from erp5.component.module.MovementCollectionDiff import (
from erp5.component.mixin.RuleMixin import _compare
from erp5.component.interface.IMovementCollectionUpdater import IMovementCollectionUpdater
@zope.interface.implementer(IMovementCollectionUpdater,)
class MovementCollectionUpdaterMixin:
"""Movement Collection Updater.
......@@ -49,9 +50,6 @@ class MovementCollectionUpdaterMixin:
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IMovementCollectionUpdater,)
# Implementation of IMovementCollectionUpdater
security.declareProtected(Permissions.AccessContentsInformation,
'getMovementCollectionDiff')
......
......@@ -42,6 +42,9 @@ def _compare(tester_list, prevision_movement, decision_movement):
return False
return True
@zope.interface.implementer(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
class RuleMixin(Predicate):
"""
Provides generic methods and helper methods to implement
......@@ -51,11 +54,6 @@ class RuleMixin(Predicate):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(IRule,
IDivergenceController,
IMovementCollectionUpdater,)
# Portal Type of created children
movement_type = 'Simulation Movement'
......
......@@ -32,6 +32,7 @@ import zope.interface
from AccessControl import allow_class
from erp5.component.interface.IAmountList import IAmountList
@zope.interface.implementer(IAmountList)
class GeneratedAmountList(list):
"""
Temporary object needed to aggregate Amount value
......@@ -44,7 +45,6 @@ class GeneratedAmountList(list):
2. detailed information on each movement with split(), which would be
equivalent to call getGeneratedAmountList() on each movement
"""
zope.interface.implements(IAmountList)
def getTotalPrice(self):
"""
......
......@@ -30,6 +30,7 @@ import zope.interface
from Products.ERP5Type.Accessor.TypeDefinition import list_types
from erp5.component.interface.IMovementCollectionDiff import IMovementCollectionDiff
@zope.interface.implementer(IMovementCollectionDiff,)
class MovementCollectionDiff(object):
"""
Documents which implement IMovementCollectionDiff
......@@ -38,8 +39,6 @@ class MovementCollectionDiff(object):
They are usually generated and used by
IMovementCollectionUpdater.
"""
# Declarative interfaces
zope.interface.implements(IMovementCollectionDiff,)
def __init__(self):
self._deletable_movement_list = []
......
......@@ -41,6 +41,7 @@ ROUNDING_OPTION_DICT = {'ROUND_DOWN':ROUND_DOWN,
'ROUND_HALF_EVEN':ROUND_HALF_EVEN,
'ROUND_HALF_UP':ROUND_HALF_UP}
@zope.interface.implementer(IRoundingTool)
class RoundingTool(BaseTool):
"""Rounding Tool"""
id = 'portal_roundings'
......@@ -48,8 +49,6 @@ class RoundingTool(BaseTool):
meta_type = 'ERP5 Rounding Tool'
portal_type = 'Rounding Tool'
zope.interface.implements(IRoundingTool)
security = ClassSecurityInfo()
security.declarePublic('findRoundingModelValueList')
......
......@@ -34,6 +34,7 @@ from Products.ERP5Type import Permissions, interfaces
from Products.ERP5Type.Globals import PersistentMapping
from Products.ERP5Type.Accessor.TypeDefinition import list_types
@zope.interface.implementer(interfaces.IPropertyRecordable,)
class PropertyRecordableMixin:
"""
This class provides a generic implementation of IPropertyRecordable.
......@@ -52,9 +53,6 @@ class PropertyRecordableMixin:
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(interfaces.IPropertyRecordable,)
security.declareProtected(Permissions.ModifyPortalContent, 'recordProperty')
def recordProperty(self, id):
"""
......
......@@ -35,6 +35,8 @@ from Products.ERP5Type import interfaces, Permissions, PropertySheet
import zope.interface
@zope.interface.implementer(interfaces.IVariated,
interfaces.IVariationRange)
class VariatedMixin:
"""
Mix-in class for all classes which implement the Variated Interface.
......@@ -54,10 +56,6 @@ class VariatedMixin:
# Declarative security
security = ClassSecurityInfo()
# Declarative interfaces
zope.interface.implements(interfaces.IVariated,
interfaces.IVariationRange)
isRADContent = 1 # for 'property_sheets'
property_sheets = (PropertySheet.VariationRange, )
......
......@@ -42,7 +42,7 @@ import random
from hashlib import md5
import time
from zope.interface import Interface
from zope.interface import implements
from zope.interface import implementer
class ICaptchaProvider(Interface):
"""The CaptchaProvider interface provides a captcha generator."""
......@@ -57,10 +57,9 @@ class ICaptchaProvider(Interface):
def getExtraPropertyList(self):
"""Returns the list of additionnary properties that are configurable"""
@implementer(ICaptchaProvider)
class CaptchasDotNetProvider(object):
implements(ICaptchaProvider)
def getImageGenerator (self, field):
captchas_client = field.get_value("captcha_dot_net_client") or "demo"
captchas_secret = field.get_value("captcha_dot_net_secret") or "secret"
......@@ -107,10 +106,9 @@ class CaptchasDotNetProvider(object):
TALESField(**self._dynamic_property_list[1]),
TALESField(**self._dynamic_property_list[2])]
@implementer(ICaptchaProvider)
class NumericCaptchaProvider(object):
implements(ICaptchaProvider)
# No division because it would create decimal numbers
operator_set = {"+": "plus", "-": "minus", "*": "times"}
......
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from .oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
from .oood_commandtransform import includeMetaContentType
from zLOG import LOG
......@@ -10,11 +10,10 @@ from lxml.etree import Element, SubElement
html_parser = etree.HTMLParser(remove_blank_text=True, encoding='utf-8')
@implementer(itransform)
class HTMLToOdt:
"""Transforms HTML to odt by using oood"""
implements(itransform)
__name__ = 'html_to_odt'
inputs = ('text/html',)
output = 'application/vnd.oasis.opendocument.text'
......
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from .oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
from zLOG import LOG
@implementer(itransform)
class OdtToDoc:
"""Transforms ODT to Doc by using oood"""
implements(itransform)
__name__ = 'odt_to_doc'
inputs = ('application/vnd.oasis.opendocument.text',)
output = 'application/msword'
......
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from .oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
from zLOG import LOG
@implementer(itransform)
class OdtToPdf:
"""Transforms ODT to PDF by using oood"""
implements(itransform)
__name__ = 'odt_to_pdf'
inputs = ('application/vnd.oasis.opendocument.text',)
output = 'application/pdf'
......
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from Products.PortalTransforms.interfaces import itransform
from zope.interface import implements
from zope.interface import implementer
from .oood_commandtransform import OOOdCommandTransform, OOoDocumentDataStream
from zLOG import LOG
from Products.ERP5OOo.OOoUtils import OOoBuilder
import re
@implementer(itransform)
class OdtToXml:
"""Transforms ODT to Doc by using oood"""
implements(itransform)
__name__ = 'odt_to_xml'
inputs = ('application/vnd.oasis.opendocument.text',)
output = 'text/xml'
......
......@@ -3,7 +3,7 @@ from Products.PortalTransforms.libtransforms.commandtransform import commandtran
from Products.PortalTransforms.interfaces import idatastream
from erp5.component.document.Document import ConversionError
from Acquisition import aq_base
from zope.interface import implements
from zope.interface import implementer
from OFS.Image import Image as OFSImage
from zLOG import LOG
......@@ -35,9 +35,9 @@ def includeMetaContentType(html_node):
CLEAN_RELATIVE_PATH = re.compile('^../')
@implementer(idatastream)
class OOoDocumentDataStream:
"""Handle OOoDocument in Portal Transforms"""
implements(idatastream)
def setData(self, value):
"""set the main"""
......
......@@ -716,6 +716,8 @@ def initializePortalTypeDynamicWorkflowMethods(ptype_klass, portal_workflow):
else:
method.registerTransitionAlways(portal_type, wf_id, tr_id)
@zope.interface.implementer(interfaces.ICategoryAccessProvider,
interfaces.IValueAccessProvider,)
class Base(
ResponseHeaderGenerator,
CopyContainer,
......@@ -777,11 +779,6 @@ class Base(
# Declarative properties
property_sheets = ( PropertySheet.Base, )
# Declarative interfaces
zope.interface.implements(interfaces.ICategoryAccessProvider,
interfaces.IValueAccessProvider,
)
# We want to use a default property view
manage_main = manage_propertiesForm = DTMLFile( 'properties', _dtmldir )
manage_main._setName('manage_main')
......
......@@ -49,13 +49,11 @@ connection_pool = local()
_MARKER = []
@zope.interface.implementer(
interfaces.ICachePlugin)
class DistributedRamCache(BaseCache):
""" Memcached based cache plugin. """
zope.interface.implements(
interfaces.ICachePlugin
)
def __init__(self, uid, params={}):
self._servers = params.get('server', '')
self._expiration_time = params.get('expiration_time', 0)
......
......@@ -49,13 +49,11 @@ def calcPythonObjectMemorySize(i):
return 0
_MARKER = []
@zope.interface.implementer(
interfaces.ICachePlugin)
class RamCache(BaseCache):
""" RAM based cache plugin."""
zope.interface.implements(
interfaces.ICachePlugin
)
cache_expire_check_interval = 300
def __init__(self, uid, params={}):
......
......@@ -33,13 +33,12 @@ from Products.PythonScripts.Utility import allow_class
from Products.ERP5Type.ObjectMessage import ObjectMessage
from Products.ERP5Type import interfaces
@zope.interface.implementer( interfaces.IConsistencyMessage,)
class ConsistencyMessage(ObjectMessage):
"""
Consistency Message is used for notifications to user after checkConsistency.
"""
zope.interface.implements( interfaces.IConsistencyMessage, )
def __init__(self, constraint, object_relative_url='',
message='', mapping = {}, **kw):
"""
......
......@@ -31,14 +31,14 @@
from Products.CMFCore.Expression import Expression
from Products.ERP5Type.interfaces import IConstraint
from Products.ERP5Type.ConsistencyMessage import ConsistencyMessage
from zope.interface import implements
from zope.interface import implementer
@implementer( IConstraint,)
class Constraint:
"""
Default Constraint implementation
"""
__allow_access_to_unprotected_subobjects__ = 1
implements( IConstraint, )
_message_id_list = []
......
......@@ -146,12 +146,11 @@ class ActionInformation(XMLObject):
permission_list=self.getActionPermissionList())
@zope.interface.implementer(interfaces.IAction)
class CacheableAction(object):
"""The purpose of this class is to provide a cacheable instance having
an enough information of Action Information document."""
zope.interface.implements(interfaces.IAction)
test_permission = None
def __init__(self, **kw):
......
......@@ -37,6 +37,7 @@ import zope.interface
import re
from Products.ERP5Type.interfaces.component import IComponent
@zope.interface.implementer(IComponent)
class DocumentComponent(ModuleComponent):
"""
ZODB Component for Documents in bt5 only for now (which used to be installed
......@@ -46,8 +47,6 @@ class DocumentComponent(ModuleComponent):
meta_type = 'ERP5 Document Component'
portal_type = 'Document Component'
zope.interface.implements(IComponent)
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -35,6 +35,7 @@ from Products.ERP5Type import Permissions
import zope.interface
from Products.ERP5Type.interfaces.component import IComponent
@zope.interface.implementer(IComponent)
class ExtensionComponent(ModuleComponent):
"""
ZODB Component for Extensions previously defined in the bt5 and installed in
......@@ -43,8 +44,6 @@ class ExtensionComponent(ModuleComponent):
meta_type = 'ERP5 Extension Component'
portal_type = 'Extension Component'
zope.interface.implements(IComponent)
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -35,6 +35,7 @@ from Products.ERP5Type import Permissions
import zope.interface
from Products.ERP5Type.interfaces.component import IComponent
@zope.interface.implementer(IComponent)
class ModuleComponent(ComponentMixin, TextContentHistoryMixin):
"""
ZODB Component for Modules, eg non-Documents from Products, and the base
......@@ -43,8 +44,6 @@ class ModuleComponent(ComponentMixin, TextContentHistoryMixin):
meta_type = 'ERP5 Module Component'
portal_type = 'Module Component'
zope.interface.implements(IComponent)
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -46,6 +46,7 @@ from Products.ERP5Type.Globals import PersistentMapping
from Products.ERP5Type.UnrestrictedMethod import unrestricted_apply
from Products.CMFCore.Expression import Expression
@zope.interface.implementer( interfaces.IPredicate,)
class Predicate(XMLObject):
"""
A Predicate object defines a list of criterions
......@@ -82,9 +83,6 @@ class Predicate(XMLObject):
, PropertySheet.SortIndex
)
# Declarative interfaces
zope.interface.implements( interfaces.IPredicate, )
security.declareProtected( Permissions.AccessContentsInformation, 'test' )
def test(self, context, tested_base_category_list=None,
strict_membership=0, isMemberOf=None, **kw):
......
......@@ -42,6 +42,7 @@ from Products.ERP5Type.Permissions import AccessContentsInformation
from Products.ERP5Type.XMLObject import XMLObject
@zope.interface.implementer(interfaces.ILocalRoleGenerator)
class RoleInformation(XMLObject):
""" Represent a role definition.
......@@ -55,8 +56,6 @@ class RoleInformation(XMLObject):
security = ClassSecurityInfo()
security.declareObjectProtected(AccessContentsInformation)
zope.interface.implements(interfaces.ILocalRoleGenerator)
# Declarative properties
property_sheets = ( PropertySheet.CategoryCore
, PropertySheet.DublinCore
......
......@@ -35,6 +35,7 @@ from Products.ERP5Type import Permissions
import zope.interface
from Products.ERP5Type.interfaces.component import IComponent
@zope.interface.implementer(IComponent)
class TestComponent(ModuleComponent):
"""
ZODB Component for Live Tests only (previously defined in the bt5 and
......@@ -44,8 +45,6 @@ class TestComponent(ModuleComponent):
meta_type = 'ERP5 Test Component'
portal_type = 'Test Component'
zope.interface.implements(IComponent)
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -39,6 +39,7 @@ from Products.ERP5Type.interfaces.component import IComponent
from Products.CMFCore import utils
@zope.interface.implementer(IComponent)
class ToolComponent(DocumentComponent):
"""
ZODB Component for Tools, used to be found on Products.XXX.Tool on FS
......@@ -46,8 +47,6 @@ class ToolComponent(DocumentComponent):
meta_type = 'ERP5 Tool Component'
portal_type = 'Tool Component'
zope.interface.implements(IComponent)
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
......
......@@ -50,14 +50,13 @@ from Products.ERP5Type.Accessor.Translation import TRANSLATION_DOMAIN_CONTENT_TR
from zLOG import LOG, ERROR
from Products.CMFCore.exceptions import zExceptions_Unauthorized
@zope.interface.implementer(interfaces.ILocalRoleAssignor)
class LocalRoleAssignorMixIn(object):
"""Mixin class used by type informations to compute and update local roles
"""
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
zope.interface.implements(interfaces.ILocalRoleAssignor)
security.declarePrivate('updateLocalRolesOnDocument')
@UnrestrictedMethod
def updateLocalRolesOnDocument(self, ob, user_name=None, reindex=True, activate_kw=()):
......@@ -195,6 +194,7 @@ class LocalRoleAssignorMixIn(object):
InitializeClass(LocalRoleAssignorMixIn)
@zope.interface.implementer(interfaces.IActionContainer)
class ERP5TypeInformation(XMLObject,
FactoryTypeInformation,
LocalRoleAssignorMixIn,
......@@ -222,8 +222,6 @@ class ERP5TypeInformation(XMLObject,
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
zope.interface.implements(interfaces.IActionContainer)
# Declarative properties
property_sheets = ( PropertySheet.BaseType, )
......
......@@ -31,13 +31,12 @@ import zope.interface
from Products.PythonScripts.Utility import allow_class
from Products.ERP5Type import interfaces
@zope.interface.implementer( interfaces.IObjectMessage,)
class ObjectMessage:
"""
Object Message is used for notifications to user.
"""
zope.interface.implements( interfaces.IObjectMessage, )
def __init__(self, object_relative_url='', message='', mapping={}, **kw):
self.object_relative_url = object_relative_url
......
......@@ -77,12 +77,13 @@ class ComposedObjectIds(object):
CMFCore_TypesTool = CMFCore_TypesToolModule.TypesTool
@zope.interface.implementer(ITypeProvider)
class TypeProvider(BaseTool, CMFCore_TypesTool):
"""Provides portal content types
"""
zope.interface.implements(ITypeProvider)
@zope.interface.implementer(ITypesTool)
class TypesTool(TypeProvider):
"""Provides a configurable registry of portal content types
"""
......@@ -92,8 +93,6 @@ class TypesTool(TypeProvider):
title = 'Portal Types'
allowed_types = ()
zope.interface.implements(ITypesTool)
# TODO: UI to configure this is missing
type_provider_list = ( )
......
......@@ -61,11 +61,11 @@ from transaction import get as get_transaction
import transaction.interfaces
import zope.interface
@zope.interface.implementer(transaction.interfaces.IDataManager)
class TransactionalVariable(dict):
"""TransactionalVariable provides a dict-like look-n-feel.
This class must not be used directly outside.
"""
zope.interface.implements(transaction.interfaces.IDataManager)
_unregistered = True
......@@ -112,10 +112,9 @@ def getTransactionalVariable():
return tv
@zope.interface.implementer(transaction.interfaces.IDataManager)
class TransactionalResource(object):
zope.interface.implements(transaction.interfaces.IDataManager)
def __init__(self, transaction_manager=None, **kw):
if transaction_manager is None:
from transaction import manager as transaction_manager
......
......@@ -31,7 +31,7 @@
from Products.ERP5Type.interfaces import IConstraint
from Products.ERP5Type.ConsistencyMessage import ConsistencyMessage
from zope.interface import implements
from zope.interface import implementer
from Products.ERP5Type.Core.Predicate import Predicate
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
......@@ -39,6 +39,7 @@ from Products.ERP5Type.Utils import UpperCase, createExpressionContext
from Products.CMFCore.Expression import Expression
from Products.ERP5Type.id_as_reference import IdAsReferenceMixin
@implementer( IConstraint,)
class ConstraintMixin(IdAsReferenceMixin('_constraint'), Predicate):
"""
Mixin Constraint implementation (only relevant for ZODB Property
......@@ -58,7 +59,6 @@ class ConstraintMixin(IdAsReferenceMixin('_constraint'), Predicate):
_message_id_tuple = ()
__allow_access_to_unprotected_subobjects__ = 1
implements( IConstraint, )
property_sheets = (PropertySheet.SimpleItem,
PropertySheet.Reference,
......
......@@ -43,6 +43,7 @@ from Products.ERP5Type.interfaces.json_representable import IJSONRepresentable
from Products.ERP5Type import Permissions
from Products.ERP5Type.Globals import InitializeClass
@zope.interface.implementer(IJSONRepresentable)
class JSONRepresentableMixin:
"""
An implementation for IJSONRepresentable
......@@ -52,8 +53,6 @@ class JSONRepresentableMixin:
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
zope.interface.implements(IJSONRepresentable)
security.declareProtected(Permissions.AccessContentsInformation, 'asJSON')
def asJSON(self):
"""
......
......@@ -34,11 +34,10 @@ from Products.ERP5Type.Globals import InitializeClass
INTERNAL_TRANSLATION_DICT_NAME = '__translation_dict'
@zope.interface.implementer(IPropertyTranslatable)
class PropertyTranslatableBuiltInDictMixIn:
"""An implementation of IPropertyTranslatable with built-in dict."""
zope.interface.implements(IPropertyTranslatable)
security = ClassSecurityInfo()
def _getTranslationDict(self, create_if_missing=False):
......
......@@ -25,7 +25,7 @@ from Acquisition import aq_parent
from App.class_init import InitializeClass
from OFS.Folder import Folder
from zLOG import LOG, ERROR, INFO, PROBLEM
from zope.interface import implements
from zope.interface import implementer
from zope.i18n import translate
from ZPublisher.BeforeTraverse import registerBeforeTraverse, \
unregisterBeforeTraverse, queryBeforeTraverse, NameCaller
......@@ -51,6 +51,7 @@ def manage_addLocalizer(self, title, languages, REQUEST=None, RESPONSE=None):
RESPONSE.redirect('manage_main')
@implementer(ILocalizer)
class Localizer(LanguageManager, Folder):
"""
The Localizer meta type lets you customize the language negotiation
......@@ -58,7 +59,6 @@ class Localizer(LanguageManager, Folder):
"""
meta_type = 'Localizer'
implements(ILocalizer)
id = 'Localizer'
......
......@@ -45,7 +45,7 @@ from ZPublisher import HTTPRequest
from zope.component import getSiteManager
from zope.i18n import interpolate
from zope.i18n.interfaces import ITranslationDomain
from zope.interface import implements
from zope.interface import implementer
from zLOG import LOG, INFO
from zExceptions import Forbidden
......@@ -154,12 +154,12 @@ def manage_addMessageCatalog(self, id, title, languages, sourcelang=None,
@implementer(IMessageCatalog)
class MessageCatalog(LanguageManager, ObjectManager, SimpleItem):
"""Stores messages and their translations...
"""
meta_type = 'MessageCatalog'
implements(IMessageCatalog)
security = ClassSecurityInfo()
......
......@@ -2,7 +2,7 @@
from zLOG import ERROR
from UserDict import UserDict
from zope.interface import implements
from zope.interface import implementer
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from App.class_init import default__class_init__ as InitializeClass
......@@ -54,13 +54,12 @@ VALIDATORS = {
'dict' : PersistentMapping,
}
@implementer(ITransform)
class Transform(SimpleItem):
"""A transform is an external method with
additional configuration information
"""
implements(ITransform)
meta_type = 'Transform'
meta_types = all_meta_types = ()
......
......@@ -2,7 +2,7 @@
from logging import DEBUG
from persistent.list import PersistentList
from zope.interface import implements
from zope.interface import implementer
from AccessControl import ClassSecurityInfo
from Acquisition import aq_base
......@@ -36,14 +36,13 @@ from Products.PortalTransforms.utils import parseContentType
from ZODB.POSException import ConflictError
from zLOG import WARNING
@implementer(IPortalTransformsTool, IEngine)
class TransformTool(UniqueObject, ActionProviderBase, Folder):
id = 'portal_transforms'
meta_type = id.title().replace('_', ' ')
isPrincipiaFolderish = 1 # Show up in the ZMI
implements(IPortalTransformsTool, IEngine)
meta_types = all_meta_types = (
{'name': 'Transform', 'action': 'manage_addTransformForm'},
{'name': 'TransformsChain', 'action': 'manage_addTransformsChainForm'},
......
from zope.interface import implements
from zope.interface import implementer
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Persistence import Persistent
......@@ -18,11 +18,10 @@ from Products.PortalTransforms.interfaces import ITransform
from UserList import UserList
@implementer(IChain, ITransform)
class chain(UserList):
"""A chain of transforms used to transform data"""
implements(IChain, ITransform)
def __init__(self, name='',*args):
UserList.__init__(self, *args)
self.__name__ = name
......
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.interfaces import IDataStream
@implementer(IDataStream)
class datastream:
"""A transformation datastream packet"""
__slots__ = ('name', '_data', '_metadata')
implements(IDataStream)
def __init__(self, name):
self.__name__ = name
self._data = ''
......
......@@ -6,15 +6,15 @@ import re
import shutil
from os.path import join, basename
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bin_search, sansext, getShortPathName
from Products.PortalTransforms.interfaces import ITransform
@implementer(ITransform)
class commandtransform:
"""abstract class for external command based transform
"""
implements(ITransform)
def __init__(self, name=None, binary=None, **kwargs):
if name is not None:
......@@ -55,12 +55,12 @@ class commandtransform:
def cleanDir(self, tmpdir):
shutil.rmtree(tmpdir)
@implementer(ITransform)
class popentransform:
"""abstract class for external command based transform
Command must read from stdin and write to stdout
"""
implements(ITransform)
binaryName = ""
binaryArgs = ""
......@@ -115,12 +115,12 @@ class popentransform:
from subprocess import Popen, PIPE
import shlex
@implementer(ITransform)
class subprocesstransform:
"""abstract class for subprocess command based transform
Command must read from stdin and write to stdout
"""
implements(ITransform)
binaryName = ""
binaryArgs = ""
......
from Products.PortalTransforms.interfaces import ITransform
import os
import subprocess
from zope.interface import implements
from zope.interface import implementer
@implementer(ITransform)
class ImageMagickTransforms:
implements(ITransform)
__name__ = "imagemagick_transforms"
def __init__(self, name=None):
if name is not None:
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from StringIO import StringIO
import PIL.Image
@implementer(ITransform)
class PILTransforms:
implements(ITransform)
__name__ = "piltransforms"
def __init__(self, name=None):
if name is not None:
......
import re
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.interfaces import ITransform
@implementer(ITransform)
class retransform:
"""abstract class for regex transforms (re.sub wrapper)"""
implements(ITransform)
inputs = ('text/',)
def __init__(self, name, *args):
......
from Products.Archetypes.tests.atsitetestcase import ATSiteTestCase
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.utils import TransformException
from Products.PortalTransforms.interfaces import ITransform
from Products.PortalTransforms.chain import chain
......@@ -14,8 +14,8 @@ class BaseTransform:
return getattr(self, '__name__', self.__class__.__name__)
@implementer(ITransform)
class HtmlToText(BaseTransform):
implements(ITransform)
inputs = ('text/html',)
output = 'text/plain'
......@@ -31,8 +31,8 @@ class HtmlToText(BaseTransform):
class HtmlToTextWithEncoding(HtmlToText):
output_encoding = 'ascii'
@implementer(ITransform)
class FooToBar(BaseTransform):
implements(ITransform)
inputs = ('text/*',)
output = 'text/plain'
......@@ -45,8 +45,8 @@ class FooToBar(BaseTransform):
data.setData(orig)
return data
@implementer(ITransform)
class DummyHtmlFilter1(BaseTransform):
implements(ITransform)
__name__ = 'dummy_html_filter1'
inputs = ('text/html',)
output = 'text/html'
......@@ -55,8 +55,8 @@ class DummyHtmlFilter1(BaseTransform):
data.setData("<span class='dummy'>%s</span>" % orig)
return data
@implementer(ITransform)
class DummyHtmlFilter2(BaseTransform):
implements(ITransform)
__name__ = 'dummy_html_filter2'
inputs = ('text/html',)
output = 'text/html'
......@@ -74,31 +74,32 @@ class QuxToVHost(DummyHtmlFilter1):
return data
@implementer(ITransform)
class TransformNoIO(BaseTransform):
implements(ITransform)
pass
class BadTransformMissingImplements(BaseTransform):
#__implements__ = None
inputs = ('text/*',)
output = 'text/plain'
@implementer(ITransform)
class BadTransformBadMIMEType1(BaseTransform):
implements(ITransform)
inputs = ('truc/muche',)
output = 'text/plain'
@implementer(ITransform)
class BadTransformBadMIMEType2(BaseTransform):
implements(ITransform)
inputs = ('text/plain',)
output = 'truc/muche'
@implementer(ITransform)
class BadTransformNoInput(BaseTransform):
implements(ITransform)
inputs = ()
output = 'text/plain'
@implementer(ITransform)
class BadTransformWildcardOutput(BaseTransform):
implements(ITransform)
inputs = ('text/plain',)
output = 'text/*'
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.utils import log
WARNING=100
@implementer(ITransform)
class BrokenTransform:
implements(ITransform)
__name__ = "broken transform"
inputs = ("BROKEN",)
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bodyfinder
@implementer(ITransform)
class HTMLBody:
"""Simple transform which extracts the content of the body tag"""
implements(ITransform)
__name__ = "html_body"
inputs = ('text/html',)
output = "text/html"
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from plone.intelligenttext.transforms import convertHtmlToWebIntelligentPlainText
@implementer(ITransform)
class HtmlToWebIntelligentPlainText:
"""Transform which replaces urls and email into hyperlinks"""
implements(ITransform)
__name__ = "html_to_web_intelligent_plain_text"
output = "text/x-web-intelligent"
......
......@@ -5,14 +5,14 @@ A simple identity transform
__revision__ = '$Id: identity.py 4787 2005-08-19 21:43:41Z dreamcatcher $'
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
@implementer(ITransform)
class IdentityTransform:
""" Identity transform
return content unchanged.
"""
implements(ITransform)
__name__ = "rest_to_text"
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
@implementer(ITransform)
class image_to_html:
implements(ITransform)
__name__ = "image_to_html"
inputs = ('image/*', )
......
......@@ -2,13 +2,13 @@
Uses lynx -dump
"""
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
from Products.PortalTransforms.libtransforms.commandtransform import popentransform
import os
@implementer(ITransform)
class lynx_dump(popentransform):
implements(ITransform)
__name__ = "lynx_dump"
inputs = ('text/html',)
......@@ -21,8 +21,8 @@ class lynx_dump(popentransform):
binaryArgs = "-dump -stdin -force_html"
useStdin = True
@implementer(ITransform)
class old_lynx_dump(commandtransform):
implements(ITransform)
__name__ = "lynx_dump"
inputs = ('text/html',)
......
......@@ -4,7 +4,7 @@ Uses the http://www.freewisdom.org/projects/python-markdown/ module
Author: Tom Lazar <tom@tomster.org> at the archipelago sprint 2006
"""
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.interfaces import ITransform
from Products.PortalTransforms.utils import log
......@@ -18,8 +18,8 @@ else:
HAS_MARKDOWN = True
@implementer(ITransform)
class markdown:
implements(ITransform)
__name__ = "markdown_to_html"
inputs = ("text/x-web-markdown",)
......
......@@ -3,15 +3,15 @@ Uses the http://sf.net/projects/pdftohtml bin to do its handy work
"""
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bin_search, \
bodyfinder, sansext
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
from Products.PortalTransforms.libtransforms.commandtransform import popentransform
import os
@implementer(ITransform)
class popen_pdf_to_html(popentransform):
implements(ITransform)
__version__ = '2004-07-02.01'
......@@ -27,8 +27,8 @@ class popen_pdf_to_html(popentransform):
def getData(self, couterr):
return bodyfinder(couterr.read())
@implementer(ITransform)
class pdf_to_html(commandtransform):
implements(ITransform)
__name__ = "pdf_to_html"
inputs = ('application/pdf',)
......
......@@ -4,15 +4,15 @@ Uses the xpdf (www.foolabs.com/xpdf)
"""
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bin_search, sansext
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
from Products.PortalTransforms.libtransforms.commandtransform import popentransform
from Products.PortalTransforms.libtransforms.commandtransform import subprocesstransform
import os
@implementer(ITransform)
class pdf_to_text(subprocesstransform):
implements(ITransform)
__name__ = "pdf_to_text"
inputs = ('application/pdf',)
......@@ -25,8 +25,8 @@ class pdf_to_text(subprocesstransform):
binaryArgs = "-enc UTF-8 -layout -nopgbrk %(infile)s -"
useStdin = False
@implementer(ITransform)
class old_pdf_to_text(commandtransform):
implements(ITransform)
__name__ = "pdf_to_text"
inputs = ('application/pdf',)
......
......@@ -5,10 +5,10 @@ from Products.PortalTransforms.libtransforms.commandtransform \
from subprocess import Popen, PIPE
import os
import tempfile
from zope.interface import implements
from zope.interface import implementer
@implementer(ITransform)
class png_to_text(popentransform):
implements(ITransform)
__name__ = "png_to_text"
inputs = ('image/png',)
......
......@@ -20,7 +20,7 @@ import keyword, token, tokenize
from cStringIO import StringIO
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from DocumentTemplate.DT_Util import html_quote
## Python Source Parser #####################################################
......@@ -107,10 +107,10 @@ class Parser:
@implementer(ITransform)
class PythonTransform:
"""Colorize Python source files
"""
implements(ITransform)
__name__ = "python_to_html"
inputs = ("text/x-python",)
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from reStructuredText import HTML
import sys
@implementer(ITransform)
class rest:
r"""Converts from reST to HTML.
......@@ -41,7 +42,6 @@ class rest:
... print 'Failure'
Good
"""
implements(ITransform)
__name__ = "rest_to_html"
inputs = ("text/x-rst", "text/restructured",)
......
......@@ -3,14 +3,14 @@ Uses the http://freshmeat.net/projects/rtfconverter/ bin to do its handy work
"""
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bin_search, \
bodyfinder, sansext
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
import os
@implementer(ITransform)
class rtf_to_html(commandtransform):
implements(ITransform)
__name__ = "rtf_to_html"
inputs = ('application/rtf',)
......
......@@ -3,13 +3,13 @@ Uses the http://sf.net/projects/rtf2xml bin to do its handy work
"""
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bin_search, sansext
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
import os
@implementer(ITransform)
class rtf_to_xml(commandtransform):
implements(ITransform)
__name__ = "rtf_to_xml"
inputs = ('application/rtf',)
......
......@@ -6,7 +6,7 @@ from cgi import escape
import codecs
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.utils import log
from Products.PortalTransforms.libtransforms.utils import IllegalHTML
from Products.PortalTransforms.utils import safeToInt
......@@ -375,6 +375,7 @@ def scrubHTML(html, valid=VALID_TAGS, nasty=NASTY_TAGS,
result = result.decode(parser.original_charset).encode(default_encoding)
return result
@implementer(ITransform)
class SafeHTML:
"""Simple transform which uses CMFDefault functions to
clean potentially bad tags.
......@@ -392,8 +393,6 @@ class SafeHTML:
-> Flush Cache.
"""
implements(ITransform)
__name__ = "safe_html"
inputs = ('text/html',)
output = "text/x-html-safe"
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from zope.structuredtext import stx2html
DEFAULT_STX_LEVEL = 2
STX_LEVEL = DEFAULT_STX_LEVEL
@implementer(ITransform)
class st:
implements(ITransform)
__name__ = "st_to_html"
inputs = ("text/structured",)
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from DocumentTemplate.DT_Util import html_quote
__revision__ = '$Id: text_pre_to_html.py 3658 2005-02-23 16:29:54Z tiran $'
@implementer(ITransform)
class TextPreToHTML:
"""simple transform which wraps raw text into a <pre> tag"""
implements(ITransform)
__name__ = "text-pre_to_html"
inputs = ('text/plain-pre',)
output = "text/html"
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from DocumentTemplate.DT_Util import html_quote
__revision__ = '$Id: text_to_html.py 4787 2005-08-19 21:43:41Z dreamcatcher $'
@implementer(ITransform)
class TextToHTML:
"""simple transform which wrap raw text in a verbatim environment"""
implements(ITransform)
__name__ = "text_to_html"
output = "text/html"
......
......@@ -6,7 +6,7 @@ author: Tom Lazar <tom@tomster.org> at the archipelago sprint 2006
"""
import os
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.interfaces import ITransform
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
......@@ -24,8 +24,8 @@ else:
HAS_TEXTILE = True
@implementer(ITransform)
class textile:
implements(ITransform)
__name__ = "textile_to_html"
inputs = ("text/x-web-textile",)
......
......@@ -6,10 +6,10 @@ from Products.PortalTransforms.libtransforms.commandtransform \
import os
import subprocess
import tempfile
from zope.interface import implements
from zope.interface import implementer
@implementer(ITransform)
class tiff_to_text(commandtransform):
implements(ITransform)
__name__ = "tiff_to_text"
inputs = ('image/tiff',)
......
......@@ -30,12 +30,12 @@
from Products.PortalTransforms.interfaces import ITransform
from Products.PortalTransforms.libtransforms.commandtransform import\
subprocesstransform
from zope.interface import implements
from zope.interface import implementer
# Conversor using w3m to replace lynx at PortalTransforms...
@implementer(ITransform)
class w3m_dump(subprocesstransform):
implements(ITransform)
__name__ = "w3m_dump"
inputs = ('text/html',)
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from plone.intelligenttext.transforms import convertWebIntelligentPlainTextToHtml
@implementer(ITransform)
class WebIntelligentPlainTextToHtml:
"""Transform which replaces urls and email into hyperlinks"""
implements(ITransform)
__name__ = "web_intelligent_plain_text_to_html"
output = "text/html"
......
from __future__ import absolute_import
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
EXTRACT_BODY = 1
EXTRACT_STYLE = 0
......@@ -31,8 +31,8 @@ else:
import os.path
@implementer(ITransform)
class word_to_html:
implements(ITransform)
__name__ = "word_to_html"
inputs = ('application/msword',)
......
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from lxml import etree
@implementer(ITransform)
class xml_to_text:
implements(ITransform)
__name__ = 'xml_to_text'
inputs = ('text/xml', 'application/xml')
......
......@@ -7,11 +7,12 @@ __revision__ = '$Id: command.py 4439 2005-06-15 16:32:36Z panjunyong $'
import os.path
from os import popen3
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bin_search, sansext
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
from Products.PortalTransforms.utils import log
@implementer(ITransform)
class ExternalCommandTransform(commandtransform):
""" Custom external command
......@@ -21,7 +22,6 @@ class ExternalCommandTransform(commandtransform):
the command line parameters) and return output on stdout.
Input and output mime types must be set correctly !
"""
implements(ITransform)
__name__ = "command_transform"
......
......@@ -10,11 +10,12 @@ from os import popen3, popen4, system
from cStringIO import StringIO
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from zope.interface import implementer
from Products.PortalTransforms.libtransforms.utils import bin_search, sansext
from Products.PortalTransforms.libtransforms.commandtransform import commandtransform
from Products.PortalTransforms.utils import log
@implementer(ITransform)
class XsltTransform(commandtransform):
""" Custom external command
......@@ -24,7 +25,6 @@ class XsltTransform(commandtransform):
You can associate different document type to different transformations.
"""
implements(ITransform)
__name__ = "xml_to_html"
......
......@@ -33,7 +33,7 @@ import itertools
from zLOG import LOG, WARNING, INFO
from .interfaces.column_map import IColumnMap
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
from Products.ZSQLCatalog.interfaces.column_map import IColumnMap
from Products.ZSQLCatalog.TableDefinition import (PlaceHolderTableDefinition,
TableAlias,
......@@ -52,10 +52,9 @@ MAPPING_TRACE = False
re_sql_as = re.compile("\s+AS\s[^)]+$", re.IGNORECASE | re.MULTILINE)
@implementer(IColumnMap)
class ColumnMap(object):
implements(IColumnMap)
def __init__(self,
catalog_table_name=None,
table_override_map=None,
......
......@@ -33,7 +33,7 @@ from DateTime import DateTime
from Products.ZSQLCatalog.interfaces.operator import IOperator
from Products.ZSQLCatalog.Utils import sqlquote as escapeString
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
def valueFloatRenderer(value):
if isinstance(value, basestring):
......@@ -98,10 +98,9 @@ column_renderer = {
'float': columnFloatRenderer
}
@implementer(IOperator)
class OperatorBase(object):
implements(IOperator)
def __init__(self, operator, operator_search_text=None):
self.operator = operator
if operator_search_text is None:
......
......@@ -36,7 +36,7 @@ from Products.ZSQLCatalog.ColumnMap import ColumnMap
from zLOG import LOG, WARNING
from Products.ZSQLCatalog.interfaces.entire_query import IEntireQuery
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
from Products.ZSQLCatalog.TableDefinition import LegacyTableDefinition
# SQL identifier
......@@ -80,6 +80,7 @@ def defaultDict(value):
assert isinstance(value, dict)
return value
@implementer(IEntireQuery)
class EntireQuery(object):
"""
This is not a Query subclass, since it does not define a
......@@ -87,8 +88,6 @@ class EntireQuery(object):
internally.
"""
implements(IEntireQuery)
column_map = None
limit = None
......
......@@ -30,15 +30,14 @@
from Products.ZSQLCatalog.interfaces.query import IQuery
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
@implementer(IQuery)
class Query(object):
"""
This is the base class of all kind of queries. Its only purpose is to be
able to distinguish any kind of value from a query.
"""
implements(IQuery)
__allow_access_to_unprotected_subobjects__ = 1
def asSQLExpression(self, sql_catalog, column_map, only_group_columns):
......
......@@ -58,7 +58,7 @@ from hashlib import md5
from .interfaces.query_catalog import ISearchKeyCatalog
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
from .SearchText import isAdvancedSearchText, dequote
......@@ -289,6 +289,7 @@ ContainerAssertions[LazyIndexationParameterList] = 1
related_key_warned_column_set = set()
@implementer(ISearchKeyCatalog)
class Catalog(Folder,
Persistent,
Acquisition.Implicit,
......@@ -318,8 +319,6 @@ class Catalog(Folder,
"""
implements(ISearchKeyCatalog)
meta_type = "SQLCatalog"
icon = 'misc_/ZCatalog/ZCatalog.gif' # FIXME: use a different icon
......
......@@ -31,7 +31,7 @@ from __future__ import absolute_import
import warnings
from .interfaces.sql_expression import ISQLExpression
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
from types import NoneType
SQL_LIST_SEPARATOR = ', '
......@@ -81,10 +81,9 @@ def conflictSafeGet(dikt, key, default=None):
result() # Raises
return result
@implementer(ISQLExpression)
class SQLExpression(object):
implements(ISQLExpression)
def __init__(self,
query,
table_alias_dict=None,
......
......@@ -36,7 +36,7 @@ from Products.ZSQLCatalog.Query.SQLQuery import SQLQuery
from Products.ZSQLCatalog.SQLExpression import SQLExpression
from Products.ZSQLCatalog.interfaces.search_key import IRelatedKey
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
from Products.ZSQLCatalog.TableDefinition import TableAlias, InnerJoin, LeftJoin
from logging import getLogger
......@@ -57,6 +57,7 @@ RELATED_KEY_ALIASED_MESSAGE = "\
Support for explicit joins of aliased related keys is not yet implemented. \
Offending related key: %r, for column %r, table_alias_list: %r"
@implementer(IRelatedKey)
class RelatedKey(SearchKey):
"""
This SearchKey handles searches on virtual columns of RelatedKey type.
......@@ -64,8 +65,6 @@ class RelatedKey(SearchKey):
column to compare, plus a regular query on that column if needed.
"""
implements(IRelatedKey)
related_key_definition = None
def _buildRelatedKey(self, related_key_definition):
......
......@@ -33,7 +33,7 @@ from Products.ZSQLCatalog.Query.SimpleQuery import SimpleQuery
from Products.ZSQLCatalog.Query.ComplexQuery import ComplexQuery
from Products.ZSQLCatalog.interfaces.search_key import ISearchKey
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
from Products.ZSQLCatalog.SQLCatalog import list_type_list
single_operator_dict = {
......@@ -75,10 +75,9 @@ operator_value_deprocessor_dict = {
numeric_type_set = (long, float) # get mapped to int, so do not mention it
@implementer(ISearchKey)
class SearchKey(object):
implements(ISearchKey)
# Comparison operator to use when parsing a string value and no operator is
# found.
# Note: for non-string values, "=" is always used by default.
......
......@@ -31,7 +31,7 @@ from .lexer import lexer, update_docstrings
try:
from Products.ZSQLCatalog.interfaces.abstract_syntax_node import INode, IValueNode, ILogicalNode, IColumnNode
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.interface import implementer
except ImportError:
# allow this module to be imported by stand-alone scripts without
# Products.ZSQLCatalog.interfaces or zope.interface around.
......@@ -43,10 +43,10 @@ except ImportError:
pass
implements = verifyClass
@implementer(INode)
class Node(object):
__allow_access_to_unprotected_subobjects__ = 1
implements(INode)
def isLeaf(self):
return False
......@@ -59,10 +59,9 @@ class Node(object):
verifyClass(INode, Node)
@implementer(IValueNode)
class ValueNode(Node):
implements(IValueNode)
def __init__(self, value, comparison_operator=''):
self.value = value
self.comparison_operator = comparison_operator
......@@ -82,10 +81,9 @@ class ValueNode(Node):
verifyClass(INode, ValueNode)
verifyClass(IValueNode, ValueNode)
@implementer(ILogicalNode)
class NotNode(Node):
implements(ILogicalNode)
def __init__(self, node):
self.node = node
......@@ -101,10 +99,9 @@ class NotNode(Node):
verifyClass(INode, NotNode)
verifyClass(ILogicalNode, NotNode)
@implementer(ILogicalNode)
class LogicalNode(Node):
implements(ILogicalNode)
def __init__(self, logical_operator, node, other):
self.logical_operator = logical_operator
self.node_list = []
......@@ -129,10 +126,9 @@ class LogicalNode(Node):
verifyClass(INode, LogicalNode)
verifyClass(ILogicalNode, LogicalNode)
@implementer(IColumnNode)
class ColumnNode(Node):
implements(IColumnNode)
def __init__(self, column_name, node):
self.column_name = column_name
self.node = node
......
......@@ -14,7 +14,7 @@ import zipfile
import StringIO
import types
from zope.interface import implements
from zope.interface import implementer
from AccessControl.SecurityInfo import ClassSecurityInfo
from App.class_init import InitializeClass
......@@ -107,6 +107,7 @@ def _recurseFSTestCases( result, prefix, fsobjs ):
, info
)
@implementer(IZuite)
class Zuite( OrderedFolder ):
""" TTW-manageable browser test suite
......@@ -123,8 +124,6 @@ class Zuite( OrderedFolder ):
)
)
implements(IZuite)
test_case_metatypes = ( 'File'
, 'Page Template'
)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment