/gea

Gestión de Expedientes de Agrimensores

Primary LanguagePythonBSD 2-Clause "Simplified" LicenseBSD-2-Clause

gea

Gestión de Expedientes de Agrimensores.

gea es una aplicación web basada en Django para gestionar expedientes de agrimensores. Hasta ahora sólo fue usada en la provincia de Santa Fe, Argentina.

Requisitos previos

Python

Python 2.7 preferentemente.

Django

Para instalar Django:

$ pip install Django==1.6

PostgreSQL

apt-get install postgresql postgresql-contrib postgresql-client python-psycopg2 postgresql-plpython-9.1

Grappelli

Para instalar Grappelli:

$ pip install django-grappelli==2.5.1

grappelli-nested-inlines

Si instalaste Grappelli, podés aprovechar grappelli-nested-inlines para ver algunos formularios anidados. Para instalar grappelli-nested-inlines:

$ pip install -e git+git://github.com/quijot/grappelli-nested-inlines.git#egg=grappelli-nested-inlines

Instalación

Crear proyecto Django y base de datos PostgreSQL

$ django-admin.py startproject estudio
$ cd estudio
$ # si no tenés un superuser de postgresql
$ createuser pgsuperuser
$ # responder "yes" cuando pregunte si queremos que sea superuser
$ createdb gea

Descargar o clonar gea

Descargar y descomprimir dentro de estudio

$ # dentro de "estudio"
$ wget https://github.com/quijot/gea/archive/master.zip
$ unzip master.zip
$ mv gea-master gea

o clonar (requiere git -> $ apt-get install git):

$ # dentro de "estudio"
$ git clone https://github.com/quijot/gea.git

Editar settings.py del proyecto Django:

$ vim estudio/settings.py
  • Agregar gea a las INSTALLED_APPS:
INSTALLED_APPS = (
#   'grappelli_nested', # Si instalaste grappelli-nested-inlines
#   'grappelli',        # Si instalaste Grappelli
    'django.contrib.admin',
    'django.contrib.auth',
    ...
    'gea',
)
  • Agregar la configuración de la base de datos:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'gea',
        'USER': 'pgsuperuser',
        'PASSWORD': '<your-pg-password>',
    }
}

Sincronizar la base de datos

$ # dentro de "estudio"
$ python manage.py syncdb

Además de sincronizar la base de datos, también se estará instalando el sistema de autenticación de Django, Django's auth system, con lo cual, pedirá usuario y contraseña, por ejemplo: admin y Af7Dr2ujW.

Opcional: Volcar datos de la provincia de Santa Fe

Ejecutar el script que completa datos referidos a Circunscripciones, Departamentos, Distritos, Subdistritos y Zonas más algunos datos de ejemplo y crea funciones y triggers para calcular automáticamente el dígito verificador de las Partidas de Impuesto Inmobiliario:

$ # dentro de "estudio"
$ chmod +x gea/backup/db/basics-db.sh
$ ./gea/backup/db/basics-db.sh

Archivos estáticos (css, img, js)

Por último, algo muy importante: los archivos de estilo, imágenes y scripts que usará nuestra nueva aplicación.

$ # dentro de "estudio"
$ python manage.py collectstatic

¡LISTO... Ahora podemos probar cómo quedó nuestra django-app!

$ # dentro de "estudio"
$ python manage.py runserver

e ingresamos a http://127.0.0.1:8000/...

Extra: Hacerlo funcionar en Zentyal

Crear un Host Virtual en Zentyal

Office -> Servidor Web -> Hosts virtuales -> Añadir nuevo

Supongamos que elegimos el nombre gea.net.

Editar httpd.conf para configurar el daemon de wsgi

$ sudo vim /etc/apache2/httpd.conf

Luego escribir esto dentro, para usar wsgi como daemon. Reemplazar user y path-to-estudio con lo que corresponda.

WSGIDaemonProcess gea.net python-path=/path-to-estudio
WSGIProcessGroup gea.net

WSGIScriptAlias / /path-to-estudio/estudio/wsgi.py
WSGIPythonPath /path-to-estudio

<Directory /path-to-estudio/estudio>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

Crear un alias para static en user-ebox-gea.net

$ sudo vim /etc/apache2/sites-available/user-ebox-gea.net/static.alias

Y escribir esto dentro...

Alias /static/ /path-to-estudio/

<Directory /path-to-estudio>
Order deny,allow
Allow from all
</Directory>

Usar gea en Zentyal

¡Listo! Ya podemos entrar a http://gea.net/admin y usar gea desde todas las terminales en Zentyal!

Cada vez que hagamos un cambio en la aplicación, deberemos hacer reload del servidor web:

$ sudo service apache2 reload

LICENCIA

BSD