commit
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
node_modules/
|
||||
*.env
|
||||
logs/
|
||||
.DS_Store
|
||||
package-lock.json
|
||||
123
app.js
Normal file
@@ -0,0 +1,123 @@
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("./public/js/app/logger");
|
||||
|
||||
logger.info('bonjour Julie');
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// VARIABLES D'ENVIRONNEMENT
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// DOTENV
|
||||
// Ne pas utiliser de fichiers .env dans votre environnement de production,
|
||||
// mais définir plutôt les valeurs d'environnement sur l'hébergeur
|
||||
require('dotenv').config();
|
||||
logger.info('process.env.PORT : ' + process.env.PORT);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// EXPRESS
|
||||
const express = require('express');
|
||||
|
||||
// EXPRESS-SESSION
|
||||
const session = require('express-session');
|
||||
|
||||
// BODY-PARSER
|
||||
//Le package body-parser permet de décomposer les requêtes HTTP POST, PATCH, etc. afin de pouvoir extraire les infoirmations tranmises dans des formulaires. Ces informations apparaissent dans le champ req.body.
|
||||
const bodyparser = require('body-parser');
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// MIDDLEWARE
|
||||
// INITIALISER LES MODULES DANS LE PROJET APP
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// EXPRESS
|
||||
//// "app" étant la variable qui désigne le projet
|
||||
const app = express();
|
||||
|
||||
// EXPRESS-SESSION
|
||||
var session_cookie = {
|
||||
secret: process.env.COOKIE_SECRET,
|
||||
resave: false,
|
||||
saveUninitialized: false,
|
||||
cookie: {}
|
||||
}
|
||||
|
||||
logger.info("process.env.ENV : " + process.env.ENV);
|
||||
if (process.env.ENV === 'production') {
|
||||
logger.info("express-session secured");
|
||||
app.set('trust proxy', 1); // trust first proxy
|
||||
session_cookie.cookie.secure = true; // serve secure cookies
|
||||
}
|
||||
|
||||
app.use(session(session_cookie))
|
||||
|
||||
// JSON
|
||||
//// Read datas on API
|
||||
//// needed by Express to read post from HTML Form
|
||||
app.use(express.json());
|
||||
|
||||
// BODY-PARSER
|
||||
//// Pour la méthode post du formulaire
|
||||
app.use(bodyparser.urlencoded({ extended: false}));
|
||||
app.use(bodyparser.json());
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// PORT D'ÉCOUTE WEB
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// port dans variable d'environnement OU (||) par défaut 8888
|
||||
const port = process.env.PORT;
|
||||
app.listen(port);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// MOTEUR DE TEMPLATE HTML
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// appeler le moteur de template html ejs
|
||||
app.set('view engine', 'ejs');
|
||||
// le répertoire dans lequel se trouvent les fichiers modèles
|
||||
app.set('views', './views')
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ASSETS (de Express)
|
||||
/////////////////////////////////////////////////
|
||||
// donner au programme le nom du dossier où sont les assets (css, image...)
|
||||
// Le chemin d’accès que vous fournissez à la fonction express.static est en rapport
|
||||
// avec le répertoire à partir duquel vous lancez votre processus node.
|
||||
// Si vous exécutez l’application express à partir d’un autre répertoire,
|
||||
// il est plus sûr d’utiliser le chemin d’accès absolu que vous voulez servir
|
||||
// ex : http://localhost:8080/assets/images/kitten.jpg
|
||||
app.use('/public', express.static('public'));
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ROUTES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// APPELER LE FICHIER ROUTE
|
||||
// Exemple à modifier :
|
||||
const appRouter = require("./routes/appRouter");
|
||||
const adhesionRouter = require("./routes/adhesionRouter");
|
||||
const stagenatRouter = require("./routes/stagenatRouter");
|
||||
const rassemblementRouter = require("./routes/rassemblementRouter");
|
||||
|
||||
// Accueil du site
|
||||
// [DOMAIN]/
|
||||
app.use("/", appRouter);
|
||||
|
||||
// Adhésion
|
||||
// [DOMAIN]/inscription adhésion
|
||||
app.use("/inscription", adhesionRouter);
|
||||
|
||||
// STAGE NATIONAL
|
||||
// [DOMAIN]/stagenational
|
||||
app.use("/stagenational", stagenatRouter);
|
||||
|
||||
// RASSEMBLEMENT IDF
|
||||
// [DOMAIN]/rassemblementidf
|
||||
app.use("/rassemblementidf", rassemblementRouter);
|
||||
@@ -0,0 +1 @@
|
||||
{"web":{"client_id":"222874178146-m2ul49riou277tjl431nbfdb8ibp2nl5.apps.googleusercontent.com","project_id":"testapi336520","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["https://www.juliechaumard.paris"],"javascript_origins":["https://www.juliechaumard.paris"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"web":{"client_id":"738202486676-su2vn8602qqfehool3jqkjvdrdlrl1kd.apps.googleusercontent.com","project_id":"inscriptionsafps","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","javascript_origins":["https://www.adhesion.afpedagogiesuzuki.fr","http://localhost:8888","https://www.adusuki.juliechaumard.paris"]}}
|
||||
18
combined.log.2023-02-26
Normal file
@@ -0,0 +1,18 @@
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] bonjour Julie
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] process.env.PORT : 8888
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] process.env.ENV : production
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] express-session secured
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/routes/appRouter.js
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/routes/adhesionRouter.js
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/controllers/adhesionController.js
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/routes/stagenatRouter.js
|
||||
2023-02-26 18:25:06 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/controllers/stagenatController.js
|
||||
2023-02-26 18:36:27 info [undefined] SID[undefined] bonjour Julie
|
||||
2023-02-26 18:36:27 info [undefined] SID[undefined] process.env.PORT : 8888
|
||||
2023-02-26 18:36:27 info [undefined] SID[undefined] process.env.ENV : production
|
||||
2023-02-26 18:36:27 info [undefined] SID[undefined] express-session secured
|
||||
2023-02-26 18:36:27 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/routes/appRouter.js
|
||||
2023-02-26 18:36:27 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/routes/adhesionRouter.js
|
||||
2023-02-26 18:36:27 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/controllers/adhesionController.js
|
||||
2023-02-26 18:36:28 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/routes/stagenatRouter.js
|
||||
2023-02-26 18:36:28 info [undefined] SID[undefined] NOUS SOMMES DANS LE FICHIER : /home/jivciei/adusuki/controllers/stagenatController.js
|
||||
2429
controllers/adhesionController.js
Normal file
822
controllers/rassemblementController.js
Normal file
@@ -0,0 +1,822 @@
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger");
|
||||
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename, { label: __filename });
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
const moment = require('moment');
|
||||
const ejs = require('ejs');
|
||||
var nodemailer = require('nodemailer');
|
||||
const path = require("path");
|
||||
const stripe = require('stripe')(process.env.STRIPE_PRIVATE_KEY);
|
||||
var pdf = require("pdf-creator-node");
|
||||
var fs = require("fs");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// GOOGLE SHEET PARAMETERS
|
||||
/////////////////////////////////////////////////
|
||||
const { GoogleSpreadsheet } = require('google-spreadsheet');
|
||||
const GS_creds_rassemblementidf = require('../inscriptionsafps-53b60452f63d.json');
|
||||
const GS_rassemblementidf = new GoogleSpreadsheet('19Y1M7mZFSJrycQTtNxV2Cmmyz2OaeXHmwCKVCgy1r7Q');
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// VARIABLES GLOBALES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// PAGE 1
|
||||
// http://localhost:8888/stagenational/identifier
|
||||
//
|
||||
// RECHERCHE SI PERSONNE DÉJA INSCRITE
|
||||
// SI NON INSCRITE
|
||||
// RECHERCHE SI ADHÉRENTE DANS BD AFPS
|
||||
//
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
const RI_checkidentifiant = async function(req, res) {
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// RECHERCHE SI PERSONNE DÉJA INSCRITE
|
||||
// DANS BD DU STAGE ANNUEL
|
||||
logger.info("======================================", { label: __filename });
|
||||
logger.info("======== FUNCTION RI_checkidentifiant ==========", { label: __filename });
|
||||
logger.info("======================================", { label: __filename });
|
||||
|
||||
await GS_rassemblementidf.useServiceAccountAuth(GS_creds_rassemblementidf);
|
||||
await GS_rassemblementidf.loadInfo(); // loads document properties and worksheets
|
||||
logger.info("NOM FICHIER SHEET: " + GS_rassemblementidf.title, { numsession: req.session.id, label: __filename });
|
||||
const GS_RI_sheet = GS_rassemblementidf.sheetsByTitle['inscription_web'];
|
||||
logger.info("NOM DU TABLEAU (ONGLET): "+GS_RI_sheet.title, { label: __filename }); //NOM DU TABLEAU (ONGLET)
|
||||
|
||||
const GS_SN_rows = await GS_RI_sheet.getRows();
|
||||
|
||||
// mettre les identifiants dans un array
|
||||
let lesidentifiants = new Array;
|
||||
let compteur = GS_RI_sheet.rowCount - 1;
|
||||
console.log("compteur: ",compteur);
|
||||
|
||||
for (let i=0; i<compteur; i++) {
|
||||
lesidentifiants[i] = GS_SN_rows[i].identifiant;
|
||||
}
|
||||
|
||||
// afficher le array
|
||||
|
||||
logger.info("VOICI LA LISTE DES IDENTIFIANTS", { label: __filename });
|
||||
|
||||
logger.info(lesidentifiants);
|
||||
|
||||
// recherche l'identifiant saisi dans le array de tous les identifiants de la Google Sheet
|
||||
// ON RÉCUPÈRE L'IDENTIFIANT SAISIE DANS LE FORMULAIRE
|
||||
|
||||
// EST-CE QUE L'IDENTIFIANT EST SAISI ?
|
||||
logger.info("identifiant saisi : "+req.body.identifiant, { numsession: req.session.id, label: __filename});
|
||||
if (req.body.identifiant) {
|
||||
|
||||
// IDENTIFIANT SAISI
|
||||
req.session.identifiant = req.body.identifiant;
|
||||
logger.info("req.body.identifiant : " + req.body.identifiant, { numsession: req.session.id, label: __filename});
|
||||
logger.info("req.session.identifiant : " + req.session.identifiant, { numsession: req.session.id, label: __filename});
|
||||
|
||||
// EST-CE QUE L'IDENTIFIANT SAISI EST DÉJA INSCRIT AU STAGE
|
||||
if (lesidentifiants.includes(req.body.identifiant) === true) {
|
||||
// DÉJA INSCRIT AU STAGE
|
||||
req.session.err_mail_form_adhesion_1 = "Cette identifiant est déjà inscrit pour le Rassemblement IDF 2023.";
|
||||
req.session.err_mail_form_adhesion_2 = "Pour tout problème veuillez contacter l’Association.";
|
||||
req.session.err_mail_form_adhesion_3 = "";
|
||||
res.redirect('/rassemblementidf/identifier');
|
||||
} else {
|
||||
// NON ENCORE INSCRIT AU STAGE
|
||||
|
||||
// COCHÉ AUTRE PAYS
|
||||
logger.info("Etat case à coché autre pays : " + req.body.check_autrepays, { numsession: req.session.id, label: __filename});
|
||||
if (req.body.check_autrepays){
|
||||
req.session.err_mail_form_adhesion_1 = "Vous n'êtes pas encore inscrit au stage";
|
||||
req.session.err_mail_form_adhesion_2 = "Vous ètes membre Suzuki d'un autre pays";
|
||||
req.session.err_mail_form_adhesion_3 = "Nous allons vous diriger vers le formulaire d'inscription";
|
||||
res.redirect('/rassemblementidf/formulaire');
|
||||
}
|
||||
|
||||
// COCHÉ AUTRE NON ADHÉRENT
|
||||
logger.info("Etat case à coché non adhérent : " + req.body.check_nonadherent, { numsession: req.session.id, label: __filename});
|
||||
if (req.body.check_nonadherent){
|
||||
req.session.err_mail_form_adhesion_1 = "Etre adhérent (et posséder un identifiant) à une association de la pédagogie Suzuki est obligatoire pour toute famille ou personne qui souhaite participer au Rassemblement IDF 2023";
|
||||
req.session.err_mail_form_adhesion_2 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki <a target="_blank" href="https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion"><span class="souligne">Cliquez ici</span></a>';
|
||||
req.session.err_mail_form_adhesion_3 = 'Vous pouvez également adhérer à l\'association de votre pays. <a target="_blank" href="https://www.europeansuzuki.org/countries/"><span class="souligne">Vous trouverez ici les pays européens</span></a>';
|
||||
res.redirect('/rassemblementidf/identifier');
|
||||
}
|
||||
|
||||
// SI RIEN COCHÉ
|
||||
if (typeof req.body.check_autrepays === 'undefined' && typeof req.body.check_nonadherent === 'undefined') {
|
||||
|
||||
// ON VA VOIR S'IL EST DANS LA BD DES ADHÉRENTS
|
||||
|
||||
// BASE DE DONNÉES DES ADHÉRENTS
|
||||
// 2 SHEETS
|
||||
|
||||
const GS_creds_adhe = require('../testapi336520-3105cc3caa46.json');
|
||||
const GS_adhe = new GoogleSpreadsheet('1BhpYj-KtsyC8inXIDVl-zldDYRuhEqPwBFvP45FtJkI');
|
||||
await GS_adhe.useServiceAccountAuth(GS_creds_adhe);
|
||||
await GS_adhe.loadInfo(); // loads document properties and worksheets
|
||||
console.log("NOM FICHIER SHEET: ",GS_adhe.title); //nom du fichier
|
||||
const GS_adh_sheet = GS_adhe.sheetsByTitle['adhesion_annuelle_web'];
|
||||
const GS_adh_sheet_asslocales = GS_adhe.sheetsByTitle['adhesion_ass_locales'];
|
||||
const GS_adh_rows = await GS_adh_sheet.getRows();
|
||||
const GS_adh_rows_asslocales = await GS_adh_sheet_asslocales.getRows();
|
||||
|
||||
let lesidentifiants_adh = new Array;
|
||||
let compteur_adh = GS_adh_sheet.rowCount - 1;
|
||||
let compteur_adh_asslocales = GS_adh_sheet_asslocales.rowCount - 1;
|
||||
|
||||
// RÉCUPÉRER LES IDENTIFIANTS DU TABLEAU adhesion_annuelle_web
|
||||
for (let i=0; i<compteur_adh; i++) {
|
||||
lesidentifiants_adh.push({identifiant : GS_adh_rows[i].identifiant, association : "AFPS", Adhesion_paye : GS_adh_rows[i].Adhesion_paye});
|
||||
}
|
||||
// RÉCUPÉRER LES IDENTIFIANTS DU TABLEAU adhesion_ass_locales
|
||||
for (let i=0; i<compteur_adh_asslocales; i++) {
|
||||
lesidentifiants_adh.push({identifiant : GS_adh_rows_asslocales[i].identifiant, association : GS_adh_rows_asslocales[i].association, Adhesion_paye : GS_adh_rows_asslocales[i].Adhesion_paye });
|
||||
}
|
||||
console.log("ARRAY lesidentifiants_adh :");
|
||||
console.info(lesidentifiants_adh);
|
||||
|
||||
// RECHERCHE DE L'IDENTIFIANT SAISI DANS LE ARRAY
|
||||
const adherent_resultat = lesidentifiants_adh.find( adherent => adherent.identifiant === req.session.identifiant);
|
||||
|
||||
if (adherent_resultat){
|
||||
logger.info("Identifiant trouvé dans la base des adhésions : " + adherent_resultat.identifiant, { numsession: req.session.id, label: __filename});
|
||||
logger.info("Adhésion payé : " + adherent_resultat.Adhesion_paye, { numsession: req.session.id, label: __filename});
|
||||
if (adherent_resultat.Adhesion_paye === "paye" || adherent_resultat.Adhesion_paye === "attente"){
|
||||
logger.info("Identifiant trouvé et payé dans la base des adhésions", { numsession: req.session.id, label: __filename});
|
||||
req.session.err_mail_form_adhesion_1 = "Cet identifiant est bien inscrit dans les adhésions 2022/2023.";
|
||||
req.session.err_mail_form_adhesion_2 = "Nous pouvons donc procéder à l'inscription au Rassemblement IDF 2023.";
|
||||
req.session.err_mail_form_adhesion_3 = "Vous allez être rediriger vers le formulaire.";
|
||||
|
||||
req.session.association = adherent_resultat.association;
|
||||
|
||||
console.log("NOM FICHIER SHEET: ",adherent_resultat);
|
||||
console.log("adherent_resultat association : ",adherent_resultat.association);
|
||||
console.log("adherent_resultat identifiant : ",adherent_resultat.identifiant);
|
||||
|
||||
res.redirect('/rassemblementidf/formulaire');
|
||||
} else {
|
||||
logger.info("Identifiant trouvé mais NON payé dans la base des adhésions", { numsession: req.session.id, label: __filename });
|
||||
req.session.err_mail_form_adhesion_1 = "Cet identifiant n'a pas payé l'adhésion 2022/2023.";
|
||||
req.session.err_mail_form_adhesion_2 = "Vous devez adhérer avant de vous inscrire au Rassemblement IDF 2023";
|
||||
req.session.err_mail_form_adhesion_3 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki <a target="_blank" href="https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion"><span class="souligne">Cliquez ici</span></a>';
|
||||
res.redirect('/rassemblementidf/identifier');
|
||||
|
||||
}
|
||||
} else {
|
||||
logger.info("Identifiant NON trouvé dans la base des adhésions", { numsession: req.session.id, label: __filename });
|
||||
req.session.err_mail_form_adhesion_1 = "Cet identifiant N'EST PAS inscrit dans les adhésions 2022/2023.";
|
||||
req.session.err_mail_form_adhesion_2 = "Vous devez adhérer avant de vous inscrire au Rassemblement IDF 2023";
|
||||
req.session.err_mail_form_adhesion_3 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki <a target="_blank" href="https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion"><span class="souligne">Cliquez ici</span></a>';
|
||||
res.redirect('/rassemblementidf/identifier');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
// IDENTIFIANT NON SAISI
|
||||
req.session.err_mail_form_adhesion_1 = "Etre adhérent (et posséder un identifiant) à une association de la pédagogie Suzuki est obligatoire pour toute famille ou personne qui souhaite participer au Rassemblement IDF 2023";
|
||||
req.session.err_mail_form_adhesion_2 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki <a target="_blank" href="https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion"><span class="souligne">Cliquez ici</span></a>';
|
||||
req.session.err_mail_form_adhesion_3 = 'Vous pouvez également adhérer à l\'association de votre pays. <a target="_blank" href="https://www.europeansuzuki.org/countries/"><span class="souligne">Vous trouverez ici les pays européens</span></a>';
|
||||
res.redirect('/rassemblementidf/identifier');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// PAGE 2
|
||||
// http://localhost:8888/stagenational/formulaire
|
||||
//
|
||||
// RECUPERATION CHAMPS SAISIS
|
||||
// CALCUL AGE
|
||||
// CALCUL DU PRIX
|
||||
// AFFICHER PAGE RECAP
|
||||
//
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
const RI_checkinfos = async function(req, res) {
|
||||
|
||||
logger.info("======================================");
|
||||
logger.info("======== FUNCTION RI_checkinfos ==========");
|
||||
logger.info("======================================");
|
||||
|
||||
// RÉCUPÉRATION DES DONNÉES DU FORMULAIRE DANS LA SESSION EN COURS
|
||||
req.session.association = req.body.association;
|
||||
logger.info("req.session.association : " + req.session.association, { numsession: req.session.id, label: __filename });
|
||||
req.session.adherent_nom = req.body.adherent_nom;
|
||||
logger.info("req.session.adherent_nom : " + req.session.adherent_nom, { numsession: req.session.id, label: __filename });
|
||||
req.session.adherent_prenom = req.body.adherent_prenom;
|
||||
req.session.adherent_adresse_rue = req.body.adherent_adresse_rue;
|
||||
req.session.adherent_adresse_complement = req.body.adherent_adresse_complement;
|
||||
req.session.adherent_adresse_codepostal = req.body.adherent_adresse_codepostal;
|
||||
req.session.adherent_adresse_ville = req.body.adherent_adresse_ville;
|
||||
req.session.adherent_adresse_pays = req.body.adherent_adresse_pays;
|
||||
req.session.adherent_telephone_mobile = req.body.adherent_telephone_mobile;
|
||||
req.session.adherent_telephone_fixe = req.body.adherent_telephone_fixe;
|
||||
req.session.adherent_mail = req.body.adherent_mail;
|
||||
req.session.accompagnant_nom = req.body.accompagnant_nom;
|
||||
logger.info("req.session.accompagnant_nom : " + req.session.accompagnant_nom, { numsession: req.session.id, label: __filename });
|
||||
req.session.accompagnant_prenom = req.body.accompagnant_prenom;
|
||||
logger.info("req.session.accompagnant_prenom : " + req.session.accompagnant_prenom, { numsession: req.session.id, label: __filename });
|
||||
req.session.commentaire_adherent = req.body.commentaire_adherent;
|
||||
|
||||
//// INITIALISATION DES MONTANTS PAR FAMILLE
|
||||
req.session.cout_rassemblement = 0;
|
||||
req.session.accompte_frais_bancaire = 0;
|
||||
req.session.cout_total = 0;
|
||||
logger.info("req.session.cout_rassemblement = " + req.session.cout_rassemblement, { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.accompte_frais_bancaire = " + req.session.accompte_frais_bancaire, { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.cout_total = " + req.session.cout_total, { numsession: req.session.id, label: __filename });
|
||||
|
||||
var nbr_eleve = 0;
|
||||
|
||||
for (let toto = 1; toto < 7; toto++) {
|
||||
req.session["personne_"+toto+"_nom"] = req.body["personne_"+toto+"_nom"];
|
||||
logger.info('req.session["personne_"'+toto+'"_nom"] = ' + req.session["personne_"+toto+"_nom"], { numsession: req.session.id, label: __filename });
|
||||
req.session["personne_"+toto+"_prenom"] = req.body["personne_"+toto+"_prenom"];
|
||||
logger.info('req.session["personne_"'+toto+'"_prenom"] = ' + req.session["personne_"+toto+"_prenom"], { numsession: req.session.id, label: __filename });
|
||||
req.session["personne_"+toto+"_datenaissance"] = req.body["personne_"+toto+"_datenaissance"];
|
||||
logger.info('req.session["personne_"'+toto+'"_datenaissance"] = ' + req.session["personne_"+toto+"_datenaissance"], { numsession: req.session.id, label: __filename });
|
||||
|
||||
req.session["personne_"+toto+"_instrument"] = req.body["personne_"+toto+"_instrument"];
|
||||
logger.info('req.session["personne_"'+toto+'"_instrument"] = ' + req.session["personne_"+toto+"_instrument"], { numsession: req.session.id, label: __filename });
|
||||
req.session["personne_"+toto+"_cahier"] = req.body["personne_"+toto+"_cahier"];
|
||||
logger.info('req.session["personne_"'+toto+'"_cahier"] = ' + req.session["personne_"+toto+"_cahier"], { numsession: req.session.id, label: __filename });
|
||||
req.session["personne_"+toto+"_piece"] = req.body["personne_"+toto+"_piece"];
|
||||
logger.info('req.session["personne_"'+toto+'"_piece"] = ' + req.session["personne_"+toto+"_piece"], { numsession: req.session.id, label: __filename });
|
||||
req.session["personne_"+toto+"_prof"] = req.body["personne_"+toto+"_prof"];
|
||||
logger.info('req.session["personne_"'+toto+'"_prof"] = ' + req.session["personne_"+toto+"_prof"], { numsession: req.session.id, label: __filename });
|
||||
|
||||
// CALCUL ÂGE PERSONNE
|
||||
if (req.session["personne_"+toto+"_datenaissance"]) {
|
||||
logger.info('req.session["personne_"'+toto+'"_datenaissance"] : ' + req.session["personne_"+toto+"_datenaissance"], { numsession: req.session.id, label: __filename });
|
||||
let datenaissance_concat = req.session["personne_"+toto+"_datenaissance"];
|
||||
logger.info("datenaissance_concat : " + datenaissance_concat, { numsession: req.session.id, label: __filename });
|
||||
|
||||
var an=datenaissance_concat.substr(6,4); // l'année (les quatre premiers caractères de la chaîne à partir de 6)
|
||||
var mois=datenaissance_concat.substr(3,2);// On selectionne le mois de la date de naissance
|
||||
var day= datenaissance_concat.substr(0,2); // On selectionne la jour de la date de naissance
|
||||
|
||||
var birthDate = new Date(an + "-" + mois + "-" + day);
|
||||
|
||||
var debutrassemblement = new Date('2023-05-07');
|
||||
logger.info("birthDate : " + birthDate, { numsession: req.session.id, label: __filename });
|
||||
logger.info("debutrassemblement : " + debutrassemblement, { numsession: req.session.id, label: __filename });
|
||||
|
||||
var age = debutrassemblement.getFullYear() - birthDate.getFullYear();
|
||||
logger.info("age : " + age, { numsession: req.session.id, label: __filename });
|
||||
var m = debutrassemblement.getMonth() - birthDate.getMonth();
|
||||
if (m < 0 || (m === 0 && debutrassemblement.getDate() < birthDate.getDate())) {
|
||||
logger.info("debutrassemblement.getDate() = " + debutrassemblement.getDate(), { numsession: req.session.id, label: __filename });
|
||||
age--;
|
||||
}
|
||||
|
||||
req.session["personne_"+toto+"_age"] = age;
|
||||
logger.info('req.session["personne_"+toto+"_age"] = ' + req.session["personne_"+toto+"_age"], { numsession: req.session.id, label: __filename });
|
||||
|
||||
|
||||
//// +1 nombre d'élève
|
||||
nbr_eleve++;
|
||||
logger.info('nbr_eleve dans boucle date de naissance : ' + nbr_eleve, { numsession: req.session.id, label: __filename });
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
///// CALCUL COUT TOTAL
|
||||
logger.info('nbr_eleve TOTAL : ' + nbr_eleve, { numsession: req.session.id, label: __filename });
|
||||
if (nbr_eleve == 1){
|
||||
req.session.cout_rassemblement = 31;
|
||||
req.session.accompte_frais_bancaire = 1;
|
||||
req.session.cout_total += req.session.cout_rassemblement + req.session.accompte_frais_bancaire;
|
||||
};
|
||||
if (nbr_eleve > 1){
|
||||
req.session.cout_rassemblement = 51;
|
||||
req.session.accompte_frais_bancaire = 1;
|
||||
req.session.cout_total += req.session.cout_rassemblement + req.session.accompte_frais_bancaire;
|
||||
}
|
||||
if (nbr_eleve < 1){
|
||||
req.session.err_nbr_eleve = "Vous n'avez pas inscrit d'élève";
|
||||
logger.info('req.session.err_nbr_eleve : ' + req.session.err_nbr_eleve, { numsession: req.session.id, label: __filename });
|
||||
}
|
||||
|
||||
if (req.session.err_nbr_eleve) {
|
||||
logger.info("existing session_err_nbr_eleve : " + req.session.err_nbr_eleve, { numsession: req.session.id });
|
||||
res.redirect('/rassemblementidf/formulaire');
|
||||
} else {
|
||||
logger.info('req.session.cout_rassemblement : ' + req.session.cout_rassemblement, { numsession: req.session.id, label: __filename });
|
||||
logger.info('req.session.accompte_frais_bancaire : ' + req.session.accompte_frais_bancaire, { numsession: req.session.id, label: __filename });
|
||||
logger.info('req.session.cout_total : ' + req.session.cout_total, { numsession: req.session.id, label: __filename });
|
||||
res.redirect('/rassemblementidf/recap');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// PAGE 3
|
||||
// http://localhost:8888/stagenational/recap
|
||||
//
|
||||
// Bouton modifier
|
||||
//
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// CLICK SUR BOUTON MODIFIER
|
||||
const post_recap_modifier = async function(req, res) {
|
||||
res.redirect('/rassemblementidf/identifier');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// PAYER ACCOMPTE
|
||||
//
|
||||
// Enregistrement des infos dans la Google Sheet avant le paiement
|
||||
// (car le redirect après le paiement vers la page "réussi" ou "annulé" initialise une autre session qui fait perdre le cookie précédent et les infos saisies)
|
||||
// Payer accompte par carte bancaire
|
||||
// STIPE
|
||||
//
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// CLICK SUR BOUTON PAYER ACCOMPTE PAGE RECAP
|
||||
const post_payer_ri = async function(req, res, next) {
|
||||
|
||||
logger.info("======================================");
|
||||
logger.info("======== FUNCTION post_payer_ri ==========");
|
||||
logger.info("======================================");
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
// AJOUT INFO DANS LA GOOGLE SHEET
|
||||
|
||||
|
||||
await GS_rassemblementidf.useServiceAccountAuth(GS_creds_rassemblementidf);
|
||||
await GS_rassemblementidf.loadInfo(); // loads document properties and worksheets
|
||||
logger.info("NOM FICHIER SHEET : " + GS_rassemblementidf.title, { numsession: req.session.id, label: __filename });
|
||||
const GS_RI_sheet = GS_rassemblementidf.sheetsByTitle['inscription_web'];
|
||||
logger.info("NOM DU TABLEAU (ONGLET): " + GS_RI_sheet.title, { numsession: req.session.id, label: __filename });
|
||||
|
||||
// DATE DE L'INSCRIPTION
|
||||
moment().format();
|
||||
moment.locale('fr');
|
||||
var date_formattee = moment().format('L')
|
||||
console.log("date_formattee:", date_formattee);
|
||||
|
||||
// AJOUTER UNE LIGNE DANS LA GOOGLE SHEET
|
||||
logger.info("/ AJOUTER UNE LIGNE DANS LA GOOGLE SHEET", { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.identifiant : " + req.session.identifiant, { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.adherent_nom : " + req.session.adherent_nom, { numsession: req.session.id, label: __filename });
|
||||
const moreRows = await GS_RI_sheet.addRows([
|
||||
{
|
||||
'saison': "2022/2023",
|
||||
'identifiant': req.session.identifiant,
|
||||
'association_suzuki': req.session.association,
|
||||
'status_inscription': "clic_bouton_payer",
|
||||
'inscription_date': date_formattee,
|
||||
'adherent_nom': req.session.adherent_nom,
|
||||
'adherent_prenom': req.session.adherent_prenom,
|
||||
'cout_total': req.session.cout_total,
|
||||
'cout_rassemblement': req.session.cout_rassemblement,
|
||||
'frais_bancaire': req.session.accompte_frais_bancaire,
|
||||
'adherent_adresse_rue': req.session.adherent_adresse_rue,
|
||||
'adherent_adresse_complement': req.session.adherent_adresse_complement,
|
||||
'adherent_adresse_codepostal': req.session.adherent_adresse_codepostal,
|
||||
'adherent_adresse_ville': req.session.adherent_adresse_ville,
|
||||
'adherent_adresse_pays': req.session.adherent_adresse_pays,
|
||||
'adherent_telephone_fixe': req.session.adherent_telephone_fixe,
|
||||
'adherent_telephone_mobile': req.session.adherent_telephone_mobile,
|
||||
'adherent_mail': req.session.adherent_mail,
|
||||
'accompagnant_nom': req.session.accompagnant_nom,
|
||||
'accompagnant_prenom': req.session.accompagnant_prenom,
|
||||
'commentaire_adherent': req.session.commentaire_adherent,
|
||||
|
||||
'personne_1_nom': req.session.personne_1_nom,
|
||||
'personne_1_prenom': req.session.personne_1_prenom,
|
||||
'personne_1_datenaissance': req.session.personne_1_datenaissance,
|
||||
'personne_1_age': req.session.personne_1_age,
|
||||
'personne_1_instrument': req.session.personne_1_instrument,
|
||||
'personne_1_cahier': req.session.personne_1_cahier,
|
||||
'personne_1_piece': req.session.personne_1_piece,
|
||||
'personne_1_prof': req.session.personne_1_prof,
|
||||
|
||||
'personne_2_nom': req.session.personne_2_nom,
|
||||
'personne_2_prenom': req.session.personne_2_prenom,
|
||||
'personne_2_datenaissance': req.session.personne_2_datenaissance,
|
||||
'personne_2_age': req.session.personne_2_age,
|
||||
'personne_2_instrument': req.session.personne_2_instrument,
|
||||
'personne_2_cahier': req.session.personne_2_cahier,
|
||||
'personne_2_piece': req.session.personne_2_piece,
|
||||
'personne_2_prof': req.session.personne_2_prof,
|
||||
|
||||
'personne_3_nom': req.session.personne_3_nom,
|
||||
'personne_3_prenom': req.session.personne_3_prenom,
|
||||
'personne_3_datenaissance': req.session.personne_3_datenaissance,
|
||||
'personne_3_age': req.session.personne_3_age,
|
||||
'personne_3_instrument': req.session.personne_3_instrument,
|
||||
'personne_3_cahier': req.session.personne_3_cahier,
|
||||
'personne_3_piece': req.session.personne_3_piece,
|
||||
'personne_3_prof': req.session.personne_3_prof,
|
||||
|
||||
'personne_4_nom': req.session.personne_4_nom,
|
||||
'personne_4_prenom': req.session.personne_4_prenom,
|
||||
'personne_4_datenaissance': req.session.personne_4_datenaissance,
|
||||
'personne_4_age': req.session.personne_4_age,
|
||||
'personne_4_instrument': req.session.personne_4_instrument,
|
||||
'personne_4_cahier': req.session.personne_4_cahier,
|
||||
'personne_4_piece': req.session.personne_4_piece,
|
||||
'personne_4_prof': req.session.personne_4_prof,
|
||||
|
||||
'personne_5_nom': req.session.personne_5_nom,
|
||||
'personne_5_prenom': req.session.personne_5_prenom,
|
||||
'personne_5_datenaissance': req.session.personne_5_datenaissance,
|
||||
'personne_5_age': req.session.personne_5_age,
|
||||
'personne_5_instrument': req.session.personne_5_instrument,
|
||||
'personne_5_cahier': req.session.personne_5_cahier,
|
||||
'personne_5_piece': req.session.personne_5_piece,
|
||||
'personne_5_prof': req.session.personne_5_prof,
|
||||
|
||||
'personne_6_nom': req.session.personne_6_nom,
|
||||
'personne_6_prenom': req.session.personne_6_prenom,
|
||||
'personne_6_datenaissance': req.session.personne_6_datenaissance,
|
||||
'personne_6_age': req.session.personne_6_age,
|
||||
'personne_6_instrument': req.session.personne_6_instrument,
|
||||
'personne_6_cahier': req.session.personne_6_cahier,
|
||||
'personne_6_piece': req.session.personne_6_piece,
|
||||
'personne_6_prof': req.session.personne_6_prof,
|
||||
|
||||
|
||||
},
|
||||
]);
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
// PAIEMENT STRIPE
|
||||
|
||||
|
||||
// STRIPE - ETAPE 1 - CREER l'INTENTION DE PAIEMENT
|
||||
logger.info("// STRIPE - ETAPE 1 - CREER l'INTENTION DE PAIEMENT", { numsession: req.session.id, label: __filename });
|
||||
logger.info("stripe.VERSION = " + stripe.VERSION, { numsession: req.session.id, label: __filename });
|
||||
logger.info("stripe._api = " + stripe._api, { numsession: req.session.id, label: __filename });
|
||||
//console.log(stripe);
|
||||
logger.info("req.session.adherent_mail = " + req.session.adherent_mail, { numsession: req.session.id, label: __filename });
|
||||
logger.info("// STRIPE - AJOUT METADATA", { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.identifiant = " + req.session.identifiant, { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.cout_rassemblement = " + req.session.cout_rassemblement, { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.accompte_frais_bancaire = " + req.session.accompte_frais_bancaire, { numsession: req.session.id, label: __filename });
|
||||
logger.info("STRIPE_RI_SUCCESSURL = " + process.env.STRIPE_RI_SUCCESSURL, { numsession: req.session.id, label: __filename });
|
||||
logger.info("STRIPE_RI_CANCELURL = " + process.env.STRIPE_RI_CANCELURL, { numsession: req.session.id, label: __filename });
|
||||
logger.info("req.session.cout_total = " + req.session.cout_total, { numsession: req.session.id, label: __filename });
|
||||
const session = await stripe.checkout.sessions.create({
|
||||
metadata: {identifiant: req.session.identifiant, cout_rassemblement: req.session.cout_rassemblement, accompte_frais_bancaire: req.session.accompte_frais_bancaire},
|
||||
customer_email: req.session.adherent_mail,
|
||||
//There are four different submit types.
|
||||
submit_type: 'pay',
|
||||
//success_url: 'http://localhost:8888/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}',
|
||||
//cancel_url: 'http://localhost:8888/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}',
|
||||
//success_url: 'https://www.adusuki.juliechaumard.paris/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}',
|
||||
//cancel_url: 'https://www.adusuki.juliechaumard.paris/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}',
|
||||
//success_url: 'https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}',
|
||||
//cancel_url: 'https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}',
|
||||
success_url: process.env.STRIPE_RI_SUCCESSURL,
|
||||
cancel_url: process.env.STRIPE_RI_CANCELURL,
|
||||
|
||||
payment_method_types: ['card'],
|
||||
line_items: [{
|
||||
price_data: {
|
||||
currency: 'eur',
|
||||
product_data: {
|
||||
name: 'Rassemblement IDF',
|
||||
},
|
||||
unit_amount: req.session.cout_total * 100,
|
||||
},
|
||||
quantity: 1,
|
||||
},],
|
||||
//Checkout has three modes: payment, subscription, or setup.
|
||||
mode: 'payment'
|
||||
|
||||
});
|
||||
|
||||
logger.info("session: " + session, { numsession: req.session.id, label: __filename });
|
||||
logger.info("session.id: " + session.id, { numsession: req.session.id, label: __filename });
|
||||
logger.info("session.url: " + session.url, { numsession: req.session.id, label: __filename });
|
||||
let url_stripe = session.url
|
||||
res.redirect(session.url)
|
||||
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// RETOUR PAIEMENT REUSSI
|
||||
const RI_accompte_reussi = async function(req, res){
|
||||
|
||||
logger.info("======================================");
|
||||
logger.info("======== FUNCTION RI_accompte_reussi ==========");
|
||||
logger.info("======================================");
|
||||
|
||||
// RETOUR STRIPE
|
||||
var id = req.query.id;
|
||||
|
||||
logger.info("id : " + id, { numsession: req.session.id, label: __filename });
|
||||
|
||||
const session_stripe = await stripe.checkout.sessions.retrieve(id);
|
||||
|
||||
var customer_email = session_stripe.customer_email;
|
||||
var payment_status = session_stripe.payment_status;
|
||||
var amount_total = session_stripe.amount_total/100;
|
||||
var stripe_customer = session_stripe.customer;
|
||||
var stripe_payment_intent = session_stripe.payment_intent;
|
||||
var payment_method_types = session_stripe.payment_method_types;
|
||||
var stripe_status = session_stripe.status;
|
||||
var identifiant = session_stripe.metadata.identifiant;
|
||||
var cout_rassemblement = session_stripe.metadata.cout_rassemblement;
|
||||
var accompte_frais_bancaire = session_stripe.metadata.accompte_frais_bancaire;
|
||||
var CB_retour = "identifiant_adherent:"+identifiant+",payment_status:"+payment_status+",stripe_customer:"+stripe_customer+",stripe_payment_intent:"+stripe_payment_intent+",sessionID:"+session_stripe.id+",payment_method_types:"+payment_method_types+",amount_total:"+amount_total+",stripe_status:"+stripe_status;
|
||||
|
||||
|
||||
console.log("customer_email: ", customer_email);
|
||||
logger.info("payment_status : " + payment_status, { numsession: req.session.id, label: __filename });
|
||||
logger.info("cout_rassemblement : " + cout_rassemblement, { numsession: req.session.id, label: __filename });
|
||||
logger.info("accompte_frais_bancaire : " + accompte_frais_bancaire, { numsession: req.session.id, label: __filename });
|
||||
console.log("stripe_customer: ", stripe_customer);
|
||||
console.log("amount_total: ", amount_total);
|
||||
console.log("stripe_payment_intent: ", stripe_payment_intent);
|
||||
console.log("payment_method_types: ", payment_method_types);
|
||||
console.log("payment_method_types: ", payment_method_types[0]);
|
||||
console.log("stripe_status: ", stripe_status);
|
||||
console.log("CB_retour: ", CB_retour);
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// RÉCUPÉRATION DES INFOS STAGIAIRES DANS LA GOOGLE SHEET
|
||||
// MISE À JOUR DES INFORMATIONS SUR LE PAIEMENT DANS LA BASE DE DONNÉES GSHEET
|
||||
|
||||
|
||||
await GS_rassemblementidf.useServiceAccountAuth(GS_creds_rassemblementidf);
|
||||
await GS_rassemblementidf.loadInfo(); // loads document properties and worksheets
|
||||
logger.info("NOM FICHIER SHEET: " + GS_rassemblementidf.title, { numsession: req.session.id, label: __filename });
|
||||
const GS_RI_sheet = GS_rassemblementidf.sheetsByTitle['inscription_web'];
|
||||
logger.info("NOM DU TABLEAU (ONGLET): " + GS_RI_sheet.title, { numsession: req.session.id, label: __filename });
|
||||
|
||||
// on récupère le contenu de la GSheet dans un array nommé "infos_adherents"
|
||||
const infos_adherents = await GS_RI_sheet.getRows();
|
||||
// on récupère quelle ligne contient l'identifiant concerné pour mettre à jour cette ligne
|
||||
let list_identifiants = new Array;
|
||||
let compteur = GS_RI_sheet.rowCount - 1;
|
||||
let rowToBeUpdate;
|
||||
logger.info("identifiant TRANSMIS PAR STRIPE :" + identifiant, { numsession: req.session.id, label: __filename });
|
||||
for (let i=0; i<compteur; i++) {
|
||||
list_identifiants[i] = infos_adherents[i].identifiant;
|
||||
|
||||
if (infos_adherents[i].identifiant === identifiant){
|
||||
logger.info("infos_adherents[i].identifiant TROUVE :" + infos_adherents[i].identifiant, { numsession: req.session.id, label: __filename });
|
||||
logger.info("IDENTIFIANT TROUVÉ DANS LE ARRAY 'infos_adherents' à i = " + i, { numsession: req.session.id, label: __filename });
|
||||
logger.info("infos_adherents[i].adherent_nom TROUVE :" + infos_adherents[i].adherent_nom, { numsession: req.session.id, label: __filename });
|
||||
rowToBeUpdate = i;
|
||||
}
|
||||
}
|
||||
logger.info("infos_adherents[i].adherent_nom TROUVE GARDE :" + infos_adherents[rowToBeUpdate].adherent_nom, { numsession: req.session.id, label: __filename });
|
||||
|
||||
// DATE DE DU PAIEMENT
|
||||
moment().format();
|
||||
moment.locale('fr');
|
||||
var date_formattee = moment().format('L')
|
||||
console.log("date_formattee:", date_formattee);
|
||||
|
||||
|
||||
// MISE À JOUR DES INFORMATIONS SUR LE PAIEMENT DANS LA BASE DE DONNÉES GSHEET
|
||||
logger.info("rowToBeUpdate :" + rowToBeUpdate, { numsession: req.session.id, label: __filename });
|
||||
infos_adherents[rowToBeUpdate].inscription_paye = 'paye';
|
||||
infos_adherents[rowToBeUpdate].status_inscription = 'CB_OK';
|
||||
infos_adherents[rowToBeUpdate].inscription_paiement_mode = payment_method_types[0];
|
||||
infos_adherents[rowToBeUpdate].inscription_paiement_CB_retour = CB_retour;
|
||||
infos_adherents[rowToBeUpdate].inscription_paiement_date = date_formattee;
|
||||
|
||||
|
||||
await infos_adherents[rowToBeUpdate].save(); // save updates
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// CONFIRMATION PAR MAIL
|
||||
|
||||
logger.info("MAIL ENVOI AVANT", { numsession: req.session.id, label: __filename });
|
||||
var transporter = nodemailer.createTransport({
|
||||
service: 'gmail',
|
||||
auth: {
|
||||
// TEST JULIE
|
||||
//user: 'juliechaumard@gmail.com',
|
||||
//pass: 'etfq umof iwbx ltxk'
|
||||
// SUZUKI
|
||||
user: 'afps.inscription@gmail.com',
|
||||
pass: 'vljxrkhwgljjracs'
|
||||
}
|
||||
});
|
||||
var mail_objet = "ASSOCIATION FRANÇAISE POUR LA PÉDAGOGIE SUZUKI - RASSEMBLEMENT IDF 2023 - ";
|
||||
mail_objet += infos_adherents[rowToBeUpdate].adherent_nom;
|
||||
mail_html = "<p>Cher adhérent,</p><p>Félicitations ! Vous êtes désormais inscrit au rassemblement Ile de France du 7 mai 2023 organisé par l’association La clef du bonheur et l’école de musique de Chambourcy, en partenariat avec l'Association Française pour la Pédagogie Suzuki.</p>";
|
||||
mail_html += "<br>";
|
||||
mail_html += "<p>RÉCAPITULATIF :</p>";
|
||||
mail_html += "<p>Identifiant Suzuki : ";
|
||||
mail_html += identifiant;
|
||||
mail_html += "</p><p>Association Suzuki : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate].association_suzuki;
|
||||
mail_html += "</p><p>Accompagnant : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate].accompagnant_prenom;
|
||||
mail_html += " ";
|
||||
mail_html += infos_adherents[rowToBeUpdate].accompagnant_nom;
|
||||
mail_html += "</p><br>";
|
||||
for (let toto = 1; toto<7; toto++) {
|
||||
if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_nom"]) {
|
||||
mail_html += "<p>Nom : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_nom"];
|
||||
mail_html += " ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_prenom"];
|
||||
mail_html += "</p><p>Profile âge : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_datenaissance"];
|
||||
mail_html += "</p>";
|
||||
if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_instrument"]) {
|
||||
mail_html += "<p>Instrument : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_instrument"];
|
||||
mail_html += " ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_cahier"];
|
||||
mail_html += " ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_piece"];
|
||||
mail_html += " ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_prof"];
|
||||
mail_html += "</p>";
|
||||
}
|
||||
if (infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_1"]) {
|
||||
mail_html += "<p>Activité : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_1"];
|
||||
mail_html += " ";
|
||||
mail_html += infos_adherents[rowToBeUpdate]["personne_"+toto+"_activite_2"];
|
||||
mail_html += "</p>";
|
||||
}
|
||||
mail_html += "<br>";
|
||||
}
|
||||
}
|
||||
|
||||
mail_html += "<br>";
|
||||
mail_html += "<p>Tarif rassemblement : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate].cout_rassemblement;
|
||||
mail_html += "€</p><p>Frais bancaire : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate].frais_bancaire;
|
||||
mail_html += "€</p>Montant total : ";
|
||||
mail_html += infos_adherents[rowToBeUpdate].cout_total;
|
||||
mail_html += "€</p>";
|
||||
|
||||
mail_html += "<p><br>Nous vous remercions pour votre intérêt et vous souhaitons une très bon rassemblement !</p><p>L’Association La clef du bonheur et l’école de musique de Chambourcy<br>Marie VELU<br>Pôle organisation du rassemblement</p>";
|
||||
var mailOptions = {
|
||||
from: 'afps.inscription@gmail.com',
|
||||
to: customer_email,
|
||||
subject: mail_objet,
|
||||
html: mail_html,
|
||||
};
|
||||
transporter.sendMail(mailOptions, function(error, info){
|
||||
if (error) {
|
||||
logger.info("error : " + error, { numsession: req.session.id});
|
||||
} else {
|
||||
logger.info("Email sent: " + info.response, { numsession: req.session.id});
|
||||
}
|
||||
});
|
||||
logger.info("MAIL ENVOI APRES", { numsession: req.session.id, label: __filename });
|
||||
|
||||
|
||||
// REDIRECTION VERS LA PAGE DE CONFIRMATION PAIEMENT CARTE BANCAIRE
|
||||
res.locals.identifiant = infos_adherents[rowToBeUpdate].identifiant;
|
||||
res.locals.association = infos_adherents[rowToBeUpdate].association_suzuki;
|
||||
res.locals.adherent_nom = infos_adherents[rowToBeUpdate].adherent_nom;
|
||||
res.locals.adherent_prenom = infos_adherents[rowToBeUpdate].adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = infos_adherents[rowToBeUpdate].adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = infos_adherents[rowToBeUpdate].adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = infos_adherents[rowToBeUpdate].adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = infos_adherents[rowToBeUpdate].adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = infos_adherents[rowToBeUpdate].adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = infos_adherents[rowToBeUpdate].adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = infos_adherents[rowToBeUpdate].adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = infos_adherents[rowToBeUpdate].adherent_mail;
|
||||
res.locals.accompagnant_prenom = infos_adherents[rowToBeUpdate].accompagnant_prenom;
|
||||
res.locals.accompagnant_nom = infos_adherents[rowToBeUpdate].accompagnant_nom;
|
||||
res.locals.commentaire_adherent = infos_adherents[rowToBeUpdate].commentaire_adherent;
|
||||
|
||||
|
||||
for (let toto = 1; toto < 7; toto++) {
|
||||
res.locals["personne_"+toto+"_numero"] = toto;
|
||||
res.locals["personne_"+toto+"_nom"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_nom"];
|
||||
res.locals["personne_"+toto+"_prenom"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_prenom"];
|
||||
res.locals["personne_"+toto+"_datenaissance"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_datenaissance"];
|
||||
res.locals["personne_"+toto+"_instrument"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_instrument"];
|
||||
res.locals["personne_"+toto+"_cahier"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_cahier"];
|
||||
res.locals["personne_"+toto+"_option_coursindividuel"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_piece"];
|
||||
res.locals["personne_"+toto+"_option_concertsolo"] = infos_adherents[rowToBeUpdate]["personne_"+toto+"_prof"];
|
||||
}
|
||||
res.locals.cout_rassemblement = infos_adherents[rowToBeUpdate].cout_rassemblement;
|
||||
res.locals.frais_bancaire = infos_adherents[rowToBeUpdate].frais_bancaire;
|
||||
res.locals.cout_total = infos_adherents[rowToBeUpdate].cout_total;
|
||||
|
||||
if (!infos_adherents[rowToBeUpdate].identifiant) {
|
||||
res.locals.error = "Il y a eu une erreur lors de l'ajout de votre inscription dans la base de données du stage, veuillez contacter l'association.";
|
||||
}
|
||||
|
||||
res.render('rassemblementidf/page_templates/paiement_reussi.ejs');
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// RETOUR PAIEMENT ECHOUE
|
||||
// CLICK SUR BOUTON RECOMMENCER
|
||||
const RI_accompte_annule = async function(req, res) {
|
||||
|
||||
|
||||
|
||||
logger.info("======================================");
|
||||
logger.info("======== FUNCTION RI_accompte_annule ==========");
|
||||
logger.info("======================================");
|
||||
|
||||
// RETOUR STRIPE
|
||||
var id = req.query.id;
|
||||
|
||||
logger.info("id : " + id, { numsession: req.session.id, label: __filename });
|
||||
|
||||
const session_stripe = await stripe.checkout.sessions.retrieve(id);
|
||||
|
||||
var customer_email = session_stripe.customer_email;
|
||||
var payment_status = session_stripe.payment_status;
|
||||
var amount_total = session_stripe.amount_total/100;
|
||||
var stripe_customer = session_stripe.customer;
|
||||
var stripe_payment_intent = session_stripe.payment_intent;
|
||||
var payment_method_types = session_stripe.payment_method_types;
|
||||
var stripe_status = session_stripe.status;
|
||||
var identifiant = session_stripe.metadata.identifiant;
|
||||
var CB_retour = "identifiant_adherent:"+identifiant+",payment_status:"+payment_status+",stripe_customer:"+stripe_customer+",stripe_payment_intent:"+stripe_payment_intent+",sessionID:"+session_stripe.id+",payment_method_types:"+payment_method_types+",amount_total:"+amount_total+",stripe_status:"+stripe_status;
|
||||
logger.info("cookiesessionid APRES Stripe :" + session_stripe.metadata.cookiesessionid, { numsession: req.session.id, label: __filename });
|
||||
var cookiesessionid = session_stripe.metadata.cookiesessionid;
|
||||
|
||||
logger.info("payment_status : " + payment_status, { numsession: req.session.id, label: __filename });
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// RÉCUPÉRATION DES INFOS STAGIAIRES DANS LA GOOGLE SHEET
|
||||
// ANNULATION DE L'INSCRIT DANS LA BASE DE DONNÉES GSHEET
|
||||
// GSHEET "identifiant" = ANNULE / "paye" = echec
|
||||
|
||||
|
||||
await GS_rassemblementidf.useServiceAccountAuth(GS_creds_rassemblementidf);
|
||||
await GS_rassemblementidf.loadInfo(); // loads document properties and worksheets
|
||||
logger.info("NOM FICHIER SHEET: " + GS_rassemblementidf.title, { numsession: req.session.id, label: __filename });
|
||||
const GS_RI_sheet = GS_rassemblementidf.sheetsByTitle['inscription_web'];
|
||||
logger.info("NOM DU TABLEAU (ONGLET): " + GS_RI_sheet.title, { numsession: req.session.id, label: __filename });
|
||||
|
||||
// on récupère le contenu de la GSheet dans un array nommé "infos_adherents"
|
||||
const infos_adherents = await GS_RI_sheet.getRows();
|
||||
// on récupère quelle ligne contient l'identifiant concerné pour mettre à jour cette ligne
|
||||
let list_identifiants = new Array;
|
||||
let compteur = GS_RI_sheet.rowCount - 1;
|
||||
let rowToBeUpdate;
|
||||
logger.info("identifiant TRANSMIS PAR STRIPE :" + identifiant, { numsession: req.session.id, label: __filename });
|
||||
for (let i=0; i<compteur; i++) {
|
||||
list_identifiants[i] = infos_adherents[i].identifiant;
|
||||
|
||||
if (infos_adherents[i].identifiant === identifiant){
|
||||
logger.info("infos_adherents[i].identifiant TROUVE :" + infos_adherents[i].identifiant, { numsession: req.session.id, label: __filename });
|
||||
logger.info("IDENTIFIANT TROUVÉ DANS LE ARRAY 'infos_adherents' à i = " + i, { numsession: req.session.id, label: __filename });
|
||||
logger.info("infos_adherents[i].adherent_nom TROUVE :" + infos_adherents[i].adherent_nom, { numsession: req.session.id, label: __filename });
|
||||
rowToBeUpdate = i;
|
||||
}
|
||||
}
|
||||
logger.info("infos_adherents[i].adherent_nom TROUVE GARDE :" + infos_adherents[rowToBeUpdate].adherent_nom, { numsession: req.session.id, label: __filename });
|
||||
|
||||
|
||||
// ANNULATION INSCRIT DANS LA BASE DE DONNÉES GSHEET
|
||||
logger.info("rowToBeUpdate :" + rowToBeUpdate, { numsession: req.session.id, label: __filename });
|
||||
infos_adherents[rowToBeUpdate].inscription_paye = 'echec';
|
||||
infos_adherents[rowToBeUpdate].status_inscription = 'CB_KO';
|
||||
await infos_adherents[rowToBeUpdate].save(); // save updates
|
||||
|
||||
res.render('rassemblementidf/page_templates/paiement_annule');
|
||||
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
module.exports = {
|
||||
RI_checkidentifiant,
|
||||
RI_checkinfos,
|
||||
post_recap_modifier,
|
||||
post_payer_ri,
|
||||
RI_accompte_reussi,
|
||||
RI_accompte_annule
|
||||
}
|
||||
1633
controllers/stagenatController.js
Normal file
12
inscriptionsafps-53b60452f63d.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"type": "service_account",
|
||||
"project_id": "inscriptionsafps",
|
||||
"private_key_id": "53b60452f63da3c5134fce350d581800db187044",
|
||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCX8IdqQfKP6I67\nsKCG/dixvelzr4udLLcYdPId6DqMjLQqsw2gLzhJ8KgVazUQPXGoo5Blvdkd1XME\n+p0+SM44swjTZpi8PceOkO6wXbpBmKMliYIOPjYIK9AhHY6S9sMj7L230WWRrVlx\nTuGWnwtPcb555bSP2UUubmTJMd2W4aWTMh6kyZv79XxdCMwbeaVoD7SqYAqZds8s\ne+9rBiGw96C3G7ahyyp4ANGsEv/SZ5xmzJNIz8EMltSYdpIFZFfJtobyQzB8BoEy\naukqL5EUaPr7/M2Eo+R1D/rfleCjiKp9mQ+7Hp3MorR6GCVbkk9yTUOkVeFe5g8H\nejAwECJ1AgMBAAECggEAHc01Wl+mCpkESgcqbV/j/XTxEdpYSZNoNFlX1grjVQcS\nHZ/yJ72rTkFwTocxKMbMgNXYMESNDf98aHkZl4pjPJbNP93LTnzVo/6Eer5flpcw\nROAUTOPh6DdjwuMPwH67JtQ8IA5n3CuCtClTMR5v8vyt7i3ifSaSHbnUdewceQfq\n7Ac7rjcT8H9habHAoEqckKk6G21uhAgEoTbgZpam/0cc/JIY9WZQ/uGkmdTVp6cG\nxdWoLwFJlBt5Hpypmo7MnbjO2faL0TLcV669z8cKxCvkXBXg6QlluNajMjrVIAza\nrMecK3gKj7+fqkDuI6jlgVaGyScyuiKAGAWcaabUYQKBgQDM4YN53RjICk6EyvVE\nkd3/lScvkbaBCJ1Mo7Zq7uF/bbc1SxlBeQO1w0YtNvRkdPcO7N5PLrP6VrdopmsJ\nh8HhjLcWKF3wACVRb/YLKx+XKhizoW6kDMHTsgqW7yhJq+YaW9wsbXqQEa/H44K3\nqQVk26x8MfISu06j/ryTgllP8QKBgQC92XWxJf55ZeGFAcR1rsPZdWP/sPaH2pXD\n3xV8F2QaFXv7EQ4gm/45iz4xUXj+CP7eQVAtw4wyJSXd/4gwJwkIG1UqA7s3G+KC\nlgiypohDYNNo5r5gdLNRwBioXEnLhqBoXlBwzye4733TEb9VDPRuq9tlo8KOYEDu\niKbmaM1+xQKBgQC5rgwc7q8d5JFishn06gn7Ly8TYoi3ipocsiaJ5TNC7KlkyEn8\nV3NwUKiSI8L8JDEgOrYDpzz/vYV9d418Vqf1BTWNBEqWT1uC4ehoGM4JjuJSMhT2\n4oTrmekU/2xQ0FS7QNNbBGFWnmDj1KJMVweHb7tz10Qfi9fqstwvB6xv0QKBgBi3\n+KfxD3oU9tEPktnTwHJO449GJkM4Ban0IOMAVKtEwtjEtrcuOGKbq6RWPE+vMigU\nDvF2dYmN5qlJ/Rxv6LAihusqgzTAr7Ra/pTsM++56qzM5lq+tx5cyZkaMw2J4NbV\n+NlHT5+3pwVVWTkkr6q9O5q3QLyy8aFdL4XufVsVAoGBAKAqXYFGAxXVq0AX1h4c\nDD48my4pyHpbUZGZ/omUedphoRmy4YtuMwBtTISARpxLf94PxotX391i6L1Jjdcc\nwHrvyXUzibP8wQD7l+2vunM1XDF8Yp1yNnn6bpy4yWluB0Reqwyp+Be+zUTjHctX\n1Ui3nCq/5rRkq1BgfY0v+e0G\n-----END PRIVATE KEY-----\n",
|
||||
"client_email": "userapi@inscriptionsafps.iam.gserviceaccount.com",
|
||||
"client_id": "101118735911369897007",
|
||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"token_uri": "https://oauth2.googleapis.com/token",
|
||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/userapi%40inscriptionsafps.iam.gserviceaccount.com"
|
||||
}
|
||||
55
modules/adhesion/carte_adherent.js
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
function profil(adherent_type) {
|
||||
let profil1, profil2, profil3 ;
|
||||
console.log ("function profil.adherent_type: ", adherent_type)
|
||||
if (adherent_type === "famille") {
|
||||
profil1 = "Famille";
|
||||
console.log("profil1 : ", profil1);
|
||||
}
|
||||
if (adherent_type === "observateur") {
|
||||
profil1 = "observateur";
|
||||
console.log("profil1 : ", profil1);
|
||||
}
|
||||
if (adherent_type === "professeur") {
|
||||
profil1 = "Professeur";
|
||||
console.log("profil1 : ", profil1);
|
||||
}
|
||||
if (adherent_type === "prof_famille") {
|
||||
profil1 = "Professeur";
|
||||
profil2 = "Élève";
|
||||
console.log("profil1 : ", profil1);
|
||||
console.log("profil2 : ", profil2);
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire") {
|
||||
profil1 = "Professeur";
|
||||
profil2 = "Professeur stagiaire";
|
||||
console.log("profil1 : ", profil1);
|
||||
console.log("profil2 : ", profil2);
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire_famille") {
|
||||
profil1 = "Professeur";
|
||||
profil2 = "Professeur stagiaire";
|
||||
profil3 = "Élève";
|
||||
console.log("profil1 : ", profil1);
|
||||
console.log("profil2 : ", profil2);
|
||||
console.log("profil3 : ", profil3);
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire1") {
|
||||
profil1 = "Professeur stagiaire";
|
||||
console.log("profil1 : ", profil1);
|
||||
}
|
||||
if (adherent_type === "prof_stagiaire1_famille") {
|
||||
profil1 = "Professeur stagiaire";
|
||||
profil2 = "Élève";
|
||||
console.log("profil1 : ", profil1);
|
||||
console.log("profil2 : ", profil2);
|
||||
}
|
||||
console.log("RETURN profil1 : ", profil1);
|
||||
//return profil1;
|
||||
return [profil1, profil2, profil3];
|
||||
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
profil
|
||||
}
|
||||
47
package.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "aduzuki",
|
||||
"version": "2.0.0",
|
||||
"description": "Inscriptions au cours et événements SUZUKI",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"app": "nodemon app.js",
|
||||
"scss": "sass --watch src/scss/app.scss public/css/app.css",
|
||||
"start": "npm run app & npm run scss"
|
||||
},
|
||||
"keywords": [
|
||||
"musique",
|
||||
"ecole",
|
||||
"cours",
|
||||
"suzuki"
|
||||
],
|
||||
"author": "juliechaumard.paris",
|
||||
"license": "CC-BY-NC-SA-2.0-FR",
|
||||
"dependencies": {
|
||||
"axios": "^1.2.4",
|
||||
"body-parser": "^1.20.1",
|
||||
"dotenv": "^16.0.3",
|
||||
"ejs": "^3.1.8",
|
||||
"encoding": "^0.1.13",
|
||||
"express": "^4.18.2",
|
||||
"express-session": "^1.17.3",
|
||||
"fs": "^0.0.1-security",
|
||||
"google-spreadsheet": "^3.3.0",
|
||||
"googleapis": "^110.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"luxon": "^3.2.1",
|
||||
"moment": "^2.29.4",
|
||||
"nodemailer": "^6.9.0",
|
||||
"path": "^0.12.7",
|
||||
"pdf-creator-node": "^2.3.5",
|
||||
"printf": "^0.6.1",
|
||||
"puppeteer": "^19.6.0",
|
||||
"stripe": "^11.7.0",
|
||||
"winston": "^3.8.2",
|
||||
"winston-daily-rotate-file": "^4.7.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^2.0.20",
|
||||
"sass": "^1.57.1"
|
||||
}
|
||||
}
|
||||
BIN
pdf/adhesion/2223/don/lulliabo@icloud.com_adhesion_2223_don.pdf
Normal file
BIN
pdf/adhesion/2223/don/lullishop@icloud.com_adhesion_2223_don.pdf
Normal file
344
pdf/template/carte_adherent.html
Normal file
@@ -0,0 +1,344 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr-FR">
|
||||
|
||||
<head>
|
||||
|
||||
|
||||
<!-- Encodage -->
|
||||
<meta charset="UTF-8">
|
||||
|
||||
|
||||
|
||||
<!-- Taille écran étalonnage -->
|
||||
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> -->
|
||||
|
||||
<!-- Titre -->
|
||||
<title>AFPS - Adhésion</title>
|
||||
|
||||
<!-- Description -->
|
||||
<meta name="description" content="Association Française pour la Pédagogie Suzuki - ADHÉSION">
|
||||
|
||||
<!-- mots-clés -->
|
||||
<meta name="keywords" content="musique, apprentissage, cours, pedagogie, suzuki">
|
||||
|
||||
<!-- Auteur / Créateur / Publication -->
|
||||
<link rel="author" href="mailto:juliechaumard@icloud.com" title="JulieChaumard.paris" />
|
||||
<meta name="creator" content="JulieChaumard.paris">
|
||||
<meta name="publisher" content="AFPS">
|
||||
|
||||
<!-- Page accueil -->
|
||||
<link rel="start" href="" />
|
||||
|
||||
<!-- Logiciel utilisé pour créer la page -->
|
||||
<meta name="generator" content="Visual Studio code">
|
||||
|
||||
<!-- Géolocalisation -->
|
||||
<meta name="DC.title" content="AFPS">
|
||||
<meta name="geo.region" content="FR-75">
|
||||
<meta name="geo.placename" content="Paris">
|
||||
<meta name="geo.position" content="48.866669;2.33333">
|
||||
<meta name="ICBM" content="48.866669;2.33333">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<!-- TOUTES PAGES SAUF FICHE CONCERT -->
|
||||
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:locale" content="fr_FR">
|
||||
<meta property="og:title" content="Association Française pour la Pédagogie Suzuki">
|
||||
<meta property="og:description" content="Association Française pour la Pédagogie Suzuki">
|
||||
<meta property="og:url" content="">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:image:alt" content="Illustration du site">
|
||||
|
||||
<!-- CSS -->
|
||||
<link href="/public/css/app.css" rel="stylesheet">
|
||||
|
||||
|
||||
</head>
|
||||
{{#each membres}}
|
||||
<body>
|
||||
|
||||
<style>
|
||||
|
||||
@font-face {
|
||||
font-family: "montserrat_regular";
|
||||
src: url("/Users/julie/Documents/GitHub/aduzuki/public/fonts/montserrat_regular.ttf") format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "montserrat_semibold";
|
||||
src: url("/Users/julie/Documents/GitHub/aduzuki/public/fonts/montserrat_semibold.ttf") format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "montserrat_thin";
|
||||
src: url("/Users/julie/Documents/GitHub/aduzuki/public/fonts/montserrat_thin.ttf") format("truetype");
|
||||
}
|
||||
|
||||
/* BASE */
|
||||
body, div, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, img, form, fieldset, blockquote, main, article, aside, section {
|
||||
margin:0px 0px 0px 0px;
|
||||
padding:0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
li, ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: cabin_regular;
|
||||
}
|
||||
|
||||
/* HEADER */
|
||||
|
||||
header {
|
||||
max-width: 1800px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
header .logo {
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
header .logo img {
|
||||
max-width: 100%;
|
||||
}
|
||||
header h1 {
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
font-family: cabin_semibold;
|
||||
font-size: 15px;
|
||||
}
|
||||
header p {
|
||||
text-align: center;
|
||||
font-family: cabin_bold;
|
||||
font-size: 15px;
|
||||
color: #1c1c1c;
|
||||
}
|
||||
header p .soft {
|
||||
font-family: cabin_regular;
|
||||
color: #707070;
|
||||
}
|
||||
|
||||
/* MAIN */
|
||||
|
||||
.adhesion_fin_container {
|
||||
display: grid;
|
||||
grid-column-gap: 20px;
|
||||
grid-template-columns: 1fr 3fr 1fr;
|
||||
grid-template-areas: ". adhesion_fin .";
|
||||
text-align: center;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin {
|
||||
grid-area: adhesion_fin;
|
||||
display: grid;
|
||||
grid-template-rows: auto auto auto;
|
||||
row-gap: 30px;
|
||||
grid-template-areas: "adhesion_fin_adresse" "adhesion_fin_description" "adhesion_fin_card";
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse {
|
||||
grid-area: adhesion_fin_adresse;
|
||||
justify-self: end;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_titre {
|
||||
font-family: montserrat_semibold;
|
||||
font-size: 10px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_infos {
|
||||
margin-top: 10px;
|
||||
line-height: 10px;
|
||||
font-family: montserrat_regular;
|
||||
font-size: 7px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_identifiant {
|
||||
margin-top: 7px;
|
||||
|
||||
font-family: montserrat_thin;
|
||||
font-size: 7px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_identifiant .adhesion_fin_adresse_identifiant_bold {
|
||||
font-family: montserrat_regular;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_date {
|
||||
margin-top: 15px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_description {
|
||||
grid-area: adhesion_fin_description;
|
||||
margin-top: 60px;
|
||||
text-align: center;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_description .adhesion_fin_description_identifiant {
|
||||
margin-top: 10px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 8px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card {
|
||||
grid-area: adhesion_fin_card;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 2fr;
|
||||
grid-template-rows: auto auto auto auto;
|
||||
row-gap: 30px;
|
||||
grid-template-areas: "logo logo . adhesion_fin_card_description" ". adhesion_fin_card_identifiant adhesion_fin_card_identifiant adhesion_fin_card_identifiant" ". adhesion_fin_card_profil adhesion_fin_card_profil adhesion_fin_card_profil" ". adhesion_fin_paiement adhesion_fin_paiement adhesion_fin_paiement";
|
||||
margin: 10%;
|
||||
padding: 20px;
|
||||
background-color: #e7305821;
|
||||
border: 4px dashed #E73058;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .logo {
|
||||
grid-area: logo;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .logo img {
|
||||
width: 100%;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_description {
|
||||
grid-area: adhesion_fin_card_description;
|
||||
justify-self: end;
|
||||
text-align: center;
|
||||
font-size: 15px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_description .adhesion_fin_card_description_assoc {
|
||||
margin-top: 10px;
|
||||
font-family: montserrat_regular;
|
||||
font-size: 10px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_description .adhesion_fin_card_description_annee {
|
||||
margin-top: 5px;
|
||||
font-family: montserrat_light;
|
||||
font-size: 10px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_identifiant {
|
||||
grid-area: adhesion_fin_card_identifiant;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_identifiant .adhesion_fin_card_identifiant_mail {
|
||||
padding-left: 5px;
|
||||
font-family: montserrat_regular;
|
||||
color: #E73058;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_profil {
|
||||
grid-area: adhesion_fin_card_profil;
|
||||
font-family: montserrat_regular;
|
||||
font-size: 10px
|
||||
}
|
||||
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_paiement {
|
||||
grid-area: adhesion_fin_paiement;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 15px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 7px;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<header>
|
||||
<div class="logo">
|
||||
<img src="" alt="">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h1>Adhésion annuelle à l’Association Française pour la Pédagogie Suzuki</h1>
|
||||
<p>Année 2022/2023 <span class="soft"> du 1er septembre au 31 août</span></p>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main>
|
||||
|
||||
<section class="adhesion_fin_container">
|
||||
|
||||
<div class="adhesion_fin">
|
||||
|
||||
<div class="adhesion_fin_adresse">
|
||||
<div class="adhesion_fin_adresse_titre">
|
||||
<p>Association Française pour la pédagogie Suzuki</p>
|
||||
</div>
|
||||
<div class="adhesion_fin_adresse_infos">
|
||||
<p>Chez Anne PAGES<br>30 rue des Tattes<br>74500 PUBLIER <br>afpedagogiesuzuki@gmail.com</p>
|
||||
</div>
|
||||
<div class="adhesion_fin_adresse_identifiant">
|
||||
<p>SIRET : <span class="adhesion_fin_adresse_identifiant_bold">507 569 952 00033</span></p>
|
||||
</div>
|
||||
<div class="adhesion_fin_date">
|
||||
<p>Le {{this.today}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="adhesion_fin_description">
|
||||
<div>
|
||||
<p>{{this.description}}</p>
|
||||
</div>
|
||||
<div class="adhesion_fin_description_identifiant">
|
||||
<p></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="adhesion_fin_card">
|
||||
|
||||
<div class="logo">
|
||||
<img src="/public/images/logos/LogoSuzukiGris.png" alt="">
|
||||
</div>
|
||||
|
||||
<div class="adhesion_fin_card_description">
|
||||
<div>
|
||||
<p>CARTE {{this.type_card}}</p>
|
||||
</div>
|
||||
<div class="adhesion_fin_card_description_assoc">
|
||||
<p>Association Française pour la pédagogie Suzuki</p>
|
||||
</div>
|
||||
<div class="adhesion_fin_card_description_annee">
|
||||
<p>ANNÉE 2022/2023</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="adhesion_fin_card_identifiant">
|
||||
<p>IDENTIFIANT : <span class="adhesion_fin_card_identifiant_mail">{{this.identifiant}}</span></p>
|
||||
</div>
|
||||
|
||||
<div class="adhesion_fin_card_profil">
|
||||
<ul>
|
||||
<li>{{this.profil1}}</li>
|
||||
<li>{{this.profil2}}</li>
|
||||
<li>{{this.profil3}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="adhesion_fin_paiement">
|
||||
<p>{{this.adherent_paiement_mode}}</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
|
||||
|
||||
<footer>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
{{/each}}
|
||||
|
||||
</html>
|
||||
316
pdf/template/don_justificatif.html
Normal file
@@ -0,0 +1,316 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr-FR">
|
||||
<head>
|
||||
|
||||
<!-- Encodage -->
|
||||
<meta charset="UTF-8">
|
||||
|
||||
|
||||
|
||||
<!-- Taille écran étalonnage -->
|
||||
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> -->
|
||||
|
||||
<!-- Titre -->
|
||||
<title>AFPS - Adhésion</title>
|
||||
|
||||
<!-- Description -->
|
||||
<meta name="description" content="Association Française pour la Pédagogie Suzuki - ADHÉSION">
|
||||
|
||||
<!-- mots-clés -->
|
||||
<meta name="keywords" content="musique, apprentissage, cours, pedagogie, suzuki">
|
||||
|
||||
<!-- Auteur / Créateur / Publication -->
|
||||
<link rel="author" href="mailto:juliechaumard@icloud.com" title="JulieChaumard.paris" />
|
||||
<meta name="creator" content="JulieChaumard.paris">
|
||||
<meta name="publisher" content="AFPS">
|
||||
|
||||
<!-- Page accueil -->
|
||||
<link rel="start" href="" />
|
||||
|
||||
<!-- Logiciel utilisé pour créer la page -->
|
||||
<meta name="generator" content="Visual Studio code">
|
||||
|
||||
<!-- Géolocalisation -->
|
||||
<meta name="DC.title" content="AFPS">
|
||||
<meta name="geo.region" content="FR-75">
|
||||
<meta name="geo.placename" content="Paris">
|
||||
<meta name="geo.position" content="48.866669;2.33333">
|
||||
<meta name="ICBM" content="48.866669;2.33333">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<!-- TOUTES PAGES SAUF FICHE CONCERT -->
|
||||
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:locale" content="fr_FR">
|
||||
<meta property="og:title" content="Association Française pour la Pédagogie Suzuki">
|
||||
<meta property="og:description" content="Association Française pour la Pédagogie Suzuki">
|
||||
<meta property="og:url" content="">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:image:alt" content="Illustration du site">
|
||||
|
||||
<!-- CSS -->
|
||||
<link href="/public/css/app.css" rel="stylesheet">
|
||||
|
||||
|
||||
</head>
|
||||
{{#each donneur}}
|
||||
<body>
|
||||
|
||||
<style>
|
||||
|
||||
@font-face {
|
||||
font-family: "montserrat_regular";
|
||||
src: url("/Users/julie/Documents/GitHub/aduzuki/public/fonts/montserrat_regular.ttf") format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "montserrat_semibold";
|
||||
src: url("/Users/julie/Documents/GitHub/aduzuki/public/fonts/montserrat_semibold.ttf") format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "montserrat_thin";
|
||||
src: url("/Users/julie/Documents/GitHub/aduzuki/public/fonts/montserrat_thin.ttf") format("truetype");
|
||||
}
|
||||
|
||||
/* BASE */
|
||||
body, div, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, img, form, fieldset, blockquote, main, article, aside, section {
|
||||
margin:0px 0px 0px 0px;
|
||||
padding:0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
li, ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: cabin_regular;
|
||||
}
|
||||
|
||||
/* HEADER */
|
||||
|
||||
header {
|
||||
max-width: 1800px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
header .logo {
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
header .logo img {
|
||||
max-width: 100%;
|
||||
}
|
||||
header h1 {
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
font-family: cabin_semibold;
|
||||
font-size: 15px;
|
||||
}
|
||||
header p {
|
||||
text-align: center;
|
||||
font-family: cabin_bold;
|
||||
font-size: 15px;
|
||||
color: #1c1c1c;
|
||||
}
|
||||
header p .soft {
|
||||
font-family: cabin_regular;
|
||||
color: #707070;
|
||||
}
|
||||
|
||||
/* MAIN */
|
||||
|
||||
.adhesion_fin_container {
|
||||
display: grid;
|
||||
grid-column-gap: 20px;
|
||||
grid-template-columns: 1fr 3fr 1fr;
|
||||
grid-template-areas: ". adhesion_fin .";
|
||||
text-align: center;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin {
|
||||
grid-area: adhesion_fin;
|
||||
display: grid;
|
||||
grid-template-rows: auto auto auto;
|
||||
row-gap: 30px;
|
||||
grid-template-areas: "adhesion_fin_adresse" "adhesion_fin_description" "adhesion_fin_card";
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse {
|
||||
grid-area: adhesion_fin_adresse;
|
||||
justify-self: end;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_titre {
|
||||
font-family: montserrat_semibold;
|
||||
font-size: 10px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_infos {
|
||||
margin-top: 10px;
|
||||
line-height: 10px;
|
||||
font-family: montserrat_regular;
|
||||
font-size: 7px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_identifiant {
|
||||
margin-top: 7px;
|
||||
|
||||
font-family: montserrat_thin;
|
||||
font-size: 7px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_adresse_identifiant .adhesion_fin_adresse_identifiant_bold {
|
||||
font-family: montserrat_regular;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_adresse .adhesion_fin_date {
|
||||
margin-top: 15px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_description {
|
||||
grid-area: adhesion_fin_description;
|
||||
margin-top: 60px;
|
||||
text-align: center;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_description .adhesion_fin_description_identifiant {
|
||||
margin-top: 10px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 8px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card {
|
||||
grid-area: adhesion_fin_card;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 2fr;
|
||||
grid-template-rows: auto auto auto auto;
|
||||
row-gap: 30px;
|
||||
grid-template-areas: "logo logo . adhesion_fin_card_description" ". adhesion_fin_card_identifiant adhesion_fin_card_identifiant adhesion_fin_card_identifiant" ". adhesion_fin_card_profil adhesion_fin_card_profil adhesion_fin_card_profil" ". adhesion_fin_paiement adhesion_fin_paiement adhesion_fin_paiement";
|
||||
margin: 10%;
|
||||
padding: 20px;
|
||||
background-color: #e7305821;
|
||||
border: 4px dashed #E73058;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .logo {
|
||||
grid-area: logo;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .logo img {
|
||||
width: 100%;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_description {
|
||||
grid-area: adhesion_fin_card_description;
|
||||
justify-self: end;
|
||||
text-align: center;
|
||||
font-size: 15px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_description .adhesion_fin_card_description_assoc {
|
||||
margin-top: 10px;
|
||||
font-family: montserrat_regular;
|
||||
font-size: 10px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_description .adhesion_fin_card_description_annee {
|
||||
margin-top: 5px;
|
||||
font-family: montserrat_light;
|
||||
font-size: 10px;
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_identifiant {
|
||||
grid-area: adhesion_fin_card_identifiant;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_identifiant .adhesion_fin_card_identifiant_mail {
|
||||
padding-left: 5px;
|
||||
font-family: montserrat_regular;
|
||||
color: #E73058;
|
||||
font-size: 10px
|
||||
}
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_card_profil {
|
||||
grid-area: adhesion_fin_card_profil;
|
||||
font-family: montserrat_regular;
|
||||
font-size: 10px
|
||||
}
|
||||
|
||||
.adhesion_fin_container .adhesion_fin .adhesion_fin_card .adhesion_fin_paiement {
|
||||
grid-area: adhesion_fin_paiement;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 15px;
|
||||
font-family: montserrat_thin;
|
||||
font-size: 7px;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<header>
|
||||
<div class="logo">
|
||||
<img src="" alt="">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h1>AFPS - Association Française pour la Pédagogie Suzuki</h1>
|
||||
<p><span class="soft"></span></p>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
<main>
|
||||
|
||||
<section class="adhesion_fin_container">
|
||||
|
||||
<div class="adhesion_fin">
|
||||
|
||||
<div class="adhesion_fin_adresse">
|
||||
<div class="adhesion_fin_adresse_titre">
|
||||
<p></p>
|
||||
</div>
|
||||
<div class="adhesion_fin_adresse_infos">
|
||||
<p>Siège social : Chez Anne PAGES<br>30 rue des Tattes<br>74500 PUBLIER <br>afpedagogiesuzuki@gmail.com<br>Site web : www.afpedagogiesuzuki.fr</p>
|
||||
</div>
|
||||
<div class="adhesion_fin_adresse_identifiant">
|
||||
<p>Numéro SIRET : <span class="adhesion_fin_adresse_identifiant_bold">507 569 952 00033</span></p>
|
||||
</div>
|
||||
<div class="adhesion_fin_date">
|
||||
<p>Le {{this.today}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="adhesion_fin_description">
|
||||
<div>
|
||||
<p>Justificatif de don</p>
|
||||
</div>
|
||||
<div class="adhesion_fin_description_identifiant">
|
||||
<p>Nous accusons réception de votre don à l’Association Française pour la pédagogie Suzuki.<br>L’Association vous remercie chaleureusement.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="adhesion_fin_description">
|
||||
<div class="adhesion_fin_description_identifiant">
|
||||
<p>Identifiant : {{this.identifiant}}</p>
|
||||
<p>Nom : {{this.nom}} {{this.prenom}}</p>
|
||||
<p>Adresse : {{this.adresse}}</p>
|
||||
<p>Mode de paiement : {{this.adherent_paiement_mode}} </p>
|
||||
<p>Don unique le : {{this.today}} </p>
|
||||
<br>
|
||||
<p>Montant de votre don : {{this.montant_don}} euros</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
|
||||
<footer>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
{{/each}}
|
||||
|
||||
</html>
|
||||
1450
public/css/app.css
Normal file
1
public/css/app.css.map
Normal file
BIN
public/fonts/cabin_bold.ttf
Executable file
BIN
public/fonts/cabin_bolditalic.ttf
Executable file
BIN
public/fonts/cabin_italic.ttf
Executable file
BIN
public/fonts/cabin_medium.ttf
Executable file
BIN
public/fonts/cabin_mediumitalic.ttf
Executable file
BIN
public/fonts/cabin_regular.ttf
Executable file
BIN
public/fonts/cabin_semibold.ttf
Executable file
BIN
public/fonts/cabin_semibolditalic.ttf
Executable file
BIN
public/fonts/montserrat_black.ttf
Normal file
BIN
public/fonts/montserrat_blackitalic.ttf
Normal file
BIN
public/fonts/montserrat_bold.ttf
Normal file
BIN
public/fonts/montserrat_bolditalic.ttf
Normal file
BIN
public/fonts/montserrat_extrabold.ttf
Normal file
BIN
public/fonts/montserrat_extrabolditalic.ttf
Normal file
BIN
public/fonts/montserrat_extralight.ttf
Normal file
BIN
public/fonts/montserrat_extralightitalic.ttf
Normal file
BIN
public/fonts/montserrat_italic.ttf
Normal file
BIN
public/fonts/montserrat_light.ttf
Normal file
BIN
public/fonts/montserrat_lightitalic.ttf
Normal file
BIN
public/fonts/montserrat_medium.ttf
Normal file
BIN
public/fonts/montserrat_mediumitalic.ttf
Normal file
BIN
public/fonts/montserrat_regular.ttf
Normal file
BIN
public/fonts/montserrat_semibold.ttf
Normal file
BIN
public/fonts/montserrat_semibolditalic.ttf
Normal file
BIN
public/fonts/montserrat_thin.ttf
Normal file
BIN
public/fonts/montserrat_thinitalic.ttf
Normal file
BIN
public/fonts/playfairdisplay_black.ttf
Executable file
BIN
public/fonts/playfairdisplay_blackitalic.ttf
Executable file
BIN
public/fonts/playfairdisplay_bold.ttf
Executable file
BIN
public/fonts/playfairdisplay_bolditalic.ttf
Executable file
BIN
public/fonts/playfairdisplay_italic.ttf
Executable file
BIN
public/fonts/playfairdisplay_regular.ttf
Executable file
BIN
public/fonts/sourceserifpro_black.ttf
Normal file
BIN
public/fonts/sourceserifpro_blackitalic.ttf
Normal file
BIN
public/fonts/sourceserifpro_bold.ttf
Normal file
BIN
public/fonts/sourceserifpro_bolditalic.ttf
Normal file
BIN
public/fonts/sourceserifpro_extralight.ttf
Normal file
BIN
public/fonts/sourceserifpro_extralightitalic.ttf
Normal file
BIN
public/fonts/sourceserifpro_italic.ttf
Normal file
BIN
public/fonts/sourceserifpro_light.ttf
Normal file
BIN
public/fonts/sourceserifpro_lightitalic.ttf
Normal file
BIN
public/fonts/sourceserifpro_regular.ttf
Normal file
BIN
public/fonts/sourceserifpro_semibold.ttf
Normal file
BIN
public/fonts/sourceserifpro_semibolditalic.ttf
Normal file
BIN
public/fonts/ubuntu-moyen_italique.ttf
Normal file
BIN
public/fonts/ubuntu_bold.ttf
Normal file
BIN
public/fonts/ubuntu_courant.ttf
Normal file
BIN
public/fonts/ubuntu_fin.ttf
Normal file
BIN
public/fonts/ubuntu_leger.ttf
Normal file
BIN
public/fonts/ubuntu_leger_italic.ttf
Normal file
BIN
public/fonts/ubuntu_moyen.ttf
Normal file
BIN
public/images/icones/icone_accompagnant.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
public/images/icones/icone_close.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
public/images/icones/icone_compte.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/images/icones/icone_house.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/images/icones/icone_infos.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/icones/icone_personne.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/logos/LogoSuzukiGris.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
30
public/js/adhesion/accueil_modal.js
Normal file
@@ -0,0 +1,30 @@
|
||||
//// AFFICHER DANS LA CONSOLE LE FICHIER APPELÉ
|
||||
//console.log("NOUS SOMMES DANS LE FICHIER :",__filename);
|
||||
|
||||
// Get the modal
|
||||
var modal = document.getElementById("prelude");
|
||||
|
||||
// Get the button that opens the modal
|
||||
var btn = document.getElementById("open_modal");
|
||||
|
||||
// Get the <span> element that closes the modal
|
||||
var span = document.getElementsByClassName("prelude_close")[0];
|
||||
|
||||
// When the user clicks the button, open the modal
|
||||
btn.onclick = function() {
|
||||
console.log("modal = ",modal)
|
||||
modal.style.display = "block";
|
||||
}
|
||||
|
||||
// When the user clicks on <span> (x), close the modal
|
||||
span.onclick = function() {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
|
||||
// When the user clicks anywhere outside of the modal, close it
|
||||
window.onclick = function(event) {
|
||||
if (event.target == modal) {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
148
public/js/adhesion/adhesion_prof.js
Normal file
@@ -0,0 +1,148 @@
|
||||
console.log("On est dans le fichier adhesion_prof.js (de PUBLIC)");
|
||||
|
||||
|
||||
function prof_diplome() {
|
||||
|
||||
console.log("On est dans function prof_diplome");
|
||||
console.log("check_prof_diplome");
|
||||
// Get the checkbox
|
||||
var check_prof_diplome = document.getElementById("check_prof_diplome");
|
||||
// Get the output text
|
||||
var prof_diplome = document.getElementById("prof_diplome");
|
||||
|
||||
console.log("check_prof_diplome", check_prof_diplome);
|
||||
|
||||
for (let cssClass of prof_diplome.classList) {
|
||||
console.log("cssClass: ",cssClass);
|
||||
};
|
||||
|
||||
|
||||
// If the checkbox is checked, display the output text
|
||||
if (check_prof_diplome.checked == true){
|
||||
console.log("if (check_prof_diplome.checked == true)");
|
||||
console.log("prof_diplome", prof_diplome);
|
||||
prof_diplome.style.display = "block";
|
||||
} else {
|
||||
console.log("ELSE if (check_prof_diplome.checked == true)");
|
||||
prof_diplome.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function prof_formation() {
|
||||
|
||||
console.log("On est dans function prof_formation");
|
||||
|
||||
// Get the checkbox
|
||||
var check_prof_formation = document.getElementById("check_prof_formation");
|
||||
// Get the output text
|
||||
var prof_formation = document.getElementById("prof_formation");
|
||||
|
||||
console.log("check_prof_formation", check_prof_formation);
|
||||
|
||||
for (let cssClass of prof_formation.classList) {
|
||||
console.log("cssClass: ",cssClass);
|
||||
};
|
||||
|
||||
|
||||
// If the checkbox is checked, display the output text
|
||||
if (check_prof_formation.checked == true){
|
||||
console.log("if (check_prof_formation.checked == true)");
|
||||
console.log("prof_formation", prof_formation);
|
||||
|
||||
prof_formation.style.display = "block";
|
||||
} else {
|
||||
console.log("ELSE if (check_prof_diplome.checked == true)");
|
||||
|
||||
prof_formation.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function prof_eleve() {
|
||||
|
||||
console.log("On est dans function prof_eleve");
|
||||
|
||||
// Get the checkbox
|
||||
var check_prof_eleve = document.getElementById("check_prof_eleve");
|
||||
// Get the output text
|
||||
var eleve = document.getElementById("eleve");
|
||||
|
||||
console.log("check_prof_eleve", check_prof_eleve);
|
||||
|
||||
for (let cssClass of eleve.classList) {
|
||||
console.log("cssClass: ",cssClass);
|
||||
};
|
||||
|
||||
|
||||
// If the checkbox is checked, display the output text
|
||||
if (check_prof_eleve.checked == true){
|
||||
console.log("if (check_prof_eleve.checked == true)");
|
||||
console.log("eleve", eleve);
|
||||
|
||||
eleve.style.display = "block";
|
||||
} else {
|
||||
console.log("ELSE if (check_prof_eleve.checked == true)");
|
||||
|
||||
eleve.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function ajout_eleve2() {
|
||||
console.log("On est dans function ajout_eleve2");
|
||||
// Get the checkbox
|
||||
var check_eleve2 = document.getElementById("check_eleve2");
|
||||
// Get the output text
|
||||
var eleve2 = document.getElementById("eleve2");
|
||||
|
||||
// If the checkbox is checked, display the output text
|
||||
if (check_eleve2.checked == true){
|
||||
eleve2.style.display = "block";
|
||||
} else {
|
||||
eleve2.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function ajout_eleve3() {
|
||||
console.log("On est dans function ajout_eleve3");
|
||||
// Get the checkbox
|
||||
var check_eleve3 = document.getElementById("check_eleve3");
|
||||
// Get the output text
|
||||
var eleve3 = document.getElementById("eleve3");
|
||||
|
||||
// If the checkbox is checked, display the output text
|
||||
if (check_eleve3.checked == true){
|
||||
eleve3.style.display = "block";
|
||||
} else {
|
||||
eleve3.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function ajout_eleve4() {
|
||||
|
||||
// Get the checkbox
|
||||
var check_eleve4 = document.getElementById("check_eleve4");
|
||||
// Get the output text
|
||||
var eleve4 = document.getElementById("eleve4");
|
||||
|
||||
// If the checkbox is checked, display the output text
|
||||
if (check_eleve4.checked == true){
|
||||
eleve4.style.display = "block";
|
||||
} else {
|
||||
eleve4.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function ajout_eleve5() {
|
||||
|
||||
// Get the checkbox
|
||||
var check_eleve5 = document.getElementById("check_eleve5");
|
||||
// Get the output text
|
||||
var eleve5 = document.getElementById("eleve5");
|
||||
|
||||
// If the checkbox is checked, display the output text
|
||||
if (check_eleve5.checked == true){
|
||||
eleve5.style.display = "block";
|
||||
} else {
|
||||
eleve5.style.display = "none";
|
||||
}
|
||||
}
|
||||
73
public/js/adhesion/form_paiement.js
Normal file
@@ -0,0 +1,73 @@
|
||||
// test
|
||||
// authetification banque
|
||||
|
||||
|
||||
console.log("On est dans function choix_cb");
|
||||
|
||||
// Get the checkbox
|
||||
var check_cb = document.getElementById("check_cb");
|
||||
// Get the output text
|
||||
var paiement_cb = document.getElementById("paiement_cb");
|
||||
// Get the checkbox
|
||||
var check_nocb = document.getElementById("check_nocb");
|
||||
// Get the output text
|
||||
var paiement_nocb = document.getElementById("paiement_nocb");
|
||||
// Get the checkbox
|
||||
var check_virement = document.getElementById("check_virement");
|
||||
// Get the output text
|
||||
var paiement_virement = document.getElementById("paiement_virement");
|
||||
// Get the checkbox
|
||||
var check_cheque = document.getElementById("check_cheque");
|
||||
// Get the output text
|
||||
var paiement_cheque = document.getElementById("paiement_cheque");
|
||||
|
||||
|
||||
check_cb.onclick = function() {
|
||||
console.log("check_cb.checked = ", check_cb.checked);
|
||||
if (check_cb.checked == true){
|
||||
console.log("check_cb.checked == true");
|
||||
check_nocb.checked = false;
|
||||
check_virement.checked = false;
|
||||
check_cheque.checked = false;
|
||||
paiement_cb.style.display = "block";
|
||||
paiement_nocb.style.display = "none";
|
||||
paiement_cheque.style.display = "none";
|
||||
paiement_virement.style.display = "none";
|
||||
} else {
|
||||
console.log("check_cb.checked == true / ELSE");
|
||||
paiement_cb.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
check_nocb.onclick = function() {
|
||||
if (check_nocb.checked == true){
|
||||
check_cb.checked = false;
|
||||
paiement_nocb.style.display = "block";
|
||||
paiement_cb.style.display = "none";
|
||||
} else {
|
||||
paiement_nocb.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
check_virement.onclick = function() {
|
||||
if (check_virement.checked == true){
|
||||
check_cheque.checked = false;
|
||||
paiement_virement.style.display = "block";
|
||||
paiement_cheque.style.display = "none";
|
||||
} else {
|
||||
paiement_virement.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
check_cheque.onclick = function() {
|
||||
if (check_cheque.checked == true){
|
||||
check_virement.checked = false;
|
||||
paiement_cheque.style.display = "block";
|
||||
paiement_virement.style.display = "none";
|
||||
} else {
|
||||
paiement_cheque.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
41
public/js/adhesion/hidden_visible.js
Normal file
@@ -0,0 +1,41 @@
|
||||
// AFFICHER OU CACHER DES ÉLÉMENTS
|
||||
|
||||
var savoirplus_button = document.getElementById("savoirplus_button");
|
||||
|
||||
// si savoirplus_button est bien présent dans la page
|
||||
if (savoirplus_button) {
|
||||
savoirplus_button.onclick = function() {
|
||||
savoirplus_content = document.getElementById("savoirplus_content");
|
||||
savoirplus_content.classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
// si ajout_ecole2 est bien présent dans la page
|
||||
var ajout_ecole2 = document.getElementById("ajout_ecole2");
|
||||
|
||||
if (ajout_ecole2) {
|
||||
ajout_ecole2.onclick = function() {
|
||||
ajout_ecole2_content = document.getElementById("ajout_ecole2_content");
|
||||
ajout_ecole2_content.classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
// si ajout_ecole3 est bien présent dans la page
|
||||
var ajout_ecole3 = document.getElementById("ajout_ecole3");
|
||||
|
||||
if (ajout_ecole3) {
|
||||
ajout_ecole3.onclick = function() {
|
||||
ajout_ecole3_content = document.getElementById("ajout_ecole3_content");
|
||||
ajout_ecole3_content.classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// BOUTON TOGGLE FORMULAIRE D'INSCRIPTION STAGE
|
||||
var savoirplus_heberg_toggle = document.getElementById("savoirplus_heberg_toggle");
|
||||
if (savoirplus_heberg_toggle) {
|
||||
savoirplus_heberg_toggle.onclick = function() {
|
||||
savoirplus_heberg_content = document.getElementById("savoirplus_heberg_content");
|
||||
savoirplus_heberg_content.classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
2176
public/js/adhesion/professeurs.js
Normal file
58
public/js/app/logger.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const winston = require('winston');
|
||||
|
||||
const { createLogger, format, transports } = require('winston');
|
||||
const { combine, timestamp, label, printf, numsession } = format;
|
||||
|
||||
const myFormatFile = printf(({ level, message, label, timestamp, numsession }) => {
|
||||
return `${timestamp} ${level} [${label}] SID[${numsession}] ${message}`;
|
||||
});
|
||||
|
||||
const myFormatConsole = printf(({ level, message, label, timestamp, numsession }) => {
|
||||
return `${timestamp} ${level} [${label}] SID[${numsession}] ${message}`;
|
||||
});
|
||||
|
||||
|
||||
const DailyRotateFile = require('winston-daily-rotate-file');
|
||||
|
||||
|
||||
const logger = winston.createLogger({
|
||||
//level: 'info',
|
||||
format: combine(
|
||||
//label({ label: '' }),
|
||||
timestamp({format: 'YYYY-MM-DD HH:mm:ss'}),
|
||||
myFormatFile
|
||||
),
|
||||
defaultMeta: { service: 'user-service' },
|
||||
transports: [
|
||||
new DailyRotateFile({ filename: 'logs/combined.log' }),
|
||||
],
|
||||
exceptionHandlers: [
|
||||
new DailyRotateFile({ filename: 'logs/combined.log' }),
|
||||
new winston.transports.Console()
|
||||
],
|
||||
rejectionHandlers: [
|
||||
new DailyRotateFile({ filename: 'logs/combined.log' }),
|
||||
new winston.transports.Console()
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
if (process.env.ENV !== 'production' ) {
|
||||
logger.add(new winston.transports.Console(
|
||||
{
|
||||
format: combine(
|
||||
//label({ label: '' }),
|
||||
timestamp({format: 'YYYY-MM-DD HH:mm:ss'}),
|
||||
myFormatConsole
|
||||
),
|
||||
handleExceptions: true //pour afficher également les exceptions dans la console
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = logger;
|
||||
@@ -0,0 +1,142 @@
|
||||
// STAGE NATIONAL
|
||||
// REMPLIR LE FORMULAIRE
|
||||
// PARAGRAPHE PERSONNE
|
||||
// POUR 6 Personnes
|
||||
|
||||
var personne = "0";
|
||||
console.log("personne : ",personne);
|
||||
window.onload = affichepersonne(personne);
|
||||
function ajout_personne(personne) {
|
||||
|
||||
console.log("personne : ",personne);
|
||||
affichepersonne(personne);
|
||||
}
|
||||
|
||||
function affichepersonne(personne) {
|
||||
console.log("affichepersonne personne : ",personne);
|
||||
personne++;
|
||||
console.log("affiche personne personne incrémenté : ",personne);
|
||||
|
||||
|
||||
if (personne > 6 ) {
|
||||
console.log("6 personnes maximum");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Ce if sert pour ne pas répéter plusieurs fois le même numéro de personne si l'internaute clique plusieurs fois sur le même "ajouter une personne"
|
||||
if (!document.querySelector('#personne'+ personne +'')) {
|
||||
|
||||
let contenuhtml_personne = `<section id="personne`+ personne +`" class="personne">
|
||||
|
||||
<h2><img class='icone_titre' src="/public/images/icones/icone_personne.png" alt="icone information à cliquer">PERSONNE <span class="rouge numero">`+ personne +`</span>`;
|
||||
|
||||
if (personne > 1) {
|
||||
contenuhtml_personne += ` <span class="remove_personne"><input class="input_suppr" type="checkbox" name="check_personne_delete`+ personne +`" id="check_personne_delete`+ personne +`" onchange="supprimer_personne(`+ personne +`)"><label class="label_suppr" for="check_personne_delete`+ personne +`">Supprimer cette personne</label></span>`;
|
||||
};
|
||||
|
||||
contenuhtml_personne += `</h2>
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_nom">Nom de famille *</label>
|
||||
<input type="text" name="personne_`+ personne +`_nom" id="personne_`+ personne +`_nom" required>
|
||||
</div>
|
||||
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_prenom">Prénom *</label>
|
||||
<input type="text" name="personne_`+ personne +`_prenom" id="personne_`+ personne +`_prenom" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_datenaissance">Date de naissance * (jj/mm/aaaa)</label>
|
||||
<input type="text" name="personne_`+ personne +`_datenaissance" id="personne_`+ personne +`_datenaissance" placeholder="01/01/1999" pattern="[0-2][0-9]/[0-1][0-9]/[1-2][0-9][0-9][0-9]" minlength="10" maxlength="10" title="le format de date doit être jj/mm/aaaa" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_prof">Nom professeur *</label>
|
||||
<input type="text" name="personne_`+ personne +`_prof" id="personne_`+ personne +`_prof" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_instrument">Instrument *</label>
|
||||
<select id="personne_`+ personne +`_instrument" name="personne_`+ personne +`_instrument" required onchange="select_cahier(this,`+ personne +`)">
|
||||
<option value="" selected></option>
|
||||
<option value="alto">Alto</option>
|
||||
<option value="harpe">Harpe</option>
|
||||
<option value="violon">Violon</option>
|
||||
<option value="violoncelle">Violoncelle</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_cahier">Niveau Cahier *</label>
|
||||
<select id="personne_`+ personne +`_cahier" name="personne_`+ personne +`_cahier" required>
|
||||
<option value="" selected></option>
|
||||
<option value="Cahier 1">Cahier 1</option>
|
||||
<option value="Cahier 2">Cahier 2</option>
|
||||
<option value="Cahier 3">Cahier 3</option>
|
||||
<option value="Cahier 4">Cahier 4</option>
|
||||
<option value="Cahier 5">Cahier 5</option>
|
||||
<option value="Cahier 6">Cahier 6</option>
|
||||
<option value="Cahier 7">Cahier 7</option>
|
||||
<option value="Cahier 8">Cahier 8</option>
|
||||
<option value="Cahier 9">Cahier 9</option>
|
||||
<option value="Cahier 10">Cahier 10</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_piece">Pièces récentes*</label>
|
||||
<input type="text" name="personne_`+ personne +`_piece" id="personne_`+ personne +`_piece" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
`;
|
||||
|
||||
|
||||
|
||||
if (personne < 6) {
|
||||
contenuhtml_personne += "<!-- ---------------------------------- -->"+
|
||||
`<!-- Voulez-vous ajouter une autre personne ? -->`+
|
||||
`<!-- ---------------------------------- -->`+
|
||||
`<div class="input_checkbox">`+
|
||||
`<input type="checkbox" name="check_personne`+ personne +`" id="check_personne`+ personne +`" onchange="ajout_personne(`+ personne +`)">`+
|
||||
`<label for="check_personne`+ personne +`">Voulez-vous ajouter une autre personne au stage ?</label>`+
|
||||
`</div>`
|
||||
};
|
||||
|
||||
contenuhtml_personne += `</section>`;
|
||||
|
||||
|
||||
personne--;
|
||||
document.querySelector('#personne'+ personne +'').insertAdjacentHTML("afterend",contenuhtml_personne);
|
||||
|
||||
console.log("personne à la fin de la fonction : ",personne);
|
||||
personne++;
|
||||
|
||||
return personne;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function supprimer_personne(personne) {
|
||||
document.querySelector('#personne'+ personne +'').remove();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
529
public/js/stagenat/stagenational_formulaire_personne.js
Normal file
@@ -0,0 +1,529 @@
|
||||
// STAGE NATIONAL
|
||||
// REMPLIR LE FORMULAIRE
|
||||
// PARAGRAPHE PERSONNE
|
||||
// POUR 6 Personnes
|
||||
|
||||
var personne = "0";
|
||||
console.log("personne : ",personne);
|
||||
window.onload = affichepersonne(personne);
|
||||
function ajout_personne(personne) {
|
||||
|
||||
console.log("personne : ",personne);
|
||||
affichepersonne(personne);
|
||||
}
|
||||
|
||||
function affichepersonne(personne) {
|
||||
console.log("affichepersonne personne : ",personne);
|
||||
personne++;
|
||||
console.log("affiche personne personne incrémenté : ",personne);
|
||||
|
||||
|
||||
if (personne > 6 ) {
|
||||
console.log("6 personnes maximum");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Ce if sert pour ne pas répéter plusieurs fois le même numéro de personne si l'internaute clique plusieurs fois sur le même "ajouter une personne"
|
||||
if (!document.querySelector('#personne'+ personne +'')) {
|
||||
|
||||
let contenuhtml_personne = `<section id="personne`+ personne +`" class="personne">
|
||||
|
||||
<h2><img class='icone_titre' src="/public/images/icones/icone_personne.png" alt="icone information à cliquer">PERSONNE <span class="rouge numero">`+ personne +`</span>`;
|
||||
|
||||
if (personne > 1) {
|
||||
contenuhtml_personne += ` <span class="remove_personne"><input class="input_suppr" type="checkbox" name="check_personne_delete`+ personne +`" id="check_personne_delete`+ personne +`" onchange="supprimer_personne(`+ personne +`)"><label class="label_suppr" for="check_personne_delete`+ personne +`">Supprimer cette personne</label></span>`;
|
||||
};
|
||||
|
||||
contenuhtml_personne += `</h2>
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_nom">Nom de famille *</label>
|
||||
<input type="text" name="personne_`+ personne +`_nom" id="personne_`+ personne +`_nom" required>
|
||||
</div>
|
||||
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_prenom">Prénom *</label>
|
||||
<input type="text" name="personne_`+ personne +`_prenom" id="personne_`+ personne +`_prenom" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_datenaissance">Date de naissance * (jj/mm/aaaa)</label>
|
||||
<input type="text" name="personne_`+ personne +`_datenaissance" id="personne_`+ personne +`_datenaissance" placeholder="01/01/1999" pattern="[0-2][0-9]/[0-1][0-9]/[1-2][0-9][0-9][0-9]" minlength="10" maxlength="10" title="le format de date doit être jj/mm/aaaa" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid_2inputs">
|
||||
<div id="personne_`+ personne +`_transport_arret_call" class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_transport_mode">Moyen de transport * <span onclick="document.querySelector('#savoirplus_car_content`+ personne +`').classList.toggle('ouvrir')"><img class='savoirplus_icone' src="/public/images/icones/icone_infos.png" alt="icone information à cliquer"></span></label>
|
||||
<select id="personne_`+ personne +`_transport_mode" name="personne_`+ personne +`_transport_mode" required onchange="select_personne_transport_mode(this,`+ personne +`)">
|
||||
<option value="" selected></option>
|
||||
<option value="car">car</option>
|
||||
<option value="independant">independant</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="savoirplus_stage">
|
||||
<div id="savoirplus_car_content`+ personne +`" class="savoirplus_content displaynone">
|
||||
<span onclick="document.querySelector('#savoirplus_car_content`+ personne +`').classList.toggle('ouvrir')"><img class='close_icone' src="/public/images/icones/icone_close.png" alt="icone information à cliquer"></span>
|
||||
<p>Informations sur le car.</p>
|
||||
<br>
|
||||
<p>Aller/Retour Lyon ⇔ Carroz d’Arâches</p>
|
||||
<br>
|
||||
<p>DÉPART 20 août, 11h pour l'arrêt du 7 quai Lassagne, Lyon 1er</p>
|
||||
<p>ou 11h30 pour l'arrêt Gare de la Part Dieu, sortie Porte des Alpes</p>
|
||||
<br>
|
||||
<p class="rouge">PRÉVOIR UN PIQUE-NIQUE POUR LE 20 AOÛT</p>
|
||||
<br>
|
||||
|
||||
<p>RETOUR 25 août, 14h - Arrivée à Gare de la Part Dieu vers 17h</p>
|
||||
<p>Il est possible de prévoir un train en partance de Lyon à partir de 18h.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="personne_`+ personne +`_instrument_activite_call" class="grid_2inputs">
|
||||
<div id="personne_`+ personne +`_profil_call" class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_categorie">Que va faire la personne ? * <span onclick="document.querySelector('#savoirplus_profil_content`+ personne +`').classList.toggle('ouvrir')"><img class='savoirplus_icone' src="/public/images/icones/icone_infos.png" alt="icone information à cliquer"></span></label>
|
||||
<select id="personne_`+ personne +`_categorie" name="personne_`+ personne +`_categorie" autocomplete="off" required onchange="select_personne_profil(this,`+ personne +`)">
|
||||
<option value="" selected></option>
|
||||
<option value="instrumentiste">Élève instrumentiste</option>
|
||||
<option value="observateur">Observateur (adulte ou professeur)</option>
|
||||
<option value="accompagnant">Accompagnant SANS activité (adulte ou enfant)</option>
|
||||
<option value="accompagnant_activite">Accompagnant AVEC activité (adulte ou enfant)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="savoirplus_stage">
|
||||
<div id="savoirplus_profil_content`+ personne +`" class="savoirplus_content displaynone">
|
||||
<div>
|
||||
<div onclick="document.querySelector('#savoirplus_profil_content`+ personne +`').classList.toggle('ouvrir')"><img class='close_icone' src="/public/images/icones/icone_close.png" alt="icone information à cliquer"></div>
|
||||
<div>
|
||||
<p>Informations sur le PROFIL</p>
|
||||
<br>
|
||||
<p>INSTRUMENTISTE : tous les enfants qui suivent le programme du stage en violon, alto, violoncelle ou piano.</p>
|
||||
<br>
|
||||
<p>OBSERVATEUR : Toute personne extérieure à la pédagogie Suzuki peut observer les leçons et assister aux
|
||||
concerts des élèves. Ce stage constitue une source d’informations importantes pour toute personne
|
||||
qui désire mieux connaître la pédagogie Suzuki.
|
||||
<br>
|
||||
L’observation des cours est gratuite pour tous les professeurs Suzuki, et stagiaires en formation Suzuki adhérents à l’AFPS.</p>
|
||||
<br>
|
||||
<p>ACCOMPAGNANT SANS ACTIVITÉ : personne qui accompagne les enfants et qui logent au Flocons Verts</p>
|
||||
<br>
|
||||
<p>ACCOMPAGNANT AVEC ACTIVITÉ : personne qui accompagne les enfants qui logent au Flocons Verts ou non et qui font une activité.
|
||||
<br>
|
||||
L'activité sera payée sur place, le coût n'est pas compté dans le total du stage.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
`;
|
||||
|
||||
|
||||
|
||||
if (personne < 6) {
|
||||
contenuhtml_personne += "<!-- ---------------------------------- -->"+
|
||||
`<!-- Voulez-vous ajouter une autre personne ? -->`+
|
||||
`<!-- ---------------------------------- -->`+
|
||||
`<div class="input_checkbox">`+
|
||||
`<input type="checkbox" name="check_personne`+ personne +`" id="check_personne`+ personne +`" onchange="ajout_personne(`+ personne +`)">`+
|
||||
`<label for="check_personne`+ personne +`">Voulez-vous ajouter une autre personne au stage ?</label>`+
|
||||
`</div>`
|
||||
};
|
||||
|
||||
contenuhtml_personne += `</section>`;
|
||||
|
||||
|
||||
personne--;
|
||||
document.querySelector('#personne'+ personne +'').insertAdjacentHTML("afterend",contenuhtml_personne);
|
||||
|
||||
console.log("personne à la fin de la fonction : ",personne);
|
||||
personne++;
|
||||
|
||||
return personne;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function select_personne_transport_mode(select, personne) {
|
||||
console.log("personne dans select_personne_transport_mode : ",personne);
|
||||
console.log("select.value : ",select.value);
|
||||
if (select.value == "car"){
|
||||
console.log("on est dans Car");
|
||||
let transport_arret_call = '#personne_'+ personne +'_transport_arret_call';
|
||||
document.querySelector(transport_arret_call).insertAdjacentHTML("afterend",
|
||||
`<div id="personne_`+ personne +`_transport_arret_display" class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_transport_arret">Quel arrêt de car ? *</label>
|
||||
<select id="personne_`+ personne +`_transport_arret" name="personne_`+ personne +`_transport_arret" required>
|
||||
<option value="" selected></option>
|
||||
<option value="arret_7_quai_lassagne_lyon">7 quai Lassagne Lyon</option>
|
||||
<option value="arret_partdieu_lyon">Gare Part Dieu Lyon</option>
|
||||
</select>
|
||||
</div>`
|
||||
);
|
||||
};
|
||||
if (select.value == "independant"){
|
||||
console.log("on est dans independant");
|
||||
if (document.querySelector("#personne_"+ personne +"_transport_arret_display")){
|
||||
console.log("on est dans independant arret exist");
|
||||
document.querySelector("#personne_"+ personne +"_transport_arret_display").remove();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
function select_personne_profil(select, personne) {
|
||||
console.log("select.value : ",select.value);
|
||||
if (select.value == "observateur"){
|
||||
console.log("on est dans observateur");
|
||||
|
||||
if (document.querySelector("#personne_"+ personne +"_instrument_display")){
|
||||
console.log("on est dans instrumentiste instrument exist");
|
||||
document.querySelector("#personne_"+ personne +"_instrument_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_activite_display")){
|
||||
console.log("on est dans instrumentiste activite exist");
|
||||
document.querySelector("#personne_"+ personne +"_activite_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_prof_display")){
|
||||
document.querySelector("#personne_"+ personne +"_prof_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_coursindividuel_display")){
|
||||
document.querySelector("#personne_"+ personne +"_coursindividuel_display").remove();
|
||||
}
|
||||
|
||||
document.querySelector('#personne_'+ personne +'_instrument_activite_call').insertAdjacentHTML("afterend",
|
||||
`<div id="personne_`+ personne +`_profil_display">
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_profil">Profil ? *</label>
|
||||
<select id="personne_`+ personne +`_profil" name="personne_`+ personne +`_profil" required>
|
||||
<option value="" selected></option>
|
||||
<option value="professeur">Vous êtes professeur Suzuki</option>
|
||||
<option value="non_professeur">Autre</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>`
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
if (select.value == "instrumentiste"){
|
||||
console.log("on est dans instrumentiste");
|
||||
|
||||
if (document.querySelector("#personne_"+ personne +"_profil_display")){
|
||||
console.log("on est dans observateur profil exist");
|
||||
document.querySelector("#personne_"+ personne +"_profil_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_activite_display")){
|
||||
console.log("on est dans instrumentiste activite exist");
|
||||
document.querySelector("#personne_"+ personne +"_activite_display").remove();
|
||||
}
|
||||
|
||||
document.querySelector('#personne_'+ personne +'_instrument_activite_call').insertAdjacentHTML("afterend",
|
||||
`<div id="personne_`+ personne +`_instrument_display">
|
||||
<div class="grid_2inputs">
|
||||
<div id="personne_`+ personne +`_cahier_display" class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_instrument">Instrument *</label>
|
||||
<select id="personne_`+ personne +`_instrument" name="personne_`+ personne +`_instrument" required onchange="select_cahier(this,`+ personne +`)">
|
||||
<option value="" selected></option>
|
||||
<option value="alto">Alto</option>
|
||||
<option value="piano">Piano</option>
|
||||
<option value="violon">Violon</option>
|
||||
<option value="violoncelle">Violoncelle</option>
|
||||
</select>
|
||||
</div>`
|
||||
);
|
||||
|
||||
|
||||
|
||||
document.querySelector('#personne_'+ personne +'_instrument_display').insertAdjacentHTML("afterend",
|
||||
`<div id="personne_`+ personne +`_piece_display" class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_piece">Nom de la dernière pièce jouée *</label>
|
||||
<input type="text" name="personne_`+ personne +`_piece" id="personne_`+ personne +`_piece" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="personne_`+ personne +`_prof_display" class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_prof">Nom professeur *</label>
|
||||
<input type="text" name="personne_`+ personne +`_prof" id="personne_`+ personne +`_prof" required>
|
||||
</div>
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_mail_prof">Mail professeur *</label>
|
||||
<input type="text" name="personne_`+ personne +`_mail_prof" id="personne_`+ personne +`_mail_prof" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="personne_`+ personne +`_option_concertsolo_piece_call" class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_option_concertsolo">Option concert solo *</label>
|
||||
<select id="personne_`+ personne +`_option_concertsolo" name="personne_`+ personne +`_option_concertsolo" required onchange="select_personne_option_concertsolo(this,`+ personne +`)">
|
||||
<option value="" selected></option>
|
||||
<option value="concert solo">oui</option>
|
||||
<option value="non">non</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>`
|
||||
);
|
||||
};
|
||||
|
||||
if (select.value == "accompagnant_activite"){
|
||||
console.log("on est dans accompagnant_activite");
|
||||
|
||||
if (document.querySelector("#personne_"+ personne +"_instrument_display")){
|
||||
console.log("on est dans accompagnant_activite instrument exist");
|
||||
document.querySelector("#personne_"+ personne +"_instrument_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_prof_display")){
|
||||
console.log("on est dans accompagnant_activite prof exist");
|
||||
document.querySelector("#personne_"+ personne +"_prof_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_coursindividuel_display")){
|
||||
document.querySelector("#personne_"+ personne +"_coursindividuel_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_activite_display")){
|
||||
console.log("on est dans accompagnant_activite activite exist");
|
||||
document.querySelector("#personne_"+ personne +"_activite_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_profil_display")){
|
||||
console.log("on est dans accompagnant_activite profil exist");
|
||||
document.querySelector("#personne_"+ personne +"_profil_display").remove();
|
||||
}
|
||||
|
||||
document.querySelector('#personne_'+ personne +'_instrument_activite_call').insertAdjacentHTML("afterend",
|
||||
`<div id="personne_`+ personne +`_activite_display">
|
||||
<div class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_activite_1">Option activite 1 *</label>
|
||||
<select id="personne_`+ personne +`_activite_1" name="personne_`+ personne +`_activite_1" required>
|
||||
<option value="" selected></option>
|
||||
<option value="dalcroze">Rythmique Dalcroze (de 4 à 11 ans + adultes)</option>
|
||||
<option value="chant">Chant choral (de 4 à 11 ans + adultes)</option>
|
||||
<option value="percussions">percussions corporelles (à partir de 12 ans + adultes)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_activite_2">Option activite 2</label>
|
||||
<select id="personne_`+ personne +`_activite_2" name="personne_`+ personne +`_activite_2">
|
||||
<option value="" selected></option>
|
||||
<option value="dalcroze">Rythmique Dalcroze (de 4 à 11 ans + adultes)</option>
|
||||
<option value="chant">Chant choral (de 4 à 11 ans + adultes)</option>
|
||||
<option value="percussions">percussions corporelles (à partir de 12 ans + adultes)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>`
|
||||
);
|
||||
};
|
||||
|
||||
if (select.value == "accompagnant"){
|
||||
console.log("accompagnant");
|
||||
if (document.querySelector("#personne_"+ personne +"_instrument_display")){
|
||||
console.log("on est dans instrumentiste instrument exist");
|
||||
document.querySelector("#personne_"+ personne +"_instrument_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_activite_display")){
|
||||
console.log("on est dans instrumentiste activite exist");
|
||||
document.querySelector("#personne_"+ personne +"_activite_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_profil_display")){
|
||||
console.log("on est dans observateur profil exist");
|
||||
document.querySelector("#personne_"+ personne +"_profil_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_prof_display")){
|
||||
document.querySelector("#personne_"+ personne +"_prof_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_coursindividuel_display")){
|
||||
document.querySelector("#personne_"+ personne +"_coursindividuel_display").remove();
|
||||
}
|
||||
};
|
||||
|
||||
if (!select.value){
|
||||
console.log("rien sélectionné");
|
||||
if (document.querySelector("#personne_"+ personne +"_instrument_display")){
|
||||
console.log("on est dans instrumentiste instrument exist");
|
||||
document.querySelector("#personne_"+ personne +"_instrument_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_activite_display")){
|
||||
console.log("on est dans instrumentiste activite exist");
|
||||
document.querySelector("#personne_"+ personne +"_activite_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_profil_display")){
|
||||
console.log("on est dans observateur profil exist");
|
||||
document.querySelector("#personne_"+ personne +"_profil_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_prof_display")){
|
||||
document.querySelector("#personne_"+ personne +"_prof_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_call").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display")){
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_coursindividuel_display")){
|
||||
document.querySelector("#personne_"+ personne +"_coursindividuel_display").remove();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
function select_cahier(select, personne) {
|
||||
if (select.value == "alto") {
|
||||
console.log("on est dans cahier pour alto");
|
||||
if (document.querySelector("#select_personne_"+ personne +"cahier_display")){
|
||||
document.querySelector("#select_personne_"+ personne +"cahier_display").remove();
|
||||
}
|
||||
document.querySelector('#personne_'+ personne +'_cahier_display').insertAdjacentHTML("afterend",
|
||||
`<div id="select_personne_`+ personne +`cahier_display" class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_cahier">Niveau Cahier *</label>
|
||||
<select id="personne_`+ personne +`_cahier" name="personne_`+ personne +`_cahier" required>
|
||||
<option value="" selected></option>
|
||||
<option value="Cahier 1">Cahier 1</option>
|
||||
<option value="Cahier 2">Cahier 2</option>
|
||||
<option value="Cahier 3">Cahier 3</option>
|
||||
<option value="Cahier 4">Cahier 4</option>
|
||||
</select>
|
||||
</div>`
|
||||
);
|
||||
} else {
|
||||
console.log("on est dans cahier autre que alto");
|
||||
if (document.querySelector("#select_personne_"+ personne +"cahier_display")){
|
||||
document.querySelector("#select_personne_"+ personne +"cahier_display").remove();
|
||||
}
|
||||
if (document.querySelector("#personne_"+ personne +"_coursindividuel_display")){
|
||||
document.querySelector("#personne_"+ personne +"_coursindividuel_display").remove();
|
||||
}
|
||||
document.querySelector('#personne_'+ personne +'_cahier_display').insertAdjacentHTML("afterend",
|
||||
`<div id="select_personne_`+ personne +`cahier_display" class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_cahier">Niveau Cahier *</label>
|
||||
<select id="personne_`+ personne +`_cahier" name="personne_`+ personne +`_cahier" required>
|
||||
<option value="" selected></option>
|
||||
<option value="Cahier 1">Cahier 1</option>
|
||||
<option value="Cahier 2">Cahier 2</option>
|
||||
<option value="Cahier 3">Cahier 3</option>
|
||||
<option value="Cahier 4">Cahier 4</option>
|
||||
<option value="Cahier 5">Cahier 5</option>
|
||||
<option value="Cahier 6">Cahier 6</option>
|
||||
<option value="Cahier 7">Cahier 7</option>
|
||||
<option value="Cahier 8">Cahier 8</option>
|
||||
<option value="Cahier 9">Cahier 9</option>
|
||||
<option value="Cahier 10">Cahier 10</option>
|
||||
</select>
|
||||
</div>`
|
||||
);
|
||||
}
|
||||
|
||||
// OPTION COURS INDIVIDUEL POUR ALTO, VIOLON, VILONCELLE
|
||||
if (select.value == "alto" || select.value == "violon" ||select.value == "violoncelle" ) {
|
||||
console.log("on est dans cours indivi pour alto V V");
|
||||
if (document.querySelector("#personne_"+ personne +"_coursindividuel_display")){
|
||||
document.querySelector("#personne_"+ personne +"_coursindividuel_display").remove();
|
||||
}
|
||||
document.querySelector('#personne_'+ personne +'_option_concertsolo_piece_call').insertAdjacentHTML("beforebegin",
|
||||
`<div id="personne_`+ personne +`_coursindividuel_display" class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_bleu">
|
||||
<label for="personne_`+ personne +`_option_coursindividuel">Option cours individuel *</label>
|
||||
<select id="personne_`+ personne +`_option_coursindividuel" name="personne_`+ personne +`_option_coursindividuel" required>
|
||||
<option value="" selected></option>
|
||||
<option value="cours individuel">oui</option>
|
||||
<option value="non">non</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>`
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
function select_personne_option_concertsolo (select, personne) {
|
||||
if (select.value == "concert solo"){
|
||||
console.log("on est dans concert solo");
|
||||
document.querySelector('#personne_'+ personne +'_option_concertsolo_piece_call').insertAdjacentHTML("afterend",
|
||||
`<div id="personne_`+ personne +`_option_concertsolo_piece_display" class="grid_2inputs">
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_option_concertsolo_piece">Pièce choisie *</label>
|
||||
<input type="text" name="personne_`+ personne +`_option_concertsolo_piece" id="personne_`+ personne +`_option_concertsolo_piece" required>
|
||||
</div>
|
||||
<div class="input_box input_text input_box_gris">
|
||||
<label for="personne_`+ personne +`_option_concertsolo_cahier">Cahier *</label>
|
||||
<select id="personne_`+ personne +`_option_concertsolo_cahier" name="personne_`+ personne +`_option_concertsolo_cahier" required>
|
||||
<option value="" selected></option>
|
||||
<option value="Cahier 1">Cahier 1</option>
|
||||
<option value="Cahier 2">Cahier 2</option>
|
||||
<option value="Cahier 3">Cahier 3</option>
|
||||
<option value="Cahier 4">Cahier 4</option>
|
||||
<option value="Cahier 5">Cahier 5</option>
|
||||
<option value="Cahier 6">Cahier 6</option>
|
||||
<option value="Cahier 7">Cahier 7</option>
|
||||
<option value="Cahier 8">Cahier 8</option>
|
||||
<option value="Cahier 9">Cahier 9</option>
|
||||
<option value="Cahier 10">Cahier 10</option>
|
||||
<option value="Hors cahier">Hors cahier</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>`
|
||||
);
|
||||
};
|
||||
if (select.value == "non"){
|
||||
console.log("on n'est pas dans concert solo");
|
||||
if (document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display")){
|
||||
console.log("on est dans concert solo piece exist");
|
||||
document.querySelector("#personne_"+ personne +"_option_concertsolo_piece_display").remove();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
function supprimer_personne(personne) {
|
||||
document.querySelector('#personne'+ personne +'').remove();
|
||||
}
|
||||
108
readme.txt
Normal file
@@ -0,0 +1,108 @@
|
||||
/Users/julie/Documents/GitHub/aduzuki
|
||||
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
****** NODE.JS
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
DÉMARRAGE DU PROJET
|
||||
cd /Users/julie/Documents/GitHub/aduzuki
|
||||
npm start
|
||||
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
****** URLs
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
|
||||
ACCUEIL
|
||||
https://www.adhesion.afpedagogiesuzuki.fr/inscription/accueil
|
||||
|
||||
FORMULAIRE ADHÉSION
|
||||
http://localhost:8888/inscription/adhesion
|
||||
https://www.adusuki.juliechaumard.paris/inscription/adhesion
|
||||
https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion
|
||||
|
||||
ENVOIE CARTE ADHÉRENT ET JUSTIFICATIF DE DON MANUEL
|
||||
http://localhost:8888/inscription/adhesion/carte_manuelle
|
||||
https://www.adusuki.juliechaumard.paris/inscription/adhesion/carte_manuelle
|
||||
https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion/carte_manuelle
|
||||
|
||||
STAGE ANNUEL
|
||||
http://localhost:8888/stagenational
|
||||
https://www.adusuki.juliechaumard.paris/stagenational
|
||||
https://www.adhesion.afpedagogiesuzuki.fr/stagenational
|
||||
|
||||
RASSEMBLEMENT IDF
|
||||
http://localhost:8888/rassemblementidf
|
||||
https://www.adusuki.juliechaumard.paris/rassemblementidf
|
||||
https://www.adhesion.afpedagogiesuzuki.fr/rassemblementidf
|
||||
|
||||
|
||||
https://adusuki.juliechaumard.paris/inscription/stagenational/identifier
|
||||
|
||||
|
||||
|
||||
https://www.adhesion.afpedagogiesuzuki.fr/stagenational/paiement_annule?id={CHECKOUT_SESSION_ID}
|
||||
https://www.adhesion.afpedagogiesuzuki.fr/stagenational/paiement_reussi?id={CHECKOUT_SESSION_ID}
|
||||
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
****** ABBRÉVIATION
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
SN = STAGE NATIONAL
|
||||
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
****** LOGGING
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
Exemples de traces
|
||||
|
||||
N'importe où
|
||||
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename, { label: __filename });
|
||||
|
||||
Dans une fonction req res :
|
||||
logger.info('bonjour Julie', { numsession: req.session.id });
|
||||
logger.info('process.env.PORT : ' + process.env.PORT), { numsession: req.session.id }, { label: __filename };
|
||||
|
||||
|
||||
logger.info("XXX" + ZZZ, { numsession: req.session.id }, { label: __filename });
|
||||
|
||||
|
||||
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
****** STRIPE
|
||||
***********************************************************
|
||||
***********************************************************
|
||||
|
||||
TEST CARD
|
||||
|
||||
ok normal
|
||||
4242424242424242
|
||||
|
||||
ok 3DS
|
||||
4000000000003063
|
||||
|
||||
pb
|
||||
4000000000000002
|
||||
|
||||
RETOUR
|
||||
https://www.adusuki.afpedagogiesuzuki.fr/inscription/adhesion_paiement/reussi?id=cs_test_b1teU2a5wbTFwdPKGefvrKS1N6deBGPK86xFhdbxqKo9dtmgCzwoYZ8fJ6
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
personne_1_nom
|
||||
personne_1_prenom
|
||||
personne_1_datenaissance
|
||||
personne_1_age
|
||||
personne_1_categorie
|
||||
personne_1_instrument
|
||||
personne_1_cahier
|
||||
personne_1_piece
|
||||
personne_1_prof
|
||||
|
||||
259
routes/adhesionRouter.js
Normal file
@@ -0,0 +1,259 @@
|
||||
/////////////////////////////////////////////////
|
||||
// ADHÉSION
|
||||
// [DOMAIN]/inscription
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger");
|
||||
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const moment = require('moment');
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES FONCTIONS
|
||||
/////////////////////////////////////////////////
|
||||
const {
|
||||
checkMail,
|
||||
post_form_adhesion,
|
||||
post_form_montant_total,
|
||||
post_paiement_cheque_save,
|
||||
post_paiement_virement_save,
|
||||
post_req_bank,
|
||||
get_res_bank,
|
||||
get_res_bank_annul,
|
||||
post_cartemanuelle_verifmail_envoicarte,
|
||||
post_cartes_manuelles_envoi
|
||||
} = require("../controllers/adhesionController");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ROUTES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// Saisie de l'identifiant
|
||||
router.get('/adhesion', function(req, res) {
|
||||
|
||||
logger.info("ON EST DANS adhesionrouter.js - router.get('/adhesion',");
|
||||
|
||||
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
|
||||
|
||||
if (req.session.err_mail_form_adhesion_1) {
|
||||
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
|
||||
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
|
||||
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
|
||||
res.locals.err_mail_form_adhesion_4 = req.session.err_mail_form_adhesion_4;
|
||||
// on supprime le contenu après affichage
|
||||
req.session.err_mail_form_adhesion = undefined;
|
||||
req.session.err_mail_form_adhesion_1 = undefined;
|
||||
req.session.err_mail_form_adhesion_2 = undefined;
|
||||
req.session.err_mail_form_adhesion_3 = undefined;
|
||||
req.session.err_mail_form_adhesion_4 = undefined;
|
||||
}
|
||||
|
||||
// AFFICHER LE MAIL IDENTIFIANT SI DÉJA SAISIE ET GARDÉ EN VARIABLE DE SESSION
|
||||
// EN CAS DE RECHARGEMENT DE LA PAGE
|
||||
if (req.session.identifiant) {
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
}
|
||||
res.locals.dirname = __dirname;
|
||||
|
||||
// affichage du template ejs /views/page_templates/formulaire_adhesion_mail.ejs
|
||||
res.render('adhesion/page_templates/formulaire_adhesion_mail');
|
||||
});
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// VERIFICATION DU MAILcheckMail
|
||||
// METHODE HTTP POST
|
||||
/////////////////////////////////////////////////
|
||||
router.post('/adhesion', checkMail);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// OUVRIR LA PAGE DE SAISIE DES INFORMATIONS
|
||||
// APRÈS VALIDATION DU MAIL
|
||||
/////////////////////////////////////////////////
|
||||
router.get('/adhesion_prof', function(req, res) {
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
req.session.adherent_type = "";
|
||||
res.render('adhesion/page_templates/formulaire_adhesion_prof');
|
||||
});
|
||||
|
||||
router.get('/adhesion_choix', function(req, res) {
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
req.session.adherent_type = "";
|
||||
res.render('adhesion/page_templates/formulaire_adhesion_choix');
|
||||
});
|
||||
|
||||
router.get('/adhesion_observateur', function(req, res) {
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.famille = "Inscription observateur :";
|
||||
req.session.adherent_type = "observateur";
|
||||
res.render('adhesion/page_templates/formulaire_adhesion_observateur');
|
||||
});
|
||||
|
||||
router.get('/adhesion_famille', function(req, res) {
|
||||
logger.info("req.session.identifiant DANS router.get('/adhesion_famille', = " + req.session.identifiant, { numsession: req.session.id });
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.famille = "Responsable de la famille :";
|
||||
req.session.adherent_type = "famille";
|
||||
res.render('adhesion/page_templates/formulaire_adhesion_famille');
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// POST ENREGISTRER INFOS DANS GOOGLE SHEET
|
||||
/////////////////////////////////////////////////
|
||||
router.post('/adhesion_prof', post_form_adhesion);
|
||||
router.post('/adhesion_observateur', post_form_adhesion);
|
||||
router.post('/adhesion_famille', post_form_adhesion);
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// PAGE DE PAIEMENT
|
||||
/////////////////////////////////////////////////
|
||||
router.get('/adhesion_paiement_total', function(req, res) {
|
||||
logger.info("on est dans la ROUTE /adhesion page_templates/adhesion_paiement_total.ejs", { numsession: req.session.id });
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.adherent_paiement_montant_adhesion = req.session.adherent_paiement_montant_adhesion;
|
||||
|
||||
res.render('adhesion/page_templates/adhesion_paiement_total.ejs');
|
||||
});
|
||||
router.post('/calcul_total', post_form_montant_total);
|
||||
|
||||
router.get('/adhesion_paiement_mode_paiement', function(req, res) {
|
||||
logger.info("on est dans la ROUTE /adhesion page_templates/adhesion_paiement/mode_paiement.ejs", { numsession: req.session.id });
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.adherent_paiement_montant_adhesion = req.session.adherent_paiement_montant_adhesion;
|
||||
res.locals.montant_apayer = req.session.montant_apayer;
|
||||
res.locals.montant_apayer_cent = req.session.montant_apayer_cent;
|
||||
res.locals.adherent_paiement_montant_don = req.session.adherent_paiement_montant_don;
|
||||
logger.info("ROUTER req.session.montant_apayer: " + req.session.montant_apayer, { numsession: req.session.id });
|
||||
res.render('adhesion/page_templates/adhesion_paiement_mode_paiement.ejs');
|
||||
});
|
||||
|
||||
router.post('/goto_bank', post_req_bank);
|
||||
// CLIC SUR LE BOUTON VALIDER DU FORMULAIRE
|
||||
// form action="paiement_cheque_save"
|
||||
// DU FICHIER views/page_templates/adhesion_paiement_mode_paiement.ejs
|
||||
router.post('/paiement_cheque_save', post_paiement_cheque_save);
|
||||
router.post('/paiement_virement_save', post_paiement_virement_save);
|
||||
|
||||
|
||||
|
||||
router.get('/adhesion_paiement/attente', function(req, res) {
|
||||
logger.info("on est dans la ROUTE /adhesion_paiement/attente", { numsession: req.session.id });
|
||||
moment().format();
|
||||
moment.locale('fr');
|
||||
var date_formattee = moment().format('L');
|
||||
res.locals.today = date_formattee;
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.profil1 = req.session.profil1;
|
||||
logger.info("req.session.profil1; : " + req.session.profil1, { numsession: req.session.id });
|
||||
res.locals.profil2 = req.session.profil2;
|
||||
res.locals.profil3 = req.session.profil3;
|
||||
res.locals.adherent_paiement_mode = req.session.adherent_paiement_mode;
|
||||
res.locals.adherent_paiement_montant_adhesion = req.session.adherent_paiement_montant_adhesion;
|
||||
res.locals.adherent_paiement_montant_don = req.session.adherent_paiement_montant_don;
|
||||
res.locals.adherent_paiement_montant_total = req.session.montant_apayer;
|
||||
res.render('adhesion/page_templates/adhesion_paiement_attente.ejs');
|
||||
logger.info("res.sendFile", { numsession: req.session.id });
|
||||
});
|
||||
|
||||
router.get('/adhesion_paiement/reussi', get_res_bank);
|
||||
router.get('/adhesion_paiement/annule', get_res_bank_annul);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// B) GÉNÉRER CARTE D'ADHÉRENT
|
||||
// et justificatif de don
|
||||
/////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ENVOI MANUEL CARTE ADHÉSION ET JUSTIFICATIF DE DON (SI DON)
|
||||
// en saisissant l'identifiant dans un formulaire (1 identifiant à la fois)
|
||||
// GET URL https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion/carte_manuelle
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
router.get('/adhesion/carte_manuelle', function(req, res) {
|
||||
logger.info("ON EST DANS ROUTE carte_manuelle", { numsession: req.session.id });
|
||||
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
|
||||
// LE CONTENU DE CES VARIABLES ERREURS EST MIS DANS LE PROGRAMME ET AFFICHÉ AU RECHARGEMENT DE LA PAGE
|
||||
if (req.session.err_mail_form_adhesion_1) {
|
||||
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
|
||||
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
|
||||
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
|
||||
res.locals.err_mail_form_adhesion_4 = req.session.err_mail_form_adhesion_4;
|
||||
// on supprime le contenu après affichage
|
||||
req.session.err_mail_form_adhesion = undefined;
|
||||
}
|
||||
|
||||
// AFFICHER LE MAIL IDENTIIFANT SI DÉJ0 SAISIE ET GARDÉ EN VARIABLE DE SESSION
|
||||
// EN CAS DE RECHARGEMENT DE LA PAGE
|
||||
if (req.session.identifiant) {
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
}
|
||||
res.locals.dirname = __dirname;
|
||||
|
||||
res.render('adhesion/page_templates/formulaire_cartemanuelle_mail');
|
||||
});
|
||||
|
||||
// CLIC SUR LE BOUTON ENVOYER CARTE ADHÉRENT DU FORMULAIRE
|
||||
// form action="cartemanuelle_verifmail_envoicarte"
|
||||
// DU FICHIER /views/page_templates/formulaire_cartemanuelle_mail.ejs
|
||||
router.post('/adhesion/cartemanuelle_verifmail_envoicarte', post_cartemanuelle_verifmail_envoicarte);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ENVOI MANUEL CARTE ADHÉSION ET JUSTIFICATIF DE DON (SI DON)
|
||||
// Si "x" dans la colonne "filtre" de la Google Sheet
|
||||
// GET URL https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion/carte_manuelle
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
router.get('/adhesion/cartes_manuelles', function(req, res) {
|
||||
logger.info("ON EST DANS ROUTE cartes_manuelles", { numsession: req.session.id });
|
||||
// AFFICHER LES VARIABLES CONTENANT LES ERREURS
|
||||
// LE CONTENU DE CES VARIABLES ERREURS EST MIS DANS LE PROGRAMME ET AFFICHÉ AU RECHARGEMENT DE LA PAGE
|
||||
if (req.session.err_mail_form_adhesion_1) {
|
||||
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
|
||||
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
|
||||
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
|
||||
res.locals.err_mail_form_adhesion_4 = req.session.err_mail_form_adhesion_4;
|
||||
// on supprime le contenu après affichage
|
||||
req.session.err_mail_form_adhesion_1 = undefined;
|
||||
req.session.err_mail_form_adhesion_2 = undefined;
|
||||
req.session.err_mail_form_adhesion_3 = undefined;
|
||||
req.session.err_mail_form_adhesion_4 = undefined;
|
||||
}
|
||||
|
||||
// AFFICHER LE MAIL IDENTIIFANT SI DÉJ0 SAISIE ET GARDÉ EN VARIABLE DE SESSION
|
||||
// EN CAS DE RECHARGEMENT DE LA PAGE
|
||||
if (req.session.identifiant) {
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
}
|
||||
res.locals.dirname = __dirname;
|
||||
|
||||
res.render('adhesion/page_templates/adhesion_cartes_manuelles');
|
||||
});
|
||||
|
||||
// CLIC SUR LE BOUTON ENVOYER CARTES ADHÉRENTS
|
||||
// form action="cartes_manuelles_envoi"
|
||||
// DU FICHIER /views/page_templates/adhesion_cartes_manuelles.ejs
|
||||
router.post('/adhesion/cartes_manuelles_envoi', post_cartes_manuelles_envoi);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = router;
|
||||
30
routes/appRouter.js
Normal file
@@ -0,0 +1,30 @@
|
||||
/////////////////////////////////////////////////
|
||||
// ACCUEIL DU SITE OU DE L'APPLICATION
|
||||
// [DOMAIN]/
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger");
|
||||
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ROUTES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
// si l'URL est appelé on lui envoie la page html inscription_accueil.ejs (c'est un template)
|
||||
|
||||
router.get('/', function(req,res) {
|
||||
logger.info("on est dans la page web d'accueil ADUZUKI", { numsession: req.session.id });
|
||||
res.render('app/page_templates/inscription_accueil');
|
||||
});
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = router;
|
||||
213
routes/rassemblementRouter.js
Normal file
@@ -0,0 +1,213 @@
|
||||
/////////////////////////////////////////////////
|
||||
// RASSEMBLEMENT IDF
|
||||
// [DOMAIN]/stagenational
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger");
|
||||
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename, { label: __filename });
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES FONCTIONS
|
||||
/////////////////////////////////////////////////
|
||||
const {
|
||||
RI_checkidentifiant,
|
||||
RI_checkinfos,
|
||||
post_recap_modifier,
|
||||
post_payer_ri,
|
||||
RI_accompte_reussi,
|
||||
RI_accompte_annule
|
||||
} = require("../controllers/rassemblementController");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ROUTES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 1 - PAGE CHECK IDENTIFIANT
|
||||
|
||||
// AFFICHAGE DE LA PAGE
|
||||
// URL du stage donné au public /rassemblementidf pour une url facile à mémoriser
|
||||
// derrière on dirige vers la page d'identification
|
||||
router.get('/', function(req, res) {
|
||||
// rediriger vers la page de saisie de l'identifiant
|
||||
res.redirect('/rassemblementidf/identifier');
|
||||
});
|
||||
router.get('/identifier', function(req, res) {
|
||||
if (req.session.err_mail_form_adhesion_1) {
|
||||
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
|
||||
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
|
||||
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
|
||||
// on supprime le contenu après affichage
|
||||
req.session.err_mail_form_adhesion_1 = undefined;
|
||||
req.session.err_mail_form_adhesion_2 = undefined;
|
||||
req.session.err_mail_form_adhesion_3 = undefined;
|
||||
}
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('rassemblementidf/page_templates/inscrip_formulaire_identifier');
|
||||
});
|
||||
|
||||
// SCRIPT SUR CLIC "S'INSCRIRE" POUR CHECKER IDENTIFIANT
|
||||
router.post('/identifier', RI_checkidentifiant);
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 2 - SAISIE DU FORMULAIRE D'INSCRIPTION AU STAGE
|
||||
|
||||
router.get('/formulaire', function(req, res) {
|
||||
|
||||
res.locals.err_nbr_eleve = req.session.err_nbr_eleve;
|
||||
// on supprime le contenu après affichage
|
||||
res.locals.err_nbr_eleve = undefined;
|
||||
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.association = req.session.association;
|
||||
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.adherent_prenom = req.session.adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = req.session.adherent_mail;
|
||||
res.locals.accompagnant_nom = req.session.accompagnant_nom;
|
||||
res.locals.accompagnant_prenom = req.session.accompagnant_prenom;
|
||||
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('rassemblementidf/page_templates/inscrip_formulaire');
|
||||
});
|
||||
|
||||
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
|
||||
router.post('/formulaire', RI_checkinfos);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 3 - AFFICHER PAGE RÉCAP
|
||||
|
||||
router.get('/recap', function(req, res) {
|
||||
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.association = req.session.association;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.adherent_prenom = req.session.adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = req.session.adherent_mail;
|
||||
res.locals.accompagnant_prenom = req.session.accompagnant_prenom;
|
||||
res.locals.accompagnant_nom = req.session.accompagnant_nom;
|
||||
|
||||
|
||||
for (let toto = 1; toto < 7; toto++) {
|
||||
res.locals["personne_"+toto+"_numero"] = toto;
|
||||
res.locals["personne_"+toto+"_nom"] = req.session["personne_"+toto+"_nom"];
|
||||
res.locals["personne_"+toto+"_prenom"] = req.session["personne_"+toto+"_prenom"];
|
||||
res.locals["personne_"+toto+"_datenaissance"] = req.session["personne_"+toto+"_datenaissance"];
|
||||
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
|
||||
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
|
||||
res.locals["personne_"+toto+"_piece"] = req.session["personne_"+toto+"_piece"];
|
||||
res.locals["personne_"+toto+"_prof"] = req.session["personne_"+toto+"_prof"];
|
||||
}
|
||||
res.locals.cout_rassemblement = req.session.cout_rassemblement;
|
||||
res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire;
|
||||
res.locals.cout_total = req.session.cout_total;
|
||||
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('rassemblementidf/page_templates/recap');
|
||||
});
|
||||
|
||||
|
||||
|
||||
// PAGE RÉCAP - CLICK SUR LE BOUTON MODIFIER
|
||||
// EN CAS DE LIEN avec plusieurs / comme /stagenational/recap, il faut rappeler le premier (ici /stagenational)
|
||||
// vir l'URL du POST dans l'onglet network de Chrome (type = document)
|
||||
router.post('/post_recap_modifier', post_recap_modifier);
|
||||
|
||||
// PAGE RÉCAP - CLICK SUR LE BOUTON PAYER ACCOMPTE
|
||||
router.post('/post_payer_ri', post_payer_ri);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 4 - PAIEMENT DE L'ACOMPTE
|
||||
|
||||
router.get('/paiement_reussi', RI_accompte_reussi);
|
||||
router.get('/paiement_annule', RI_accompte_annule);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 4 - SANS ACOMPTE INSCRIPTION RÉUSSIE
|
||||
router.get('/inscription_reussi', function(req, res) {
|
||||
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.association = req.session.association;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.adherent_prenom = req.session.adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = req.session.adherent_mail;
|
||||
res.locals.hebergement = req.session.hebergement;
|
||||
res.locals.commentaire_adherent = req.session.commentaire_adherent;
|
||||
|
||||
|
||||
for (let toto = 1; toto < 7; toto++) {
|
||||
res.locals["personne_"+toto+"_numero"] = toto;
|
||||
res.locals["personne_"+toto+"_nom"] = req.session["personne_"+toto+"_nom"];
|
||||
res.locals["personne_"+toto+"_prenom"] = req.session["personne_"+toto+"_prenom"];
|
||||
res.locals["personne_"+toto+"_profilage"] = req.session["personne_"+toto+"_profilage"];
|
||||
res.locals["personne_"+toto+"_categorie"] = req.session["personne_"+toto+"_categorie"];
|
||||
res.locals["personne_"+toto+"_profil"] = req.session["personne_"+toto+"_profil"];
|
||||
res.locals["personne_"+toto+"_transport_mode"] = req.session["personne_"+toto+"_transport_mode"];
|
||||
res.locals["personne_"+toto+"_transport_arret"] = req.session["personne_"+toto+"_transport_arret"]
|
||||
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
|
||||
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
|
||||
res.locals["personne_"+toto+"_option_coursindividuel"] = req.session["personne_"+toto+"_option_coursindividuel"];
|
||||
res.locals["personne_"+toto+"_option_concertsolo"] = req.session["personne_"+toto+"_option_concertsolo"];
|
||||
res.locals["personne_"+toto+"_activite_1"] = req.session["personne_"+toto+"_activite_1"];
|
||||
res.locals["personne_"+toto+"_activite_2"] = req.session["personne_"+toto+"_activite_2"];
|
||||
res.locals["personne_"+toto+"_cout_hebergement"] = req.session["personne_"+toto+"_cout_hebergement"];
|
||||
res.locals["personne_"+toto+"_cout_transport"] = req.session["personne_"+toto+"_cout_transport"];
|
||||
res.locals["personne_"+toto+"_activite_cout"] = req.session["personne_"+toto+"_activite_cout"];
|
||||
res.locals["personne_"+toto+"_observation_cout"] = req.session["personne_"+toto+"_observation_cout"];
|
||||
res.locals["personne_"+toto+"_cours_cout"] = req.session["personne_"+toto+"_cours_cout"];
|
||||
res.locals["personne_"+toto+"_campado_cout"] = req.session["personne_"+toto+"_campado_cout"];
|
||||
}
|
||||
res.locals.cout_total = req.session.cout_total;
|
||||
res.locals.remise = req.session.remise;
|
||||
res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire;
|
||||
res.locals.montant_accompte = req.session.montant_accompte;
|
||||
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
|
||||
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
|
||||
|
||||
|
||||
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('stagenat/page_templates/inscription_reussi');
|
||||
});
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = router;
|
||||
286
routes/stagenatRouter.js
Normal file
@@ -0,0 +1,286 @@
|
||||
/////////////////////////////////////////////////
|
||||
// STAGE NATIONAL
|
||||
// [DOMAIN]/stagenational
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// LOGGING
|
||||
/////////////////////////////////////////////////
|
||||
const logger = require("../public/js/app/logger");
|
||||
logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename);
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES MODULES
|
||||
/////////////////////////////////////////////////
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// APPELS DES FONCTIONS
|
||||
/////////////////////////////////////////////////
|
||||
const {
|
||||
SN_checkidentifiant,
|
||||
SN_checkinfos,
|
||||
post_recap_modifier,
|
||||
post_payer_accompte,
|
||||
post_enregistrer_inscrip_ssacompte,
|
||||
SN_accompte_reussi,
|
||||
SN_accompte_annule
|
||||
} = require("../controllers/stagenatController");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ROUTES
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 1 - PAGE CHECK IDENTIFIANT
|
||||
|
||||
// AFFICHAGE DE LA PAGE
|
||||
// URL du stage donné au public /stagenational pour une url facile à mémoriser
|
||||
// derrière on dirige vers la page d'identification
|
||||
router.get('/', function(req, res) {
|
||||
// rediriger vers la page de saisie de l'identifiant
|
||||
res.redirect('/stagenational/identifier');
|
||||
});
|
||||
router.get('/identifier', function(req, res) {
|
||||
if (req.session.err_mail_form_adhesion_1) {
|
||||
res.locals.err_mail_form_adhesion_1 = req.session.err_mail_form_adhesion_1;
|
||||
res.locals.err_mail_form_adhesion_2 = req.session.err_mail_form_adhesion_2;
|
||||
res.locals.err_mail_form_adhesion_3 = req.session.err_mail_form_adhesion_3;
|
||||
// on supprime le contenu après affichage
|
||||
req.session.err_mail_form_adhesion_1 = undefined;
|
||||
req.session.err_mail_form_adhesion_2 = undefined;
|
||||
req.session.err_mail_form_adhesion_3 = undefined;
|
||||
}
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('stagenat/page_templates/inscrip_formulaire_identifier');
|
||||
});
|
||||
|
||||
// SCRIPT SUR CLIC "S'INSCRIRE" POUR CHECKER IDENTIFIANT
|
||||
router.post('/identifier', SN_checkidentifiant);
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 2 - SAISIE DU FORMULAIRE D'INSCRIPTION AU STAGE
|
||||
|
||||
router.get('/formulaire', function(req, res) {
|
||||
|
||||
res.locals.err_mineur = req.session.err_mineur;
|
||||
// on supprime le contenu après affichage
|
||||
res.locals.err_mineur = undefined;
|
||||
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.association = req.session.association;
|
||||
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.adherent_prenom = req.session.adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = req.session.adherent_mail;
|
||||
res.locals.hebergement = req.session.hebergement;
|
||||
res.locals.commentaire_adherent = req.session.commentaire_adherent;
|
||||
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('stagenat/page_templates/inscrip_formulaire');
|
||||
});
|
||||
|
||||
// SCRIPT SUR CLIC "VALIDER" APRÈS AVOIR REMPLI LE FORMULAIRE
|
||||
router.post('/formulaire', SN_checkinfos);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 3 - AFFICHER PAGE RÉCAP
|
||||
|
||||
router.get('/recap', function(req, res) {
|
||||
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.association = req.session.association;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.adherent_prenom = req.session.adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = req.session.adherent_mail;
|
||||
res.locals.hebergement = req.session.hebergement;
|
||||
res.locals.commentaire_adherent = req.session.commentaire_adherent;
|
||||
|
||||
|
||||
for (let toto = 1; toto < 7; toto++) {
|
||||
res.locals["personne_"+toto+"_numero"] = toto;
|
||||
res.locals["personne_"+toto+"_nom"] = req.session["personne_"+toto+"_nom"];
|
||||
res.locals["personne_"+toto+"_prenom"] = req.session["personne_"+toto+"_prenom"];
|
||||
res.locals["personne_"+toto+"_profilage"] = req.session["personne_"+toto+"_profilage"];
|
||||
res.locals["personne_"+toto+"_categorie"] = req.session["personne_"+toto+"_categorie"];
|
||||
res.locals["personne_"+toto+"_profil"] = req.session["personne_"+toto+"_profil"];
|
||||
res.locals["personne_"+toto+"_transport_mode"] = req.session["personne_"+toto+"_transport_mode"];
|
||||
res.locals["personne_"+toto+"_transport_arret"] = req.session["personne_"+toto+"_transport_arret"]
|
||||
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
|
||||
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
|
||||
res.locals["personne_"+toto+"_option_coursindividuel"] = req.session["personne_"+toto+"_option_coursindividuel"];
|
||||
res.locals["personne_"+toto+"_option_concertsolo"] = req.session["personne_"+toto+"_option_concertsolo"];
|
||||
res.locals["personne_"+toto+"_activite_1"] = req.session["personne_"+toto+"_activite_1"];
|
||||
res.locals["personne_"+toto+"_activite_2"] = req.session["personne_"+toto+"_activite_2"];
|
||||
res.locals["personne_"+toto+"_cout_hebergement"] = req.session["personne_"+toto+"_cout_hebergement"];
|
||||
res.locals["personne_"+toto+"_cout_transport"] = req.session["personne_"+toto+"_cout_transport"];
|
||||
res.locals["personne_"+toto+"_activite_cout"] = req.session["personne_"+toto+"_activite_cout"];
|
||||
res.locals["personne_"+toto+"_observation_cout"] = req.session["personne_"+toto+"_observation_cout"];
|
||||
res.locals["personne_"+toto+"_cours_cout"] = req.session["personne_"+toto+"_cours_cout"];
|
||||
res.locals["personne_"+toto+"_campado_cout"] = req.session["personne_"+toto+"_campado_cout"];
|
||||
}
|
||||
res.locals.cout_total = req.session.cout_total;
|
||||
res.locals.remise = req.session.remise;
|
||||
res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire;
|
||||
res.locals.montant_accompte = req.session.montant_accompte;
|
||||
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
|
||||
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
|
||||
|
||||
|
||||
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('stagenat/page_templates/recap');
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 3 - AFFICHER PAGE RÉCAP SANS ACCOMPTE
|
||||
|
||||
router.get('/recapssacompte', function(req, res) {
|
||||
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.association = req.session.association;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.adherent_prenom = req.session.adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = req.session.adherent_mail;
|
||||
res.locals.hebergement = req.session.hebergement;
|
||||
res.locals.commentaire_adherent = req.session.commentaire_adherent;
|
||||
|
||||
|
||||
for (let toto = 1; toto < 7; toto++) {
|
||||
res.locals["personne_"+toto+"_numero"] = toto;
|
||||
res.locals["personne_"+toto+"_nom"] = req.session["personne_"+toto+"_nom"];
|
||||
res.locals["personne_"+toto+"_prenom"] = req.session["personne_"+toto+"_prenom"];
|
||||
res.locals["personne_"+toto+"_profilage"] = req.session["personne_"+toto+"_profilage"];
|
||||
res.locals["personne_"+toto+"_categorie"] = req.session["personne_"+toto+"_categorie"];
|
||||
res.locals["personne_"+toto+"_profil"] = req.session["personne_"+toto+"_profil"];
|
||||
res.locals["personne_"+toto+"_transport_mode"] = req.session["personne_"+toto+"_transport_mode"];
|
||||
res.locals["personne_"+toto+"_transport_arret"] = req.session["personne_"+toto+"_transport_arret"]
|
||||
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
|
||||
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
|
||||
res.locals["personne_"+toto+"_option_coursindividuel"] = req.session["personne_"+toto+"_option_coursindividuel"];
|
||||
res.locals["personne_"+toto+"_option_concertsolo"] = req.session["personne_"+toto+"_option_concertsolo"];
|
||||
res.locals["personne_"+toto+"_activite_1"] = req.session["personne_"+toto+"_activite_1"];
|
||||
res.locals["personne_"+toto+"_activite_2"] = req.session["personne_"+toto+"_activite_2"];
|
||||
res.locals["personne_"+toto+"_cout_hebergement"] = req.session["personne_"+toto+"_cout_hebergement"];
|
||||
res.locals["personne_"+toto+"_cout_transport"] = req.session["personne_"+toto+"_cout_transport"];
|
||||
res.locals["personne_"+toto+"_activite_cout"] = req.session["personne_"+toto+"_activite_cout"];
|
||||
res.locals["personne_"+toto+"_observation_cout"] = req.session["personne_"+toto+"_observation_cout"];
|
||||
res.locals["personne_"+toto+"_cours_cout"] = req.session["personne_"+toto+"_cours_cout"];
|
||||
res.locals["personne_"+toto+"_campado_cout"] = req.session["personne_"+toto+"_campado_cout"];
|
||||
}
|
||||
res.locals.cout_total = req.session.cout_total;
|
||||
res.locals.remise = req.session.remise;
|
||||
res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire;
|
||||
res.locals.montant_accompte = req.session.montant_accompte;
|
||||
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
|
||||
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
|
||||
|
||||
|
||||
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('stagenat/page_templates/recapssacompte');
|
||||
});
|
||||
|
||||
// PAGE RÉCAP - CLICK SUR LE BOUTON MODIFIER
|
||||
// EN CAS DE LIEN avec plusieurs / comme /stagenational/recap, il faut rappeler le premier (ici /stagenational)
|
||||
// vir l'URL du POST dans l'onglet network de Chrome (type = document)
|
||||
router.post('/post_recap_modifier', post_recap_modifier);
|
||||
|
||||
// PAGE RÉCAP - CLICK SUR LE BOUTON PAYER ACCOMPTE
|
||||
router.post('/post_payer_accompte', post_payer_accompte);
|
||||
|
||||
// PAGE RÉCAP - CLICK SUR LE BOUTON ENREGISTRER
|
||||
router.post('/post_enregistrer_inscrip_ssacompte', post_enregistrer_inscrip_ssacompte);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 4 - PAIEMENT DE L'ACOMPTE
|
||||
|
||||
router.get('/paiement_reussi', SN_accompte_reussi);
|
||||
router.get('/paiement_annule', SN_accompte_annule);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// 4 - SANS ACOMPTE INSCRIPTION RÉUSSIE
|
||||
router.get('/inscription_reussi', function(req, res) {
|
||||
|
||||
res.locals.identifiant = req.session.identifiant;
|
||||
res.locals.association = req.session.association;
|
||||
res.locals.adherent_nom = req.session.adherent_nom;
|
||||
res.locals.adherent_prenom = req.session.adherent_prenom;
|
||||
res.locals.adherent_adresse_rue = req.session.adherent_adresse_rue;
|
||||
res.locals.adherent_adresse_complement = req.session.adherent_adresse_complement;
|
||||
res.locals.adherent_adresse_codepostal = req.session.adherent_adresse_codepostal;
|
||||
res.locals.adherent_adresse_ville = req.session.adherent_adresse_ville;
|
||||
res.locals.adherent_adresse_pays = req.session.adherent_adresse_pays;
|
||||
res.locals.adherent_telephone_mobile = req.session.adherent_telephone_mobile;
|
||||
res.locals.adherent_telephone_fixe = req.session.adherent_telephone_fixe;
|
||||
res.locals.adherent_mail = req.session.adherent_mail;
|
||||
res.locals.hebergement = req.session.hebergement;
|
||||
res.locals.commentaire_adherent = req.session.commentaire_adherent;
|
||||
|
||||
|
||||
for (let toto = 1; toto < 7; toto++) {
|
||||
res.locals["personne_"+toto+"_numero"] = toto;
|
||||
res.locals["personne_"+toto+"_nom"] = req.session["personne_"+toto+"_nom"];
|
||||
res.locals["personne_"+toto+"_prenom"] = req.session["personne_"+toto+"_prenom"];
|
||||
res.locals["personne_"+toto+"_profilage"] = req.session["personne_"+toto+"_profilage"];
|
||||
res.locals["personne_"+toto+"_categorie"] = req.session["personne_"+toto+"_categorie"];
|
||||
res.locals["personne_"+toto+"_profil"] = req.session["personne_"+toto+"_profil"];
|
||||
res.locals["personne_"+toto+"_transport_mode"] = req.session["personne_"+toto+"_transport_mode"];
|
||||
res.locals["personne_"+toto+"_transport_arret"] = req.session["personne_"+toto+"_transport_arret"]
|
||||
res.locals["personne_"+toto+"_instrument"] = req.session["personne_"+toto+"_instrument"];
|
||||
res.locals["personne_"+toto+"_cahier"] = req.session["personne_"+toto+"_cahier"];
|
||||
res.locals["personne_"+toto+"_option_coursindividuel"] = req.session["personne_"+toto+"_option_coursindividuel"];
|
||||
res.locals["personne_"+toto+"_option_concertsolo"] = req.session["personne_"+toto+"_option_concertsolo"];
|
||||
res.locals["personne_"+toto+"_activite_1"] = req.session["personne_"+toto+"_activite_1"];
|
||||
res.locals["personne_"+toto+"_activite_2"] = req.session["personne_"+toto+"_activite_2"];
|
||||
res.locals["personne_"+toto+"_cout_hebergement"] = req.session["personne_"+toto+"_cout_hebergement"];
|
||||
res.locals["personne_"+toto+"_cout_transport"] = req.session["personne_"+toto+"_cout_transport"];
|
||||
res.locals["personne_"+toto+"_activite_cout"] = req.session["personne_"+toto+"_activite_cout"];
|
||||
res.locals["personne_"+toto+"_observation_cout"] = req.session["personne_"+toto+"_observation_cout"];
|
||||
res.locals["personne_"+toto+"_cours_cout"] = req.session["personne_"+toto+"_cours_cout"];
|
||||
res.locals["personne_"+toto+"_campado_cout"] = req.session["personne_"+toto+"_campado_cout"];
|
||||
}
|
||||
res.locals.cout_total = req.session.cout_total;
|
||||
res.locals.remise = req.session.remise;
|
||||
res.locals.accompte_frais_bancaire = req.session.accompte_frais_bancaire;
|
||||
res.locals.montant_accompte = req.session.montant_accompte;
|
||||
res.locals.cout_total_dalcroze_surplace = req.session.cout_total_dalcroze_surplace;
|
||||
res.locals.cout_total_percussion_surplace = req.session.cout_total_percussion_surplace;
|
||||
|
||||
|
||||
|
||||
// affichage du template ejs /views/page_templates/inscription_accueil.ejs
|
||||
res.render('stagenat/page_templates/inscription_reussi');
|
||||
});
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = router;
|
||||
36
src/scss/app.scss
Normal file
@@ -0,0 +1,36 @@
|
||||
@charset 'utf-8';
|
||||
|
||||
// création du app.css
|
||||
|
||||
//base
|
||||
@import "base/reset";
|
||||
@import "base/colors";
|
||||
@import "base/fonts";
|
||||
@import "base/space";
|
||||
|
||||
|
||||
|
||||
//Global
|
||||
@import "global/mediaqueries";
|
||||
@import "global/main";
|
||||
|
||||
// vendors
|
||||
|
||||
// Components
|
||||
@import "components/header_tunnel";
|
||||
@import "components/header_inscription";
|
||||
@import "components/savoirplus";
|
||||
@import "components/titrepage";
|
||||
@import "components/footer";
|
||||
@import "components/inputs";
|
||||
@import "components/check_mail";
|
||||
|
||||
// Modules
|
||||
|
||||
// Templates
|
||||
@import "templates/adhesion_mail";
|
||||
@import "templates/adhesion";
|
||||
@import "templates/paiement";
|
||||
@import "templates/adhesion_end";
|
||||
@import "templates/stageformulaire";
|
||||
|
||||
35
src/scss/base/_colors.scss
Normal file
@@ -0,0 +1,35 @@
|
||||
/* SCSS */
|
||||
/* VARIABLES */
|
||||
/* COLORS */
|
||||
|
||||
// /////////////////////////////////
|
||||
// VARIABLES DES COULEURS
|
||||
// /////////////////////////////////
|
||||
|
||||
// NOIR
|
||||
$color_noir: #343434;
|
||||
$color_noir_fonce: #454343;
|
||||
$color_noir_clair: #1c1c1c;
|
||||
$color_gris_fonce: #707070;
|
||||
$color_gris_clair: #A2A0A0;
|
||||
$color_rouge: #E73058;
|
||||
$color_rouge_tres_clair: #e7305821;
|
||||
$color_blanc: white;
|
||||
|
||||
$color_bleu: #3644AC;
|
||||
$color_bleu_clair: #7984D1;
|
||||
$color_bleu_clair2: #525EBB;
|
||||
$color_bleu_fonce_1: #1B299A;
|
||||
$color_bleu_fonce_2: #101D77;
|
||||
|
||||
// /////////////////////////////////
|
||||
// CSS COULEURS
|
||||
// /////////////////////////////////
|
||||
|
||||
.rouge {
|
||||
color: $color_rouge !important;
|
||||
}
|
||||
|
||||
.bg_green {
|
||||
background-color: green !important;
|
||||
}
|
||||
171
src/scss/base/_fonts.scss
Normal file
@@ -0,0 +1,171 @@
|
||||
/* CSS */
|
||||
/* fonts */
|
||||
|
||||
@font-face {
|
||||
font-family: 'cabin_semibolditalic';src: url('../fonts/cabin_semibolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'cabin_mediumitalic';src: url('../fonts/cabin_mediumitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'cabin_bolditalic';src: url('../fonts/cabin_bolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'cabin_semibold';src: url('../fonts/cabin_semibold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'cabin_regular';src: url('../fonts/cabin_regular.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'cabin_medium';src: url('../fonts/cabin_medium.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'cabin_italic';src: url('../fonts/cabin_italic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'cabin_bold';src: url('../fonts/cabin_bold.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_semibolditalic';src: url('../fonts/sourceserifpro_semibolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_extralightitalic';src: url('../fonts/sourceserifpro_extralightitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_regular';src: url('../fonts/sourceserifpro_regular.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_lightitalic';src: url('../fonts/sourceserifpro_lightitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_bold';src: url('../fonts/sourceserifpro_bold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_blackitalic';src: url('../fonts/sourceserifpro_blackitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_italic';src: url('../fonts/sourceserifpro_italic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_light';src: url('../fonts/sourceserifpro_light.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_black';src: url('../fonts/sourceserifpro_black.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_semibold';src: url('../fonts/sourceserifpro_semibold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_bolditalic';src: url('../fonts/sourceserifpro_bolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'sourceserifpro_extralight';src: url('../fonts/sourceserifpro_extralight.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'playfairdisplay_blackitalic';src: url('../fonts/playfairdisplay_blackitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'playfairdisplay_bolditalic';src: url('../fonts/playfairdisplay_bolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'playfairdisplay_regular';src: url('../fonts/playfairdisplay_regular.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'playfairdisplay_italic';src: url('../fonts/playfairdisplay_italic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'playfairdisplay_black';src: url('../fonts/playfairdisplay_black.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'playfairdisplay_bold';src: url('../fonts/playfairdisplay_bold.ttf') format('truetype');
|
||||
}
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: 'montserrat_extrabolditalic';src: url('../fonts/montserrat_extrabolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_semibolditalic';src: url('../fonts/montserrat_semibolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_italic';src: url('../fonts/montserrat_italic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_regular';src: url('../fonts/montserrat_regular.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_black';src: url('../fonts/montserrat_black.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montsermontserrat_extraboldrat_regular';src: url('../fonts/montserrat_extrabold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_extralightitalic';src: url('../fonts/montserrat_extralightitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_semibold';src: url('../fonts/montserrat_semibold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_blackitalic';src: url('../fonts/montserrat_blackitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_mediumitalic';src: url('../fonts/montserrat_mediumitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_bold';src: url('../fonts/montserrat_bold.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_thin';src: url('../fonts/montserrat_thin.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_extralight';src: url('../fonts/montserrat_extralight.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_thinitalic';src: url('../fonts/montserrat_thinitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_light';src: url('../fonts/montserrat_light.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_bolditalic';src: url('../fonts/montserrat_bolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_medium';src: url('../fonts/montserrat_medium.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'montserrat_lightitalic';src: url('../fonts/montserrat_lightitalic.ttf') format('truetype');
|
||||
}
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: 'ubuntu_bold';src: url('../fonts/ubuntu_bold.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'ubuntu_courant';src: url('../fonts/ubuntu_courant.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'ubuntu_fin';src: url('../fonts/ubuntu_fin.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'ubuntu_fin_italic';src: url('../fonts/ubuntu_leger_italic.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'ubuntu_leger';src: url('../fonts/ubuntu_leger.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'ubuntu_moyen';src: url('../fonts/ubuntu_moyen.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'ubuntu_moyen_italique';src: url('../fonts/ubuntu-moyen_italique.ttf') format('truetype');
|
||||
}
|
||||
|
||||
.gras {
|
||||
font-family: cabin_bold;
|
||||
}
|
||||
21
src/scss/base/_reset.scss
Normal file
@@ -0,0 +1,21 @@
|
||||
/* CSS de base */
|
||||
|
||||
body, div, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, img, form, fieldset, blockquote, main, article, aside, section {
|
||||
margin:0px 0px 0px 0px;
|
||||
padding:0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
li, ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: cabin_regular;
|
||||
}
|
||||
10
src/scss/base/_space.scss
Normal file
@@ -0,0 +1,10 @@
|
||||
/* ***************************************** */
|
||||
/* ***************************************** */
|
||||
/* ESPACE ENTRE LES BLOCS */
|
||||
/* ***************************************** */
|
||||
/* ***************************************** */
|
||||
|
||||
|
||||
.space30 {
|
||||
height: 30px;
|
||||
}
|
||||
145
src/scss/components/_check_mail.scss
Normal file
@@ -0,0 +1,145 @@
|
||||
.erreur {
|
||||
max-width: 500px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 70px;
|
||||
@include media_max(phone){
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
@include media_minmax(phone,desktop){
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
text-align: center;
|
||||
p {
|
||||
margin-bottom: 15px;
|
||||
color: $color_rouge;
|
||||
}
|
||||
.souligne {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.form_check_mail {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr 2fr;
|
||||
grid-template-rows: auto auto auto;
|
||||
grid-template-areas:
|
||||
". input ."
|
||||
". checkbox checkbox"
|
||||
". button .";
|
||||
|
||||
.input_email {
|
||||
grid-area: input;
|
||||
|
||||
}
|
||||
.input_checkbox {
|
||||
grid-area: checkbox;
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
margin-bottom: 35px;
|
||||
.gras {
|
||||
font-family: cabin_semibold;
|
||||
color: $color_noir;
|
||||
}
|
||||
}
|
||||
button {
|
||||
grid-area: button;
|
||||
justify-self: center;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.open_modal {
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
margin-top: 150px;
|
||||
text-decoration: underline;
|
||||
p {
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.prelude {
|
||||
/*display: grid;*/
|
||||
/*justify-content: center;*/
|
||||
/*margin-top: 150px;*/
|
||||
|
||||
/* **************************************************************** */
|
||||
/* ** POUR FENETRE MODALE ** */
|
||||
/* **************************************************************** */
|
||||
display: none; /* Hidden by default */
|
||||
position: fixed; /* Stay in place */
|
||||
z-index: 1; /* Sit on top */
|
||||
padding-top: 150px; /* Location of the box */
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%; /* Full width */
|
||||
height: 100%; /* Full height */
|
||||
overflow: auto; /* Enable scroll if needed */
|
||||
background-color: rgb(0,0,0); /* Fallback color */
|
||||
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
|
||||
/* **************************************************************** */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
font-family: cabin_regular;
|
||||
font-size: 15px;
|
||||
|
||||
.prelude_content {
|
||||
/*max-width: 700px;*/
|
||||
|
||||
/* **************************************************************** */
|
||||
/* ** POUR FENETRE MODALE ** */
|
||||
/* **************************************************************** */
|
||||
background-color: #fefefe;
|
||||
margin: auto;
|
||||
padding: 20px;
|
||||
border: 5px solid $color_rouge;
|
||||
border-radius: 20px;
|
||||
width: 80%;
|
||||
/* **************************************************************** */
|
||||
}
|
||||
|
||||
ol {
|
||||
margin-left: 20px;
|
||||
li {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
}
|
||||
ul {
|
||||
margin-left: 20px;
|
||||
li {
|
||||
list-style-type: circle;
|
||||
}
|
||||
}
|
||||
.gras {
|
||||
font-family: cabin_semibold;
|
||||
}
|
||||
}
|
||||
.prelude_close {
|
||||
float: right;
|
||||
margin-top: -25px;
|
||||
font-size: 50px;
|
||||
color: $color_rouge;
|
||||
}
|
||||
|
||||
.prelude_close:hover,
|
||||
.prelude_close:focus {
|
||||
cursor: pointer;
|
||||
color: $color_rouge;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
23
src/scss/components/_footer.scss
Normal file
@@ -0,0 +1,23 @@
|
||||
/* ***************************************** */
|
||||
/* ***************************************** */
|
||||
/* LE FOOTER */
|
||||
/* ***************************************** */
|
||||
/* ***************************************** */
|
||||
|
||||
footer{
|
||||
min-height: 300px;
|
||||
margin-top: 100px;
|
||||
background-color: $color_noir;
|
||||
|
||||
padding: 15px;
|
||||
|
||||
display: grid;
|
||||
|
||||
|
||||
.version {
|
||||
align-self: end;
|
||||
color: white;
|
||||
text-align: end;
|
||||
font-size: 11px;
|
||||
}
|
||||
}
|
||||
13
src/scss/components/_header_inscription.scss
Normal file
@@ -0,0 +1,13 @@
|
||||
header {
|
||||
max-width: 1800px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
.logo {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 70px;
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||