def widget_selector(escuela_id=None,callback=None): """ Retorna un widget que permite seleccionar una unidad organica. Callback es la función/controlador a llamar cuando se seleccione una unidad organica el valor seleccionado es pasado como argumento a esa funcion. Si se define debe ser una tupla de tipo ('controller','function') """ request = current.request if not escuela_id: escuela_id = escuela.obtener_escuela() if callback: c, f = callback else: c = request.controller f = request.function lista = obtener_por_escuela(escuela_id=escuela_id) if 'unidad_organica_id' in request.vars: seleccionado = request.vars.unidad_organica_id else: seleccionado = lista[0].id selector = SELECT(_id='widget_selector_uo',_name='unidad_organica_id') for uo in lista: op = None if int(seleccionado) == uo.id: op = OPTION(uo.nombre, _value=uo.id, _selected=True) else: op = OPTION(uo.nombre, _value=uo.id) selector.append(op) return XML(current.response.render('widget_selector.html',dict(selector=selector,c=c,f=f)))
def actualizar_codigos(): db=current.db definir_tabla() instituto=escuela.obtener_escuela() query=( db.unidad_organica.escuela_id==instituto.id ) for uo in db( query ).select(): codigo=calcular_codigo(uo) uo.update_record(codigo=codigo) db.commit()
def seleccionar(context): """ Retorna un grid por medio del cual se puede seleccionar una unidad organica el valor del ID seleccionado quedará en: request.vars.unidad_organica_id el grid para la selección se puede obtener por medio de: context.manejo """ assert isinstance(context, Storage) request = current.request response = current.response T = current.T db = current.db if db(conjunto()).count() > 1: # Si hay más de una UO context.asunto = T('Seleccione una Unidad Orgánica') context.manejo = tools.selector(conjunto(), [db.unidad_organica.codigo, db.unidad_organica.nombre], 'unidad_organica_id', ) response.title = escuela.obtener_escuela().nombre response.subtitle = T('Unidades Orgánicas') return context else: # seleccionar la primera y redirecionar a la vista que nos llamo if request.vars.keywords: request.vars.keywords = '' if request.vars.order: request.vars.order = '' parametros = request.vars parametros.unidad_organica_id = (escuela.obtener_sede_central()).id redirect(URL(c=request.controller, f=request.function, vars=parametros))