Commit beecc253 authored by Aurel's avatar Aurel

add a ConsistencyMessage class to manage error message returned by

checkConsistency in constraint


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@11243 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent a9841f10
##############################################################################
#
# Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.
# Aurelien Calonne <aurel@nexedi.com>
#
# 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 Products.PythonScripts.Utility import allow_class
class ConsistencyMessage:
"""
Object Message is used for notifications to user.
"""
def __init__(self, constraint, object_relative_url='', message='', mapping = {}, **kw):
self.object_relative_url = object_relative_url
self.message = message
self.mapping = mapping
self.description = constraint.description
self.class_name = constraint.__class__.__name__
self.__dict__.update(kw)
def __getitem__(self, key):
"""
Backward compatibilty with previous tuple
message returned by Constraint
"""
if key == 0:
return self.object_relative_url
elif key == 1:
return '%s inconsistency' % self.class_name
elif key == 2:
return 104
elif key == 4:
return self.description
else:
return self.getTranslatedMessage()
def fix(self):
"""
Fix constraint
XXX to be implemented
"""
pass
def getTranslatedMessage(self):
"""
Return the message translated
"""
from Products.ERP5Type.Message import Message
return Message(domain='erp5_ui', message=self.message, mapping=self.mapping)
getMessage = getTranslatedMessage
allow_class(ConsistencyMessage)
......@@ -30,6 +30,7 @@
from Products.CMFCore.Expression import Expression
from Products.ERP5Type.Interface import Constraint as IConstraint
from Products.ERP5Type.ConsistencyMessage import ConsistencyMessage
class Constraint:
"""
......@@ -60,16 +61,13 @@ class Constraint:
if type is not None: self.type = type
self.constraint_definition.update(constraint_definition)
def _generateError(self, obj, error_message):
def _generateError(self, obj, error_message, mapping={}):
"""
Generic method used to generate error in checkConsistency.
"""
error = None
if error_message:
error = (obj.getRelativeUrl(),
'%s inconsistency' % self.__class__.__name__,
104, error_message, self.description)
return error
if error_message is not None:
msg = ConsistencyMessage(self, obj.getRelativeUrl(), error_message, mapping)
return msg
def _checkConstraintCondition(self, obj):
"""
......
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