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