Esempio n. 1
0
def manejo_escuelas_medias(db, T, auth=None, request=None, conf=None):
    if auth is None:
        auth = current.auth
    if request is None:
        request = current.request
    if conf is None:
        conf = current.conf

    if 'new' in request.args:
        #preparar el formulario para agregar un elemento.
        if request.vars.provincia_id:
            prov = provincia.obtener(int(request.vars.provincia_id))
        else:
            prov = provincia.obtener() # obtener cualquier provincia
        mun = municipio.obtener(provincia_id=prov.id)
        db.escuela_media.provincia_id.default = prov.id
        db.escuela_media.municipio_id.default = mun.id
        db.escuela_media.municipio_id.requires = IS_IN_DB(
            db(db.municipio.provincia_id == prov.id),
            'municipio.id',"%(nombre)s",zero=None
        )
        db.escuela_media.codigo.comment = T("Código de 4 digitos")
    condq = (db.escuela_media.tipo_escuela_media_id !=
             tipo_escuela.obtener_por_uuid(tipo_escuela.ID_PROTEGIDO).id)
    db.escuela_media.provincia_id.show_if = condq
    db.escuela_media.municipio_id.show_if = condq
    db.escuela_media.id.readable = False
    # esto debe mantenerse lo más proximo posible a la contrucción del GRID
    if ('new' in request.args) or ('edit' in request.args):
        if request.vars.tipo_escuela_media_id:
            # guardando el formulario
            sid = int(request.vars.tipo_escuela_media_id)
            pid = tipo_escuela.obtener_por_uuid(tipo_escuela.ID_PROTEGIDO).id
            if sid == pid: # si es el valor ID_PROTEGIDO
                # asignarle valores a la provincia y municipo
                id_p = db.provincia.obtener_por_uuid(provincia.ID_PROTEGIDO).id
                id_m = db.municipio.obtener_por_uuid(municipio.ID_PROTEGIDO).id
                request.vars.provincia_id = id_p
                request.vars.municipio_id = id_m
                request.post_vars.provincia_id = id_p
                request.post_vars.municipio_id = id_m
                db.escuela_media.provincia_id.default = id_p
                db.escuela_media.municipio_id.default = id_m
                db.escuela_media.municipio_id.requires = []
    
    puede_crear = auth.has_membership(role=conf.take('roles.admin'))
    puede_editar, puede_borrar = (puede_crear, puede_crear)
    
    text_lengths = {'escuela_media.nombre': 100}
    
    manejo = grid_simple((db.escuela_media.id > 0),
                         maxtextlength=text_lengths,
                         create=puede_crear,
                         editable=puede_editar,
                         deletable=puede_borrar)
    
    return manejo
Esempio n. 2
0
def obtener_manejo():
    db = current.db
    request = current.request
    #if not hasattr(db, 'escuela_media'):
        #definir_tabla()

    if 'new' in request.args:
        #preparar el formulario para agregar un elemento.
        if request.vars.provincia_id:
            prov = provincia.obtener(int(request.vars.provincia_id))
        else:
            prov = provincia.obtener() # obtener cualquier provincia
        mun = municipio.obtener(provincia_id=prov.id)
        db.escuela_media.provincia_id.default = prov.id
        db.escuela_media.municipio_id.default = mun.id
        db.escuela_media.municipio_id.requires = IS_IN_DB(
            db(db.municipio.provincia_id == prov.id),
            'municipio.id',"%(nombre)s",zero=None
        )
    condq = (db.escuela_media.tipo_escuela_media_id !=
             tipo_escuela.obtener_por_uuid(tipo_escuela.ID_PROTEGIDO).id)
    db.escuela_media.provincia_id.show_if = condq
    db.escuela_media.municipio_id.show_if = condq
    db.escuela_media.id.readable = False
    # esto debe mantenerse lo más proximo posible a la contrucción del GRID
    if ('new' in request.args) or ('edit' in request.args):
        if request.vars.tipo_escuela_media_id:
            # guardando el formulario
            sid = int(request.vars.tipo_escuela_media_id)
            pid = tipo_escuela.obtener_por_uuid(tipo_escuela.ID_PROTEGIDO).id
            if sid == pid: # si es el valor ID_PROTEGIDO
                # asignarle valores a la provincia y municipo
                id_p = db.provincia.obtener_por_uuid(provincia.ID_PROTEGIDO).id
                id_m = db.municipio.obtener_por_uuid(municipio.ID_PROTEGIDO).id
                request.vars.provincia_id = id_p
                request.vars.municipio_id = id_m
                request.post_vars.provincia_id = id_p
                request.post_vars.municipio_id = id_m
                db.escuela_media.provincia_id.default = id_p
                db.escuela_media.municipio_id.default = id_m
                db.escuela_media.municipio_id.requires = []
    manejo = SQLFORM.grid(db.escuela_media,
        showbuttontext=False, maxtextlength=100, details=False,
        csv=False,orderby=[db.escuela_media.nombre])
    return manejo