Git Product home page Git Product logo

datosgobar / ckanext-andinotemplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from devartis/ckanext-andinotemplate

0.0 8.0 3.0 25 KB

Template de Plugin para Andino. Este repositorio es una muestra de cómo implementar un plugin base para una instancia de Andino y agregar funcionalidades extendiendo el plugin.

License: GNU Affero General Public License v3.0

Shell 11.34% Python 29.29% HTML 59.37%

ckanext-andinotemplate's Introduction

Build Status

Docs Status

ckanext-andinotemplate

Template de Plugin para Andino. Este repositorio es una muestra de cómo implementar un plugin base para una instancia de Andino y agregar funcionalidades extendiendo el plugin.

Instalación de prueba

Antes de crear y comenzar a utilizar tu propio plugin basado en ckanext-andinotemplate, quizás quieras instalar el original a modo de prueba. Para lograrlo:

  1. Activá el virtualenv de tu instancia de CKAN:

    . /usr/lib/ckan/default/bin/activate

  2. Instalá el paquete de Python ckanext-andinotemplate dentro del virtualenv:

    pip install -e git+https://github.com/datosgobar/ckanext-andinotemplate.git#egg=ckanext-andinotemplate

  3. Agregá andinotemplate a la lista de ckan.plugins en tu archivo de configuración de CKAN (por defecto ubicada en /etc/ckan/default/production.ini dentro del contenedor portal).

  4. Editar el archivo de configuración de Andino /etc/ckan/default/production.ini dentro del contenedor portal y agregar el setting andino.base_page = andino_custom_base_page.html, provisto por ckanext-andinotemplate.

  5. Reiniciá Andino.

Funcionalidades base

El plugin template default permite agregar a tu instancia de Andino dos puntos de menú en la navegación superior de Andino:

Soporte para plugin extensible

Para crear e instalar tu propia versión de ckanext-andinotemplate para agregar funcionalidades adicionales a tu Andino seguí los siguientes pasos:

  1. Necesitás tener tu copia del proyecto ckanext-andinotemplate, lo cual podés lograr haciendo un fork del original o una copia del repositorio.

  2. Renombrar el plugin acorde a la funcionalidad que agregarás. Por ejemplo ckanext-miplugindeandino.

  3. Ingresá al contenedor portal de tu Andino y asegurate de que esté activado el virtualenv:

    . /usr/lib/ckan/default/bin/activate

  4. Instalá el paquete de Python correspondiente a tu plugin en modo editable dentro del virtualenv:

    pip install -e

  5. Agregá tu plugin a la lista de ckan.plugins en tu archivo de configuración de CKAN (por defecto ubicada en /etc/ckan/default/production.ini dentro del contenedor portal). Si tu plugin se llama ckanext-miplugindeandino lo que debés agregar es miplugindeandino.

  6. Editá el archivo de configuración de Andino /etc/ckan/default/production.ini dentro del contenedor portal y agregá el setting andino.base_page = andino_custom_base_page.html, provisto por tu copia de ckanext-andinotemplate. Este paso es opcional, y sólo debés hacerlo si deseás modificar los templates de Andino.

  7. Reiniciá Andino.

Utilizar un archivo nuevo como página base

El archivo andino_custom_base_page.html deberá contener lo que desees mostrar en vez del template default que utiliza Andino. Esto te permite, por ejemplo, agregar secciones nuevas en el header (las cuales te pueden servir para mostrar las nuevas funcionalidades) junto a las ya existentes.

Recomendamos basarse en el template utilizado por default en Andino y realizar modificaciones a partir del mismo.

Agregar una página custom

Se requiere la utilización de un template nuevo para cada funcionalidad, el cual debe ser guardado en el mismo directorio que el archivo template_nuevo.html.

  • Creá un nuevo template copiando el archivo template_nuevo.html, por ejemplo mi_nuevo_template.html.

  • Agrega una nueva "acción" en la clase dentro de plugin_controller.py; éste debe ser un método que reciba cierto parámetro y devuelva render("mi_nuevo_template.html").

  • En el archivo plugin.py de ckanext-andinotemplate, dentro de la función after_map, copiar y pegar un código parecido a éste exactamente arriba de la línea "return m":

        m.connect('mi_pagina_custom', "/el_path_de_mi_pagina",
                  controller='ckanext.andinotemplate.plugin_controller:AndinoTemplateController',
                  action='nombre_de_mi_accion')
  • En el archivo plugin_controller.py de ckanext-andinotemplate, pegar como función nueva este código:
    def nombre_de_mi_accion(self):
        return base.render('mi_nuevo_template.html')  # Especificamos el template

Es importante que el nombre de la función, en este ejemplo "nombre_de_mi_accion", sea el mismo que se escribió para 'action' en plugin.py.

Documentación oficial de desarrollo de plugins para CKAN

Para más información acerca de cómo desarrollar un plugin para CKAN, podés ver la documentación oficial.

ckanext-andinotemplate's People

Contributors

chdigiorno avatar poligarcia avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.