|
|
## Installation du projet en local
|
|
|
|
|
|
Certains points sont importants sur l'installation du projet en local.
|
|
|
|
|
|
**Attention**
|
|
|
* Pour le moment, il faut obligatoirement une base de données PostgreSQL pour faire fonctionner le site. Ceci est dû à la présence d'un type spécifique de champ dans le modèle [Payment](contribution/payment) : JSONField
|
|
|
* Apparemment, l'utilisation de Raven et de Sentry implique d'être connecté à internet pour faire fonctionner le site, qui cherche à joindre sentry.lqdn.fr. Il faudra éliminer cette dépendance
|
|
|
|
|
|
### Pas à pas
|
|
|
|
|
|
Cloner le dépôt depuis la source
|
|
|
|
|
|
git clone gitlab@git.laquadrature.net:lqdn-interne/soutien.git
|
|
|
|
|
|
Se placer dans le répertoire du projet
|
|
|
|
|
|
cd soutien
|
|
|
|
|
|
Créer un environnement virtuel avec python 3
|
|
|
|
|
|
virtualenv -p python3 soutien-env
|
|
|
|
|
|
Activer l'environnement virtuel
|
|
|
|
|
|
source soutien-env/bin/activate
|
|
|
|
|
|
Installer les composants nécessaires
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
Pour l'aide au développement, installer aussi les composants spécifiques
|
|
|
|
|
|
pip install -r requirements-dev.txt
|
|
|
|
|
|
Créer un fichier de configuration basique par défaut (le fichier default.env.py n'existe pas encore)
|
|
|
|
|
|
cp project/settings/default.env.py project/settings/env.py
|
|
|
|
|
|
Adapter le fichier de configuration pour votre environnement
|
|
|
|
|
|
[Fichier de configuration](#le-fichier-de-configuration)
|
|
|
|
|
|
Créer un répertoire pour construire les ressources statiques
|
|
|
|
|
|
mkdir static/build
|
|
|
|
|
|
Collecter les ressources statiques
|
|
|
|
|
|
python manage.py collectstatic
|
|
|
|
|
|
Migrer la base de données (création plus scripts de mises à jour)
|
|
|
|
|
|
python manage.py migrate
|
|
|
|
|
|
Pour du développement, ou des tests, insérer des données en base
|
|
|
|
|
|
[Données de test](#données-de-test)
|
|
|
|
|
|
Créer un super utilisateur
|
|
|
|
|
|
python manage.py createsuperuser
|
|
|
|
|
|
Lancer le serveur
|
|
|
|
|
|
python manage.py runserver
|
|
|
|
|
|
|
|
|
Normalement, à ce stade, vous devriez pouvoir ouvrir votre navigateur à cette adresse :
|
|
|
http://localhost:8000/ et voir la page d'accueil du site de soutien.
|
|
|
|
|
|
|
|
|
## Le fichier de configuration
|
|
|
|
|
|
Le fichier de configuration principal se trouve dans le répertoire _project/settings_ et a pour nom
|
|
|
_env.py_. Il définit si le site est en mode _debug_ ou pas, la clef secrète utilisée pour la
|
|
|
sécurité Django, les adresses IP autorisées à se connecter, l'identifiant du site, ainsi que les
|
|
|
informations de connexion à la base de données.
|
|
|
|
|
|
Il se présente sous la forme d'un simple fichier python:
|
|
|
|
|
|
#encoding: utf-8
|
|
|
DEBUG = False
|
|
|
SECRET_KEY = 'not empty'
|
|
|
ALLOWED_HOSTS = '*'
|
|
|
DATABASES = {
|
|
|
'default': {
|
|
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
|
|
'NAME': 'soutien',
|
|
|
'USER': 'soutien',
|
|
|
'PASSWORD': 'soutien',
|
|
|
'HOST': 'localhost',
|
|
|
'PORT': '',
|
|
|
}
|
|
|
}
|
|
|
SITE_ID = 1
|
|
|
|
|
|
Il vous suffit donc de copier ces lignes dans le fichier correspondant.
|
|
|
|
|
|
|
|
|
## Données de test
|
|
|
|
|
|
La base de données doit contenir un certain nombre d'informations pour permettre au site de soutien
|
|
|
de fonctionner. Sans ces données, les écrans ne pourront s'afficher correctement.
|
|
|
|
|
|
### Connexion à la base de données
|
|
|
|
|
|
Pour se connecter à la base de données, il suffit d'utiliser le client en ligne de commande fournit
|
|
|
par PostgreSQL:
|
|
|
|
|
|
psql -h localhost -U soutien -W
|
|
|
|
|
|
On tape ensuite le mot de passe, puis on se connecte à la base:
|
|
|
|
|
|
\c soutien
|
|
|
|
|
|
Le mot de passe peut être redemandé, ensuite, on peut agir sur les tables. Pour afficher toutes les
|
|
|
tables de la base:
|
|
|
|
|
|
\dt
|
|
|
|
|
|
Il est aussi possible de jouer un script SQL complet depuis la ligne de commande.
|
|
|
|
|
|
TODO: fournir un script SQL minimal et suffisant quelque part...
|
|
|
TODO: fournir la commande permettant de lancer le script SQL depuis la ligne de commande
|
|
|
|
|
|
|
|
|
### Ajout d'un système de paiement
|
|
|
|
|
|
C'est la première chose à ajouter. Les systèmes de paiement permettent aux campagnes de savoir
|
|
|
comment gérer les paiements des donateurs:
|
|
|
|
|
|
insert into payment_paymentprocessor values (
|
|
|
(select max(id)+1 from payment_paymentprocessor), -- identifiant unique
|
|
|
'basic_payment', -- nom du système de paiement
|
|
|
'[{"url": "http://localhost:5000/payment", "mode": "TEST", "shop_id": "1", "certificate": "test"}]', -- chaine au format json permettant de connaitre les informations pour le paiement
|
|
|
);
|
|
|
|
|
|
|
|
|
### Ajout d'une campagne de base
|
|
|
|
|
|
C'est la deuxième chose à ajouter. Maintenant qu'un système de paiement est défini, on peut créer
|
|
|
une campagne qui l'utilise:
|
|
|
|
|
|
insert into campaign_campaign values (
|
|
|
(select max(id)+1 from campaign_campaign), -- identifiant unique
|
|
|
now() - interval '1 day', -- date de début
|
|
|
now() + interval '1 year', -- date de fin
|
|
|
10000, -- montant cible pour cette campagne
|
|
|
true, -- booléen indiquant que la campagne est active
|
|
|
0,
|
|
|
(select max(id) from payment_paymentprocessor), -- identifiant du système de paiement utilisé par la campagne
|
|
|
'image.jpg' -- image de fond de la page d'accueil de la campagne
|
|
|
);
|
|
|
|
|
|
|