Changes between Version 4 and Version 5 of Version2/Tutoriales/Consola_Web/Tutorial_5_Acciones_avanzadas_en_Panel_Contextual


Ignore:
Timestamp:
May 4, 2011, 1:32:38 PM (13 years ago)
Author:
edulix
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Version2/Tutoriales/Consola_Web/Tutorial_5_Acciones_avanzadas_en_Panel_Contextual

    v4 v5  
    33Este es el quinto tutorial de la saga de tutoriales sobre Opengnsys 2 referentes a cómo implementar plugins para la Consola Web. Puedes acceder a la [[Version2|página que lista todos los tutoriales]] o al tutorial anterior: [wiki:Version2/Tutoriales/Consola_Web/Tutorial_4_Jobs Tutorial 4: Envío de trabajos a los clientes].
    44
    5 Este quinto tutorial se basa en el [wiki:Version2/Tutoriales/Consola_Web/Tutorial_2_Acciones_en_Panel_Contextual Tutorial 2], por tanto es preciso haberlo comprendido para poder continuar. En ese tutorial conseguimos que una acción se mostrase en panel contextual del navegador de la consola cuando se muestra un ordenador o una unidad organizativa.
     5Este quinto tutorial se basa en el [wiki:Version2/Tutoriales/Consola_Web/Tutorial_2_Acciones_en_Panel_Contextual Tutorial 2], por tanto es preciso haberlo comprendido para poder continuar. En dicho tutorial conseguimos que una acción se mostrase en panel contextual del navegador de la consola cuando se muestra al usuario un ordenador o una unidad organizativa.
    66
    77En este quinto tutorial modificaremos el código del tutorial 2 para que la lista de acciones del plugin para cada url se genere dinámicamente, mostrando sólo la acción cuando el ordenador esté encendido.
     
    99= Devolviendo acciones =
    1010
    11 El código de nuestro plugin va a variar un poco. Primeramente, hemos eliminado la acción hello, y hemos cambiado la acción hello_entity por hello_computer. Además en vez de definir self.actions_for_urls, vamos a definir una función llamada get_action_instances_for_view. Esa función recibe la vista que se está visitando actualmente y los argumentos que dicha vista recibe, y en función de lo que queramos que haga el plugin, devolverá una lista de acciones para esa url (que puede estar vacía).
     11El código de nuestro plugin va a variar un poco. Primeramente, hemos eliminado la acción hello, y hemos cambiado la acción hello_entity por hello_computer. Además en vez de definir self.actions_for_urls, vamos a definir una función llamada get_action_instances_for_view. Esa función recibe la vista que se está visitando actualmente y los argumentos que dicha vista recibe, y en función de lo que queramos que haga el plugin, devolverá una lista de acciones para esa vista (que puede estar vacía).
    1212
    1313{{{
     
    5050}}}
    5151
    52 Las acciones de dicha lista como podemos ver en el código de arriba son instancias de la clase !ActionInstance, que define todo lo que necesita Opengnsys para mostrar la el text, el icono y la url del enlace. Para generar la url hemos usado la función fill_url que genera una url a partir de self.urls, la vista asociada a dicha url y los parámetros que queremos que reciba.
     52Las acciones de dicha lista como podemos ver en el código de arriba son instancias de la clase !ActionInstance, que define todo lo que necesita Opengnsys para mostrar la el texto, el icono y la url del enlace. Para generar la url hemos usado la función fill_url que genera una url a partir de self.urls del plugin, especificando la vista asociada a dicha url y los parámetros que queremos que reciba. El texto y el icono del ActionInstance lo obtenemos de self.actions que contiene la información de las acciones que metamos en plugin.conf.
    5353
    5454El código de la vista (view.py) es muy similar a la del tutorial 2, pues sólo se ha eliminado la vista !HelloView que se introdujo en el segundo tutorial y se ha modificado la vista !HelloEntityView para se llame !HelloComputerView y poco más:
     
    7979[action/hello_computer]
    8080description = Displays the text Hello online computer!
    81 human_name = Say hello to this
     81human_name = Hello Computer
    8282appear_in_main_panel = No
    8383}}}