Skip to content

Commit da66ca2

Browse files
Merge pull request #141 from PnEcrins/develop
Merge Develop to Master
2 parents 0f03516 + ffbbc93 commit da66ca2

8 files changed

+101
-29
lines changed

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.3.0
1+
1.3.1.dev0

docs/changelog.rst

+9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
CHANGELOG
33
=========
44

5+
1.3.1 (2018-03-15)
6+
------------------
7+
8+
**Corrections**
9+
10+
* Correction de l'installation autonome (sans GeoNature)
11+
* Correction et documentation si l'atlas est accessible dans un sous-répertoire du domaine
12+
* Correction d'une coquille dans le SQL. Merci @lpofredc
13+
514
1.3.0 (2018-02-15)
615
------------------
716

docs/installation.rst

+12-8
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ Ce serveur doit aussi disposer de :
2626
GeoNature-atlas est susceptible de fonctionner sur d'autres OS (comme Ubuntu par exemple) mais cela n'a pas été testé.
2727

2828

29-
Installation de l'environnement et de l'application
30-
===================================================
29+
Installation de l'environnement logiciel
30+
========================================
3131

3232
Le script ``install_env.sh`` va automatiquement installer les outils nécessaires à l'application si ils ne sont pas déjà sur le serveur :
3333

@@ -88,11 +88,6 @@ Cela installera les logiciels nécessaires au fonctionnement de l'application
8888
cd /home/monuser/atlas
8989
./install_env.sh
9090

91-
**4. Lancez l'installation automatique de l'application :**
92-
93-
::
94-
95-
./install_app.sh
9691

9792

9893
Installation de la base de données
@@ -151,12 +146,21 @@ Si vous voulez adapter le contenu des vues matérialisées, vous pouvez modifier
151146
Si vous souhaitez uniquement recréer la vue ``atlas.vm_observations`` et les 6 autres vues qui en dépendent vous pouvez utiliser le script ``data/update_vm_observations.sql``.
152147

153148

149+
Installtion de l'application
150+
============================
151+
152+
**Lancez l'installation automatique de l'application :**
153+
154+
::
155+
156+
./install_app.sh
157+
154158
Configuration de l'application
155159
==============================
156160

157161
Editer le fichier de configuration ``main/configuration/config.py``.
158162

159-
- Renseignez la variable 'database_connection'
163+
- Vérifier que la variable 'database_connection' contient les bonnes informations de connexion à la base
160164
- Renseignez l'URL de l'application à partir de la racine du serveur WEB ('/atlas' ou '' par exemple)
161165
- Renseignez les autres paramètres selon votre contexte
162166
- Rechargez le serveur Web Gunicorn pour que les modifications soient prises en compte (``sudo supervisorctl reload``)

initAtlas.py

+32-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
from flask import Flask, render_template
44
from flask_sqlalchemy import SQLAlchemy
55

6+
from werkzeug.wsgi import DispatcherMiddleware, ProxyMiddleware
7+
from werkzeug.serving import run_simple
8+
69
from main.configuration import config
710
from sqlalchemy import create_engine, MetaData, Table
811

@@ -13,10 +16,33 @@
1316

1417
APP_DIR = os.path.abspath(os.path.dirname(__file__))
1518

19+
class ReverseProxied(object):
20+
21+
def __init__(self, app, script_name=None, scheme=None, server=None):
22+
self.app = app
23+
self.script_name = script_name
24+
self.scheme = scheme
25+
self.server = server
26+
27+
def __call__(self, environ, start_response):
28+
script_name = environ.get('HTTP_X_SCRIPT_NAME', '') or self.script_name
29+
if script_name:
30+
environ['SCRIPT_NAME'] = script_name
31+
path_info = environ['PATH_INFO']
32+
if path_info.startswith(script_name):
33+
environ['PATH_INFO'] = path_info[len(script_name):]
34+
scheme = environ.get('HTTP_X_SCHEME', '') or self.scheme
35+
if scheme:
36+
environ['wsgi.url_scheme'] = scheme
37+
server = environ.get('HTTP_X_FORWARDED_SERVER', '') or self.server
38+
if server:
39+
environ['HTTP_HOST'] = server
40+
return self.app(environ, start_response)
1641

1742
def create_app():
1843
# renvoie une instance de app l appli Flask
1944
app = Flask(__name__, template_folder=APP_DIR)
45+
2046
app.debug = config.modeDebug
2147

2248
from main.atlasRoutes import main as main_blueprint
@@ -28,11 +54,16 @@ def create_app():
2854

2955
compress.init_app(app)
3056

57+
app.wsgi_app = ReverseProxied(app.wsgi_app, script_name=config.URL_APPLICATION)
58+
59+
3160
return app
3261

3362

3463
app = create_app()
3564

65+
3666
if __name__ == '__main__':
3767
from flask_script import Manager
38-
Manager(app).run()
68+
# Manager(app).run()
69+
run_simple('localhost', 8080, app, use_reloader=True)

install_app.sh

+9-4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ virtualenv $venv_dir
2222
echo "Installing requirements..."
2323
pip install -r requirements.txt
2424

25+
echo "Creating configuration files if they dont already exist"
26+
if [ ! -f ./main/configuration/config.py ]; then
27+
cp ./main/configuration/config.py.sample ./main/configuration/config.py
28+
fi
29+
30+
sudo sed -i "s/database_connection = .*$/database_connection = \"postgresql:\/\/$user_pg:$user_pg_pass@$db_host:$db_port\/$db_name\"/" ./main/configuration/config.py
31+
32+
2533
echo "Launching application..."
2634
DIR=$(readlink -e "${0%/*}")
2735
sudo -s cp atlas-service.conf /etc/supervisor/conf.d/
@@ -35,10 +43,7 @@ if [ ! -d ./static/custom/images/ ]; then
3543
mkdir -p ./static/custom/images/
3644
fi
3745

38-
echo "Creating configuration files if they dont already exist"
39-
if [ ! -f ./main/configuration/config.py ]; then
40-
cp ./main/configuration/config.py.sample ./main/configuration/config.py
41-
fi
46+
4247

4348
echo "Creating customisation files if they dont already exist"
4449
if [ ! -f ./static/custom/templates/footer.html ]; then

install_db.sh

+32-15
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ then
106106
echo "Création de la table exemple syntheseff"
107107
sudo -n -u postgres -s psql -d $db_name -c "CREATE TABLE synthese.syntheseff
108108
(
109-
id_synthese serial NOT NULL,
109+
id_synthese serial PRIMARY KEY,
110110
id_organisme integer DEFAULT 2,
111111
cd_nom integer,
112112
insee character(5),
@@ -115,14 +115,15 @@ then
115115
altitude_retenue integer,
116116
supprime boolean DEFAULT false,
117117
the_geom_point geometry('POINT',3857),
118-
effectif_total integer
118+
effectif_total integer,
119+
diffusable boolean
119120
);
120121
INSERT INTO synthese.syntheseff
121-
(cd_nom, insee, observateurs, altitude_retenue, the_geom_point, effectif_total)
122-
VALUES (67111, 05122, 'Mon observateur', 1254, '0101000020110F0000B19F3DEA8636264124CB9EB2D66A5541', 3);
122+
(cd_nom, insee, observateurs, altitude_retenue, the_geom_point, effectif_total, diffusable)
123+
VALUES (67111, 05122, 'Mon observateur', 1254, '0101000020110F0000B19F3DEA8636264124CB9EB2D66A5541', 3, true);
123124
INSERT INTO synthese.syntheseff
124-
(cd_nom, insee, observateurs, altitude_retenue, the_geom_point, effectif_total)
125-
VALUES (67111, 05122, 'Mon observateur 3', 940, '0101000020110F00001F548906D05E25413391E5EE2B795541', 2);" &>> log/install_db.log
125+
(cd_nom, insee, observateurs, altitude_retenue, the_geom_point, effectif_total, diffusable)
126+
VALUES (67111, 05122, 'Mon observateur 3', 940, '0101000020110F00001F548906D05E25413391E5EE2B795541', 2, true);" &>> log/install_db.log
126127
sudo -n -u postgres -s psql -d $db_name -c "ALTER TABLE synthese.syntheseff OWNER TO "$owner_atlas";"
127128
fi
128129

@@ -133,22 +134,38 @@ then
133134
cd data
134135
mkdir taxonomie
135136
cd taxonomie
136-
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/master/data/taxhubdb.sql
137-
sudo -n -u postgres -s psql -d $db_name -f taxhubdb.sql &>> ../../log/install_db.log
137+
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/taxhubdb.sql
138+
#sudo -n -u postgres -s psql -d $db_name -f taxhubdb.sql &>> ../../log/install_db.log
139+
export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -f taxhubdb.sql &>> ../../log/install_db.log
140+
138141
wget http://geonature.fr/data/inpn/taxonomie/TAXREF_INPN_v9.0.zip
139142
unzip TAXREF_INPN_v9.0.zip -d /tmp
140-
wget http://geonature.fr/data/inpn/taxonomie/ESPECES_REGLEMENTEES_20161103.zip
141-
unzip ESPECES_REGLEMENTEES.zip -d /tmp
142-
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/master/data/inpn/data_inpn_v9_taxhub.sql
143+
wget http://geonature.fr/data/inpn/taxonomie/ESPECES_REGLEMENTEES_20161103.zip
144+
unzip ESPECES_REGLEMENTEES_20161103.zip -d /tmp
145+
wget http://geonature.fr/data/inpn/taxonomie/LR_FRANCE_20160000.zip
146+
unzip LR_FRANCE_20160000.zip -d /tmp
147+
148+
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/inpn/data_inpn_v9_taxhub.sql
149+
# export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -f data_inpn_v9_taxhub.sql &>> ../../log/install_db.log
143150
sudo -n -u postgres -s psql -d $db_name -f data_inpn_v9_taxhub.sql &>> ../../log/install_db.log
144-
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/master/data/vm_hierarchie_taxo.sql
145-
sudo -n -u postgres -s psql -d $db_name -f vm_hierarchie_taxo.sql &>> ../../log/install_db.log
146-
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/master/data/taxhubdata.sql
147-
sudo -n -u postgres -s psql -d $db_name -f taxhubdata.sql &>> ../../log/install_db.log
151+
152+
153+
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/materialized_views.sql
154+
#sudo -n -u postgres -s psql -d $db_name -f vm_hierarchie_taxo.sql &>> ../../log/install_db.log
155+
export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -f materialized_views.sql &>> ../../log/install_db.log
156+
157+
158+
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/taxhubdata.sql
159+
#sudo -n -u postgres -s psql -d $db_name -f taxhubdata.sql &>> ../../log/install_db.log
160+
export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -f taxhubdata.sql &>> ../../log/install_db.log
161+
162+
148163
rm /tmp/*.txt
149164
rm /tmp/*.csv
165+
rm /tmp/*.sql
150166
cd ../..
151167
rm -R data/taxonomie
168+
152169
fi
153170

154171
# Creation des Vues Matérialisées (et remplacement éventuel des valeurs en dur par les paramètres)

main/configuration/config.py.sample

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ NOM_APPLICATION = "Nom de l application"
2424
NOM_APPLICATION = unicode(NOM_APPLICATION, 'utf-8') # Fonction permettant d'encoder ce nom en utf-8, à ne pas modifier
2525

2626
# URL de l'application depuis la racine du domaine
27+
# ex "/atlas" pour une URL: http://mon-domaine/atlas OU "" si l'application est accessible à la racine du domaine
2728
URL_APPLICATION = ""
2829

2930
# Code de suivi des statistiques Google Analytics (si AFFICHAGE_FOOTER = True)

main/configuration/settings.ini.sample

+5
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ owner_atlas_pass=monpassachanger
4444
# Installer le schéma taxonomie de TaxHub dans la BDD de GeoNature-atlas ?
4545
install_taxonomie=false
4646

47+
# Version de TaxHub à utiliser pour installer le schéma taxonomie
48+
# GeoNature-atlas 1.3.0 est compatible avec les versions de Taxhub inférieure ou égale à 1.3.2
49+
# Numéro de version conseillée et testée : 1.3.2
50+
taxhub_release=1.3.2
51+
4752
# GeoNature-atlas est-il connecté à une BDD GeoNature ?
4853
geonature_source=true
4954

0 commit comments

Comments
 (0)