From dcc2cd37120312aba9463c3c650238d07e895505 Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Tue, 11 Jul 2023 17:20:39 +0200 Subject: [PATCH] ajout uploads.jinja2 pour upload fichiers --- cao_blogr.sqlite | Bin 32768 -> 32768 bytes cao_blogr/routes.py | 1 + cao_blogr/static/uploads/article.csv | 253 ++++++++++++++++++++++ cao_blogr/static/uploads/dolibarr-psw.txt | 6 + cao_blogr/templates/layout.jinja2 | 1 + cao_blogr/templates/uploads.jinja2 | 42 ++++ cao_blogr/templates/user_pwd.jinja2 | 30 --- cao_blogr/views/default.py | 86 ++++++-- development.ini | 3 + production.ini | 2 + setup.py | 1 + 11 files changed, 381 insertions(+), 44 deletions(-) create mode 100644 cao_blogr/static/uploads/article.csv create mode 100644 cao_blogr/static/uploads/dolibarr-psw.txt create mode 100644 cao_blogr/templates/uploads.jinja2 delete mode 100644 cao_blogr/templates/user_pwd.jinja2 diff --git a/cao_blogr.sqlite b/cao_blogr.sqlite index c85b2af1c15f6eff1eac3497f5c333d5d12ba4a9..7803dc6d85dc37e14e282a6d9ad5bb9299db3f7a 100644 GIT binary patch delta 175 zcmZo@U}|V!njp=nKT*b+QGa7Xynrng&Ze!8KGb7gRquU=MwS5-(v zh>v+lRe7+5p?8jHibsx1P;g?hMQO5Ud3v#{S9YMeS9z9?PkC9GMR;;mfw_OMsb^-f zM^a^!sk2!~PD*Hnp+&Hxb6`P+hrW@4k+H6UnXZwAf}w$xp@o&Pxt@igvGL?M|2`3j Wu&I@yrIo3 4 et <6 impacts, ";"Reprise sur PVC, > 4 et <6 impacts, trous, éclats sur ouvrage, y compris toutes sujétions thermo reprofilage Dépose et repose éventuelles, nettoyages, ponçages, lustrage :";0.00;451.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_31_REPRI;;;;;;;;;;MEN;"trous, éclats sur ouvrage, y compris";"toutes sujétions thermo reprofilage";"Dépose et repose éventuelles, ";"nettoyages, ponçages, lustrage :";"2020-02-13 09:56:20";"2020-02-13 09:59:07" +MEN32;"Reprise sur PVC > 7 impacts,";NULL;0.00;671.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_32_REPRI;;;;;;;;;;MEN;"trous, éclats sur un ou plusieurs";"ouvrages, y compris toutes sujétions";"thermo-reprofilage, dépose et repose,";"nettoyage, lustrages :";"2020-12-07 16:22:57";"2020-12-07 16:26:30" +MEN35;"Remplacement de tout type de joint";NULL;0.00;59.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_35_REM;;;;;;;;;;MEN;"d'étanchéité par vantail de fenêtre,";"porte-fenêtre, porte :";;;"2020-12-07 16:27:37";"2022-07-04 10:05:43" +MEN38;"Réparation sur menuiserie alu";NULL;0.00;850.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_38_REPA;;;;;;;;;;MEN;"d'enfoncements de matières :";;;;"2022-10-19 16:41:20";"2022-10-26 11:44:48" +MEN4;"Remplacement d'un bloc porte";"Remplacement d'un bloc porte d'entrée en maison sur cadre existant y compris dépose, pose verrous et/ou serrures, réglages ajustage et toutes sujétions :";0.00;258.40;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_4_REMP;;;;;;;;;;MEN;"d'entrée en maison sur cadre";"existant y compris dépose, pose";"verrous et/ou serrures, réglages";"ajustage et toutes sujétions :";"2020-01-08 16:14:58";"2022-07-04 10:05:58" +MEN5;"Remplacement bloc porte d'entrée sur";"Remplacement bloc porte d'entrée sur cadre existant, y compris dépose, pose de verrous et/ou serrures, réglages, ajustages hors fourniture :";0.00;186.30;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_5_REMPL;;;;;;;;;;MEN;"cadre existant, y compris dépose, pose de";"verrous et/ou serrures, réglages, ajustages";"hors fourniture :";;"2019-11-14 08:50:42";"2022-07-04 10:06:08" +MEN6;"Remplacement bloc porte d'entrée de";"Remplacement bloc porte d'entrée de cave, y compris dépose, scellements pose de verrous et/ou serrures réglages, ajustage, hors fourniture :";0.00;131.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_6_REMPL;;;;;;;;;;MEN;"cave, y compris dépose, scellements";"pose de verrous et/ou serrures";"réglages, ajustage, hors fourniture :";;"2019-11-14 08:44:13";"2022-07-04 10:06:19" +MEN7;"Remplacement d'un montant dormant";"Remplacement d'un montant dormant de l'huisserie d'une porte ou porte fenêtre y compris dépose, scellements, réglages ajustages, repose, fournitures :";0.00;249.90;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_7_REMPL;;;;;;;;;;MEN;"de l'huisserie d'une porte ou porte fenêtre";"y compris dépose, scellements, réglages";"ajustages, repose, fournitures :";;"2019-11-14 08:46:49";"2022-07-04 10:06:29" +MEN9;"Remplacement de porte-fenêtre";"Remplacement de porte-fenêtre 2 vantaux sur cadre existant y compris dépose, réglages, ajustages, hors fourniture :";0.00;238.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MEN_9_REMPL;;;;;;;;;;MEN;"2 vantaux sur cadre existant y compris";"dépose, réglages, ajustages, hors";"fourniture :";;"2019-11-27 15:14:28";"2022-07-04 10:06:47" +MEZ;MEZZANINE;"MEZZANINE =========";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;=========;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +MIR0;"Prestations hors référentiel";"Prestations hors référentiel tarifaire :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_0_HORBPU;;;;;;;;;;MIR;"tarifaire :";;;;"2019-12-13 11:09:45";"2020-03-12 17:10:15" +MIR24;"Remplacement double vitrage";"Remplacement double vitrage isolants préfabriqués une face clair ep.04 mm y compris traitement des déchets :";0.00;101.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_24_DOUBL;;;;;;;;;;MIR;"isolants préfabriqués une face";"clair ep.04 mm y compris";"traitement des déchets :";;"2020-02-21 08:42:34";"2022-07-04 10:10:53" +MIR25;"Remplacement d'un double vitrage";NULL;0.00;132.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_25_REMPL;;;;;;;;;;MIR;"isolants préfabriqués une face";"clair ep. 5 ou 6 mm y compris";"intercalaires :";;"2021-05-25 08:46:17";"2022-09-20 16:24:39" +MIR26;"Remplacement double vitrage isolant";"Remplacement double vitrage isolant préfabriqué ep. 08 mm y compris traitements des déchets :";0.00;159.20;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_26_DOUBL;;;;;;;;;;MIR;"préfabriqué ep. 08 mm y compris";"traitements des déchets :";;;"2020-01-08 14:31:06";"2022-07-04 10:11:08" +MIR27;"Remplacement double vitrage ";NULL;0.00;190.80;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_27_DOUB;;;;;;;;;;MIR;"isolants 1 face claire ép. 8 mm :";;;;"2022-10-07 08:47:45";"2022-10-07 08:50:19" +MIR28;"Plus value pour protection";"Plus value pour protection thermique :";0.00;25.90;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_28_PLUVA;;;;;;;;;;MIR;"thermique :";;;;"2020-01-08 14:34:00";"2022-07-04 10:11:20" +MIR29;"Plus value pour remplissage gaz";"Plus value pour remplissage gaz argon :";0.00;5.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_29_PLUSV;;;;;;;;;;MIR;"argon : ";;;;"2020-02-21 08:44:47";"2022-07-04 10:11:35" +MIR44;"Déplacement, prise de mesure,";"Forfait déplacement, prise de mesure, mesure, déplacement inclus hors urgence et fermeture provisoire :";0.00;41.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_44_FORF;;;;;;;;;;MIR;"hors urgence et fermetures provisoires :";;;;"2020-08-03 15:29:15";"2022-09-20 16:30:44" +MIR45;"Déplacement pose glace inférieure";NULL;0.00;59.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_45_FORF;;;;;;;;;;MIR;"à 2 m² hors urgences et fermetures";"provisoires :";;;"2022-09-20 16:22:07";"2022-09-20 16:27:02" +MIR51;"Remplacement vitrage feuilletés";"Remplacement vitrage feuilletés 33-2, y compris traitement des déchets :";0.00;198.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_51_VITRF;;;;;;;;;;MIR;"33-2, y compris traitement des";"déchets :";;;"2020-08-03 15:32:59";"2022-07-04 10:15:24" +MIR52;"Remplacement vitrage feuilletés";"Mise en sécurité d'une porte fenêtre par pose d'un contre plaqué ou d'un film armé y compris déplacement et traitement des déchets :";0.00;216.90;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;MIR_52_VITRF;;;;;;;;;;MIR;"44-2 y compris démasticage :";;;;"2020-02-21 08:46:02";"2022-07-04 10:16:45" +MO;"Fourniture et pose de molleton :";"Fourniture et pose de molleton :";23.00;23.00;23.00;23.00;23.00;23.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PP;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +MP;"Murs et plafond";"Murs et plafond ---------------";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;---------------;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +MPB;"Murs, plafond et boiseries";"Murs, plafond et boiseries --------------------------";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;--------------------------;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +P;Plafond;"Plafond -------";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;-------;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PAR0;"Prestations hors référentiel ";"Prestations hors référentiel tarifaire :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_0_HORBPU;;;;;;;;;;PAR;"tarifaire :";;;;"2019-06-19 12:01:07";"2020-03-12 17:10:26" +PAR10;"Fourniture de sous couche :";NULL;0.00;2.80;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_10_FOUR;;;;;;;;;;PAR;;;;;"2021-09-06 08:58:56";"2022-07-04 10:17:24" +PAR11;"Remplacement parquet flottant ou";"Remplacement parquet flottant ou stratifié, dépose, évacuation, pose y compris sous couche :";0.00;34.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_11_REMPL;;;;;;;;;;PAR;"stratifié, dépose, évacuation, pose y ";"compris sous couche :";;;"2019-06-19 11:53:55";"2022-07-04 10:17:38" +PAR12;"Fourniture parquet stratifié ";"Fourniture parquet stratifié classique :";0.00;17.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_12_FOURN;;;;;;;;;;PAR;"classique :";;;;"2019-09-19 10:34:52";"2022-07-04 10:17:48" +PAR15;"Fourniture et pose de barre de";"Fourniture et pose de barre de seuil :";0.00;16.80;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_15_BARRE;;;;;;;;;;PAR;"seuil :";;;;"2019-06-19 14:15:31";"2022-07-04 10:18:02" +PAR16;"Remplacement plinthes ou quart de";"Remplacement plinthes ou quart de rond, dépose, fourniture et pose :";0.00;15.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_16_REMPL;;;;;;;;;;PAR;"rond, dépose, fourniture et pose :";;;;"2019-06-19 14:14:05";"2022-07-04 10:18:15" +PAR17;"Dépose, fourniture et pose de";NULL;0.00;25.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_17_DEPO;;;;;;;;;;PAR;"panneau de type OSB";;;;"2022-03-31 14:37:29";"2022-07-04 10:18:25" +PAR18;"Ragréage sol y compris fournitures :";"Ragréage sol y compris fournitures :";0.00;11.90;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_18_RAGRE;;;;;;;;;;PAR;;;;;"2019-07-16 17:18:57";"2022-07-04 10:18:40" +PAR19;"Facturation minimale parquet,";"Facturation minimale parquet, toutes sujétions y compris fourniture";0.00;170.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_19_FACTU;;;;;;;;;;PAR;"toutes sujétions y compris fourniture";;;;"2019-07-16 17:20:44";"2021-09-06 09:00:15" +PAR3;"Remplacement parquet contrecollé,";"Remplacement parquet contrecollé, dépose, préparation et pose :";0.00;66.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_3_REMPLA;;;;;;;;;;PAR;"dépose, préparation et pose :";;;;"2019-06-19 14:19:21";"2022-07-04 10:19:07" +PAR4;"Fourniture parquet contrecollé ";"Fourniture parquet contrecollé standard :";0.00;49.70;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_4_FOURN;;;;;;;;;;PAR;"standard :";;;;"2020-01-08 16:45:39";"2022-07-04 10:19:20" +PAR6;"Remplacement parquet massif";NULL;0.00;59.80;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_6_REMP;;;;;;;;;;PAR;"sur lambourdes y compris dépose";"et pose du parquet :";;;"2020-12-07 16:16:44";"2022-07-04 10:19:32" +PAR7;"Fourniture parquet lame bois massif";"Fourniture parquet lame bois massif en chêne :";0.00;99.40;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_7_FOURNI;;;;;;;;;;PAR;"en chêne :";;;;"2019-06-19 14:11:59";"2022-07-04 10:19:47" +PAR8;"Fourniture parquet lames bois massif";"Fourniture parquet lames bois massif en pin :";0.00;60.10;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_8_FOURNI;;;;;;;;;;PAR;"en pin :";;;;"2019-06-19 14:10:34";"2022-07-04 10:20:01" +PAR9;"Vitrification du parquet y compris ";"Vitrification du parquet y compris ponçage et préparations :";26.50;36.90;26.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PAR_9_VITRIF;;;;;;;;;;PAR;"ponçage et préparations :";;;;"2019-06-19 14:21:47";"2022-07-04 10:20:14" +PAV;"Ponçage, affleurage, vernissage :";"Ponçage, affleurage, vernissage :";26.93;26.93;27.20;23.00;25.20;22.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;SOL;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PD;"Pose collée de dalles :";"Pose collée de dalles :";12.00;17.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;SOL;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PEE;"Piquage, effeuillage, encollage :";"Piquage, effeuillage, encollage :";23.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PLA;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PEN0;"Prestations hors référentiel";"Prestations hors référentiel tarifaire :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_0_HORBPU;;;;;;;;;;PEI;"tarifaire :";;;;"2020-01-08 11:07:47";"2020-03-12 17:10:35" +PEN10;"Peinture porte par face, huisserie et ";"Peinture porte 2 faces, huisserie et boiseries ou radiateur :";0.00;40.40;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_10_PEINT;;;;;;;;;;PEI;"boiseries ou radiateur :";;;;"2019-11-20 17:35:07";"2022-07-04 10:20:47" +PEN11;"Mise en peinture radiateur";NULL;0.00;78.20;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_11_PEINT;;;;;;;;;;PEI;"fonte :";;;;"2021-09-06 08:52:52";"2022-07-04 10:20:59" +PEN13;"Dépose et pose de revêtement de sol,";"Dépose et pose de revêtement de sol, préparation du support :";0.00;18.80;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_13_MOQU;;;;;;;;;;SOL;"préparation du support :";;;;"2019-10-21 09:20:58";"2022-07-04 10:21:10" +PEN17;"Remplacement de plinthes ou quart de";"Remplacement de plinthes ou quart de rond, dépose, fourniture et pose :";0.00;14.40;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_17_REMPL;;;;;;;;;;SOL;"rond, dépose, fourniture et pose :";;;;"2019-10-21 09:22:26";"2022-07-04 10:21:23" +PEN18;"Dépose, fourniture et pose de barre";"Dépose, fourniture et pose de barre de seuil :";0.00;14.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_18_BARRE;;;;;;;;;;SOL;"de seuil :";;;;"2019-10-21 09:23:32";"2022-07-04 10:21:39" +PEN2;"Mise en peinture sur murs y compris";"Mise en peinture sur murs y compris reprise d'enduit, et préparations :";0.00;20.70;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_2_MISEEN;;;;;;;;;;PEI;"reprise d'enduit, et préparations :";;;;"2019-10-21 08:59:25";"2022-07-04 10:21:49" +PEN21;"Facturation minimale peinture, ";"Facturation minimale peinture, toutes sujétions y compris fourniture :";0.00;310.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_21_FACTU;;;;;;;;;;PEI;"toutes sujétions y compris ";"fournitures :";;;"2020-02-13 10:03:25";"2022-02-16 11:27:17" +PEN22;"Rebouchage des fissures, grattage,";"Rebouchage des fissures, grattage, reprise d'enduit :";0.00;21.20;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_22_REBOU;;;;;;;;;;PLA;"reprise d'enduit :";;;;"2019-10-21 09:19:04";"2022-07-04 10:22:08" +PEN3;"Mise en peinture sur plafond y ";"Mise en peinture sur plafond y compris préparations des fonds :";0.00;22.30;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_3_MISEEN;;;;;;;;;;PEI;"compris préparations des fonds :";;;;"2019-10-21 09:02:10";"2022-07-04 10:22:17" +PEN4;"Application de peinture projetée";"Application de peinture projetée type gouttelette sur murs et/ou plafond, intégrant grattage, rebouchage, enduit et ponçage :";0.00;31.20;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_4_APPLIC;;;;;;;;;;PEI;"type gouttelette sur murs et/ou";"plafond, intégrant grattage,";"rebouchage, enduit et ponçage :";;"2020-06-30 08:41:24";"2022-07-04 10:22:35" +PEN6;"Remplacement de toile de verre, remise";"Remplacement de toile de verre, remise en peinture y compris arrachage de la toile, et préparations des fonds";0.00;33.20;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_6_REMPL;;;;;;;;;;PEI;"en peinture y compris arrachage de la";"toile et préparations des fonds";;;"2019-10-21 09:13:10";"2022-07-04 10:22:45" +PEN7;"Remplacement du papier peint y compris";"Remplacement du papier peint y compris arrachage et préparations :";0.00;20.10;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_7_REMPL;;;;;;;;;;PP;"arrachage et préparations : ";;;;"2019-10-21 09:15:26";"2022-07-04 10:22:55" +PEN8;"Fourniture papier peint classique :";"Fourniture papier peint classique :";0.00;19.30;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_8_FOURN;;;;;;;;;;PP;;;;;"2019-10-21 09:17:07";"2022-02-07 09:28:06" +PEN9;"Mise en peinture des plinthes ou ";"Mise en peinture des plinthes ou canalisation :";0.00;6.30;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_9_PEINT;;;;;;;;;;PEI;"canalisation :";;;;"2019-10-21 09:18:01";"2022-07-04 10:23:10" +PF;"Préparations des fonds :";"Préparations des fonds :";8.50;6.02;0.00;8.28;0.00;0.00;6.50;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;SOL;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PFR;"Pose de frise :";"Pose de frise :";10.00;10.00;3.60;10.00;10.00;10.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;ML;PNT;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PG;"Peinture laque brillante sur";"Peinture laque brillante sur préparations :";28.00;18.60;20.90;23.60;23.50;20.00;34.00;0.00;0.00;0.00;;;;;;;;;;;;PEI;"préparations :";;;;"2017-08-15 09:18:37";"2022-10-20 15:45:31" +PIF;"Peinture d'impression des fonds :";"Peinture d'impression des fonds :";12.96;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PEI;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PL;"Mise en peinture des plinthes ou";"Mise en peinture des plinthes ou tuyaux :";0.00;6.30;6.70;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_9_PEINTU;;;;;;;;;;PEI;"tuyaux :";;;;"2019-06-12 12:06:07";"2022-07-08 16:12:47" +PLA;Placard;"Placard -------";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;-------;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PLA0;"Prestations hors référentiel";"Prestations hors référentiel tarifaire :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_0_HORBPU;;;;;;;;;;PLA;"tarifaire :";;;;"2019-10-25 16:12:14";"2020-03-12 17:10:44" +PLA12;"Remplacement faux plafond en BA13";"Remplacement faux plafond en BA13 sur ossature conservée, dépose, évacuation, fourniture et pose y compris bandes :";0.00;37.20;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_12_REMPL;;;;;;;;;;PLA;"sur ossature conservée, dépose,";"évacuation, fourniture et pose y compris";"bandes :";;"2019-10-25 16:08:15";"2022-07-04 10:23:34" +PLA13;"Remplacement faux plafond BA13";"Remplacement faux plafond BA13 y compris ossature métallique, dépose, évacuation, fourniture et pose y compris bandes :";0.00;53.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_13_REMPL;;;;;;;;;;PLA;"y compris ossature métallique, dépose,";"évacuation, fourniture et pose y compris";"bandes :";;"2019-10-25 16:10:38";"2022-07-04 10:23:44" +PLA14;"Remplacement dalles suspendues";"Remplacement dalles suspendues sur ossature métallique conservée, dépose, évacuation, fourniture et pose :";0.00;26.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_14_REMPL;;;;;;;;;;PLA;"sur ossature métallique conservée,";"dépose, évacuation, fourniture et";"pose :";;"2020-03-16 10:22:27";"2022-07-04 10:23:53" +PLA15;"Remplacement dalles suspendues";"Remplacement dalles suspendues y compris ossature métallique apparente, dépose, évacuation, fourniture et pose :";0.00;53.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_15_REMPL;;;;;;;;;;PLA;"y compris ossature métallique";"apparente, dépose, évacuation,";"fourniture et pose :";;"2020-03-16 10:20:58";"2022-07-04 10:24:01" +PLA16;"Remplacement isolant en plafond";"Remplacement isolant en plafond ép. jusqu'à 240 mm, dépose, évacuation, fourniture et pose :";0.00;25.30;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_16_REMPL;;;;;;;;;;PLA;"ép. jusqu'à 240 mm, dépose,";"évacuation, fourniture et pose :";;;"2020-08-03 09:56:01";"2022-07-04 10:24:16" +PLA17;"Reconstitution de plâtre manuel ";NULL;0.00;24.40;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_17_RECON;;;;;;;;;;PLA;"sur support brut sur murs et plafonds :";;;;"2022-02-08 16:23:05";"2022-07-04 10:26:46" +PLA5;"Remplacement de cloison ou doublage";"Remplacement de cloison ou doublage en plaques de plâtre BA 13 sur ossature conservée, dépose, fourniture et pose y compris bande :";0.00;32.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_5_REMPL;;;;;;;;;;PLA;"en plaques de plâtre BA 13 sur ossature";"conservée, dépose, fourniture et pose";"y compris bande :";;"2019-10-25 15:56:59";"2022-07-04 10:27:00" +PLA6;"Remplacement doublage en plaques";"Remplacement doublage en plaques de plâtre type BA13 sur rails y compris ossature métallique, dépose, évacuation, fourniture et pose :";0.00;50.30;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_6_REMPL;;;;;;;;;;PLA;"de plâtre type BA13 sur rails y";"compris ossature métallique, dépose,";"évacuation, fourniture et pose :";;"2019-10-25 15:58:56";"2022-07-04 10:27:12" +PLA7;"Remplacement cloison type BA13 Placostil";"Remplacement cloison type BA13 Placostil y compris ossature métallique, dépose, évacuation, fourniture et pose :";0.00;59.80;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_7_REMPL;;;;;;;;;;PLA;"y compris ossature métallique, dépose,";"évacuation, fourniture et pose :";;;"2019-10-25 16:02:42";"2022-07-04 10:27:34" +PLA9;"Plus value hydrofuges pour plaques";"Plus value hydrofuges pour plaques de plâtre type BA13 :";0.00;3.30;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLA_9_PLUSV;;;;;;;;;;PLA;"de plâtre type BA13 :";;;;"2020-02-21 15:52:02";"2022-07-04 10:29:14" +PLAT;PLATRERIE;"PLATRERIE =========";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;=========;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PLI;Plinthes;"Plinthes --------";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;--------;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PLO14;"Dépose et repose de sanitaires";NULL;0.00;155.60;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLO_14_DEPO;;;;;;;;;;PLO;"scellés y compris accessoires";"et protections :";;;"2022-11-09 09:47:58";"2022-11-09 09:51:29" +PLO7;"Travaux de réparations réseau";NULL;0.00;47.70;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PLO7;;;;;;;;;;PLO;"d'alimentation en cuivre :";;;;"2022-11-09 09:51:36";"2022-11-09 09:52:49" +PLP033;"Entoilage :";NULL;0.00;0.00;0.00;0.00;0.00;0.00;5.95;0.00;0.00;0.00;;;;;;;PLP033;;;;;PP;;;;;"2021-11-30 17:16:55";"2021-11-30 17:18:09" +PLP034;"Peinture de sol :";NULL;0.00;0.00;0.00;0.00;0.00;0.00;12.75;0.00;0.00;0.00;;;;;;;PLP034;;;;;PEI;;;;;"2021-11-30 17:20:02";"2021-11-30 17:21:01" +PLP047;"Murs : Lessivage + Masticage +";NULL;0.00;0.00;0.00;0.00;0.00;0.00;5.95;0.00;0.00;0.00;;;;;;;PLP047;;;;;PEI;"Peinture satinée à 2 couches :";;;;"2021-11-30 17:18:39";"2021-11-30 17:19:50" +PLP093;"Plafond : Dépose dalles polystyrène +";NULL;0.00;0.00;0.00;0.00;0.00;0.00;10.19;0.00;0.00;0.00;;;;;;;PLP093;;;;;PEI;"Masticage + Raccord plâtre +";"Peinture glycéromate à 2 couches :";;;"2021-11-30 17:11:02";"2021-11-30 17:14:31" +PLP130;"Dépose et évacuation lambris";NULL;0.00;0.00;0.00;0.00;0.00;0.00;8.50;0.00;0.00;0.00;;;;;;;PLP130;;;;;MEN;"compris ossature :";;;;"2021-11-30 17:15:05";"2021-11-30 17:16:33" +PLP168;"Réfection complète d'un séjour :";NULL;0.00;0.00;0.00;0.00;0.00;0.00;475.57;0.00;0.00;0.00;;;;;;;PLP168;;;;;PEI;;;;;"2021-11-16 15:23:35";"2021-11-16 15:24:26" +PLP169;"Réfection complète d'une ";NULL;0.00;0.00;0.00;0.00;0.00;0.00;356.68;0.00;0.00;0.00;;;;;;;PLP169;;;;;PEI;"chambre :";;;;"2021-11-16 15:24:41";"2021-11-16 15:25:41" +PLP170;"Réfection complète Entrée";"1 face ------";0.00;0.00;0.00;0.00;0.00;0.00;174.10;0.00;0.00;0.00;;;;;;;PLP170;;;;;PEI;"ou petit dégagement :";;;;"2017-08-15 09:18:37";"2021-11-16 15:28:19" +PLP171;"Réfection complète d'un grand";NULL;0.00;0.00;0.00;0.00;0.00;0.00;207.22;0.00;0.00;0.00;;;;;;;PLP171;;;;;PEI;"dégagement :";;;;"2021-11-16 15:30:44";"2021-11-16 15:31:40" +PLP172;"Réfection complète de la";NULL;0.00;0.00;0.00;0.00;0.00;0.00;386.41;0.00;0.00;0.00;;;;;;;PLP172;;;;;PEI;"cuisine :";;;;"2021-11-16 15:31:44";"2021-11-16 15:32:24" +PLP173;"Réfection complète de la salle";NULL;0.00;0.00;0.00;0.00;0.00;0.00;245.43;0.00;0.00;0.00;;;;;;;PLP173;;;;;PEI;"de bains :";;;;"2021-11-16 15:32:34";"2021-11-16 15:33:13" +PLP174;"Réfection complète des";NULL;0.00;0.00;0.00;0.00;0.00;0.00;150.32;0.00;0.00;0.00;;;;;;;PLP174;;;;;PEI;"toilettes :";;;;"2021-11-16 15:33:18";"2021-11-16 15:34:05" +PLP177;"Réfection totale d'un logement";NULL;0.00;0.00;0.00;0.00;0.00;0.00;1698.47;0.00;0.00;0.00;;;;;;;"PLP177 ";;;;;PEI;"de type 1 :";;;;"2021-11-16 14:52:02";"2021-11-16 15:10:50" +PLP178;"Réfection totale d'un logement";NULL;0.00;0.00;0.00;0.00;0.00;0.00;2123.09;0.00;0.00;0.00;;;;;;;PLP178;;;;;PEI;"de type T2 ou T1B :";;;;"2021-11-16 15:11:16";"2021-11-16 15:12:50" +PLP179;"Réfection totale d'un logement";NULL;0.00;0.00;0.00;0.00;0.00;0.00;2554.43;0.00;0.00;0.00;;;;;;;PLP179;;;;;PEI;"de type T3 ou T2B :";;;;"2021-11-16 15:13:52";"2022-03-30 15:34:32" +PLP180;"Réfection totale d'un logement";NULL;0.00;0.00;0.00;0.00;0.00;0.00;2802.48;0.00;0.00;0.00;;;;;;;PLP180;;;;;PEI;"de type T4 ou T3B :";;;;"2021-11-16 15:15:49";"2021-12-01 08:55:47" +PLP181;"Réfection totale d'un logement";NULL;0.00;0.00;0.00;0.00;0.00;0.00;3227.09;0.00;0.00;0.00;;;;;;;PLP181;;;;;PEI;"de type T5 ou T4B :";;;;"2021-11-16 15:17:32";"2021-11-16 15:18:43" +PLP182;"Réfection totale d'un logement";NULL;0.00;0.00;0.00;0.00;0.00;0.00;3481.86;0.00;0.00;0.00;;;;;;;PLP182;;;;;PEI;"de type T6";;;;"2021-11-16 15:19:21";"2021-11-16 15:20:11" +PM;"Peinture mate sur préparations :";"Peinture mate sur préparations :";23.00;0.00;23.00;23.60;19.64;19.00;20.00;0.00;0.00;0.00;;;;PE-END01;;;;;;;;PEI;;;;;"2017-08-15 09:18:37";"2022-10-20 08:35:15" +PMM;"Peinture mate sur murs y";"Peinture mate sur murs y compris préparations :";0.00;20.70;0.00;0.00;18.40;0.00;0.00;0.00;0.00;0.00;;PEN_2_MISEEN;;;;;;;;;;PEI;"compris préparations :";;;;"2019-06-12 11:57:10";"2022-10-20 08:36:14" +PMP;"Peinture mate sur plafond y ";"Peinture mate sur plafond y compris préparations :";0.00;22.30;0.00;0.00;19.64;0.00;0.00;0.00;0.00;0.00;;PEN_3_MISEEN;;;;;;;;;;PEI;"compris préparations :";;;;"2019-02-08 08:22:09";"2022-10-20 08:35:45" +PN;"Dépose de revêtement plastique";"Dépose de revêtement plastique moquette non collé et évacuation";4.80;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;SOL;"moquette non collé et évacuation";;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PP;"Pose de papier peint sur";"Pose de papier peint sur préparations :";23.60;20.10;23.60;22.00;16.15;20.50;19.00;0.00;0.00;0.00;;PEN_7_REMPLA;;;;;;;;;;PNT;"préparations :";;;;"2017-08-15 09:18:37";"2022-10-20 15:46:35" +PPP;"Pose de papier à peindre sur";"Pose de papier à peindre sur préparations :";18.50;0.00;0.00;33.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PNT;"préparations :";;;;"2017-08-15 09:18:37";"2018-05-17 07:46:40" +PPR;"PIECE PRINCIPALE";"PIECE PRINCIPALE ================";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;================;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PR;"Pose de revêtement de sol collé :";"Pose de revêtement de sol collé :";9.00;0.00;14.08;10.35;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;SOL;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PRE;"Raclage, ratissage sur parties";"Raclage, ratissage sur parties écaillées :";0.00;0.00;0.00;0.00;0.00;38.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PLA;"écaillées :";;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PRO;"Protection et nettoyage :";"Protection et nettoyage :";0.00;3.58;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;PNT;;;;;"2017-08-15 09:18:37";"2020-05-07 10:53:00" +PROT;"Protection et nettoyage sur l'ensemble";"Protection et nettoyage sur l'ensemble";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PNT;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +PS;"Peinture satinée ou semibrillante sur";"Peinture satinée ou semibrillante sur préparations :";23.00;0.00;23.00;23.60;19.64;20.00;20.00;0.00;0.00;0.00;;;;;;;;;;;;PEI;"préparations :";;;;"2017-08-15 09:18:37";"2022-10-20 15:44:51" +PSB;"Peinture satinée sur boiseries";"Peinture satinée sur boiseries";0.00;0.00;33.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;PEI;;;;;"2020-02-21 09:06:13";"2020-02-21 09:06:42" +PSM;"Peinture satinée sur préparations :";"Peinture satinée sur préparations :";0.00;20.70;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_2_MISEEN;;;;;;;;;;PEI;;;;;"2019-06-12 12:00:14";"2022-07-08 15:47:30" +PT;"Plafond et retombées";"Plafond et retombées --------------------";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;--------------------;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +R;"Rechampis du pourtour :";"Rechampis du pourtour :";1.50;1.50;1.50;1.50;1.50;1.50;1.50;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;0;PNT;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +RA;"Ratissage à 2 passes, ponçage :";"Ratissage à 2 passes, ponçage :";15.24;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PEI;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +RBA;"Fourniture et pose de faux plafond :";"Fourniture et pose de faux plafond :";52.00;48.00;45.50;41.40;52.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PLA;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +RDC;"REZ DE CHAUSSEE";"REZ DE CHAUSSEE ===============";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;===============;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +RDF1;"Forfait RDF simple :";NULL;155.00;0.00;155.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;AR;;;;;"2019-06-20 16:58:30";"2022-02-07 13:48:44" +RDF2;"Forfait RDF spécialisée :";NULL;484.00;0.00;484.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;;;;;;"2019-06-20 16:58:30";"2022-02-07 13:48:33" +RE4;"Remise 4 % :";"Remise 4 % :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;T;;;;;"2020-02-04 15:28:31";"2020-02-04 15:28:56" +RE6;"Remise 6 % :";"Remise 6 % :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;T;;;;;"2020-02-04 15:28:04";"2020-02-04 15:29:21" +REP;"Raclage, ratissage sur parties";"Raclage, ratissage sur parties écaillées :";0.00;0.00;0.00;0.00;0.00;38.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;0;PLA;"écaillées :";;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +RL;"Ragréage, Lissage";"Ragréage, Lissage";23.00;9.60;0.00;12.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;SOL;;;;;"2017-08-15 09:18:37";"2018-08-07 14:47:27" +RO;"Fourniture et pose de laine de verre";"Fourniture et pose de laine de verre ou laine de roche :";25.00;25.00;25.00;25.00;25.00;25.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PLA;"ou laine de roche :";;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +RSBASE;"Fourniture et pose de barre de seuil :";NULL;0.00;0.00;0.00;14.10;0.00;0.00;0.00;0.00;0.00;0.00;;;;RS-BASEU;;;;;;;;PAR;;;;;"2022-10-03 08:59:07";"2022-10-03 08:59:57" +RSPACL;"Dépose et remplacement de parquet";NULL;0.00;0.00;0.00;71.10;0.00;0.00;0.00;0.00;0.00;0.00;;;;RS-PACLO;;;;;;;;PAR;"cloué sur lambourdes, y compris";"préparations :";;;"2022-10-03 08:57:46";"2022-10-19 16:43:26" +RSPAFL;"Dépose et remplacement de parquet";NULL;0.00;0.00;0.00;32.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;RS-PAFLO;;;;;;;;PAR;"flottant avec feutre, y compris préparation";"des supports et pose :";;;"2022-10-19 16:35:03";"2022-10-19 16:41:11" +RSPLIN;"Remplacement de plinthes bois";NULL;0.00;0.00;0.00;12.10;0.00;0.00;0.00;0.00;0.00;0.00;;;;RS-PLIN;;;;;;;;PAR;"ou PVC :";;;;"2022-10-03 08:56:39";"2022-10-03 08:57:35" +RSPVVI;"Ponçage et vitrification de parquet";NULL;0.00;0.00;0.00;35.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;RS-PVVIT;;;;;;;;PAR;"en complément au delà des 12 m² :";;;;"2022-10-03 08:54:37";"2022-10-03 08:56:21" +RSVITR;"Ponçage et vitrification de parquet";NULL;0.00;0.00;0.00;430.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;RS-VITRI;;;;;;;;PAR;"Forfait minimum < 12 m² :";;;;"2022-10-03 08:53:05";"2022-10-03 08:54:21" +S;Sol;"Sol ---";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;---;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +SA;SALON;"SALON =====";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;=====;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +SAM;"SALLE A MANGER";"SALLE A MANGER ==============";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;==============;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +SC;"Application de sous couche spéciale";"Application de sous couche spéciale produit décoratif :";12.96;12.96;12.96;12.96;12.96;12.96;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PNT;"produit décoratif :";;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +SDB;"SALLE DE BAINS";"SALLE DE BAINS ==============";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;==============;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +SE;SEJOUR;"SEJOUR ======";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;======;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +SER0;"Prestation hors référentiel";"Prestation hors référentiel tarifaire :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;SER_0_HORBPU;;;;;;;;;;MEN;"tarifaire :";;;;"2020-02-25 09:50:03";"2020-02-25 09:51:27" +SER3;"Remplacement verrou ou cylindre";"Remplacement verrou ou cylindre tout type (à bouton ou double entrée y compris haute sureté, déplacement compris :";0.00;81.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;SER_3_REMPL;;;;;;;;;;MEN;"tout type (à bouton ou double entrée";"y compris haute sureté, déplacement";"compris :";;"2020-08-03 15:34:44";"2022-07-04 10:32:31" +SER4;"Remplacement serrure mono point";"Remplacement serrure mono point tout type (à larder ou en applique) déplacement compris :";0.00;102.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;SER_4_REMP;;;;;;;;;;MEN;"tout type (à larder ou en applique)";"déplacement compris :";;;"2020-08-03 15:38:33";"2022-07-04 10:32:50" +SLS024;"Fourniture et pose de lés vinyles";NULL;0.00;0.00;0.00;0.00;0.00;0.00;21.23;0.00;0.00;0.00;;;;;;;SLS024;;;;;SOL;"sur sol déposé :";;;;"2021-11-30 17:30:36";"2021-11-30 17:31:57" +SM;"Shampooing de moquette :";"Shampooing de moquette :";10.00;10.00;10.00;7.87;10.00;7.40;11.50;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;SOL;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +SOL;"Dépose du revêtement de sol existant,";"Dépose du revêtement de sol existant, préparations des fonds et pose de revêtement collé :";42.10;18.80;42.10;22.00;21.69;21.00;25.50;0.00;0.00;0.00;;PEN_13_MOQU;;RS-MOPVC;;;;;;;;SOL;"préparations des fonds et pose de revêtement";"collé :";;;"2017-08-15 09:18:37";"2022-10-19 16:38:41" +TCF;"Ce devis ne comprend pas les dommages";NULL;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;PEI;"en Plâtrerie Peinture occasionnés par";"la réparation de la fuite.";;;"2022-10-10 11:15:09";"2022-10-10 11:17:36" +TD;"Traitement et valorisation des déchets";"Traitement et valorisation des déchets montant forfaitaire de 1 % :";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;GEN_0_DECHET;;;;;;;;;;T;"montant forfaitaire de 1 % :";;;;"2020-02-04 08:23:31";"2022-02-08 16:20:49" +TT;"Pose de tissu tendu sur préparations :";"Pose de tissu tendu sur préparations :";38.00;23.87;34.03;42.30;38.00;38.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PP;;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +TV;"Fourniture et pose de toile de verre";"Fourniture et pose de toile de verre sur préparations :";23.50;8.18;10.40;0.00;23.50;0.00;20.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;PNT;"sur préparations :";;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" +TVP;"Fourniture et pose de toile de verre ";"Fourniture et pose de toile de verre y compris peinture acrylique mate ou satinée :";41.40;33.20;41.40;36.00;33.15;30.00;39.00;0.00;0.00;0.00;;PEN_6_REMPLA;;;;;;;;;;PNT;"standard y compris peinture acrylique ";"mate ou satinée :";;;"2017-08-15 09:18:37";"2022-10-20 08:36:47" +TVPS;"Fourniture et pose de toile de verre y";"Fourniture et pose de toile de verre y compris peinture acrylique satinée :";40.50;32.81;33.00;33.48;40.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;PNT;"compris peinture acrylique satinée :";;;;"2017-08-15 09:18:37";"2020-02-04 08:30:50" +U;"Mise en peinture d'uniformisation :";"Mise en peinture d'uniformisation :";15.50;12.00;15.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;PEN_8_MISEEN;;;;;;;;;;PEI;;;;;"2019-06-12 12:03:28";"2022-02-07 09:16:29" +URG10;"Fermeture provisoire de porte 1 vantail";NULL;0.00;270.50;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;URG_10_FERM;;;;;;;;;;MEN;"avec du contre-plaqué rigide ou";"renforcé par des tasseaux de bois :";;;"2022-09-20 16:28:16";"2022-09-29 11:48:21" +URG3;"Remplacement simple vitrage";"Remplacement simple vitrage clair, d'épaisseur < à 10 mm et de surface < à 1 m², y compris déplacements et traitement des déchets :";0.00;179.20;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;URG_3_REMPL;;;;;;;;;;MEN;"clair, d'épaisseur < à 10 mm et";"de surface < à 1 m², y compris";"déplacements et traitement des";"déchets :";"2020-02-25 09:51:46";"2022-07-04 10:33:13" +VEN;"Pose d'un ventilateur :";"Pose d'un ventilateur :";15.00;0.00;15.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;;;;;;;;;;;;ASS;;;;;"2020-01-15 15:54:15";"2021-10-27 09:09:41" +WC;W.C.;"W.C. ====";0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;;T;====;;;;"2017-08-15 09:18:37";"2017-08-15 09:18:37" diff --git a/cao_blogr/static/uploads/dolibarr-psw.txt b/cao_blogr/static/uploads/dolibarr-psw.txt new file mode 100644 index 0000000..a83a38c --- /dev/null +++ b/cao_blogr/static/uploads/dolibarr-psw.txt @@ -0,0 +1,6 @@ +https://caotekfr.with.multicompany.cloud/?username=admin +admin - pcao.8211 + +http://dolibarr.driveperso.com/index.php +caotek - q4txk0mr + diff --git a/cao_blogr/templates/layout.jinja2 b/cao_blogr/templates/layout.jinja2 index 558c186..cd6cc58 100644 --- a/cao_blogr/templates/layout.jinja2 +++ b/cao_blogr/templates/layout.jinja2 @@ -48,6 +48,7 @@ {% endif %}
  •   Tags
  • +
  •   Téléchargements
  •   Se déconnecter
  • diff --git a/cao_blogr/templates/uploads.jinja2 b/cao_blogr/templates/uploads.jinja2 new file mode 100644 index 0000000..80cffa7 --- /dev/null +++ b/cao_blogr/templates/uploads.jinja2 @@ -0,0 +1,42 @@ +{% extends "cao_blogr:templates/layout.jinja2" %} + +{% block content %} + +
    +
    +
    Ajouter un fichier
    +
    +
    +
    + + + + + +
    +
    +
    +
      +
    • Seuls les documents au format TXT, PDF, PNG, JPG ou JPEG seront acceptés.
    • +
    • La taille de chaque document ne doit pas dépasser 4 Mo.
    • +
    +
    +
    +
    +
    +
    Fichiers téléchargés
    +
    + + {% for entry in files_list %} + + + + {% endfor %} +
    {{ entry[1] }}
    +
    +
    +
    + + +{% endblock %} diff --git a/cao_blogr/templates/user_pwd.jinja2 b/cao_blogr/templates/user_pwd.jinja2 deleted file mode 100644 index 935c272..0000000 --- a/cao_blogr/templates/user_pwd.jinja2 +++ /dev/null @@ -1,30 +0,0 @@ -{% extends "cao_blogr:templates/layout.jinja2" %} - -{% block content %} - -
    - -
    - - -
    - -
    -
    - Dernière connexion : - {{ entry.last_logged.strftime("%d-%m-%Y - %H:%M") }}
    -
    - -
    - Retour - - {% if name != 'new' %} - - {% endif %} -
    - -
    - -{% endblock %} diff --git a/cao_blogr/views/default.py b/cao_blogr/views/default.py index 80b6b34..08de9d6 100644 --- a/cao_blogr/views/default.py +++ b/cao_blogr/views/default.py @@ -9,6 +9,9 @@ from ..services.blog_record import BlogRecordService from ..forms import UserCreateForm, BlogSearchForm from ..models.user import User +import os +import shutil +import magic @view_config(route_name='home', renderer='cao_blogr:templates/home.jinja2') @@ -114,23 +117,22 @@ def user_edit(request): # controle que le password a moins 6 car if len(form.password.data) < 6 : message = "Le mot de passe doit avoir au moins 6 caractères" - else: - # controler que le nouvel user n'existe pas dans la BD - new_user = UserService.by_name(request, form.name.data) - if new_user: - message = "Utilisateur déjà créé : %s" % form.name.data - - # si pas d'erreur - if message == '': + else: if name == '0': - form.populate_obj(user) - user.set_password(form.password.data.encode('utf8')) - # créer le nouveau - request.dbsession.add(user) - request.session.flash("La fiche a été créée avec succès.", 'success') - return HTTPFound(location=url_retour) + # en création, controler que le nouvel user n'existe pas dans la BD + new_user = UserService.by_name(request, form.name.data) + if new_user: + message = "Utilisateur déjà créé : %s" % form.name.data + else: + form.populate_obj(user) + user.set_password(form.password.data.encode('utf8')) + # créer le nouveau + request.dbsession.add(user) + request.session.flash("La fiche a été créée avec succès.", 'success') + return HTTPFound(location=url_retour) else: + # en modif del form.name # SECURITY: prevent overwriting of primary key form.populate_obj(user) user.set_password(form.password.data.encode('utf8')) @@ -152,4 +154,60 @@ def user_edit(request): } +@view_config(route_name='uploads', renderer='cao_blogr:templates/uploads.jinja2', permission='view') +def uploads(request): + message = '' + folder_path = request.registry.settings['uploads_dir'] + + files_list = [] + # récupérer tous les fichiers contenus dans dossier static/uploads + for f in os.scandir(folder_path): + files = [] + files.append(request.static_url('cao_blogr:static/uploads/') + f.name) + files.append(f.name) + files_list.append(files) + + + if 'form.submitted' in request.params: + # controler que le nom du fichier n'est pas vide + if request.POST['uploadfile'] != b'': + # récupère le fichier download dans le dossier /tmp + input_file = request.POST['uploadfile'].file + input_name = request.POST['uploadfile'].filename + ext_allowed = ['text/plain', 'application/pdf', 'image/jpeg', 'image/jpg', 'image/png'] + + mime = magic.from_buffer(input_file.read(), mime=True) + import pdb;pdb.set_trace() + # types de fichiers autorisés ? + if mime not in ext_allowed: + request.session.flash("ERREUR: Le format du fichier n'est pas valide. Téléchargement impossible.", 'danger') + return HTTPFound(location=request.route_url('uploads')) + + # Finally write the data to a temporary file + temp_file_path = os.path.join(folder_path, input_name) + # supprimer le fichier s'il existe déjà + if os.path.exists(temp_file_path): + os.remove(temp_file_path) + + # copie le fichier upload dans temp_file + input_file.seek(0) + with open(temp_file_path, 'wb') as output_file: + shutil.copyfileobj(input_file, output_file) + + # controler la taille du fichier < 4 Mo + filesize = round(os.path.getsize(temp_file_path) / 1024) + if filesize > 4096: + os.remove(temp_file_path) + request.session.flash("ERREUR: La taille du fichier dépasse la limite autorisée. Téléchargement impossible.", 'danger') + return HTTPFound(location=request.route_url('uploads')) + + request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success') + return HTTPFound(location=request.route_url('uploads')) + + + return { + 'page_title': "Téléchargements", + 'files_list': files_list + } + diff --git a/development.ini b/development.ini index 6f3803b..152479c 100644 --- a/development.ini +++ b/development.ini @@ -16,6 +16,9 @@ pyramid.includes = sqlalchemy.url = sqlite:///%(here)s/cao_blogr.sqlite +# upload files location +uploads_dir = /pyramid/cao_blogr/cao_blogr/static/uploads/ + retry.attempts = 3 # By default, the toolbar only appears for clients from IP addresses diff --git a/production.ini b/production.ini index 5fbf1e4..64dd740 100644 --- a/production.ini +++ b/production.ini @@ -13,6 +13,8 @@ pyramid.debug_routematch = false pyramid.default_locale_name = en sqlalchemy.url = sqlite:///%(here)s/cao_blogr.sqlite +# upload files location +uploads_dir = /pyramid/cao_blogr/cao_blogr/static/uploads/ retry.attempts = 3 diff --git a/setup.py b/setup.py index 8320403..818c827 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,7 @@ requires = [ 'pyramid_retry', 'pyramid_layout', 'pyramid_tm', + 'python-magic', 'SQLAlchemy', 'transaction', 'zope.sqlalchemy',