Bureau-Systeme-d-Information-BSI / civilsdeladefense

Gestion des recrutements
https://civilsdeladefense.fabnum.fr
GNU Affero General Public License v3.0
12 stars 9 forks source link

[SCRIPT DE DONNEES] Langues étrangères #1785

Open Queenze972 opened 1 month ago

Queenze972 commented 1 month ago

Les clients souhaiteraient mettre à jour les valeurs "Langues étrangères".

En effet, de nombreuses valeurs sont présentes dans ce paramètre + difficulté à mettre dans l'ordre via les flèches de tri (attente drag n drop).

Est-il donc possible de passer le script en PJ pour que toutes les valeurs soient mises à jour et ainsi faciliter le travail des clients ?

Merci de ton reto Langues-etrangeres_E-Recrutement.txt ur.

sebastiencarceles commented 1 month ago

@Queenze972 j'ai injecté la liste de langues du fichier texte, et réordonné par ordre alphabétique. Enfin, j'ai mis la langue "Autres" tout en bas de la liste.

@sebastiencarceles voici le script pour référence :

namespace :migrate_data do
  task foreign_languages: :environment do
    Rails.logger.info("Re order languages")

    languages = [
      "Abkhaze",
      "Afar",
      "Afrikaans",
      "Albanais",
      "Allemand",
      "Amharique",
      "Anglais",
      "Arabe",
      "Arménien",
      "Assamais",
      "Aymara",
      "Azéri",
      "Bachkir",
      "Bantou",
      "Biélorusse",
      "Bengali",
      "Berbère",
      "Bihari",
      "Birman",
      "Bislama",
      "Bosniaque",
      "Bulgare",
      "Cambodgien",
      "Cantonais",
      "Catalan",
      "Chamorro",
      "Cinghalais",
      "Coréen",
      "Croate",
      "Danois",
      "Dari",
      "Dzongkha",
      "Espagnol",
      "Estonien",
      "Fang",
      "Féroïen",
      "Fidjien",
      "Finnois",
      "Français",
      "Frison",
      "Gaélique",
      "Galicien",
      "Gallois",
      "Géorgien",
      "Goudjrati",
      "Grec",
      "Groenlandais",
      "Guarani",
      "Haoussa",
      "Hébreu",
      "Hindi",
      "Hongrois",
      "Igbo",
      "Indonésien",
      "Inupiak",
      "Iranien",
      "Irlandais",
      "Islandais",
      "Italien",
      "Japonais",
      "Javanais",
      "Kannada",
      "Kashmiri",
      "Kazakh",
      "Kinyarwanda",
      "Kirghize",
      "Kirundi",
      "Kurde",
      "Langue des signes",
      "Lao",
      "Letton",
      "Lingala",
      "Lituanien",
      "Macédonien",
      "Malais",
      "Malgache",
      "Maltais",
      "Mandarin",
      "Mandingue",
      "Maori",
      "Moldave",
      "Mongol",
      "Monténégrin",
      "Nauruan",
      "Néerlandais",
      "Népali",
      "Norvégien",
      "Oriya",
      "Orromo",
      "Ouïghour",
      "Ourdou",
      "Ouzbek",
      "Pashto",
      "Pendjabi",
      "Persan",
      "Peul",
      "Philippin",
      "Polonais",
      "Portugais",
      "Quechua",
      "Roman",
      "Roumain",
      "Russe",
      "Samoan",
      "Sango",
      "Sanskrit",
      "Serbe",
      "Setswana",
      "Shona",
      "Sindhi",
      "Singhalais",
      "Siswati",
      "Slovaque",
      "Slovène",
      "Somali",
      "Sotho du sud",
      "Soudanais",
      "Suédois",
      "Surani",
      "Swahili",
      "Tadjik",
      "Tagalog",
      "Tamoul",
      "Tatar",
      "Tchèque",
      "Télougou",
      "Thaï",
      "Tibétain",
      "Tigrigna",
      "Tonga",
      "Tsonga",
      "Turc",
      "Turkmène",
      "Twi",
      "Ukrainien",
      "Vietnamien",
      "Wolof",
      "Xhosa",
      "Yiddish",
      "Yoruba",
      "Zoulou"
    ]
    languages.each do |name|
      next if ForeignLanguage.find_by(name: name)

      ForeignLanguage.create!(name: name)
    end

    ForeignLanguage.all.unscoped.order(:name).each.with_index(1) do |language, index|
      language.update_column(:position, index) # rubocop:disable Rails/SkipsModelValidations
    end

    ForeignLanguage.find_by(name: "Autres").move_to_bottom

    Rails.logger.info("All done!")
  end
end