예제 #1
0
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)))
예제 #2
0
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()
예제 #3
0
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))