Code Monkey home page Code Monkey logo

geocontrib's Introduction

alt text

GéoContrib est un outil libre de signalement contributif et collaboratif. Une version de démonstration est accessible sur https://geocontrib.demo.neogeo.fr/.

Depuis la version 2.0.0, l'interface web est dans une dépôt séparé : https://git.neogeo.fr/geocontrib/geocontrib-frontend

Installation

Prérequis

  • Python 3.7 (minimum 3.6)
  • Instance de PostgreSQL/PostGIS avec une base de données dédiée à l'application (cf. paramètre DATABASES du fichier settings.py)

Création du projet Django et clone du repo

# installation dépendances
apt-get install -y libproj-dev gdal-bin ldap-utils libpq-dev libmagic1

# Création d'un environnement virtuel Python
python3 -m venv geocontrib_venv/

# Activation de cet environnement
source geocontrib_venv/bin/activate

# Clonage du projet - récupération des sources
# Actuellement, la branche par défaut du projet est develop
# Ce sera celle qui sera active par défaut immédiatement après le clonage
git clone https://github.com/neogeo-technologies/geocontrib.git
cd geocontrib

# Installer les dépendances
pip install -r requirements.txt

# Création d'un projet Django
django-admin startproject config .

Installation de l'interface Web en VueJS

L'interface Web intégrée à Django n'est plus maintenue depuis la 2.0, et sera retirée dans la 2.3

Il faut utiliser cette interface à la place: https://git.neogeo.fr/geocontrib/geocontrib-frontend

Édition des fichiers settings.py et url.py

Copier le contenu du fichier config_sample/settings.py dans config/settings.py.

Éditer les paramètres classiques de Django dans config/settings.py :

Éditer les paramètres spécifiques à l'outil dans config/settings.py :

  • BASE_URL : URL du site, par exemple "https://geocontrib.deme.neogeo.fr" ;
  • DEFAULT_SENDING_FREQUENCY : fréquence d'envoi des notifications par email (never/instantly/daily/weekly) ;
  • APPLICATION_NAME : nom de l'application telle qu'elle apparaît dans l'IHM ;
  • APPLICATION_ABSTRACT : description de l'application en langage naturel ;
  • IMAGE_FORMAT : formats autorisés des fichiers téléversés dans l'application ;
  • FILE_MAX_SIZE : taille maximale des fichiers téléversés dans l'application ;
  • DEFAULT_BASE_MAP : configuration du fond de carte par défaut ;
  • PROJECT_COPY_RELATED : configuration des modèles de projets ;
  • MAGIC_IS_AVAILABLE (default: False) active la vérification des images téléversées ;
  • LOGO_PATH : chemin vers le logo affiché en page d'accueil ;
  • FAVICON_PATH : chemin vers la favicon affichée dans l'onglet du navigateur ;
  • DISABLE_LOGIN_BUTTON : désactive le bouton de connexion (utile dans le cadre du SSO)
  • LOG_URL : URL de connexion externe (utile dans le cadre du SSO)
  • IDGO_URL = URL pour récupérer le catalogue DataSud ;
  • MAPSERVER_URL = URL pour récupérer le geojson d'une ressource du catalogue ;
  • IDGO_VERIFY_CERTIFICATE = permet de se connecter à datasud sans certificat, False en dév ;
  • IDGO_LOGIN = login pour accéder au catalogue idgo depuis geocontrib ;
  • IDGO_PASSWORD = mot de passe pour accéder au catalogue idgo depuis geocontrib ;

Copier le contenu du fichier config_sample/urls.py dans config/urls.py

Création des tables et ajout de données initiales dans la base de données

python manage.py migrate
python manage.py loaddata geocontrib/data/perm.json
python manage.py loaddata geocontrib/data/flatpages.json
python manage.py loaddata geocontrib/data/geocontrib_beat.json

Ne faites pas attention aux messages d'avertissement suivants :

Sites not migrated yet. Please make sure you have Sites setup on Django Admin

Dépot des images par défaut

Copier l'image par défaut et le logo de l'application dans le répertoire défini par le paramètre MEDIA_ROOT du fichier settings.py.

Par exemple, copier les images fournies dans les sources de l'application :

mkdir media
cp geocontrib/static/geocontrib/img/default.png media/
cp geocontrib/static/geocontrib/img/logo.png media/
cp geocontrib/static/geocontrib/img/logo-neogeo*.png media/

Création d'un superutilisateur

Lancer la commande Django de création d'un super utilisateur et suivre les instructions :

python manage.py createsuperuser

Paramétrage du domaine et du nom du site

Ces données sont à définir depuis l'admin Django dans la section Site et permettent notamment d'afficher les url dans les gabarit d'e-mail. Pour cela, lancer l'application Django :

python manage.py runserver

Se rendre dans l'interface d'administration Django et éditer le premier enregistrement des entités "Sites" (cf. yoururl.net/admin/sites/).

Configuration des tâches périodiques

Deux types de tâches requièrent d'invoquer une commande régulièrement (depuis celery-beat ou depuis un cron)

Tâches périodiques depuis celery

Copier le contenu du fichier config_sample/celery.py dans config/celery.py.

cp config_sample/celery.py config/celery.py

Pour une installation en local, si on a besoin de faire des imports de signalements par exemple, il faut ouvrir un nouveau terminal, activer l'environnement virtuel et lancer la commande suvante.

Lancer le worker celery:

celery -A config worker

Lancer le générateur d'évenements:

celery -A config beat

Dans /admin/django_celery_beat/periodictask, saisissez des tâches avec leur periodicité.

Tâches périodiques depuis un cron

L'envoi de mails de notifications, vous pouvez l'appeler toutes les minutes ou tous les jours selon vos préférences d'envoi

python manage.py notify_subscribers

L'archivage et la suppression des signalements, à invoquer une fois par jour

python manage.py data_cleansing

Déploiement dans un environnement geOrchestra

Reportez-vous au README.md présent dans le répertoire plugin_georchestra.

Sauvegarde des données

python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e auth.Permission --indent 4 > dump.json

Génération du graphique du modèle

Après avoir installé graphiz et django-extensions

./manage.py graph_models --pygraphviz geocontrib --output docs/model.png

Le graphique est disponible ici docs/model.png

RUN TESTS

export DJANGO_SETTINGS_MODULE=config.settings pytest

geocontrib's People

Contributors

cblanchon-neogeo avatar chakibbh avatar e-babani avatar flavelle-neogeo avatar hcharp avatar jthiard avatar lalmadaneogeo avatar leandroalmada86 avatar maxreinhart avatar nicolasca avatar pmauduit avatar sebastiendarocha avatar selmokhtari 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.