diff --git a/app/commands/commands.py b/app/commands/commands.py index f89eeaa..fb37918 100644 --- a/app/commands/commands.py +++ b/app/commands/commands.py @@ -1,3 +1,5 @@ +import csv +import os import sys import click import random @@ -15,24 +17,75 @@ from app.auth.models import User from . import bp -@bp.cli.command("lesia_to_csv") -def lesia_to_csv(): +@bp.cli.command("fake_lesia_names") +def fake_lesia_names(): """ - Extract some datas from lesia db to csv file for later db creation - - agents + Extract fake name from resources files to change names in db. + Mainly after a lesia import, for confidential reasons + + Changes nams in tables: + - services - capacities - projects :return: """ + current_app.logger.info("Faking names from resources files") + # get resources files + # + # 1- projects + # + fake_projects_file = os.path.join(current_app.config['PDC_RESOURCES_DIR'], 'fake-db-names', 'fake-projects.txt') + with open(fake_projects_file, newline='') as csvfile: + spamreader = csv.reader(csvfile, delimiter=';', quotechar='|') + fake_projects_names = [', '.join(row) for row in spamreader] + fake_projects_names_iterator = iter(fake_projects_names) + + # 2- functions/capacities + # + fake_capacities_file = os.path.join(current_app.config['PDC_RESOURCES_DIR'], 'fake-db-names', + 'fake-capacities.txt') + with open(fake_capacities_file, newline='') as csvfile: + spamreader = csv.reader(csvfile, delimiter=';', quotechar='|') + fake_capacities_names = [row for [row] in spamreader] + fake_capacities_names_iterator = iter(fake_capacities_names) + + # 3- services + # + fake_services_file = os.path.join(current_app.config['PDC_RESOURCES_DIR'], 'fake-db-names', + 'fake-services.txt') + with open(fake_services_file, newline='') as csvfile: + spamreader = csv.reader(csvfile, delimiter=';', quotechar='|') + fake_services_names = [row for row in spamreader] + fake_services_names_iterator = iter(fake_services_names) + + # Skip columns names + # + next(fake_projects_names_iterator) + next(fake_capacities_names_iterator) + next(fake_services_names_iterator) + + for s in Service.query.all(): + next_service = next(fake_services_names_iterator) + s.name = next_service[0] + s.abbr = next_service[1] + + for p in Project.query.all(): + p.name = next(fake_projects_names_iterator) + + for c in Capacity.query.all(): + c.name = next(fake_capacities_names_iterator) + + db.session.commit() + @bp.cli.command("feed_from_lesia") def feed_from_lesia(): """ Feed db with agents from a lesia like mysql database. - configure the proper database uri in the db_config.py file. + Remember to configure the proper database uri in the db_config.py file. """ from .lesia_db import lesia_agent, lesia_session, lesia_service, lesia_project, \ lesia_fonction, lesia_periods, lesia_affectation diff --git a/resources/fake-db-names/fake-capacities.txt b/resources/fake-db-names/fake-capacities.txt new file mode 100644 index 0000000..07f4605 --- /dev/null +++ b/resources/fake-db-names/fake-capacities.txt @@ -0,0 +1,60 @@ +name +Acousticien +Acousticienne +Agente de maintenance du bâtiment +Architecte +Ascensoriste +BIM Manager +Canalisatrice +Carreleuse +Charpentière bois +Charpentière métallique +Cheffe de chantier +Coffreuse-boiseuse +Conductrice d'engins de BTP +Conductrice de travaux +Constructrice de route +Couvreuse +Dessinatrice en bâtiment +Diagnostiqueuse immobilier +Domoticienne +Echafaudeuse +Electricienne du bâtiment +Etanchéiste +Façadière +Foreur +Géomaticien +Géomètre Expert +Géomètre topographe +Grutier +Grutière +Ingénieure en efficacité énergétique +Installatrice de panneaux solaires +Maçonne +Matiériste - coloriste +Mécanicienne d'engins de chantier +Menuisier +Menuisière +Métreuse vérificatrice +Miroitière +Monteur en installations sanitaires +Monteur en installations thermiques +Monteur levageuse +Monteuse levageuse +Opérateur de démolition +Parqueteur +Parqueteuse +Peintre en bâtiment +Peintre en décors +Piscinière +Plaquiste +Plaquiste Bois +Plâtrière +Plombière +Plongeur professionnel +Serrurière metallière +Solière-moquettiste +Staffeuse ornemaniste +Terrassier +Tourneur Fraiseur +Urbaniste diff --git a/resources/fake-db-names/fake-projects.txt b/resources/fake-db-names/fake-projects.txt new file mode 100644 index 0000000..318bedb --- /dev/null +++ b/resources/fake-db-names/fake-projects.txt @@ -0,0 +1,103 @@ +name; town +Réservoir de Gaz Naturel Liquéfié (GNL); GRAIN +Autoroute de Bogota-Girardot; BOGOTA +Station de traitement d'eau potable de Bakheng; PHNOM PENH +Barrage de Sambangalou; SAMBANGALOU +Nouveau Terminal à l'Aéroport de Sihanoukville; SIHANOUKVILLE +Ligne Ferroviaire Lyon-Turin; AVRIEUX +Ligne 18, Massy-Palaiseau / Saint-Aubin, Grand Paris Express; MASSY-PALAISEAU +Ligne 18, Orly / Massy-Palaiseau, Grand Paris Express; ORLY +Rénovation et extension de l’aéroport Nikola Tesla; BELGRADE +Old Oak Common Station; LONDRES +High Speed 2 (HS2); BIRMINGHAM +Liaison routière I-64 / Hampton Road Bridge Tunnel; HAMPTON +Extension de la ligne de la Confédération; OTTAWA +Smart Motorways M4, M5 et M6; ROYAUME-UNI +City Rail Link; AUCKLAND +Station d’épuration de Nhieu Loc-Thi Nghe; NOUVEAU +Station de transfert d’énergie par pompage; ABDELMOUMEN +Métro, ligne M4 (Sydhavn); COPENHAGUE +Station de traitement Chamkar Mon; PHNOM PENH +Ligne 15 sud et ligne 14 sud du Grand Paris Express; PARIS +Rijnlandroute; KATWIJK +Extension du port; KINGSTON +Rénovation de l’hôtel Mandarin Oriental; LONDRES +Eole Gare CNIT - La Défense; NANTERRE +Aéroport international Arturo Merino Benítez; SANTIAGO +Nouvelle Route du Littoral; SAINT-DENIS-LA GRANDE CHALOUPE +Yamal LNG; SABETTA +Enceinte de confinement de Tchernobyl; TCHERNOBYL +Lee Tunnel; LONDRES +Pont de l'Atlantique; COLÓN +Tunnel du Femern; PUTTGARDEN-RØDBYHAVN +Ohio River Bridges - East End Crossing; LOUISVILLE +Tours Jesselton; KOTA KINABALU +Projet GATE; ROTTERDAM +Pont Rion-Antirion; RÍO-ANTIRION +Métro du Caire, lignes 1, 2 et 3; LE CAIRE +Liaison ferroviaire du Liefkenshoek; ANVERS +Wheatstone project; ONSLOW +2ème Coentunnel; AMSTERDAM +Tideway East; LONDRES +Nouveau barrage d'Assiout; ASSIOUT +Crossrail C510 & C512; LONDRES +Aéroports internationaux du Cambodge; PHNOM PENH ET SIEM REAP +New Orbital Highway; DOHA +Viaduc de la Grande Ravine; LES TROIS-BASSINS +Pont Vasco de Gama; LISBONNE +Pont de la Confédération; BORDEN-CARLETON/CAP-TOURMENTIN +Métro léger (LRT); LUSAIL +Costa Azul LNG terminal; ENSENADA +Tunnels ferroviaires d'Hallandsås; SKOTTORP - FÖRSLÖV +Installations hydrauliques; KINGSTON-LUCEA-MONTEGO BAY-MONA & HOPE-BOGUE +Tunnel de Shieldhall; GLASGOW +Tour Menara Hap Seng - Plaza Shell; KOTA KINABALU +Lusail Car Park; LUSAIL +Tour Odéon; MONACO +Tunnels du terminal 5 de l'aéroport d'Heathrow; LONDRES +Hôtel Hilton Opéra; HANOÏ +Cinéma Achgabat; ACHGABAT +Sheraton Park Project; DOHA +Stade olympique Atatürk; ISTANBUL +Métro d'Athènes, lignes 2 et 3; ATHÈNES +Aménagement du Grand Louvre; PARIS +Réservoirs de gaz naturel liquéfié; RAS LAFFAN +Métro, ligne "rouge sud"; DOHA +Tunnel de Mitholz; BERNE +Second pont sur l'estuaire de la Severn; SEVERN BEACH +Métro Shatin to Central Link; HONG KONG +Autoroute EKPPT, ELEFSINA, CORINTHE, PATRAS, PYRGOS; TSAKONA +Tunnel de Soumagne; SOUMAGNE +Channel Tunnel Rail Link (HS1); LONDRES +Pont de Normandie; LE HAVRE - HONFLEUR +Pont de Kincardine (Clackmannanshire Bridge); KINCARDINE +Ligne à grande vitesse Sud Europe Atlantique; TOURS-BORDEAUX +Port 2000; LE HAVRE +Barrage de Naga Hammadi; NAG HAMMADI +Projet ITER; CADARACHE +Hôtel Four Seasons de Prague; PRAGUE +Banque européenne d'investissement; LUXEMBOURG +Duplex A86; RUEIL-MALMAISON - VÉLIZY +Autoroute M11; MOSCOU - SAINT-PÉTERSBOURG +Autoroute A28; ÉCOMMOY - TOURS +Autoroute A19; ARTENAY - COURTENAY +Autoroute A11; ANGERS +Ambassade de France; JAKARTA +Berjaya Central Park; KUALA LUMPUR +Stade de France; SAINT-DENIS +Lesotho Highlands Water Project; LESOTHO +Système de traitement des eaux usées; SAN JOSE DE OCOA ET SAN CRISTOBAL +Tunnels d'accès à la mine; EL TENIENTE +Usine d’eau potable de la Jouve; SORGUES +Exona, centre de traitement des eaux usées du SIARCE; CORBEIL-ESSONNES +Station d'épuration Marne Aval; NOISY-LE-GRAND +Projet d’amélioration de l’alimentation en eau potable; FAISALABAD +Station d'épuration de Bruxelles-Sud; BRUXELLES +Station d’épuration de Campo dell’oro; AJACCIO +Réhabilitation et extension de la station de traitement d'eau potable; KANTALE +Stade Olympique "Nid d'oiseau"; PÉKIN +Station de traitement d’eau; NIROTH +Station d'épuration; CORK +Centrale thermique d'Hub River; KARACHI +Station de pompage PS70; DOHA +Grand port maritime de La Réunion; LE PORT diff --git a/resources/fake-db-names/fake-services.txt b/resources/fake-db-names/fake-services.txt new file mode 100644 index 0000000..deb0662 --- /dev/null +++ b/resources/fake-db-names/fake-services.txt @@ -0,0 +1,18 @@ +name; abbr +Service Comptabilité et Finances; SCF +Département Recherche et Développement; DRD +Ressources Humaines; RH +Département Production; DP +Département Marketing et Vente; DMV +Service Achats; SA +Direction et Administration Générale; DAG +Service Logistique; SL +Service Techniques; ST +Service Commercial; SC +Service de Sécurité; SS +Service Informatique Géographique; SIG +Service Informatique Développements; SID +Service Informatique Terrain; SIT +Département Formation; DF +Cellule Prévention des Risques; CPR +Cellule Qualité; CQ -- libgit2 0.21.2