Changes between Version 4 and Version 5 of Version2/Tutoriales/Consola_Web/Tutorial_5_Acciones_avanzadas_en_Panel_Contextual
- Timestamp:
- May 4, 2011, 1:32:38 PM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Version2/Tutoriales/Consola_Web/Tutorial_5_Acciones_avanzadas_en_Panel_Contextual
v4 v5 3 3 Este 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]. 4 4 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 muestraun ordenador o una unidad organizativa.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 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. 6 6 7 7 En 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. … … 9 9 = Devolviendo acciones = 10 10 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).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 vista (que puede estar vacía). 12 12 13 13 {{{ … … 50 50 }}} 51 51 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.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 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. 53 53 54 54 El 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: … … 79 79 [action/hello_computer] 80 80 description = Displays the text Hello online computer! 81 human_name = Say hello to this81 human_name = Hello Computer 82 82 appear_in_main_panel = No 83 83 }}}