Skip to content

Documentación

Ales Zabala Alava (Shagi) edited this page Nov 3, 2016 · 2 revisions

Documentación de guifiadmin

Instalación

Básicamente es un proyecto de Django, por lo que se aplican los pasos habituales de instalación.

Descargar el repositorio, crear un virtualenv e instalar las dependencias:

git clone https://github.com/shagi/guifiadmin.git
cd guifiadmin
virtualenv env
source env/bin/activate
pip install -r requirements.txt

La base de datos por defecto es un fichero en sqlite en la raíz del proyecto. Inicializamos la base de datos, y opcionalmente introducimos datos de ejemplo (el segundo comando):

python manage.py migrate
python manage.py loaddata sample_data/*.json

Cuidado! El fichero sample_data/sample_admin.json crea un usuario admin con contraseña admin.

Para arrancar la aplicación:

python manage.py runserver

De este modo podemos acceder a la aplicación en http://localhost:8000

Para montar la aplicación en producción en un servidor mirar la documentación de Django: https://docs.djangoproject.com/en/1.10/howto/deployment/

Configuración

El fichero guifiadmin/local_settings.py no está versionado, es el mejor sitio para la configuración local. Por ejemplo:

LANGUAGE_CODE = 'en-us'

INVOICE_PREFIX = "GISA"
INVOICE_IFZ = "G20000000"
INVOICE_ADDRESS = "Sorgintxulo 9 Behea"
INVOICE_ZIP = "20100"
INVOICE_CITY = "Errenteria"
INVOICE_STATE = "Gipuzkoa"

INVOICE_FOOTER = """
0000-0000-00-0000000000
"""

ROOT_ZONE_ID = 17718

GUIFIAPI_USER = 'guifiuser'
GUIFIAPI_PASS = 'guifipassword'
# GUIFIAPI_HOST = 'test.guifi.net'
# GUIFIAPI_SECURE = False

Variables

Se puede configurar cualquier variable típica de Django: https://docs.djangoproject.com/en/1.10/ref/settings/

Además hay variables propias del proyecto. Esta es una lista parcial de las variables que se pueden modificar, para obtener un listado completo lo más fácil es consultar el código; buscar en las aplicaciones (subcarpetas del proyecto) ficheros del tipo *_settings.py

Configuración para la integración con guifi.net

  • CNML_FOLDER: Carpeta en la que se guardan los ficheros cnml descargados, por defecto la carpeta .cache/cnml en la raíz del proyecto.
  • CACHE_DURATION: Cantidad de segundos que se mantienen los ficheros cnml en la caché. Por defecto un día (24 * 60 * 60)
  • ROOT_ZONE_ID: ID de la zona raíz de guifi.net. No tiene porqué ser World, Por defecto 17718 (Gipuzkoa).
  • GUIFIAPI_USER: Nombre de usuario de la web de guifi.net que se usará para API
  • GUIFIAPI_PASS: Password del usuario para la API
  • GUIFIAPI_HOST: Servidor de guifi.net que se usará. Por defecto guifi.net. Pensado para poder utilizar el servidor test.guifi.net.
  • GUIFIAPI_SECURE: Indica si se utilizará SSL para la comunicación con la API. Pensado para test.guifi.net.

Configuración de facturación:

  • INVOICE_PREFIX: Prefijo para las facturas. Por defecto 'INV'
  • INVOICE_IFZ: Número de identificación fiscal de la asociación.
  • INVOICE_ADDRESS: Dirección de facturación.
  • INVOICE_ZIP: Código postal de facturación
  • INVOICE_CITY: Ciudad de facturación
  • INVOICE_STATE: País/Estado de facturación.
  • INVOICE_FOOTER: Texto a poner en el pie de factura. Por ejemplo el número de cuenta.

Configuración de cuotas de los socios:

  • QUOTA_MONTH_DAY: Día del més en el que se generarán las facturas para las cuotas de los socios. Por defecto el día 5.

Configuración de Tinc:

  • RSA_BITS: Cantidad de bits que tendrán las llaves RSA que se generen para usar con Tinc. Por defecto 4096.

Integración con guifi.net

Para sincronizar la información de los nodos con la que hay en guifi.net hay que ejecutar el comando fetchGuifiData:

python manage.py fetchGuifiData

Este comando se descarga el CNML de la zona que hemos indicado en la configuración y actualiza la base de datos. Podremos comprobar los resultados en el admin de Django, en la sección Guifi.net

Hay una integración parcial en el otro sentido; al editar un nodo se actualizan los siguientes campos en la web de guifi.net:

  • Nombre
  • Zona
  • Estado
  • Latitud
  • Longitud
  • Elevación de la antena

Traducciones

Como en la mayoría de proyectos de Django, las traducciones se gestionan con ficheros PO de gettext.

La aplicación actualmente está traducida a Inglés y Euskara. Para añadir un nuevo idioma, por ejemplo el catalán:

python manage.py makemessages -l ca
vim locales/ca/LC_MESSAGES/django.po
python manage.py compilemessages

Luego es suficiente con actualizar el valor de LANGUAGE_CODE en la configuración, en este caso con ca-es.