def _validate_no_duplicates(lst): # General purpose validation """ Validate there are no duplicates values in the field :param list: list to be validated :return: mongoeninge.ValidationError if there are duplicate values """ if True in [lst.count(i) > 1 for i in lst]: raise db.ValidationError( 'Duplicate values found. Field cannot have duplicates')
def clean(self): """ Makes sure there are no duplicated name + last_name combinatino """ search_driver = self.find_by_full_name(name=self.name, last_name=self.last_name, raise_if_none=False) if search_driver: if search_driver.id != self.id: raise db.ValidationError( 'Combinación Nombre+Apellido ya ha sido dado de alta: ')
def _validate_no_duplicate_objects(list): """ Validate that there are no duplicates objects in ListField :param list: list of ListField :return: mongonengine.ValidationError if there are duplicate objects in the list """ list_of_object_by_id = [i.id for i in list] try: _validate_no_duplicates(list_of_object_by_id) except db.ValidationError: raise db.ValidationError( 'Duplicate objects in ListField Found. Cannot have duplicates.')
def validate_user_options(value): if not User.find_by_username(value, raise_if_none=False): raise db.ValidationError( 'Usuario {} no encontrado en lista de usuarios.'.format(value))
def validate_location_options(value): if not (MaterialBank.find_by_name(value, raise_if_none=False) or Project.find_by_name(value, raise_if_none=False)): raise db.ValidationError( 'Ubicación {} no encontrado en lista de bancos ni obras.'.format( value))
def validate_material_options(value): if not Material.find_by_name(value, raise_if_none=False): raise db.ValidationError( 'Material {} no encontrado en lista de materiales.'.format(value))
def validate_truck_options(value): if not Truck.find_by_idcode(value, raise_if_none=False): raise db.ValidationError( 'Camión {} no encontrado en lista de camiones.'.format(value))