Blame view

product/ERP5/Tool/InterpolationTool.py 3.06 KB
Jean-Paul Smets committed
1 2 3
##############################################################################
#
# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
Jean-Paul Smets committed
4
#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
Jean-Paul Smets committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from AccessControl import ClassSecurityInfo
from Products.CMFCore.utils import UniqueObject, _checkPermission, _getAuthenticatedUser
31
from Products.ERP5Type.Globals import InitializeClass
Jean-Paul Smets committed
32 33 34 35 36
from Acquisition import aq_base
from DateTime import DateTime

from zLOG import LOG

Nicolas Dumazet committed
37 38 39
from Products.ZSQLCatalog.ZSQLCatalog import ZCatalog
from Products.CMFCore.CatalogTool import CatalogTool as CMFCoreCatalogTool

Jean-Paul Smets committed
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
class InterpolationTool (UniqueObject):
    """
    The InterpolationTool centralises interpolation
    policies to calculate values from the mapped values.

    Currently, the interpolation is simple and closed. All mapped
    values are selected and put in memory. Then, some algo is applied
    to determine a value.

    Examples of applications:

    - calculate the price of resource X for customer Y under
      condition Z

    ERP5 main application : implement attribute lookup and interpolation
    policy. Configuration done for now through mappedvalues. Later,
    this could be done another way.

    Try to mimic: ???? (Reports ?)...
Gabriel Monnerat committed
59

Jean-Paul Smets committed
60 61 62 63
    Status : OK
    """
    id = 'portal_interactions'
    meta_type = 'ERP5 Interaction Tool'
Jean-Paul Smets committed
64
    portal_type = 'Interpolation Tool'
Jean-Paul Smets committed
65 66 67 68 69 70 71
    security = ClassSecurityInfo()

    manage_options = ( { 'label' : 'Overview', 'action' : 'manage_overview' }
                     ,
                     ) + ZCatalog.manage_options


Nicolas Dumazet committed
72
    def __init__(self, id=None):
Jean-Paul Smets committed
73 74 75 76
        ZCatalog.__init__(self, self.getId())

    # Explicite Inheritance
    _listAllowedRolesAndUsers = CMFCoreCatalogTool._listAllowedRolesAndUsers
Nicolas Dumazet committed
77 78 79 80

    # XXX does not work fix me
    # AttributeError: type object 'CatalogTool' has no attribute '_InterpolationTool__url'
    #__url = CMFCoreCatalogTool.__url
Jean-Paul Smets committed
81 82

InitializeClass(InterpolationTool)