Autonomie Winscop : Documentation

Introduction

Ce package fournit l’outillage nécessaire pour générer des fichiers CSV depuis les données de gestion sociale d’une base de données Winscop.

Les fichiers csv générés sont ensuite importable dans la gestion sociale Autonomie.

Les outils suivants sont utilisés

sqlautogen

Utilisé pour la génération des modèles SQLAlchemy depuis une base de données existantes.

SQLAlchemy

Pour la description des modèles de données Winscop

sqla_inspect

Pour la génération des fichiers csv depuis les modèles, permet la translation et le formattage des données

docker

Pour la génération automatique des fichiers csv depuis le fichier sql

Préparation des données

Depuis un dump SQL de la base de données Winscop

  • S’assurer que la seule base de données présentes dans le fichier se nomme “winscop” (les scripts docker se base sur ce nom)

Placer le fichier sql dans un répertoire de travail

Pour la suite, nous utiliserons /tmp/winscop_datas/

Génération des fichiers CSV

Une fois vos données préparées, vous pouvez générer les fichiers csv.

Téléchargement de autonomie_winscop

On va télécharger le logiciel à la racine du home de l’utilisateur courant

cd ~/
git clone https://github.com/CroissanceCommune/autonomie_winscop

Installation de docker

Sur les distributions basées sur Debian (Ubuntu, Linux Mint …)

apt-get install docker-io

Sur les distributions utilisant dnf (CentOS, Fedora, RedHat)

dnf install docker-io

Générer l’image docker

docker build -t winautonomie ~/autonomie_winscop/docker/

Générer les fichiers csv

docker run -t -i -v ~/autonomie_winscop:/mnt/winautonomie \
-v /tmp/winscop_datas:/mnt/autonomie winautonomie

Les fichiers csv sont alors disponibles dans le répertoire /tmp/winscop_datas/processed.

Quelques commandes Docker

Lister les containers (instances qui tournent)

docker ps -a

Lister les images docker

docker images

Personnalisation de la génération CSV

Dans le répertoire /tmp/winscop_datas/, ajouter un fichier custom.py et fournir un dictionnaire EXPORTS personnalisé :

# -*- coding:utf-8 -*-
from autonomie_winscop.models import MyModel

def format_mymodel_datas(csv_filepath):
    """
    Fonction permettant le post-formattage des données dans le fichier csv

    Il est possible de lire le fichier, modifier les valeurs et le réécrire
    ou effectuer toute autre opération (envoi de mail si on veut changer des
    mots de passe à la volée ...)

    :param str csv_filepath: Le chemin sur disque vers le fichier csv
    """
    pass


EXPORTS = {
    'porteurcustom': {
        'file': 'porteurs_custom.csv',
        'model': MyModel,
        ['query': MyModel.query().filter(...)],
        'formatters':
    }
}

Vous pouvez vous inspirer de la configuration dans autonomie_winscop/config.py.

Import csv

Pour importer les fichiers csv, utilisez le module d’import dans l’onglet Gestion sociale d’Autonomie.

Les fichiers peuvent être importés un par un. Ils contiennent tous l’identifiant winscop des entrées porteurs de projet.

Par défaut celui-ci est importé comme « Identifiant externe ». Il peut donc être utilisé dans les imports successifs comme champ permettant la correspondance entre les éléments.