コード例 #1
0
ファイル: tools.py プロジェクト: eadomenech/agis
def inicializar_base_datos():
    db = current.db
    request = current.request
    # academic regions
    db.region_academica.import_from_csv_file(
        open(os.path.join(request.folder, 'db_region_academica.csv'), 'r')
    )
    db.commit()
    paises_list = os.path.join(request.folder, 'db_pais.csv')
    if os.path.exists(paises_list):
        db.pais.import_from_csv_file(open(paises_list, 'r'))
        db.commit()
    db.provincia.import_from_csv_file(
        open(os.path.join(request.folder, 'db_provincia.csv'), 'r')
    )
    db.commit()
    region = db.region_academica[1]
    escuela = db.escuela.insert(nombre='IES EXEMPLO',
        region_academica_id=region.id,
        clasificacion='10',
        naturaleza='1',
        codigo_registro='000',
        codigo='07101000'
    )
    db.commit()
    # regímenes
    db.regimen.import_from_csv_file(
        open(os.path.join(request.folder, 'db_regime.csv'), 'r')
    )
    db.commit()
    tmp_prov = db.provincia[1]
    unidad_organica_id = db.unidad_organica.insert(nombre='SEDE CENTRAL (DEFECTO)',
        provincia_id=tmp_prov.id,
        nivel_agregacion='1',
        clasificacion='20',
        codigo_registro='000',
        codigo_escuela='00',
        escuela_id=escuela
    )
    db.commit()
    db.descripcion_carrera.import_from_csv_file(
        open(os.path.join(request.folder, 'careers_des.csv'), 'r')
    )
    db.commit()
    # municipios
    db.municipio.import_from_csv_file(
        open(os.path.join(request.folder, 'db_municipality.csv'), 'r')
    )
    db.commit()
    # comunas
    db.comuna.import_from_csv_file(
        open(os.path.join(request.folder, 'db_commune.csv'), 'r')
    )
    db.commit()
    # tipos de enseñanza media
    db.tipo_escuela_media.import_from_csv_file(
        open(os.path.join(request.folder, 'db_middle_school_type.csv'), 'r')
    )
    db.commit()
    db.tipo_documento_identidad.bulk_insert([
       {'nombre': 'BILHETE DE IDENTIDADE'},
       {'nombre': 'PASSAPORTE'},
    ])
    db.commit()
    # tipos de discapacidad
    db.discapacidad.import_from_csv_file(
       open(os.path.join(request.folder, 'db_special_education.csv'), 'r')
    )
    db.commit()
    # tipos de pago, emolumentos
    from agiscore.db import tipo_pago
    tipo_pago.definir_tabla()
    db.tipo_pago.import_from_csv_file(
        open(os.path.join(request.folder, 'db_tipo_pago.csv'), 'r')
    )
    from agiscore.db import ano_academico
    nombre = ano_academico.ano_actual()
    a_id = db.ano_academico.insert(nombre=nombre,
                                   unidad_organica_id=unidad_organica_id)
    from agiscore.db import evento
    evento.crear_eventos(db, a_id)
    db.commit()
コード例 #2
0
ファイル: unidad.py プロジェクト: ybenitezf/agis
def index():
    """Muestra el listado de los años académicos"""
    C = Storage()
    C.unidad = db.unidad_organica(int(request.args(0)))
    C.escuela = db.escuela(C.unidad.escuela_id)
    # breadcumbs
    u_link = Accion(C.unidad.abreviatura or C.unidad.nombre,
                    URL('index', args=[C.unidad.id]),
                    True)  # siempre dentro de esta funcion
    menu_migas.append(u_link)
    menu_migas.append(T('Años académicos'))

    # -- configuración del grid
    tbl = db.ano_academico
    tbl.id.readable = False
    tbl.unidad_organica_id.readable = False
    tbl.descripcion.readable = False
    tbl.nombre.label = T("Año")

    query = (tbl.id > 0) & (tbl.unidad_organica_id == C.unidad.id)

    puede_crear = auth.has_membership(role=myconf.take('roles.admin'))
    puede_borrar = auth.has_membership(role=myconf.take('roles.admin'))

    crear_link = URL('index', args=[C.unidad.id, 'new'])
    C.crear_link = Accion(CAT(SPAN('', _class='glyphicon glyphicon-plus'),
                                 ' ',
                                 T("Agregar año")),
                             crear_link,
                             puede_crear,
                             _class="btn btn-default btn-xs",
                             _title=T("Agregar un nuevo año académico"))

    if 'new' in request.args:
        # autocrear los años
        ultimo = db(query).select(orderby=[~tbl.nombre]).first()
        if ultimo:
            ultimo = int(ultimo.nombre) + 1
        else:
            # si no existen entonces crear para el actual
            ultimo = datetime.now().year
        key = tbl.insert(nombre=str(ultimo), unidad_organica_id=C.unidad.id,
                         descripcion='')
        from agiscore.db import evento
        evento.crear_eventos(db, key)
        redirect(URL('index', args=[C.unidad.id]))

    def _enlaces(row):
        co = CAT()

        # para cada evento del año agregar un enlace
        q_ev = (db.evento.id > 0)
        q_ev &= (db.evento.ano_academico_id == row.id)

#         from agiscore.gui.evento import controllers_register
        for ev in db(q_ev).select():
#             c = controllers_register[ev.tipo]
            link = URL('evento', 'index', args=[ev.id])
            co.append(LI(A(ev.nombre, _href=link)))
        return co

    C.actual = str(datetime.now().year)

    C.anos = db(query).select(tbl.ALL, orderby=[~tbl.nombre])
    C.enlaces = _enlaces

    return dict(C=C)