domingo, 29 de diciembre de 2024

Python (XXI) . Creación de un miniframework (III) Definición de las acciones tipo "table"(II)

 1. Definición de las acciones tipo "table"

Veamos el fichero "actions_04" de la carpeta "static/conf" a modo de ejemplo


#########################################
# actions_04.yml
#########################################
# 4.1 Taula municipio
41: 
    type: table
    conn: postgresDemo
    dbTable: POBLACIONS
    dbSchema: ine
    help: Taula de municipis 

    # Solo para el modo registro
    ox: > 
      Codis: [id, CPRO, CMUN, DC];
      Descripcions: [description];
    
    readOnly: [id]
    hidden: [CODAUTO]  
    
    #events: 
    #  campo1:  
    #    hx_trigger: change   #Podemos añadir mas eventos separado por coma
    #    hx_include: '#campo2'
    #    hx_target: '#campo3' 
    #    hx_edu_target: ["#campo3","#campo4","#grid_interessats"]
    #    module: basicutils/xmalbaopc.py
    #    function: albaExpSelecExpsAndInteressats(expCodiOrigen=expCodiOrigen, expCodiDestinacio=expCodiDestinacio)
     
  
    #other: []
    #session: 
      #save: [campo6, campo7]
      #read: [campo8, campo9]
    
    options: 
      - id: bt_opt_canviar
        label: Canviar Nom
        module: table_options/xmalbaopc_procs.py
        function: alba_save_decrets(exercici=exercici, expedient=expedient)
        tooltip: Canviar el nom del poble

      - id: bt_opt_prefixar
        label: Prefixar la província
        module: table_options/xmalbaopc_procs.py
        function: alba_save_decrets(exercici=exercici, expedient=expedient)
        tooltip: Prefixar la província al poble

Veamos  los parámetros:

  • La clave del menú "41"
  • type : En este caso es tipo "table"
  • conn: Nombre de la conexión. Las conexiones se guardan en un fichero a parte que indicaremos mas adelante en esta entrada.
  • dbTable: el nombre de la tabla a utilizar
  • ox: Se indica como se muestran los campos en formato OpenXava de Javier Paniza.
  • readonly: Es la lista de los campos que no se pueden modificar
  • hidden: es una lista de campos de la tabla que se van a ocultar.
  • help: Información de ayuda
  • El resto de campos se indica su definición en la entrada anterior y  están comentados pues no se utiliza ninguno en este ejemplo, pero no impide que se puedan utilizar y son:  events (y sus componentes), other session
  • options: Para añadir nuevos botones sobre un registro y que ejecutan una función de un módulo de python. La informaciíon a pasar es:
    • id: es el id del botón y debe comenzar por "bt_opt_"
    • label: Texto que aprarecerá dentro del botón        
    • module: fichero python con extensión ".py", indicando también su carpeta
    • function: función del módulo junto con sus argumentos)
    • tooltip: Texto emergente que da una pequeña explicación del uso del botón.
En este caso se han añadido 2 botones más que corresoonden a las dos acciones sobre el registro. Se mostrarám solamente en la pantalla del

2. Definición de la conexión:

Para definir a conexión tenemos este fichero "db.yml" que se deberia guardar en "static/conf"

postgresDemo: 
    dbType: 'postgresql+psycopg2'
    dbUser: myUser
    dbPwd: myPassword
    dbHost: localhost
    dbPort: 5432
    dbName: ayto
    dbSchema: TERRIRORI

Cabe destacar el nombre de la conexión y sobre todo el tipo de la conexión. Los demás detalles son importantes sobre todo s se utilian esquemas.


3. Pantallas que se dan:

Hay 3 tabs, para el primer tab el de "taula" solo nos permite buscar un nimero de registro mas o menos grande, y podemos mofivcar los campos directamente en la tabla, Y no podemos hacer nada mas quwe volver

El siguiente tab "Registre" nos permte modificar, dar altas copiando o de un registro en blanco, y borrar.
Hay que observar que la claves que son ajenas se muestran como un "combo" o "select". De momento cuando se tengan un gran número de opciones no se ha pensado en un componente que sea mas versátil, pero se prevé utilizarlo en proximas vesiones. En este caso es el código de provincia


El tercer "tab" es el de búsqueda, donde se permiten seleccionar los campos y establecer el orden de los registros. Aquí se buscan registros cuyo campo descripción termine con "Cull" y seguramene encontrará pocos municipios. Se ordenarán por description e id.


















No hay comentarios :

Publicar un comentario