Commit 7b649dda authored by THEO GUILLON's avatar THEO GUILLON
Browse files

Merge branch '319-ajout-de-champ-en-relation-avec-un-traitement' into '1.2.0'

Resolve "Ajout de champ en relation avec un traitement"

See merge request web-DPO/web-DPO!297
parents 6375b200 33e0d9ca
......@@ -56,26 +56,98 @@ INSERT INTO etats (libelle, value, created, modified) VALUES
ALTER TABLE organisations DROP verrouiller;
--
-- Création de la table baselegales
-- ALTER TABLE fg_formulaires TO formulaires
--
CREATE TABLE baselegales (
id serial NOT NULL PRIMARY KEY,
libelle VARCHAR NOT NULL,
description VARCHAR NOT NULL,
created timestamp without time zone NOT NULL,
modified timestamp without time zone NOT NULL
);
CREATE UNIQUE INDEX baselegales_libelle_idx ON baselegales (libelle);
ALTER TABLE fg_formulaires RENAME TO formulaires;
ALTER SEQUENCE fg_formulaires_id_seq RENAME TO formulaires_id_seq;
ALTER INDEX fg_formulaires_pkey RENAME TO formulaires_pkey;
ALTER TABLE formulaires
DROP CONSTRAINT fg_formulaires_organisations_id_fkey,
ADD CONSTRAINT formulaires_organisations_id_fkey FOREIGN KEY (organisations_id) REFERENCES organisations (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE formulaires ADD COLUMN usesousfinalite BOOLEAN DEFAULT FALSE;
ALTER TABLE formulaires ADD COLUMN usebaselegale BOOLEAN DEFAULT FALSE;
ALTER TABLE formulaires ADD COLUMN usedecisionautomatisee BOOLEAN DEFAULT FALSE;
ALTER TABLE formulaires ADD COLUMN usetransferthorsue BOOLEAN DEFAULT FALSE;
ALTER TABLE formulaires ADD COLUMN usedonneessensible BOOLEAN DEFAULT FALSE;
ALTER TABLE formulaires ADD COLUMN useallextensionfiles BOOLEAN DEFAULT FALSE;
ALTER TABLE formulaires ADD COLUMN oldformulaire BOOLEAN DEFAULT FALSE;
UPDATE formulaires SET oldformulaire = true;
ALTER TABLE formulaires ALTER COLUMN soustraitant DROP NOT NULL;
ALTER TABLE formulaires ALTER COLUMN active DROP NOT NULL;
ALTER TABLE formulaires ALTER COLUMN active SET DEFAULT FALSE;
UPDATE formulaires SET active = false;
--
-- Insertion de valeur dans la table baselegales
-- ALTER TABLE fg_champs TO champs
--
INSERT INTO baselegales (libelle, description, created, modified) VALUES
('Le consentement', 'Article 6 1. a) : La personne concernée a consenti au traitement de ses données à caractère personnel pour une ou plusieurs finalités spécifiques.', NOW(), NOW()),
('Le contrat', 'Article 6 1. b) : Le traitement est nécessaire à l''exécution d''un contrat auquel la personne concernée est partie ou à l''exécution de mesures précontractuelles prises à la demande de celle-ci.', NOW(), NOW()),
('L’obligation légale', 'Article 6 1. c) : Le traitement est nécessaire au respect d''une obligation légale à laquelle le responsable du traitement est soumis.', NOW(), NOW()),
('La sauvegarde des intérêts vitaux', 'Article 6 1. d) : Le traitement est nécessaire à la sauvegarde des intérêts vitaux de la personne concernée ou d''une autre personne physique.', NOW(), NOW()),
('L’intérêt public', 'Article 6 1. e) : Le traitement est nécessaire à l''exécution d''une mission d''intérêt public ou relevant de l''exercice de l''autorité publique dont est investi le responsable du traitement.', NOW(), NOW()),
('Les intérêts légitimes', 'Article 6 1. f) : Le traitement est nécessaire aux fins des intérêts légitimes poursuivis par le responsable du traitement ou par un tiers, à moins que ne prévalent les intérêts ou les libertés et droits fondamentaux de la personne concernée qui exigent une protection des données à caractère personnel, notamment lorsque la personne concernée est un enfant.<br /><br />Le point f) du premier alinéa ne s''applique pas au traitement effectué par les autorités publiques dans l''exécution de leurs missions.', NOW(), NOW());
ALTER TABLE fg_champs RENAME TO champs;
ALTER SEQUENCE fg_champs_id_seq RENAME TO champs_id_seq;
ALTER INDEX fg_champs_pkey RENAME TO champs_pkey;
ALTER TABLE champs RENAME COLUMN formulaires_id TO formulaire_id;
ALTER TABLE champs
DROP CONSTRAINT fg_champs_formulaires_id_fkey,
ADD CONSTRAINT champs_formulaire_id_fkey FOREIGN KEY (formulaire_id) REFERENCES formulaires (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE champs ADD COLUMN champ_coresponsable BOOLEAN DEFAULT FALSE;
ALTER TABLE champs ADD COLUMN champ_soustraitant BOOLEAN DEFAULT FALSE;
--
-- ALTER TABLE fiches
--
ALTER TABLE fiches
DROP CONSTRAINT fiches_form_id_fkey,
ADD CONSTRAINT fiches_form_id_fkey FOREIGN KEY (form_id) REFERENCES formulaires (id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE fiches ADD COLUMN soustraitance BOOL NOT NULL DEFAULT FALSE;
--
-- on passe le champ concernant la soutraitance à true en fonction si la fiche à un soustraitant
--
UPDATE fiches SET soustraitance = true WHERE soustraitantid IS NOT NULL;
--
-- ALTER TABLE modeles
--
ALTER TABLE modeles
DROP CONSTRAINT modeles_formulaires_id_fkey,
ADD CONSTRAINT modeles_formulaires_id_fkey FOREIGN KEY (formulaires_id) REFERENCES formulaires (id) ON DELETE CASCADE ON UPDATE CASCADE;
DELETE FROM valeurs
WHERE champ_name IN (
'raisonsociale',
'telephone',
'fax',
'adresse',
'email',
'sigle',
'siret',
'ape',
'civiliteresponsable',
'nomresponsable',
'prenomresponsable',
'fonctionresponsable',
'emailresponsable',
'telephoneresponsable',
'dpo',
'numerodpo',
'fixDpo',
'portableDpo',
'emailDpo',
'soustraitantid',
'id'
)
AND fiche_id IN (
SELECT fiche_id
FROM etat_fiches
WHERE etat_fiches.actif = true
AND etat_fiches.etat_id NOT IN (5,7,9)
);
COMMIT;
......@@ -88,10 +88,10 @@ define('FORMAT_DATE', '%e-%m-%Y');
define('FORMAT_DATE_HEURE', '%e-%m-%Y à %H:%M');
//Validation champs Nom, Prenom etc...
define('REGEXP_ALPHA_FR', '/^[a-zA-Z\-ÂÀâàÇçÉÊÈËéêèëÎÏîïÔÖôöÛÙûù ]*$/i');
define('REGEXP_ALPHA_FR', ""/^[a-zA-Z\'-ÂÀâàÇçÉÊÈËéêèëÎÏîïÔÖôöÛÙûù ]*$/i");
//Validation champs email
define('REGEXP_EMAIL_FR', '/^[a-zA-Z1-9\-@.]*$/i');
define('REGEXP_EMAIL_FR', '/^[a-zA-Z1-9\-@._]*$/i');
Configure::write('logoAcceptedTypes', [
'image/png', // .png
......
......@@ -37,12 +37,13 @@ class AppController extends Controller
'Notification',
'Pannel',
'Service',
'User'
'User',
'Formulaire'
];
public $components = [
'Session',
'FormGenerator.FormGen',
// 'FormGenerator.FormGen',
'Droits',
'Notifications',
'Auth' => [
......@@ -177,17 +178,24 @@ class AppController extends Controller
public function beforeRender()
{
parent::beforeRender();
$this->set('formulaires_actifs', $this->FormGen->getAll([
'organisations_id' => $this->Session->read('Organisation.id'),
'active' => true,
'soustraitant' => false
]));
$this->set('formulaires_soustraitance', $this->FormGen->getAll([
'organisations_id' => $this->Session->read('Organisation.id'),
'active' => true,
'soustraitant' => true
]));
// $this->set('formulaires_actifs', $this->FormGen->getAll([
// 'organisations_id' => $this->Session->read('Organisation.id'),
// 'active' => true
// ]));
$formulaires_actifs = $this->Formulaire->find('all', [
'conditions' => [
'organisations_id' => $this->Session->read('Organisation.id'),
'active' => true
]
]);
$this->set(compact('formulaires_actifs'));
// $this->set('formulaires_soustraitance', $this->FormGen->getAll([
// 'organisations_id' => $this->Session->read('Organisation.id'),
// 'active' => true,
// 'soustraitant' => true
// ]));
$serviceUser = $this->OrganisationUser->find('all', [
'conditions' => [
......
......@@ -323,4 +323,37 @@ class DroitsComponent extends Component {
return false;
}
/**
* Check si l'organisation en cours à un DPO déclaré
*
* @return bool
*
* @access public
*
* @created 25/02/2020
* @version V1.1.0
*/
public function existDPO()
{
if ($this->Session->read('Organisation.id') != null) {
$Organisation = ClassRegistry::init('Organisation');
$organisationDPO = $Organisation->find('first', [
'conditions' => [
'Organisation.id' => $this->Session->read('Organisation.id')
],
'fields' => [
'Organisation.dpo',
'Organisation.numerodpo'
]
]);
if (!empty($organisationDPO['Organisation']['dpo'] && !empty($organisationDPO['Organisation']['numerodpo']))) {
return true;
}
}
return false;
}
}
This diff is collapsed.
This diff is collapsed.
......@@ -41,7 +41,7 @@ class PannelController extends AppController {
'Norme'
];
public $components = [
'FormGenerator.FormGen',
// 'FormGenerator.FormGen',
'Droits',
'Banettes'
];
......
......@@ -132,13 +132,13 @@ msgid "fiche.champTypedeclaration"
msgstr "Type de déclaration"
msgid "fiche.champTransfertHorsUe"
msgstr "Transfert hors UE"
msgstr "Les données du traitement, font l'objet d'un transfert hors l'UE ?"
msgid "fiche.champDonneesSensible"
msgstr "Données sensibles"
msgstr "Les données traitées sont qualifiées de 'données sensibles' ?"
msgid "fiche.champFinaliteprincipale"
msgstr "Finalité"
msgstr "Finalité principale"
msgid "fiche.champRaisonsociale"
msgstr "Raison sociale"
......@@ -255,7 +255,7 @@ msgid "fiche.textInfoCoresponsable"
msgstr "Co-responsabilité sur le traitement :"
msgid "fiche.champCoresponsable"
msgstr "Co-responsable ?"
msgstr "Le traitement fait l'objet d'une co-responsabilité ?"
msgid "fiche.champCoresponsable-x"
msgstr "Co-responsable ?"
......@@ -317,12 +317,57 @@ msgstr "Information complémentaire concernant le traitement :"
msgid "fiche.champBaselegale"
msgstr "Base légale"
msgid "fiche.champDescriptionBaseLegale"
msgstr "Description des bases légales"
msgid "fiche.champDecisionAutomatisee"
msgstr "Prise de décision automatisée sur le traitement ?"
msgid "fiche.champDescriptionDecisionAutomatisee"
msgstr "Décrivez la prise de décision automatisée"
msgid "fiche.textInfoTransfereHorsUEComplementaire"
msgstr "Information complémentaire concernant le transfert hors UE :"
msgid "fiche.champOrganismeDestinataireHorsUeNombre"
msgstr "Organisme destinataire "
msgid "fiche.champTypeGarantieHorsUeNombre"
msgstr "Type de garantie "
msgid "fiche.champPaysDestinataireHorsUeNombre"
msgstr "Pays destinataire "
msgid "fiche.champHorsue"
msgstr "Champ complémentaire concernant le transfert hors UE"
msgid "fiche.textInfoDonneesSensiblesComplementaire"
msgstr "Information complémentaire concernant les données sensibles :"
msgid "fiche.champTypeDonneeSensibleNombre"
msgstr "Type de donnée sensible "
msgid "fiche.champDescriptionDonneeSensibleNombre"
msgstr "Description "
msgid "fiche.champDureeConservationDonneeSensibleNombre"
msgstr "Durée de conservation "
msgid "fiche.champDonneessensibles"
msgstr "Champ complémentaire concernant les données sensibles"
msgid "fiche.textInfoCoResponsableComplementaire"
msgstr "Information complémentaire concernant la co-responsabilité(s) :"
msgid "fiche.textInfoSousTraitance"
msgstr "Sous-traitance sur le traitement :"
msgid "fiche.textInfoSousTraitanceComplementaire"
msgstr "Information complémentaire concernant la sous-traitance(s) :"
msgid "fiche.champSoustraitance"
msgstr "Le traitement fait l'objet d'une sous-traitance ?"
###############################################################################
......@@ -348,3 +393,25 @@ msgid "fiche.btnRevenir"
msgstr " Retour"
###############################################################################
############################: View/Formulaire/add/edit.ctp ############################
msgid "fiche.champOrganismeDestinataireHorsUe"
msgstr "Organisme Destinataire 1"
msgid "fiche.champTypeGarantieHorsUe"
msgstr "Type De Garantie 1"
msgid "fiche.champPaysDestinataireHorsUe"
msgstr "Pays Destinataire 1"
msgid "fiche.champTypeDonneeSensible"
msgstr "Type De Donnée Sensible 1"
msgid "fiche.champDureeConservation"
msgstr "Description 1"
msgid "fiche.champDescriptionDonneSensible"
msgstr "Durée De Conservation 1"
###############################################################################
......@@ -200,4 +200,43 @@ msgstr "Fichier"
msgid "formulaire.btnEnregistreFormulaire"
msgstr " Enregistrer ce formulaire"
msgid "formulaire.champUsesousfinalite"
msgstr "Voulez-vous utiliser les champs concernant la sous-finalité ?"
msgid "formulaire.champUsedecisionautomatisee"
msgstr "Voulez-vous utiliser les champs concernant la décision automatisée sur un traitement ?"
msgid "formulaire.champUsebaselegale"
msgstr "Voulez-vous utiliser le champ base légale ?"
msgid "formulaire.champUsetransferthorsue"
msgstr "Voulez-vous utiliser les champs concernant le tranfert hors UE ?"
msgid "formulaire.champUsedonneessensible"
msgstr "Voulez-vous utiliser les champs concernant les données sensibles ?"
msgid "formulaire.champTypeDonneeSensible"
msgstr "Type de donnée sensible 1"
msgid "formulaire.champDescriptionDonneSensible"
msgstr "Durée de conservation 1"
msgid "formulaire.champDureeConservation"
msgstr "Description 1"
msgid "formulaire.champUseOtherFormatAnnexe"
msgstr "Voulez-vous utiliser les champs concernant le tranfert hors UE ?"
msgid "formulaire.textInfoFonctionnementAnnexe"
msgstr "Par défaut, lors de la déclaration d'un traitement, l'utilisateur pourra déposer des fichiers en mode 'cliquer déposer' au format '.odt' ou '.pdf' "
msgid "formulaire.champUseallextensionfiles"
msgstr "Voulez-vous utiliser d'autre format (autre que '.odt' et '.pdf') pour les fichiers en annexe ?"
msgid "formulaire.alertInfoUseAllExtention"
msgstr "ATTENTION : si vous autorisez l'utilisation de tous les formats de fichiers en annexe, seuls les formats '.odt' et '.pdf' pourront être intégré lors de la génération documentaire du registre."
msgid "formulaire.infoExtentionUtilisable"
msgstr "Seuls les fichiers au format 'xls', '.doc', '.docx', '.ppt', '.pptx', '.gif', '.jpeg', '.jpg', '.png', '.odp', '.ods', '.odt', '.pdf' sont acceptés"
###############################################################################
\ No newline at end of file
......@@ -203,4 +203,7 @@ msgstr "Afficher les traitements avec co-responsabilité"
msgid "registre.textTableauCoresponsable"
msgstr "Co-responsable :"
msgid "registre.textTableauSousTraitance"
msgstr "Sous-traitance :"
###############################################################################
\ No newline at end of file
......@@ -24,8 +24,6 @@ App::uses('AppModel', 'Model');
class Champ extends AppModel {
public $tablePrefix = 'fg_';
/**
* hasOne associations
*
......@@ -39,7 +37,7 @@ class Champ extends AppModel {
public $hasOne = [
'Formulaire' => [
'className' => 'Formulaire',
'foreignKey' => 'formulaires_id'
'foreignKey' => 'id'
]
];
......
......@@ -39,6 +39,12 @@ class EtatFiche extends AppModel {
const INITIALISATION_TRAITEMENT = 11; // Initialisation du traitement par le DPO
const REDACTION_TRAITEMENT_INITIALISE = 12; // Rédaction du traitement initialisé
const LISTE_ETAT_TRAITEMENT_REGISTRE = [
EtatFiche::VALIDER_DPO,
EtatFiche::ARCHIVER,
EtatFiche::MODIFICATION_TRAITEMENT_REGISTRE
];
/**
* belongsTo associations
*
......
......@@ -33,6 +33,248 @@ class Fiche extends AppModel {
public $name = 'Fiche';
const LISTE_BASE_LEGALE = [
"Le consentement" => "Le consentement",
"Le contrat" => "Le contrat",
"L’obligation légale" => "L’obligation légale",
"La sauvegarde des intérêts vitaux" => "La sauvegarde des intérêts vitaux",
"L’intérêt public" => "L’intérêt public",
"Les intérêts légitimes" => "Les intérêts légitimes"
];
const LISTE_PAYS_HORS_UE = [
"AFGHANISTAN" => "AFGHANISTAN",
"AFRIQUE DU SUD" => "AFRIQUE DU SUD",
"ALBANIE" => "ALBANIE",
"ALGERIE" => "ALGERIE",
"ANDORRA" => "ANDORRA",
"ANGOLA" => "ANGOLA",
"ANGUILLA" => "ANGUILLA",
"ANTARCTIQUE" => "ANTARCTIQUE",
"ANTIGUA ET BARBUDA" => "ANTIGUA ET BARBUDA",
"ANTILLES NERLANDAISES" => "ANTILLES NERLANDAISES",
"ARABIE SAOUDITE" => "ARABIE SAOUDITE",
"ARGENTINE" => "ARGENTINE",
"ARMENIE" => "ARMENIE",
"ARUBA" => "ARUBA",
"AUSTRALIE" => "AUSTRALIE",
"AZERBAIDJAN" => "AZERBAIDJAN",
"BAHAMAS" => "BAHAMAS",
"BAHREIN" => "BAHREIN",
"BANGLADESH" => "BANGLADESH",
"BARBADE" => "BARBADE",
"BIÉLORUSSIE" => "BIÉLORUSSIE",
"BELIZE" => "BELIZE",
"BENIN" => "BENIN",
"BERMUDES" => "BERMUDES",
"BHOUTAN" => "BHOUTAN",
"BOLIVIE" => "BOLIVIE",
"BOSNIE ET HERZEGOVINE" => "BOSNIE ET HERZEGOVINE",
"BOTSWANA" => "BOTSWANA",
"BOUVET, ILE" => "BOUVET, ILE",
"BRESIL" => "BRESIL",
"BRUNEI DARUSSALAM" => "BRUNEI DARUSSALAM",
"BURKINA FASO" => "BURKINA FASO",
"BURUNDI" => "BURUNDI",
"CAMBODGE" => "CAMBODGE",
"CAMEROUN" => "CAMEROUN",
"CANADA" => "CANADA",
"CAP VERT" => "CAP VERT",
"CAYMAN, ILES" => "CAYMAN, ILES",
"CENTRAFRICAINE, REPUBLIQUE" => "CENTRAFRICAINE, REPUBLIQUE",
"CEUTA" => "CEUTA",
"CHILI" => "CHILI",
"CHINE" => "CHINE",
"CHRISTMAS, ILE" => "CHRISTMAS, ILE",
"COCOS, ILES (KEELING)" => "COCOS, ILES (KEELING)",
"COLOMBIE" => "COLOMBIE",
"COMORES" => "COMORES",
"CONGO" => "CONGO",
"CONGO, REPUBLIQUE DEMOCRATIQUE DU" => "CONGO, REPUBLIQUE DEMOCRATIQUE DU",
"COOK, ILES" => "COOK, ILES",
"COREE DU NORD" => "COREE DU NORD",
"COREE DU SUD" => "COREE DU SUD",
"COSTA RICA" => "COSTA RICA",
"COTE D'IVOIRE" => "COTE D'IVOIRE",
"CUBA" => "CUBA",
"DJIBOUTI" => "DJIBOUTI",
"DOMINICAINE, REPUBLIQUE" => "DOMINICAINE, REPUBLIQUE",
"DOMINIQUE" => "DOMINIQUE",
"EGYPTE" => "EGYPTE",
"EMIRATS ARABES UNIS" => "EMIRATS ARABES UNIS",
"EQUATEUR" => "EQUATEUR",
"ERYTHREE" => "ERYTHREE",
"ETATS-UNIS" => "ETATS-UNIS",
"ETATS-UNIS, ILES MINEURS ELOIGNEES DES" => "ETATS-UNIS, ILES MINEURS ELOIGNEES DES",
"ETHIOPIE" => "ETHIOPIE",
"FEROE ILES" => "FEROE ILES",
"FIDJI" => "FIDJI",
"GABON" => "GABON",
"GAMBIE" => "GAMBIE",
"GEORGIE" => "GEORGIE",
"GEORGIE DU SUD ET ILES SANDWICH DU SUD" => "GEORGIE DU SUD ET ILES SANDWICH DU SUD",
"GHANA" => "GHANA",
"GIBRALTAR" => "GIBRALTAR",
"GRENADE" => "GRENADE",
"GROENLAND" => "GROENLAND",
"GUAM" => "GUAM",
"GUATEMALA" => "GUATEMALA",
"GUINEE" => "GUINEE",
"GUINEE EQUATORIALE" => "GUINEE EQUATORIALE",
"GUINEE-BISSAU" => "GUINEE-BISSAU",
"GUYANA" => "GUYANA",
"HAITI" => "HAITI",
"HEARD, ILE ET MC DONALD, ILES" => "HEARD, ILE ET MC DONALD, ILES",
"HONDURAS" => "HONDURAS",
"HONG KONG" => "HONG KONG",
"INDE" => "INDE",
"INDONESIE" => "INDONESIE",
"IRAK" => "IRAK",
"IRAN" => "IRAN",
"ISLANDE" => "ISLANDE",
"ISRAEL" => "ISRAEL",
"JAMAIQUE" => "JAMAIQUE",
"JAPON" => "JAPON",
"JORDANIE" => "JORDANIE",
"KAZAKHSTAN" => "KAZAKHSTAN",
"KENYA" => "KENYA",
"KIRGHIZSTAN" => "KIRGHIZSTAN",
"KIRIBATI" => "KIRIBATI",
"KOSOVO" => "KOSOVO",
"KOWEIT" => "KOWEIT",
"LAOS" => "LAOS",
"LESOTHO" => "LESOTHO",
"LIBAN" => "LIBAN",
"LIBERIA" => "LIBERIA",
"LIBYE" => "LIBYE",
"LIECHTENSTEIN" => "LIECHTENSTEIN",
"MACAO" => "MACAO",
"REPUBLIQUE DE MACEDOINE DU NORD" => "REPUBLIQUE DE MACEDOINE DU NORD",
"MADAGASCAR" => "MADAGASCAR",
"MALAISIE" => "MALAISIE",
"MALAWI" => "MALAWI",
"MALDIVES" => "MALDIVES",
"MALI" => "MALI",
"MALOUINES , ILES" => "MALOUINES , ILES",
"MARIANNE DU NORD, ILES" => "MARIANNE DU NORD, ILES",
"MAROC" => "MAROC",
"MARSHALL, ILES" => "MARSHALL, ILES",
"MAURICE" => "MAURICE",
"MAURITANIE" => "MAURITANIE",
"MELILLA" => "MELILLA",
"MEXIQUE" => "MEXIQUE",
"MICRONESIE, ETATS FEDERES DE" => "MICRONESIE, ETATS FEDERES DE",
"MOLDAVIE, REPUBLIQUE DE" => "MOLDAVIE, REPUBLIQUE DE",
"MONGOLIE" => "MONGOLIE",
"MONTENEGRO" => "MONTENEGRO",
"MONTSERRAT" => "MONTSERRAT",
"MOZAMBIQUE" => "MOZAMBIQUE",
"MYANMAR" => "MYANMAR",
"NAMIBIE" => "NAMIBIE",
"NAURU" => "NAURU",
"NEPAL" => "NEPAL",
"NICARAGUA" => "NICARAGUA",
"NIGER" => "NIGER",
"NIGERIA" => "NIGERIA",
"NIUE" => "NIUE",
"NORFOLK, ILES" => "NORFOLK, ILES",
"NORVEGE" => "NORVEGE",
"NOUVELLE- CALEDONIE" => "NOUVELLE- CALEDONIE",
"NOUVELLE- ZELANDE" => "NOUVELLE- ZELANDE",
"OCEAN INDIEN, TERRITOIRE BRITANNIQUE" => "OCEAN INDIEN, TERRITOIRE BRITANNIQUE",
"OMAN" => "OMAN",
"OUGANDA" => "OUGANDA",
"OUZBEKISTAN" => "OUZBEKISTAN",
"PAKISTAN" => "PAKISTAN",
"PALAOS" => "PALAOS",
"PALESTINE" => "PALESTINE",
"PANAMA" => "PANAMA",
"PAPOUASIE NOUVELLE-GUINEE" => "PAPOUASIE NOUVELLE-GUINEE",
"PARAGUAY" => "PARAGUAY",
"PEROU" => "PEROU",
"PHILIPPINES" => "PHILIPPINES",
"PITCAIRN, ILES" => "PITCAIRN, ILES",
"POLYNESIE FRANCAISE" => "POLYNESIE FRANCAISE",
"QATAR" => "QATAR",
"RUSSIE, FEDERATION" => "RUSSIE, FEDERATION",
"RWANDA" => "RWANDA",
"SAINT BARTHELEMY" => "SAINT BARTHELEMY",
"SAINT- CHRISTOPHE-ET-NEVIS" => "SAINT- CHRISTOPHE-ET-NEVIS",
"SAINTE-LUCIE" => "SAINTE-LUCIE",
"SAINT-HELENE (Y COMPRIS ILES ASCENSION ET TRISTAN DE CUNHA)" => "SAINT-HELENE (Y COMPRIS ILES ASCENSION ET TRISTAN DE CUNHA)",
"SAINT-MARIN" => "SAINT-MARIN",
"SAINT-PIERRE ET MIQUELON" => "SAINT-PIERRE ET MIQUELON",
"SAINT-VINCENT ET LES GRENADINES" => "SAINT-VINCENT ET LES GRENADINES",
"SALOMON, ILES" => "SALOMON, ILES",
"SALVADOR" => "SALVADOR",
"SAMOA" => "SAMOA",
"SAMOA AMERICAINE" => "SAMOA AMERICAINE",
"SAO TOME ET PRINCIPE" => "SAO TOME ET PRINCIPE",