En el último post creamos una estructura base con Django-CMS de una manera rápida y sencilla. Ahora vamos a completar un poco más nuestro portal web incluyendo en la parte pública una sección de noticias y un calendario de eventos, además vamos a utilizar admin-tools para mejorar es aspecto de nuestro administrador.
Mejorar el aspecto visual del administrador de Django
Para ello vamos a utilizar django-admin-tools, lo podemos descargar desde aquí.
Una vez descargado descomprimiremos la carpeta admin_tools al raíz de nuestro proyecto, quedando la siguiente estructura:
mycmsproject/
manage.py
mycmsproject/
...
admin_tools/
...
Llegados a este punto, editaremos nuestro fichero settings.py, dejando el inicio de INSTALLED_APPS de la siguiente manera:
INSTALLED_APPS = (
'admin_tools',
'admin_tools.theming',
'admin_tools.menu',
'admin_tools.dashboard',
#Resto de apps
....
Tras añadir admin_tools a nuestro settings.py, abriremos una consola y en la raíz de nuestro proyecto ejecutaremos:
python manage.py syncdb python manage.py migrate admin_tools.dashboard python manage.py migrate admin_tools.menu
Modificaremos urls.py, añadiendo al principio de urlpatterns esta línea:
url(r'^admin_tools/', include('admin_tools.urls')),
Por último, antes de volver a lanzar el servidor ejecutaremos:
python manage.py collectstatic
Ahora ya podemos lanzar de nuevo el sevidor de Django:
python manage.py runserver
Y al acceder a nuestro administrador, obtendremos el siguiente resultado:
Más información aquí.
Extensión para incluir noticias en nuestro portal web
Al igual que en el paso anterior, lo primero que vamos hacer es descargar una de las extensiones para la gestión de eventos que hay para Django-CMS. Podemos hacerlo desde aquí.
Una vez descargada, extraeremos la carpeta “simple_events” en el raíz de nuestro proyecto, quedando la siguiente estructura:
mycmsproject/ manage.py mycmsproject/ ... admin_tools/ ... simple_events/ ...
Editaremos nuestro fichero settings.py y añadiremos al final de “INSTALLED_APPS” las siguiente línea:
...
'simple_events',
) #Aquí se cierra INSTALLED_APPS
Luego abriremos una consola y en la raíz de nuestro proyectos ejecutaremos:
python manage.py syncdb --all python manage.py runserver
Ahora si accedemos al administrador ( http://localhost:8000/admin ) vermos que tenemos la aplicación de eventos instalada.
Por último, vamos a crear una nueva página en el CMS, por ejemplo con el nombre “Agenda”, una vez creada la página desplegaremos las opciones avanzadas y seleccionaremos la aplicación de eventos.
Guardamos la página y listo.
Este módulo nos permite añadir un calendario de eventos en cualquier página del CMS.
Para la integración de un sistema de noticias, dado que voy a usar el plugin: cmsplugin-advancednews voy a crear otro post, dado que requiere de un pequeño retoque en el código del CMS y el uso de django-hvad.
Post relacionados: Crear un portal web con Django-CMS Fase I


