def definir_tabla(): db = current.db T = current.T provincia.definir_tabla() if not hasattr(db, 'municipio'): db.define_table('municipio', Field('codigo','string',length=2,required=True,notnull=True, label=T('Código'),comment=T('Código de 2 digitos'),), Field('nombre','string',length=80,required=True, unique=True,notnull=True,label=T('Nombre'),), Field('provincia_id', 'reference provincia',label=T('Provincia')), db.my_signature, plural=T('Municipios'), singular=T('Municipio'), format='%(nombre)s', ) db.municipio.codigo.requires = [ IS_NOT_EMPTY(error_message=T('Código es requerido')), IS_MATCH('^\d\d$', error_message=T('No es un código valido')), ] db.municipio.nombre.requires = [ IS_UPPER(), IS_NOT_EMPTY(error_message=T('Nombre es requerido')), IS_NOT_IN_DB(db, 'municipio.nombre'), ] db.municipio.provincia_id.requires = IS_IN_DB(db,'provincia.id', '%(nombre)s', zero=None, ) db.municipio.obtener_por_uuid = obtener_por_uuid
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, )
from agiscore.db import examen_aula_estudiante 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()
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
def definir_tabla(): db = current.db T = current.T escuela.definir_tabla() provincia.definir_tabla() if not hasattr(db, 'unidad_organica'): db.define_table('unidad_organica', Field('codigo',compute=calcular_codigo,notnull=True,label=T('Código'),), Field('nombre','string',required=True,notnull=True,length=100,label=T('Nombre'),), Field('abreviatura', 'string', length=8, required=False, notnull=False, default=''), Field('direccion','text',required=False,notnull=False,label=T('Dirección'),), Field('nivel_agregacion','string',required=True,length=1, label=T('Nivel de agregación'),), Field('clasificacion','string',length=2,required=True, label=T('Clasificación'),), Field('codigo_registro','string',length=3,required=True, label=T('Código de registro'), comment=T("Código de registro en el Ministerio de Educación"),), Field('codigo_escuela', 'string',length=2,required=True,notnull=True, label=T('Código en la Escuela'), comment=T("Código de registro asignado por la Escuela"),), # referencias Field('escuela_id', 'reference escuela',required=True, label=T('Escuela'),), Field('provincia_id', 'reference provincia',label=T('Provincia')), # ----------- format=uo_format, singular=T('Unidad Organica'), plural=T('Unidades Organicas'), ) db.unidad_organica.abreviatura.label = T('Abreviatura') db.unidad_organica.abreviatura.requires = [IS_UPPER()] db.unidad_organica.abreviatura.represent = abreviatura_represent db.unidad_organica.nivel_agregacion.requires = IS_IN_SET(NIVELES,zero=None) db.unidad_organica.nivel_agregacion.represent = nivel_agregacion_represent db.unidad_organica.clasificacion.requires = IS_IN_SET(CLASIFICACIONES,zero=None) db.unidad_organica.clasificacion.represent = clasificacion_represent db.unidad_organica.codigo_registro.requires = [ IS_NOT_EMPTY(error_message=T('Se require el código de registro')), IS_MATCH('^\d{3,3}$', error_message=T('No es un código valido')), IS_NOT_IN_DB(db,'unidad_organica.codigo_registro'), ] db.unidad_organica.codigo_escuela.requires = [ IS_NOT_EMPTY(error_message=T('Se requiere el código asignado por la escuela')), IS_MATCH('^\d{2,2}$', error_message=T('No es un código valido')), IS_NOT_IN_DB(db,'unidad_organica.codigo_escuela', error_message=T('Ya existe una UO con ese código'), ), ] db.unidad_organica.nombre.requires = [IS_UPPER(), IS_NOT_EMPTY()] db.unidad_organica.provincia_id.requires = IS_IN_DB(db, 'provincia.id', '%(nombre)s', zero=T('Escoger provincia'), ) db.unidad_organica.escuela_id.requires = IS_IN_DB(db, 'escuela.id', '%(nombre)s', zero=T('Escoger una escuela'), ) # callbacks db.unidad_organica._after_insert.append(despues_de_insertar)