def isCompleteValue(self, obj, value): '''Returns True if the p_value must be considered as complete. For a unilingual field, being complete simply means not being empty. For a multilingual field, being complete means that a value is present for every language.''' if not self.isMultilingual(obj): return Field.isCompleteValue(self, obj, value) # As soon as a given language value is empty, the global value is not # complete. if not value: return True for v in value.itervalues(): if Field.isEmptyValue(self, obj, v): return return True