diff --git a/bin/reviewappdeploy.sh b/bin/reviewappdeploy.sh new file mode 100755 index 000000000..05ac112e7 --- /dev/null +++ b/bin/reviewappdeploy.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +bundle exec rails db:migrate +bundle exec rails db:seed +bundle exec rake reviewapp:seed diff --git a/db/seeds.rb b/db/seeds.rb index 9b68df22f..e0b8c4778 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -86,16 +86,16 @@ end situations_data = [ + { libelle: 'Plan de la ville', nom_technique: 'plan_de_la_ville' }, { libelle: 'Bienvenue', nom_technique: 'bienvenue' }, + { libelle: 'Café de la place', nom_technique: 'cafe_de_la_place' }, { libelle: 'Maintenance', nom_technique: 'maintenance' }, { libelle: 'Livraison', nom_technique: 'livraison' }, { libelle: 'Tri', nom_technique: 'tri' }, { libelle: 'Contrôle', nom_technique: 'controle' }, { libelle: 'Sécurité', nom_technique: 'securite' }, { libelle: 'Objets trouvés', nom_technique: 'objets_trouves' }, - { libelle: 'Inventaire', nom_technique: 'inventaire' }, - { libelle: 'Plan de la ville', nom_technique: 'plan_de_la_ville' }, - { libelle: 'Café de la place', nom_technique: 'cafe_de_la_place' } + { libelle: 'Inventaire', nom_technique: 'inventaire' } ] situations_data.each do |situation_data| Situation.find_or_create_by(nom_technique: situation_data[:nom_technique]) do |situation| @@ -105,8 +105,36 @@ ParcoursType.find_or_create_by(nom_technique: 'complet') do |parcours_type| parcours_type.libelle = 'Parcours complet' - parcours_type.duree_moyenne = '1 heure' - situations = Situation.where(nom_technique: situations_data.pluck(:nom_technique)) + parcours_type.duree_moyenne = '55 minutes' + parcours_type.categorie = 'pre_positionnement' + parcours_type.description = %{Ce parcours permet d'évaluer à la fois : + +- **les compétences de base** *(littératie et numératie)* +- **les compétences transversales** *(vitesse d’exécution, attention et concentration, vigilance et contrôle, comparaison et tri, organisation et méthode, compréhension de la consigne, détection et qualification des dangers).*} + situations = Situation.where(nom_technique: [ + 'maintenance', + 'livraison', + 'tri', + 'controle', + 'securite', + 'objets_trouves', + 'inventaire' + ]) + parcours_type.situations_configurations_attributes = situations.map.with_index do |situation, index| + { situation_id: situation.id, position: index } + end +end + +ParcoursType.find_or_create_by(nom_technique: 'competences_de_base') do |parcours_type| + parcours_type.libelle = 'Parcours compétences de base' + parcours_type.duree_moyenne = '25 minutes' + parcours_type.categorie = 'pre_positionnement' + parcours_type.description = %{Ce parcours permet d'évaluer uniquement **les compétences de base** *(littératie et numératie)*.} + situations = Situation.where(nom_technique: [ + 'maintenance', + 'livraison', + 'objets_trouves' + ]) parcours_type.situations_configurations_attributes = situations.map.with_index do |situation, index| { situation_id: situation.id, position: index } end @@ -115,7 +143,8 @@ structure_eva = Structure.where('lower(nom) = ?', 'eva').first_or_create do |structure| structure.nom = 'eva' structure.code_postal = 75012 - structure.type_structure = 'non_communique' + structure.type_structure = 'autre' + structure.type = 'StructureLocale' end Compte.where(email: Eva::EMAIL_SUPPORT).first_or_create do |compte| diff --git a/lib/tasks/reviewapp.rake b/lib/tasks/reviewapp.rake new file mode 100644 index 000000000..74932509d --- /dev/null +++ b/lib/tasks/reviewapp.rake @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +COMPTES = { + 'superadmin@beta.gouv.fr' => { prenom: 'super', nom: 'admin', role: 'superadmin' }, + 'admin@beta.gouv.fr' => { prenom: 'admin', nom: 'admin', role: 'admin' }, + 'conseiller@beta.gouv.fr' => { prenom: 'conseiller', nom: 'conseiller', role: 'conseiller' } +}.freeze + +namespace :reviewapp do + def cree_les_comptes(structure_eva) + COMPTES.each do |email, data| + Compte.where(email: email).first_or_create do |compte| + compte.prenom = data[:prenom] + compte.nom = data[:nom] + compte.role = data[:role] + compte.statut_validation = 'acceptee' + compte.structure = structure_eva + compte.password = 'bidon123456' + end + end + end + + desc 'initialise les données pour les applications de revues' + task seed: :environment do + ParcoursType.find_or_create_by(nom_technique: 'litteratie_evacob') do |parcours_type| + parcours_type.libelle = 'Parcours « compétences langagières (écrit) - ex-Evacob »' + parcours_type.duree_moyenne = '30 minutes' + parcours_type.categorie = 'evaluation_avancee' + parcours_type.description = %(Ce parcours permet une évaluation fine des compétences\ +langagières en matière d’écrit : lecture, identification et signalement de mots,\ +compréhension de texte et écriture de mots.) + situations = Situation.where(nom_technique: ['cafe_de_la_place']) + parcours_type.situations_configurations_attributes = + situations.map.with_index do |situation, index| + { situation_id: situation.id, position: index } + end + end + + structure_eva = Structure.where(nom: 'eva').first + cree_les_comptes structure_eva + + Compte.all.each do |compte| + compte.encrypted_password = '$2a$11$d.kf40n..7zqTGgCPANFlOiLvwGH35EPh0OsY6euJaje3Us20KIWO' + compte.save!(validate: false) + end + end +end diff --git a/scalingo.json b/scalingo.json new file mode 100644 index 000000000..e045f60dd --- /dev/null +++ b/scalingo.json @@ -0,0 +1,11 @@ +{ + "env": { + "HOTE_SERVEUR": { + "generator": "template", + "template" : "%APP%.osc-fr1.scalingo.io" + } + }, + "scripts": { + "first-deploy": "bin/reviewappdeploy.sh" + } +}