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() campus.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