From 7e040a41771380c03a48ae94029c8604c55b32c8 Mon Sep 17 00:00:00 2001 From: Alan Etkin Date: Sun, 8 Dec 2013 11:01:21 -0300 Subject: [PATCH] admin plugins page: show license information and small enhancements --- applications/admin/controllers/default.py | 19 +------------------ applications/admin/languages/es.py | 18 ++++++++++++++++-- applications/admin/views/default/plugins.html | 18 +++++++++++++++++- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/applications/admin/controllers/default.py b/applications/admin/controllers/default.py index 0999df33..f048a3ae 100644 --- a/applications/admin/controllers/default.py +++ b/applications/admin/controllers/default.py @@ -1834,24 +1834,7 @@ def plugins(): "public/api.json/action/list/content/Package?package" + "_type=plugin&search_index=false").read() session.plugins = loads_json(rawlist) - plugins = TABLE( - *[TR(TD(H5(article["article"]["title"]), - A(T("Install"), - _href=URL(c="default", - f="install_plugin", - args=[app,], - vars={"source": - article["package_data"]["download"], - "plugin": article["article"]["title"]} - ))), - TD(article["article"]["description"], BR(), - A(T("Plugin page"), - _href="http://www.web2pyslices.com/slice/show/%s/" % \ - article["article"]["id"])), - TD(IMG(_src="http://www.web2pyslices.com/download/%s" % \ - article["article"]["thumbnail"]))) - for article in session.plugins["results"]]) - return dict(plugins=plugins, app=request.args(0)) + return dict(plugins=session.plugins["results"], app=request.args(0)) def install_plugin(): app = request.args(0) diff --git a/applications/admin/languages/es.py b/applications/admin/languages/es.py index e064e408..d8c4c4ef 100644 --- a/applications/admin/languages/es.py +++ b/applications/admin/languages/es.py @@ -1,4 +1,4 @@ -# coding: utf8 +# -*- coding: utf-8 -*- { '!langcode!': 'es', '!langname!': 'Español', @@ -9,6 +9,7 @@ '%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S', '(requires internet access, experimental)': '(requiere acceso a internet, experimental)', '(something like "it-it")': '(algo como "it-it")', +'(version %s)': '(version %s)', '@markmin\x01(file **gluon/contrib/plural_rules/%s.py** is not found)': '(file **gluon/contrib/plural_rules/%s.py** is not found)', '@markmin\x01An error occured, please [[reload %s]] the page': 'An error occured, please [[reload %s]] the page', '@markmin\x01Searching: **%s** %%{file}': 'Searching: **%s** files', @@ -122,6 +123,7 @@ 'delete plugin': 'eliminar plugin', 'Delete this file (you will be asked to confirm deletion)': 'Elimine este fichero (se le pedirá confirmación)', 'Delete:': 'Elimine:', +'Demo': 'Demo', 'Deploy': 'Deploy', 'Deploy on Google App Engine': 'Instale en Google App Engine', 'Deploy to OpenShift': 'Instale en OpenShift', @@ -134,6 +136,7 @@ 'direction: ltr': 'direction: ltr', 'Disable': 'Deshabilitar', 'docs': 'docs', +'Docs': 'Docs', 'Done!': 'Done!', 'done!': 'listo!', 'Download': 'Descargar', @@ -157,6 +160,7 @@ 'Editing myemail': 'Editing myemail', 'Editing rbare': 'Editing rbare', 'Editing ul': 'Editing ul', +'Enable': 'Enable', 'Enterprise Web Framework': 'Armazón Empresarial para Internet', 'Error': 'Error', 'Error logs for "%(app)s"': 'Bitácora de errores en "%(app)s"', @@ -190,6 +194,8 @@ 'First name': 'Nombre', 'Frames': 'Frames', 'Functions with no doctests will result in [passed] tests.': 'Funciones sin doctests equivalen a pruebas [aceptadas].', +'Git Pull': 'Git Pull', +'Git Push': 'Git Push', 'Globals##debug': 'Globals', 'graph model': 'graph model', 'Group ID': 'ID de Grupo', @@ -213,6 +219,7 @@ 'internal error': 'error interno', 'Internal State': 'Estado Interno', 'Invalid action': 'Acción inválida', +'Invalid application name': 'Invalid application name', 'Invalid email': 'Correo inválido', 'invalid password': 'contraseña inválida', 'invalid password.': 'invalid password.', @@ -230,6 +237,7 @@ 'Last name': 'Apellido', 'Last saved on:': 'Guardado en:', 'License for': 'Licencia para', +'License:': 'License:', 'lists by ticket': 'lists by ticket', 'loading...': 'cargando...', 'locals': 'locals', @@ -250,6 +258,7 @@ 'new application "%s" created': 'nueva aplicación "%s" creada', 'New application wizard': 'Asistente para nueva aplicación', 'new plugin installed': 'nuevo plugin instalado', +'New plugin installed: %s': 'New plugin installed: %s', 'New plugin installed: web2py.plugin.attachment.w2p': 'New plugin installed: web2py.plugin.attachment.w2p', 'New plugin installed: web2py.plugin.dialog.w2p': 'New plugin installed: web2py.plugin.dialog.w2p', 'New plugin installed: web2py.plugin.math2py.w2p': 'New plugin installed: web2py.plugin.math2py.w2p', @@ -310,6 +319,8 @@ 'Removed Breakpoint on %s at line %s': 'Eliminado punto de ruptura en %s en la línea %s', 'Replace': 'Reemplazar', 'Replace All': 'Reemplazar todos', +'Repository (%s)': 'Repository (%s)', +'Repository: %s': 'Repository: %s', 'request': 'request', 'Resolve Conflict file': 'archivo Resolución de Conflicto', 'response': 'response', @@ -329,6 +340,8 @@ 'Save file: %s': 'Guardar: %s', 'Save via Ajax': 'Guardar via Ajax', 'Saved file hash:': 'Hash del archivo guardado:', +'Screenshot %s': 'Screenshot %s', +'Screenshots': 'Screenshots', 'selected': 'seleccionado(s)', 'session': 'session', 'session expired': 'sesión expirada', @@ -336,6 +349,7 @@ 'shell': 'shell', 'Site': 'sitio', 'some files could not be removed': 'algunos archivos no pudieron ser removidos', +'source : filesystem': 'source : filesystem', 'Start searching': 'Iniciar búsqueda', 'Start wizard': 'Iniciar asistente', 'state': 'estado', @@ -355,8 +369,8 @@ 'test': 'probar', 'Testing application': 'Probando aplicación', 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La "consulta" es una condición como "db.tabla1.campo1==\'valor\'". Algo como "db.tabla1.campo1==db.tabla2.campo2" resulta en un JOIN SQL.', -'the application logic, each URL path is mapped in one exposed function in the controller': 'la lógica de la aplicación, cada ruta URL se mapea en una función expuesta en el controlador', 'The application logic, each URL path is mapped in one exposed function in the controller': 'La lógica de la aplicación, cada ruta URL se mapea en una función expuesta en el controlador', +'the application logic, each URL path is mapped in one exposed function in the controller': 'la lógica de la aplicación, cada ruta URL se mapea en una función expuesta en el controlador', 'the data representation, define database tables and sets': 'la representación de datos, define tablas y conjuntos de base de datos', 'The data representation, define database tables and sets': 'La representación de datos, define tablas y conjuntos de base de datos', 'The presentations layer, views are also known as templates': 'La capa de presentación, las vistas también son llamadas plantillas', diff --git a/applications/admin/views/default/plugins.html b/applications/admin/views/default/plugins.html index 109c0fac..377f5da1 100644 --- a/applications/admin/views/default/plugins.html +++ b/applications/admin/views/default/plugins.html @@ -1,5 +1,21 @@ {{extend 'layout.html'}} {{=H3("Available plugins")}} {{=P("Source: web2pyslices")}} -{{=plugins}} +{{articles = []}} +{{for article in plugins:}} +{{screenshots = [A(" ", T("Screenshot %s") % (x+1), " ", _href=item) for (x, item) in enumerate(article["package_data"]["screenshots"])]}} +{{articles.append(TR(TD(H5(article["article"]["title"]), +button(URL(c="default", f="install_plugin", args=[app,], vars={"source": article["package_data"]["download"], "plugin": article["article"]["title"]}), T("Install")), +BR(), +IMG(_src="http://www.web2pyslices.com/download/%s" % article["article"]["thumbnail"], _style="margin-top: 1em;"), _style="width: 20em;"), +TD(article["article"]["description"], BR(), +A(T("Plugin page"), _href="http://www.web2pyslices.com/slice/show/%s/" % article["article"]["id"]), " | ", +A(T("Demo"), _href=article["package_data"]["demo"]), " | ", +A(T("Docs"), _href=article["package_data"]["documentation"]), " | ", +A(T("Repository (%s)") % article["package_data"]["repository_brand"], _href=article["package_data"]["repository_page"]), " | ", +A(T("License:"), " ", (article["package_data"]["license_type"] or "").upper(), " ", T("(version %s)") % article["package_data"]["license_version"] if article["package_data"]["license_version"] else "", _href=article["package_data"]["license_url"]), " | " if screenshots else "", *screenshots, _style="width: 40em;")) +) +}} +{{pass}} +{{=TABLE(*articles)}}