Changes between Version 2 and Version 3 of Version2/Tutoriales/Consola_Web/Tutorial_5_Acciones_avanzadas_en_Panel_Contextual
- Timestamp:
- Apr 6, 2011, 11:17:57 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Version2/Tutoriales/Consola_Web/Tutorial_5_Acciones_avanzadas_en_Panel_Contextual
v2 v3 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_ url. Esa función recibe la url que se está visitando actualmente, 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 url (que puede estar vacía). 12 12 13 13 {{{ … … 24 24 import web 25 25 26 class ComputerNotFoundError(Exception):27 pass28 29 26 class Plugin(PluginBase): 30 27 ''' … … 33 30 self.urls = ('hello_computer/(.*)', views.HelloComputerView) 34 31 35 def get_action_instances_for_ url(self, url):36 if url.startswith("/navigator/computer"):32 def get_action_instances_for_view(self, view_path, args): 33 if view_path == "navigator.navigator.NavigatorComputer" and len(args) == 1: 37 34 # Getting the computer 38 name = url.split('/').pop()35 name = args[0] 39 36 orm = web.ctx.orm 40 37 computer = orm.query(Computer).filter(Computer.name == name).first() 41 38 42 39 if not computer: 43 r aise ComputerNotFoundError()40 return [] 44 41 45 42 # Show the action only if computer is online