Django Jet

imagen / geex-arts
  
24 de Marzo de 2016   0  

Anteriormente hemos hablado de diferentes extensiones que podemos utilizar para cambiar el look & feel de nuestro administrador Django y sin embargo, ninguno de los anteriores me había dejado tan impresionado como este que les traigo el día de hoy! Su nombre es Django Jet.

Esta librería nos permite extender las funcionalidades básicas que el admin de Django nos proporciona en una instalación limpia del framework, a tal grado que pareciera que estamos utilizando algo diferente de Django. Alguna de las características sobresalientes son:

Cambio de colores "On the fly".

Sin duda uno de mis favoritos! Esta funcionalidad permite cambiar el color del tema a gusto del usuario que se encuentre logeado en el sistema. Django Jet mantendrá esta configuración en base de datos, permitiendo al usuario tener consigo sus configuraciones en cualquier equipo donde se encuentre logeado.

BookMarks.

Django Jet nos permite agregar link favoritos a través de la funcionalidade de Bookmarks. Esto nos ofrece accesos directos a url's del admin que utilicemos con mucha frecuencia y que tal vez agregarlos como un link directo nos ofrezca una mejor navegación entre las funcionalidades de nuestas aplicaciones.

Similar a los Bookmarks, tenemos la opción de marcar aplicaciones como favoritas y Django Jet nos pondrá estas aplicaciones al inicio del listado para tenerlas siempre a la mano :)

Menús personalizados.

Por defecto Django Jet muestra todas las aplicaciones y modelos en el menú lateral en orden alfabético . Para mostrar las aplicaciones y los modelos que deseamos o para cambiar su orden, se puede utilizar el ajuste JET_SIDE_MENU_CUSTOM_APPS . Aquí dejo un ejemplo:

JET_SIDE_MENU_CUSTOM_APPS = [
    ('core', [ # Each list element is a tuple with application name (app_label) and list of models
        'User',
        'MenuItem',
        'Block',
    ]),
    ('shops', [
        'Shop',
        'City',
        'MetroStation',
    ]),
    ('feedback', [
        'Feedback',
    ]),
]

Menú compacto.

Si tienes pocos modelos y aplicaciones, tal vez el menú en dos niveles te resulte molestoso. Con esta configuración, podrás ver al lado izquierdo, todos los modelos enlistados según su aplicación y sin necesidad de abrir un segundo nivel para elegir un modelo para trabajar.

Widget de Google Analytics.

Este widget necesitará que instalemos la librería python para Google Analytics. Esto se instala de la siguiente manera:

pip install google-api-python-client

Posteriormente tendremos que configurar nuestra cuenta utilizando el archivo client_secrets.json:

JET_MODULE_GOOGLE_ANALYTICS_CLIENT_SECRETS_FILE = os.path.join(PROJECT_DIR, 'client_secrets.json')

Agregamos un import hasta el inicio de nuestras urls:

from jet.dashboard.dashboard_modules import google_analytics_views

Y por último deberemos crear una clase de la siguiente manera:

from django.utils.translation import ugettext_lazy as _
from jet.dashboard.dashboard import Dashboard, AppIndexDashboard
from jet.dashboard.dashboard_modules import google_analytics


class CustomIndexDashboard(Dashboard):
    columns = 3

    def init_with_context(self, context):
       self.available_children.append(google_analytics.GoogleAnalyticsVisitorsTotals)
       self.available_children.append(google_analytics.GoogleAnalyticsVisitorsChart)
       self.available_children.append(google_analytics.GoogleAnalyticsPeriodVisitors)

Widget personalizados.

Si bien, podemos tener algunos widgets predefinidos como el caso de los analíticos de Google, también podemos generar los nuestros, como es el caso de grupo de aplicaciones independientes, lectura de algún canal RSS desde nuestro admin, Link externos, entre otros.

Licencias de uso.

Una de las cosas que no agradan es el tema de las licencias de uso. Django Jet se encuentra bajo los términos GPL v2 de la Free Software Foundation, lo que nos permite utilizarlo, distribuirlo y/o modificarlo sin problemas en proyectos libres y sin copyright, en general, con licencias compatibles con GPL v2. Si necesitamos integrarlo con algún proyecto privado, Django Jet cuenta con licencias comerciales que nos permitirán adaptarlo a nuestros proyectos privados y comerciales sin ningún problema.

Ahora les dejo algunos screenshots de cómo se vería configurado nuestro admin utilizando Django Jet:

 

 

 

 

 

 

 

Si desean conocer más sobre este tema, les dejo el link de su página oficial: http://jet.geex-arts.com/

 

 

 



Alex Dzul

FullStack Python / Django Developer. #jslove

Etiquetas