Bugfix in the system for refreshing layouts, and removed generation of '_valid' i18n labels, that almost doubled the size of po files and are almost never needed.

This commit is contained in:
Gaetan Delannay 2010-11-16 15:32:47 +01:00
parent 3fd2d62b30
commit cccdc12372
6 changed files with 15 additions and 16 deletions

View file

@ -1 +1 @@
0.6.0 0.6.1

View file

@ -749,11 +749,11 @@ class Type:
return validValue return validValue
else: else:
if not validValue: if not validValue:
return obj.translate('%s_valid' % self.labelId) return obj.translate('field_invalid')
except Exception, e: except Exception, e:
return str(e) return str(e)
except: except:
return obj.translate('%s_valid' % self.labelId) return obj.translate('field_invalid')
else: else:
# It is a regular expression # It is a regular expression
if not self.validator.match(value): if not self.validator.match(value):
@ -766,7 +766,7 @@ class Type:
elif self.validator == String.ALPHANUMERIC: elif self.validator == String.ALPHANUMERIC:
return obj.translate('bad_alphanumeric') return obj.translate('bad_alphanumeric')
else: else:
return obj.translate('%s_valid' % self.labelId) return obj.translate('field_invalid')
def store(self, obj, value): def store(self, obj, value):
'''Stores the p_value (produced by m_getStorableValue) that complies to '''Stores the p_value (produced by m_getStorableValue) that complies to

View file

@ -132,7 +132,6 @@ class FieldDescriptor:
# Add the POD-related fields on the Tool # Add the POD-related fields on the Tool
self.generator.tool.addPodRelatedFields(self) self.generator.tool.addPodRelatedFields(self)
notToValidateFields = ('Info', 'Computed', 'Action', 'Pod')
def walkAppyType(self): def walkAppyType(self):
'''Walks into the Appy type definition and gathers data about the '''Walks into the Appy type definition and gathers data about the
i18n labels.''' i18n labels.'''
@ -149,13 +148,6 @@ class FieldDescriptor:
self.classDescr.addIndexMethod(self) self.classDescr.addIndexMethod(self)
# - searchable ? TODO # - searchable ? TODO
#if self.appyType.searchable: self.fieldParams['searchable'] = True #if self.appyType.searchable: self.fieldParams['searchable'] = True
# - need to generate a field validator?
# In all cases excepted for "immutable" fields, add an i18n message for
# the validation error for this field.
if self.appyType.type not in self.notToValidateFields:
label = '%s_%s_valid' % (self.classDescr.name, self.fieldName)
poMsg = PoMessage(label, '', PoMessage.DEFAULT_VALID_ERROR)
self.generator.labels.append(poMsg)
# i18n labels # i18n labels
i18nPrefix = "%s_%s" % (self.classDescr.name, self.fieldName) i18nPrefix = "%s_%s" % (self.classDescr.name, self.fieldName)
# Create labels for generating them in i18n files. # Create labels for generating them in i18n files.

View file

@ -141,6 +141,7 @@ class Generator(AbstractGenerator):
msg('yes', '', msg.YES), msg('yes', '', msg.YES),
msg('no', '', msg.NO), msg('no', '', msg.NO),
msg('field_required', '', msg.FIELD_REQUIRED), msg('field_required', '', msg.FIELD_REQUIRED),
msg('field_invalid', '', msg.FIELD_INVALID),
msg('file_required', '', msg.FILE_REQUIRED), msg('file_required', '', msg.FILE_REQUIRED),
msg('image_required', '', msg.IMAGE_REQUIRED), msg('image_required', '', msg.IMAGE_REQUIRED),
] ]

View file

@ -142,9 +142,7 @@ class BaseMixin:
for key, value in errors.__dict__.iteritems(): for key, value in errors.__dict__.iteritems():
resValue = value resValue = value
if not isinstance(resValue, basestring): if not isinstance(resValue, basestring):
appyType = self.getAppyType(key) resValue = self.translate('field_invalid')
msgId = '%s_valid' % appyType.labelId
resValue = self.translate(msgId)
setattr(errors, key, resValue) setattr(errors, key, resValue)
def onUpdate(self): def onUpdate(self):
@ -395,6 +393,14 @@ class BaseMixin:
exec 'import %s' % moduleName exec 'import %s' % moduleName
exec 'reload(%s)' % moduleName exec 'reload(%s)' % moduleName
exec 'res = %s.%s' % (moduleName, klass.__name__) exec 'res = %s.%s' % (moduleName, klass.__name__)
# More manipulations may have occurred in m_update
if hasattr(res, 'update'):
parentName = res.__bases__[-1].__name__
moduleName = 'Products.%s.Extensions.appyWrappers' % \
self.getTool().getAppName()
exec 'import %s' % moduleName
exec 'parent = %s.%s' % (moduleName, parentName)
res.update(parent)
return res return res
def getAppyType(self, name, asDict=False, className=None): def getAppyType(self, name, asDict=False, className=None):

View file

@ -44,7 +44,6 @@ class PoMessage:
MSG_showAllStatesInPhase = 'Show all states in phase' MSG_showAllStatesInPhase = 'Show all states in phase'
USER = 'User' USER = 'User'
POD_ASKACTION = 'Trigger related action' POD_ASKACTION = 'Trigger related action'
DEFAULT_VALID_ERROR = 'Please fill or correct this.'
REF_NO = 'No object.' REF_NO = 'No object.'
REF_ADD = 'Add a new one' REF_ADD = 'Add a new one'
REF_NAME = 'Name' REF_NAME = 'Name'
@ -110,6 +109,7 @@ class PoMessage:
NO = 'No' NO = 'No'
FIELD_REQUIRED = 'Please fill this field.' FIELD_REQUIRED = 'Please fill this field.'
FILE_REQUIRED = 'Please select a file.' FILE_REQUIRED = 'Please select a file.'
FIELD_INVALID = 'Please fill or correct this.'
IMAGE_REQUIRED = 'The uploaded file must be an image.' IMAGE_REQUIRED = 'The uploaded file must be an image.'
def __init__(self, id, msg, default, fuzzy=False, comments=[], def __init__(self, id, msg, default, fuzzy=False, comments=[],