def definir_tabla(): db = current.db T = current.T tipo_escuela.definir_tabla() provincia.definir_tabla() municipio.definir_tabla() if not hasattr(db, 'escuela_media'): db.define_table('escuela_media', Field('codigo','string',length=4,label=T('Código'),required=True,notnull=True,), Field('nombre','string',length=100,label=T('Nombre'),required=True,notnull=True,), Field('tipo_escuela_media_id', 'reference tipo_escuela_media',label=T('Tipo de enseñanza media')), Field('provincia_id', 'reference provincia',label=T('Provincia')), Field('municipio_id', 'reference municipio',label=T('Municipio')), format="%(nombre)s", ) db.escuela_media.codigo.requires = [ IS_NOT_EMPTY(),IS_MATCH('^\d{4,4}$'),IS_NOT_IN_DB(db,'escuela_media.codigo'), ] db.escuela_media.nombre.requires = [ IS_UPPER(), IS_NOT_EMPTY(),IS_NOT_IN_DB(db, 'escuela_media.nombre'), ] db.escuela_media.tipo_escuela_media_id.requires = IS_IN_DB(db,'tipo_escuela_media.id', '%(nombre)s', zero=None, )
def definir_tabla(): db = current.db T = current.T municipio.definir_tabla() if not hasattr(db, 'comuna'): db.define_table('comuna', Field('codigo','string',length=2,label=T('Código'), required=True,notnull=True,), Field('nombre','string',length=80,label=T('Nombre'), required=True,notnull=True,), Field('municipio_id','reference municipio',required=True, label=T('Municipio'),), db.my_signature, format='%(nombre)s', plural=T('Comunas'), singular=T('Comuna'), ) db.comuna.codigo.requires = [ IS_NOT_EMPTY(error_message=T('Código es requerido')), IS_MATCH('^\d\d$', error_message=T('Código no es valido')), ] db.comuna.nombre.requires = [ IS_NOT_EMPTY(error_message=T('Nombre es requerido')), IS_UPPER() ] db.comuna.municipio_id.requires = IS_IN_DB(db,'municipio.id', '%(nombre)s', zero=None, error_message=T('Debe seleccionar un municipio'), )
from agiscore.db import nota from agiscore.db import asignacion_carrera from agiscore.db import pais from agiscore.db import carrera_escuela from agiscore.db import funsionario from agiscore.db import especialidad from agiscore.db import turma from agiscore.db import matricula # # TODO: Depués de migrar todas las tablas a este formato comentar # esto y en cada vista solo llamar las tablas necesarias. # ano_academico.definir_tabla() region_academica.definir_tabla() provincia.definir_tabla() municipio.definir_tabla() comuna.definir_tabla() escuela.definir_tabla() unidad_organica.definir_tabla() descripcion_carrera.definir_tabla() regimen.definir_tabla() tipos_ensennanza.definir_tabla() escuela_media.definir_tabla() tipo_documento_identidad.definir_tabla() discapacidad.definir_tabla() regimen_uo.definir_tabla() carrera_uo.definir_tabla() persona.definir_tabla() estudiante.definir_tabla() candidatura.definir_tabla() candidatura_carrera.definir_tabla()
def definir_tabla(): db = current.db T = current.T comuna.definir_tabla() municipio.definir_tabla() provincia.definir_tabla() pais.definir_tabla() tipo_documento_identidad.definir_tabla() if not hasattr(db, 'persona'): tbl = db.define_table('persona', Field('nombre', 'string', length=30, label=T("Nombre")), # iss129: el primer apellido puede ser omitido Field('apellido1', 'string', length=30, label=T("Primer apellido")), Field('apellido2', 'string', length=30, label=T("Segundo apellido")), Field('fecha_nacimiento', 'date', label=T("Fecha de nacimiento")), Field('genero', 'string', length=1, label=T('Género')), Field('nombre_padre', 'string', length=250, label=T('Nombre del padre')), Field('nombre_madre', 'string', length=250, label=T('Nombre de la madre')), Field('pais_origen', 'reference pais', label=T("País de origen")), Field('lugar_nacimiento', 'reference comuna', label=T("Lugar de nacimiento")), Field('estado_civil', 'string', length=1, label=T("Estado civil")), Field('tipo_documento_identidad_id', 'reference tipo_documento_identidad', label=T('Documento de identidad')), Field('numero_identidad', 'string', length=20, label=T('Número de identidad')), Field('estado_politico', 'string', length=1, default='C', label=T('Estado militar')), Field('situacion_militar', 'string', length=1, default='1', label=T("¿Receseamento Militar?"),), Field('pais_residencia', 'reference pais', label=T("País de residencia")), Field('dir_comuna_id', 'reference comuna', label=T("Localidad")), Field('direccion', 'text', length=300, label=T("Dirección")), Field('telefono', 'string', length=20, label=T("Teléfono")), Field('telefono_alternativo', 'string', length=20, label=T("Teléfono alternativo")), # --iss129: email puede ser de más de 20 caracteres. Field('email', 'string', length=50, required=False), Field('user_id', 'reference auth_user', notnull=False, required=False, default=None), Field('nombre_completo', 'string', length=100, compute=__nombre_completo, label=T('Nombre completo')), db.my_signature, format="%(nombre_completo)s", ) tbl._after_insert.append(_after_insert) tbl._after_update.append(_after_update) tbl.telefono.label = T('Teléfono de contacto') # -- iss168: el número de telefono debe ser unico entre las personas tbl.telefono.requires = IS_EMPTY_OR( IS_NOT_IN_DB(db, 'persona.telefono', error_message=T('Value already in database'))) # ------- # -- no repetir numeros de identidad tbl.numero_identidad.requires = IS_NOT_IN_DB(db, 'persona.numero_identidad') # --------------------------------------------------------------------- tbl.email.label = T('E-Mail') tbl.genero.represent = persona_genero_represent tbl.genero.requires = IS_IN_SET( PERSONA_GENERO_VALUES, zero=None) tbl.estado_civil.represent = persona_estado_civil_represent tbl.estado_civil.requires = IS_IN_SET( PERSONA_ESTADO_CIVIL_VALUES, zero=None) tbl.estado_politico.represet = persona_estado_politico_represent tbl.estado_politico.requires = IS_IN_SET( PERSONA_ESTADO_POLITICO_VALUES, zero=None) tbl.situacion_militar.represent = situacion_militar_represent tbl.situacion_militar.requires = IS_IN_SET( SITUACION_MILITAR_VALUES, zero=None) tbl.id.readable = False tbl.user_id.readable = False tbl.user_id.writable = False