def grid_pais(): db = current.db model.definir_tabla() db.pais.id.readable = False db.pais.id.writable = False return tools.manejo_simple(db.pais, [db.pais.codigo, db.pais.nombre], buscar=True, borrar=puede_borrar, editable=puede_borrar)
profesor.definir_tabla() funsionario.definir_tabla(db, T) nivel_academico.definir_tabla() asignatura.definir_tabla() plan_curricular.definir_tabla() plazas.definir_tabla() evento.definir_tabla() profesor_asignatura.definir_tabla() asignatura_plan.definir_tabla() grupo.definir_tabla() pago.definir_tabla(db, T) examen.definir_tabla() examen_aula_estudiante.definir_tabla() nota.definir_tabla() asignacion_carrera.definir_tabla() pais.definir_tabla() carrera_escuela.definir_tabla(db, T) especialidad.definir_tabla(db, T) turma.definir_tabla(db, T) matricula.definir_tabla(db, T) # configurar otras db.auth_user.id.readable = False ## database initialization from agiscore import tools if not tools.probar_base_de_datos(): # create default users groups tools.inicializar_seguridad() tools.inicializar_base_datos()
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