Plugin visual del portal de Datos Abiertos de la Ciudad Autónoma de Buenos Aires para Andino.
- Ingresar al host donde se encuentra instalado Andino.
- Ingresar al contenedor
portal
(docker-compose exec bash
). - Dentro del contenedor
portal
activar elvirtualenv
de CKAN:. /usr/lib/ckan/default/bin/activate
. - Instalar el plugin con
pip
:pip install -e git+https://github.com/datosgcba/ckanext-gcbaandinotheme.git@539c803ba60eec52945216dce2ab1073f132ea42#egg=ckanext-gcbaandinotheme
. - Editar el archivo
/etc/ckan/default/production.ini
y modificar:- Agregar
gcbaandinotheme
a la lista de plugins inmediatamente antes degobar_theme
. - Agregar
andino.base_page = gcba_base_page.html
dentro de la sección[app:main]
.
- Agregar
- Reiniciar Andino.
El plugin ckanext-security
permite mejorar los parámetros de seguridad de una instancia de CKAN, por ejemplo:
- Bloqueo automático de intentos de inicio de sesión fallidos.
- Expiración de sesiones automática.
- Políticas de contraseñas seguras.
Las instrucciones de instalación del plugin son:
- Verificar que la versión de Andino instalada sea como mínimo la
2.5.5
. - Ingresar al contenedor
portal
, ejecutando en el directorio de instalación de Andino (ej:/etc/portal
):docker-compose -f latest.yml exec portal bash
. - Activar el
virtualenv
dentro del contenedor:. /usr/lib/ckan/default/bin/activate
. - Instalar el plugin:
pip install -e 'git+https://github.com/data-govt-nz/ckanext-security.git@c8faa7e54af45612b6f60fdb64527375fa1b1223#egg=ckanext-security'
. Este comando instala la última versión disponible del plugin a Marzo de 2019. - Patchear el módulo
ckan.config.middleware
. Como está explicado en la documentación deckanext-security
es necesario modificar el código de CKAN para reordenar la creación de middlewares. Este cambio será incorporado al core de CKAN en versiones futuras.cd /usr/lib/ckan/default/src/ckan
git remote add -f data-govt-nz https://github.com/data-govt-nz/ckan.git
git cherry-pick 74f78865b8825c91d1dfe6b189228f4b975610a3
- Ignorar el warning que muestra
git
: Please tell me who you are.
- Modificaciones al archivo de configuración
who.ini
: Realizar los cambios sugeridos en la documentación deckanext-security
. El archivo a modificar se encuentra en/etc/ckan/default/who.ini
. Tener en cuenta que la instancia de redis se encuentra accesible en la red de docker con el nombre de dominioredis
. - Modificaciones al archivo de configuración
production.ini
: Realizar los cambios sugeridos en la documentación deckanext-security
. El archivo a modificar se encuentra en/etc/ckan/default/production.ini
. Tener en cuenta que la instancia de redis se encuentra accesible en la red de docker con el nombre de dominioredis
. - Agregar
security
a la lista de plugins enproduction.ini
, en el anteultimo lugar (antes degoogleanalytics
). - Reiniciar apache.
Si se desea actualizar Andino luego de haber realizado los cambios detallados en esta sección, es necesario antes de ejecutar la actualización deshacer los cambios en el archivo production.ini
, actualizar Andino y volver a aplicar los cambios.
Para agregar una nueva sección del menú "Acerca" es necesario crear un nuevo template HTML siguiendo las instrucciones de la documentación de Andino ubicadas aquí.
Para simplificar el agregado de las secciones, se recomienda subir el código HTML del template a un archivo dentro del directorio ckanext/gcbaandinotheme/templates
de este repositorioy ponerle un nombre descriptivo de la sección (ejemplo: equipo.html
).
Si es necesario subir imágenes que acompañen al template, las mismas debe ser subidas en la ruta ckanext/gcbaandinotheme/public/img
. Las mismas estarán disponibles en el servidor web en la ruta /img
.
Para que el código del nuevo template esté disponible para ser usando en Andino, el encargado de gestionar la infraestructura del portal de datos de la Ciudad Autónoma de Buenos Aires deberá actualizar el repositorio de código dentro del contenedor portal
de Andino siguiendo los siguientes pasos:
- Ingresar por SSH a una consola remota del servidor host de Andino, usando un usuario sudoer o con permisos para operar contendores de Docker.
- Cambiar al directorio de instalación de Andino (ejemplo:
cd /etc/portal
). - Ingresar al contenedor
portal
de Andino:sudo docker-compose -f latest.yml exec portal bash
. - Dentro del contenedor cambiar al directorio donde se encuentra instalado el plugin:
cd /usr/lib/ckan/default/src/ckanext-gcbaandinotheme
. - Sincronizar el repositorio:
git fetch
. - Saltar a la versión específica que agrega el cambio que queremos actualizar en el sitio (ejemplo: el agregado del archivo
equipo.html
y/o imágenes):git checkout <hash del commit>
. Para esto será necesario indicarle al equipo encargado de gestionar la infraestructura del sitio cual es el hash del commit a instalar. - Salir del contenedor
portal
:exit
. - Reiniciar el contenedor
portal
ynginx
:sudo docker-compose -f latest.yml restart nginx portal
.
Una vez que el template de la nueva sección "Acerca" se encuentra disponible dentro del contendor portal
de Andino, puede ser configurado siguiendo las instrucciones de la documentación oficial de Andino. Simplemente será necesario acceder al panel de administración de Andino y agregar la sección Acerca utilizando el mismo nombre de archivo guardado en el repositorio.
La sección "Historias" está compuesta por un template HTML ubicado en la ruta ckanext/gcbaandinotheme/templates/historias.html
y un conjunto de imágenes en formato png ubicadas en ckanext/gcbaandinotheme/public/img/historias
.
El markup HTML del template de la sección define la forma en que las mismas se mostrarán, para agregar una historia simplemente es necesario agregar un elemento nuevo dentro del elemento div.histories-list
del template historias.html
con la siguiente estructura:
<a href="{{ LINK A LA HISTORIA }}" target="blank" class="dataset-item">
<div class="col-xs-12 col-md-3">
<div class="dataset-container">
<div class="dataset-border">
<div class="restricted-max-width">
<div class="col-xs-912"><img src="{{ RUTA A LA IMAGEN THUMB }}"></div>
<div class="dataset-content col-xs-12">
<h4>{{ TÍTULO DE LA HISTORIA }}</h4>
<div class="dataset-notes">
<p>{{ DESCRIPCIÓN DE LA HISTORIA }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</a>
Como puede apreciarse arriba, para agregar una historia es necesario contar con 4 elementos:
- La URL donde está alojada la historia.
- Título de la historia.
- Descripción de la historia.
- Imagen de la historia. Puede ser una URL externa o un archivo imagen, en cuyo caso debe ser subida en el repositorio del plugin en la ruta
ckanext/gcbaandinotheme/public/img/historias
y referenciadas desde el template usando la ruta/img/historias/nombre-del-archivo.png
.
Una vez armado el snippet de la historia utilizando los cuatro valores arriba mencionados, se agrega la historia al archivo ckanext/gcbaandinotheme/templates/historias.html
en el orden deseado (las primeras aparecerán arriba de todo).
El código debe luego subirse al repositorio de código y debe realizarse la actualización del código del plugin utilizando el mismo procedimiento que se encuentra detallado en Actualización del template dentro de Andino.
Una vez actualizado el código del plugin dentro del contenedor portal
de Andino, los cambios se visualizarán automáticamente.