-
Notifications
You must be signed in to change notification settings - Fork 1
Documentació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/
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
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.
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
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
.