Ejemplo n.º 1
0
    def __init__(self, name, cards):
        deck_is_required = 'The deck name must be a string and is required.'
        ne = NotEmpty(messages={'empty':deck_is_required, 'noneType':deck_is_required, 'badType':deck_is_required})
        self.name = ne.to_python(name)

        cards_are_required = 'The cards property must be a list and is required.'
        ct = ConfirmType(type=(list, tuple), messages={'empty':cards_are_required, 'noneType':cards_are_required, 'inType':cards_are_required})
        self.cards = ct.to_python(cards)
Ejemplo n.º 2
0
class RacingTeamApplnResultsValidator(Schema):
    name = NotEmpty()
    eventdate = DateConverter(month_style='iso')
    eventname = NotEmpty()
    distance = Number(min=0, max=200)
    units = OneOf(['miles', 'km'])
    time = TimeOptHoursConverter()
    agegrade = Number(min=0, max=100)
Ejemplo n.º 3
0
class AddTipoItem(AddRecordForm):
    """ Define el formato del formulario para crear un nuevo tipo de ítem"""
    __model__ = TipoItem
    __omit_fields__ = ['id', 'fase', 'id_fase', 'items', 'caracteristicas']
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'), \
            Unico())
    codigo = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z]*$'), \
            MaxLength(2), MinLength(2), CodigoUnico())
Ejemplo n.º 4
0
class AddProyecto(AddRecordForm):
    """ Define el formato del formulario para crear un nuevo proyecto"""
    __model__ = Proyecto
    __omit_fields__ = ['id', 'fases', 'fichas', 'estado', 'fecha_inicio', \
                      'fecha_fin']
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'), \
            Unico())
    nro_fases = All(NotEmpty(), Int(min=0))
    __dropdown_field_names__ = {'lider': 'nombre_usuario'}
Ejemplo n.º 5
0
    def __init__(self, name, deck):
        player_is_required = 'The player name must be a string and is required.'
        ne = NotEmpty(messages={'empty':player_is_required, 'noneType':player_is_required, 'badType':player_is_required})
        ne.to_python(name)

        deck_is_required = 'The deck must be a Deck and is required.'
        ct = ConfirmType(type=Deck, messages={'empty':deck_is_required, 'noneType':deck_is_required, 'type':deck_is_required})
        ct.to_python(deck)

        self.name = name
        self.deck = deck
        self.position = None
        self.game = None
Ejemplo n.º 6
0
    def __init__(self, name, cost):
        name_is_required = 'The card name must be a string and is required.'
        ne = NotEmpty(messages={'empty':name_is_required, 'noneType':name_is_required, 'badType':name_is_required})
        self.name = ne.to_python(name)

        cost_is_required = "The card must have a cost of type Cost (even if it's zero mana)."
        ne = NotEmpty(messages={'empty':cost_is_required, 'noneType':cost_is_required, 'badType':cost_is_required})
        ct = ConfirmType(type=(Cost), messages={'empty':cost_is_required, 'noneType':cost_is_required, 'type':cost_is_required})
        self.cost = ct.to_python(ne.to_python(cost))

        self.is_tapped = False
        self.game = None
        self.position = None
        self.abilities = []
Ejemplo n.º 7
0
class UsuarioEditFormValidator(UsuarioAddFormValidator):
    nombre_usuario = None
    password = None
    repita_password = None
    nuevo_password = PasswordChanged()
    repita_nuevo_password = PasswordChanged()
    email = All(
        UniqueEditEmail(),
        Email(not_empty=True,
              messages={
                  'empty': 'Ingrese una direccion de email',
                  'noAt': 'Un email debe contener un @',
                  'badUsername': '******',
                  'badDomain': 'Ingrese un dominio de email correcto',
              }))
    chained_validators = (FieldsMatch(
        'nuevo_password',
        'repita_nuevo_password',
        messages={'invalidNoMatch': 'Passwords no coinciden'}), )
    nro_documento = All(
        UniqueEditNroDocumento(),
        String(
            min=5,
            max=50,
            messages={
                'tooShort':
                "Nro de Documendo invalido, debe tener 5 digitos como minimo",
                'tooLong': "Nro de Documendo invalido",
            }), NotEmpty(messages={'empty': 'Ingrese numero de documento'}),
        isInt(messages={'integer': 'Ingrese un numero'}))
Ejemplo n.º 8
0
class RolFormValidator(Schema):
    nombre_rol = All(
        String(min=4,
               max=32,
               messages={
                   'tooShort': 'Nombre de rol incorrecto, minimo 4 caracteres',
                   'tooLong': 'Nombre de rol incorrecto, maximo 32 caracteres'
               }), NotEmpty(messages={'empty': 'Ingrese un nombre de rol'}))
    descripcion = String(
        max=100,
        messages={'tooLong': 'Descripcion no debe superar 100 caracteres'})

    permisos = NotEmpty(
        messages={"empty": u"Debe seleccionar al menos un permiso"})
    permisos_src = NotEmpty(
        messages={"empty": u"Debe seleccionar al menos un permiso"})
Ejemplo n.º 9
0
class EditTipoItem(EditableForm):
    """ 
    Define el formato del formulario para la modificación de un tipo de ítem
    """
    __model__ = TipoItem
    __hide_fields__ = ['id', 'fase', 'items', 'caracteristicas', 'codigo']
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'), \
            Unico())
Ejemplo n.º 10
0
class AddFase(AddRecordForm):
    """ Define el formato de la tabla para agregar fases.
    """
    __model__ = Fase
    __omit_fields__ = ['id', 'proyecto', 'lineas_base', 'fichas', \
                    'tipos_item', 'id_proyecto', 'estado', 'fecha_inicio','fecha_fin']
    orden = OrdenFieldNew
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'), \
            Unico())
Ejemplo n.º 11
0
class EditFase(EditableForm):
    """ Define el formato de la tabla para editar fases.
    """
    __model__ = Fase
    __hide_fields__ = ['id', 'lineas_base', 'fichas', 'estado', \
                    'fecha_inicio', 'id_proyecto', 'tipos_item', 'proyecto', 'fecha_fin']
    orden = OrdenFieldEdit
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'), \
            Unico())
Ejemplo n.º 12
0
class ProyectoEditFormValidator(ProyectoAddFormValidator):
    nombre = All(
        String(min=4,
               max=32,
               messages={
                   'tooShort':
                   'Nombre de proyecto incorrecto, minimo 4 caracteres',
                   'tooLong': 'Nombre de rol incorrecto, maximo 32 caracteres'
               }), UniqueEditNombre(),
        NotEmpty(messages={'empty': 'Ingrese un nombre de proyecto'}))
Ejemplo n.º 13
0
class FaseFormValidator(Schema):
    nombre = All(
        String(min=4,
               max=32,
               messages={
                   'tooShort':
                   'Nombre de fase incorrecto, minimo 4 caracteres',
                   'tooLong': 'Nombre de fase incorrecto, maximo 32 caracteres'
               }), NotEmpty(messages={'empty': 'Ingrese un nombre de fase'}))
    descripcion = String(
        max=100,
        messages={'tooLong': 'Descripcion no debe superar 100 caracteres'})
Ejemplo n.º 14
0
class EditProyecto(EditableForm):
    """ 
    Define el formato del formulario para la modificación de un proyecto 
    """
    __model__ = Proyecto
    __base_validator__ = form_validator
    __hide_fields__ = ['id', 'fases', 'fichas', 'estado',  'fecha_inicio', \
                       'fecha_fin']
    nro_fases = CantidadFasesField('nro_fases')
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'), \
            Unico())
    __dropdown_field_names__ = {'lider': 'nombre_usuario'}
Ejemplo n.º 15
0
 class edit_form_type(EditableForm):
     __model__ = Component
     __omit_fields__ = ['id']
     __field_attrs__ = {'description': {'rows': '2'}}
     __field_order__ = [
         'type', 'manufacturer', 'model', 'description', 'sanitization',
         'media'
     ]
     __required_fields__ = ['type', 'manufacturer', 'description']
     description = TextField
     sanitization = TextField
     media = TextField
     type = NotEmpty()
Ejemplo n.º 16
0
class ProyectoAddFormValidator(Schema):
    nombre = All(
        String(min=4,
               max=32,
               messages={
                   'tooShort':
                   'Nombre de proyecto incorrecto, minimo 4 caracteres',
                   'tooLong': 'Nombre de rol incorrecto, maximo 32 caracteres'
               }), UniqueNewNombre(),
        NotEmpty(messages={'empty': 'Ingrese un nombre de proyecto'}))
    descripcion = String(
        max=200,
        messages={'tooLong': 'Descripcion no debe superar 200 caracteres'})
Ejemplo n.º 17
0

class AddProyecto(AddRecordForm):
    """ Define el formato del formulario para crear un nuevo proyecto"""
    __model__ = Proyecto
    __omit_fields__ = ['id', 'fases', 'fichas', 'estado', 'fecha_inicio', \
                      'fecha_fin']
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'), \
            Unico())
    nro_fases = All(NotEmpty(), Int(min=0))
    __dropdown_field_names__ = {'lider': 'nombre_usuario'}


add_proyecto_form = AddProyecto(DBSession)

form_validator =  Schema(nro_fases = All(NroValido(), NotEmpty(), Int(min = \
                 0)), ignore_key_missing = True)


class CantidadFasesField(TextField):
    """
    Clase correspondiente a un validador que se utiliza para deshabilitar la
    modificación del número de fases de un proyecto si el mismo ya ha iniciado.
    """
    def update_params(self, d):
        """
        Realiza el control citado anteriormente.
        """
        id_proy = unicode(request.url.split("/")[-2])
        pr = DBSession.query(Proyecto).get(id_proy)
        if pr.estado != u"Nuevo":
Ejemplo n.º 18
0
class InfoVolunteerValidator(Schema):
    common_eventdate = DateConverter(month_style='iso')
    volunteer_hours = Number(min=0, max=200)
    volunteer_comments = NotEmpty()
Ejemplo n.º 19
0
class UsuarioAddFormValidator(Schema):
    nombre_usuario = All(
        String(min=4,
               max=32,
               messages={
                   'tooShort':
                   'Nombre de usuario incorrecto, minimo 4 caracteres',
                   'tooLong':
                   'Nombre de usuario incorrecto, maximo 32 caracteres'
               }), UniqueUsername(),
        NotEmpty(messages={'empty': 'Ingrese un nombre de usuario'}))
    nombre = All(
        String(min=2,
               max=50,
               messages={
                   'tooShort': 'Nombre incorrecto, minimo 2 caracteres',
                   'tooLong': 'Nombre incorrecto, maximo 50 caracteres'
               }), NotEmpty(messages={'empty': 'Ingrese un nombre'}))
    apellido = All(
        String(min=2,
               max=50,
               messages={
                   'tooShort': 'Apellido incorrecto, minimo 2 caracteres',
                   'tooLong': 'Apellido incorrecto, maximo 50 caracteres'
               }), NotEmpty(messages={'empty': 'Ingrese un apellido'}))
    password = All(
        String(
            min=6,
            messages={'tooShort': 'Password incorrecto, minimo 6 caracteres'}),
        NotEmpty(messages={'empty': 'Ingrese password'}))
    repita_password = All(
        String(
            min=6,
            messages={'tooShort': 'Password incorrecto, minimo 6 caracteres'}),
        NotEmpty(messages={'empty': 'Ingrese password'}))
    email = All(
        UniqueNewEmail(),
        Email(not_empty=True,
              messages={
                  'empty': 'Ingrese una direccion de email',
                  'noAt': 'Un email debe contener un @',
                  'badUsername': '******',
                  'badDomain': 'Ingrese un dominio de email correcto',
              }))
    chained_validators = (FieldsMatch(
        'password',
        'repita_password',
        messages={'invalidNoMatch': 'Passwords no coinciden'}), )
    nro_documento = All(
        UniqueNewNroDocumento(),
        String(
            min=5,
            max=50,
            messages={
                'tooLong':
                "Nro de Documendo invalido, debe tener 5 digitos como minimo",
                'tooShort': "Nro de Documendo invalido",
            }), NotEmpty(messages={'empty': 'Ingrese numero de documento'}),
        isInt(messages={'integer': 'Ingrese un numero'}))
    telefono = All(
        String(
            min=6,
            max=15,
            messages={
                'tooShort':
                "Nro de Telefono invalido, debe tener 6 digitos como minimo",
                'tooLong': "Nro de Telefono invalido",
            }), NotEmpty(messages={'empty': 'Ingrese numero de telefono'}),
        isInt(messages={'integer': 'Ingrese un numero'}))
Ejemplo n.º 20
0
class AddRol(AddRecordForm):
    """ Define el formato del formulario para crear un nuevo rol"""
    __model__ = Rol
    __omit_fields__ = ['id', 'fichas', 'usuarios', 'permisos']
    nombre = All(NotEmpty(), ValidarExpresion(r'^[A-Za-z][A-Za-z0-9 ]*$'))
    tipo = SingleSelectField("tipo", options=['Sistema', 'Proyecto', 'Fase'])