Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Entradas sobre "pluggables":

Ejecutar tareas automáticas con django-chronograph

Django-chronograph es una aplicación que permite programar la ejecución de tareas automáticas de manage.py utilizando cron. Permite especificar las tareas a realizar y el intervalo de tiempo en el que se deben repetir mediante el sitio de administración de Django. Esto es muy útil para automatizar tareas repetitivas de nuestro proyecto como pueden ser enviar un e-mail semanal automático a todos los usuarios ó eliminar diariamente cuentas de usuarios inactivos. Django-chronograph también almacena un listado de logs visible desde el sitio de administración que nos permite comprobar los resultados de las tareas ejecutadas.

Para instalar django-chronograph basta con seguir los siguientes pasos:

  1. Descarga python-dateutil si aún no lo tienes. Es necesario para django-chronograph.

  2. Descarga la última versión de django-chronograph del repositorio mediante svn:

    svn checkout http://django-chronograph.googlecode.com/svn/trunk/ django-chronograph-read-only
    
  3. Añade la aplicación chronograph al setting INSTALLED_APPS y la siguiente URL a tu configuración de URLs en urls.py:

    url(r'^admin/chronograph/job/(?P<pk>\d+)/run/$', 'chronograph.views.job_run', name="admin_chronograph_job_run")
    

    Después ejecuta el comando manage.py syncdb para que se creen las tablas necesarias en la base de datos.

  4. Añade la siguiente línea a tu crontab especificando la ruta en la que se encuentra el archivo manage.py de tu proyecto. Para editar las tareas cron utiliza el comando crontab -e

* * * * * python /path/a/tu/proyecto/manage.py cron

Después podrás gestionar tus tareas automáticas desde el sitio de administración de Django.

django-chronograph en el sitio de administración de Django

Publicado por Antonio Melé el Jueves 9 de Abril de 2009 | 2 comentarios | Categorías: admin, aplicaciones, pluggables

Traduce tus proyectos Django con Rosetta

django-rosetta es una aplicación que facilita enormemente el proceso de traducción de tus proyectos y aplicaciones que utilizan internacionalización. La aplicación ofrece un interfaz muy similar al sistema de administración de Django (de hecho hace uso de sus css). Permite visualizar todos los catálogos de traducción, porcentaje de términos traducidos, etc. y realizar traducciones de un modo realmente cómodo. Para cada término de traducción muestra un enlace para sugerir la traducción adecuada que funciona gracias a la AJAX Language API de Google y que nos ahorra mucho tiempo. django-rosetta busca todos los archivos .po de tu proyecto en los siguientes directorios:

  • /proyecto/locale/ para el proyecto en el que está instalada
  • /proyecto/app/locale/ para todas las aplicaciones en el setting INSTALLED_APPS
  • Todos los directotios definidos en el setting LOCALE_PATHS. Por lo que también podrás traducir archivos .po que no tengan nada que ver con tus proyectos.

Nota: Si añades directorios a LOCALE_PATHS recuerda escribirlos con el formato 'mi/directorio/locale' sin la barra / al final ya que django-rosetta la añade automáticamente.

screenshot django-rosetta funcionando en una aplicación Django

Añadir django-rosetta a nuestro proyecto

Incluir django-rosetta en nuestro proyecto es realmente sencillo. Una vez descargada en cualquier parte de nuestro python path añadimos 'rosetta' a nuestras INSTALLED_APPS y a continuación incluimos la entrada de la URL base para la aplicación en la URLconf de nuestro proyecto:

urlpatterns = patterns('',
    # ...
    url(r'^rosetta/', include('rosetta.urls')),
    # ...
)

Ya tenemos django-rosetta funcionando.

Traducir con django-rosetta

Por defecto django-rosetta permite acceder al sistema de traducción a los usuarios que son administradores. Para permitir que otros usuarios puedan realizar las traducciones crea el grupo 'translators' y añádelos al mismo.

Para que django-rosetta pueda guardar los cambios realizados en los catálogos de traducción (archivos .po) necesita que el servidor web tenga permisos de escritura en esos archivos. De no tenerlos django-rosetta permite descargar el catálogo editado para no perder las traducciones realizadas. Para cualquier tema referente a internacionalización echa un vistazo a la documentación oficial.

Publicado por Antonio Melé el Miércoles 3 de Diciembre de 2008 | 2 comentarios | Categorías: internacionalización, pluggables