aboutsummaryrefslogtreecommitdiff
path: root/sgdfi/_dbs
diff options
context:
space:
mode:
authorThomas "Cakeisalie5" Touhey <thomas@touhey.fr>2018-10-04 13:59:03 +0200
committerThomas "Cakeisalie5" Touhey <thomas@touhey.fr>2018-10-04 13:59:03 +0200
commitea182c4cba8b3b0127abdc4937be889bf7b121db (patch)
tree66988aa2fa11075e151ceedb02636e84f713aab1 /sgdfi/_dbs
parent0c722731c2f36352ec35a09588de9e8e4cec298d (diff)
Can automatically load functions from the intranet now.
Diffstat (limited to 'sgdfi/_dbs')
-rwxr-xr-xsgdfi/_dbs/__init__.py9
-rw-r--r--sgdfi/_dbs/_funcdata.py356
-rwxr-xr-xsgdfi/_dbs/_funcs.py464
-rw-r--r--sgdfi/_dbs/_regime.py26
-rwxr-xr-xsgdfi/_dbs/_st.py4
-rwxr-xr-xsgdfi/_dbs/_ststatus.py91
6 files changed, 579 insertions, 371 deletions
diff --git a/sgdfi/_dbs/__init__.py b/sgdfi/_dbs/__init__.py
index d6f79a9..10f4180 100755
--- a/sgdfi/_dbs/__init__.py
+++ b/sgdfi/_dbs/__init__.py
@@ -5,8 +5,11 @@
#******************************************************************************
""" Databases for SGDFi. """
-from ._ops import OperationType, OperationTypeData
-from ._st import StructureType, StructureTypeData
-from ._funcs import Function, FunctionData
+from ._ops import OperationType, OperationTypeData
+from ._st import StructureType, StructureTypeData
+from ._ststatus import StructureStatus, StructureStatusData
+from ._funcs import Function, FunctionData, FunctionRawData
+
+from ._regime import AllocationsRegime
# End of file.
diff --git a/sgdfi/_dbs/_funcdata.py b/sgdfi/_dbs/_funcdata.py
new file mode 100644
index 0000000..b3e9fcc
--- /dev/null
+++ b/sgdfi/_dbs/_funcdata.py
@@ -0,0 +1,356 @@
+#!/usr/bin/env python3
+#******************************************************************************
+# Copyright (C) 2018 Thomas "Cakeisalie5" Touhey <thomas@touhey.fr>
+# This file is part of the sgdfi project, which is MIT-licensed.
+#******************************************************************************
+""" Functions generated data for SGDFi. """
+
+from enum import Enum as _Enum
+
+class Function(_Enum):
+ """ Unknown function. """
+ UNKNOWN = 0
+
+ LOUVETEAU = 1
+ MOUSSAILLON = 2
+ SCOUT = 3
+ MOUSSE = 4
+ PIONNIER = 5
+ MARIN = 6
+ COMPAGNON = 7
+ COMPAGNON_MARIN = 8
+ COMPAGNON_3EME_TEMPS = 9
+ ECLAIREUR = 10
+ FARFADET = 11
+ MEMBRE_ASSOCIE_L = 12
+ MEMBRE_ASSOCIE_N = 13
+ MEMBRE_ASSOCIE_T = 14
+ VENT_DU_LARGE = 15
+ RESPONSABLE_D_UNITE_LOUVETEAU_JEANNETTE = 16
+ RESPONSABLE_D_UNITE_MOUSSAILLON = 17
+ CHEF_LOUVETEAU_JEANNETTE = 18
+ CHEF_MOUSSAILLON = 19
+ RESPONSABLE_D_UNITE_SCOUT_GUIDE = 20
+ RESPONSABLE_D_UNITE_MOUSSE = 21
+ CHEF_SCOUT_GUIDE = 22
+ CHEF_MOUSSE = 23
+ RESPONSABLE_D_UNITE_PIONNIER_CARAVELLE = 24
+ RESPONSABLE_D_UNITE_FLOTILLE_CARAVELLE_MARINE = 25
+ CHEF_PIONNIER_CARAVELLE = 26
+ CHEF_FLOTILLE_CARAVELLE_MARINE = 27
+ ACCOMPAGNATEUR_COMPAGNON = 28
+ RESPONSABLE_FARFADET = 29
+ PARENT_ANIMATEUR_FARFADET = 30
+ RESPONSABLE_VENT_DU_LARGE = 31
+ RESPONSABLE_DE_GROUPE = 32
+ RESPONSABLE_DE_GROUPE_ADJOINT = 33
+ AUMONIER_DE_GROUPE = 34
+ SECRETAIRE_DE_GROUPE = 35
+ TRESORIER_DE_GROUPE = 36
+ ANIMATEUR_CLEOPHAS_L = 37
+ CHARGE_DE_MISSION__DU_GROUPE = 38
+ REFERENT_TECHNIQUE_MARIN = 39
+ REPRESENTANT_ASSOCIATIF = 40
+ OUVREUR_DE_GROUPE_L = 41
+ DIRECTEUR_DE_CAMP = 42
+ RESPONSABLE_LOCAL_DEVELOPPEMENT_ET_RESEAUX = 43
+ FF_TRESORIER_DE_GROUPE = 44
+ NOMINATION_DES_CHEFS_ET_EQUIPIERS_DE_GROUPE = 45
+ FF_RESPONSABLE_DE_GROUPE = 46
+ DELEGUE_TERRITORIAL = 47
+ DELEGUE_TERRITORIAL_ADJOINT = 48
+ AUMONIER_TERRITORIAL = 49
+ RESPONSABLE_POLE_PEDAGOGIQUE = 50
+ RESPONSABLE_POLE_DEVELOPPEMENT = 51
+ RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER = 52
+ FF_RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER = 53
+ NOMINATION_DES_EQUIPIERS_TERRITORIAUX = 54
+ FF_DELEGUE_TERRITORIAL = 55
+ ACCOMPAGNATEUR_PEDAGOGIQUE = 56
+ AUMONIER_DIOCESAIN = 57
+ ACCOMPAGNATEUR_DES_RESPONSABLES_DE_GROUPE = 58
+ ANIMATEUR_CLEOPHAS_T = 59
+ CHARGE_MISSION_DEVELOPPEMENT = 60
+ COORDINATEUR_DEVELOPPEMENT_ET_RESEAUX = 61
+ OUVREUR_DE_GROUPE_T = 62
+ RESPONSABLE_RECRUTEMENT = 63
+ RESPONSABLE_PARTENARIATS_FINANCIERS = 64
+ RESPONSABLE_COMMUNICATION = 65
+ CORRESPONDANT_HANDICAP = 66
+ RESPONSABLE_SCOUTISME_EN_QUARTIER = 67
+ CHARGE_MISSION_TERRITORIAL = 68
+ MEDIATEUR_T = 69
+ REPRESENTANT_ASSOCIATIF_L = 70
+ RESPONSABLE_BOUTIQUE_SGDF = 71
+ DIRECTEUR_DE_CAMP_TERRITORIAL = 72
+ TRESORIER_DE_BOUTIQUE = 73
+ CHARGE_DE_MISSION_RASSEMBLEMENT = 74
+ CHARGE_MISSION_ADMINISTRATIF = 75
+ GESTIONNAIRE_MATERIEL_ET_LOGISTIQUE = 76
+ TRESORIER_DE_BASE = 77
+ EQUIPIER_DE_BASE = 78
+ RESPONSABLE_DE_BASE = 79
+ SECRETAIRE_TERRITORIAL = 80
+ CHARGE_DE_MISSION_RW2016_T = 81
+ TRESORIER_TERRITORIAL = 82
+ FF_TRESORIER_TERRITORIAL = 83
+ DIRECTEUR_DE_STAGE = 84
+ DIRECTEUR_DE_CAMP_GROUPE = 85
+ VOLONTAIRE_SERVICE_CIVIQUE = 86
+ VOLONTAIRE_SERVICE_INTERNATIONAL = 87
+ DELEGUE_GENERAL = 88
+ DELEGUE_GENERAL_ADJOINT = 89
+ AUMONIER_GENERAL = 90
+ DELEGUE_NATIONAL = 91
+ RESPONSABLE_NATIONAL = 92
+ AUMONIER_NATIONAL = 93
+ EQUIPIER_NATIONAL = 94
+ RESPONSABLE_DE_LA_FORMATION_CR = 95
+ CHARGE_MISSION = 96
+ CHARGE_MISSION_PAYS = 97
+ ADMINISTRATEUR = 98
+ MEMBRE_D_HONNEUR = 99
+ MEDIATEUR_N = 100
+ REPRESENTANT_ASSOCIATIF_T = 101
+ SALARIE = 102
+ SALARIE_FORMATION = 103
+ SALARIE_SERVICE_INTERNATIONAL = 104
+ CONSULTANT_BATEAU = 105
+ ASSISTANT_DE_SAISIE = 106
+ CHARGE_DE_MISSION_RW2016_N = 107
+ CHARGE_DE_MISSION_RASSEMBLEMENT_EN = 108
+ ADMINISTRATEUR_MODULE_FORMATION = 109
+ CONSULTANT_INTEGRATION = 110
+ SALARIE_COMPTABILITE = 111
+ SALARIE_ASSURANCE = 112
+ ADMINISTRATEUR_ASSURANCE = 113
+ SALARIE_CENTRE_DE_RESSOURCES = 114
+ ADMINISTRATEUR_COMPTABILITE = 115
+ DIRECTEUR_DE_CENTRE_DE_RESSOURCES = 116
+ RESPONSABLE_ADMINISTRATIF_CR = 117
+ ANIMATION_TERRITORIALE_ET_DEVELOPPEMENT = 118
+ ADMINISTRATEUR_INTRANET = 119
+ MONITORING_APPLICATIF = 120
+
+FunctionData = {
+ Function.LOUVETEAU: ("110", 8434, 'LOUVETEAU', 'JEANNETTE'),
+ Function.MOUSSAILLON: ("110M", 8435, 'MOUSSAILLON'),
+ Function.SCOUT: ("120", 8440, 'SCOUT', 'GUIDE'),
+ Function.MOUSSE: ("120M", 8441, 'MOUSSE'),
+ Function.PIONNIER: ("130", 8487, 'PIONNIER', 'CARAVELLE'),
+ Function.MARIN: ("130M", 8488, 'MARIN', 'CARAVELLE MARINE'),
+ Function.COMPAGNON: ("140", 8493, 'COMPAGNON'),
+ Function.COMPAGNON_MARIN: ("140M", 8494, 'COMPAGNON MARIN'),
+ Function.COMPAGNON_3EME_TEMPS: ("141", 8495, 'COMPAGNON 3EME TEMPS'),
+ Function.ECLAIREUR: ("150", 8501, 'ECLAIREUR', 'ECLAIREUSE'),
+ Function.FARFADET: ("170", 8497, 'FARFADET'),
+ Function.MEMBRE_ASSOCIE_L: ("180L", 8439, 'MEMBRE ASSOCIE',
+ 'MEMBRE ASSOCIEE'),
+ Function.MEMBRE_ASSOCIE_N: ("180N", 8445, 'MEMBRE ASSOCIE',
+ 'MEMBRE ASSOCIEE'),
+ Function.MEMBRE_ASSOCIE_T: ("180T", 8438, 'MEMBRE ASSOCIE',
+ 'MEMBRE ASSOCIEE'),
+ Function.VENT_DU_LARGE: ("193", 8499, 'VENT DU LARGE'),
+ Function.RESPONSABLE_D_UNITE_LOUVETEAU_JEANNETTE: ("210", 8436,
+ "RESPONSABLE D'UNITE LOUVETEAU JEANNETTE"),
+ Function.RESPONSABLE_D_UNITE_MOUSSAILLON: ("210M", 8550,
+ "RESPONSABLE D'UNITE MOUSSAILLON"),
+ Function.CHEF_LOUVETEAU_JEANNETTE: ("213", 8551,
+ 'CHEF LOUVETEAU JEANNETTE', 'CHEFTAINE LOUVETEAU JEANNETTE'),
+ Function.CHEF_MOUSSAILLON: ("213M", 8552, 'CHEF MOUSSAILLON',
+ 'CHEFTAINE MOUSSAILLON'),
+ Function.RESPONSABLE_D_UNITE_SCOUT_GUIDE: ("220", 8442,
+ "RESPONSABLE D'UNITE SCOUT GUIDE"),
+ Function.RESPONSABLE_D_UNITE_MOUSSE: ("220M", 8484,
+ "RESPONSABLE D'UNITE MOUSSE"),
+ Function.CHEF_SCOUT_GUIDE: ("223", 8485, 'CHEF SCOUT GUIDE',
+ 'CHEFTAINE SCOUT GUIDE'),
+ Function.CHEF_MOUSSE: ("223M", 8486, 'CHEF MOUSSE',
+ 'CHEFTAINE MOUSSE'),
+ Function.RESPONSABLE_D_UNITE_PIONNIER_CARAVELLE: ("230", 8489,
+ "RESPONSABLE D'UNITE PIONNIER CARAVELLE"),
+ Function.RESPONSABLE_D_UNITE_FLOTILLE_CARAVELLE_MARINE: ("230M", 8490,
+ "RESPONSABLE D'UNITE FLOTILLE - CARAVELLE MARINE"),
+ Function.CHEF_PIONNIER_CARAVELLE: ("233", 8491,
+ 'CHEF PIONNIER CARAVELLE', 'CHEFTAINE PIONNIER CARAVELLE'),
+ Function.CHEF_FLOTILLE_CARAVELLE_MARINE: ("233M", 8492,
+ 'CHEF FLOTILLE - CARAVELLE MARINE',
+ 'CHEFTAINE FLOTILLE - CARAVELLE MARINE'),
+ Function.ACCOMPAGNATEUR_COMPAGNON: ("240", 8496,
+ 'ACCOMPAGNATEUR COMPAGNON', 'ACCOMPAGNATRICE COMPAGNON'),
+ Function.RESPONSABLE_FARFADET: ("270", 8498, 'RESPONSABLE FARFADET'),
+ Function.PARENT_ANIMATEUR_FARFADET: ("271", 8554,
+ 'PARENT ANIMATEUR FARFADET'),
+ Function.RESPONSABLE_VENT_DU_LARGE: ("293", 8500,
+ 'RESPONSABLE VENT DU LARGE'),
+ Function.RESPONSABLE_DE_GROUPE: ("300", 8502,
+ 'RESPONSABLE DE GROUPE'),
+ Function.RESPONSABLE_DE_GROUPE_ADJOINT: ("301", 8503,
+ 'RESPONSABLE DE GROUPE ADJOINT', 'RESPONSABLE DE GROUPE ADJOINTE'),
+ Function.AUMONIER_DE_GROUPE: ("302", 8504, 'AUMONIER DE GROUPE'),
+ Function.SECRETAIRE_DE_GROUPE: ("307", 8506, 'SECRETAIRE DE GROUPE'),
+ Function.TRESORIER_DE_GROUPE: ("309", 8508, 'TRESORIER DE GROUPE',
+ 'TRESORIERE DE GROUPE'),
+ Function.ANIMATEUR_CLEOPHAS_L: ("316", 8509, 'ANIMATEUR CLEOPHAS',
+ 'ANIMATRICE CLEOPHAS'),
+ Function.CHARGE_DE_MISSION__DU_GROUPE: ("330", 8511,
+ 'CHARGE DE MISSION DU GROUPE', 'CHARGEE DE MISSION DU GROUPE'),
+ Function.REFERENT_TECHNIQUE_MARIN: ("330M", 8512,
+ 'REFERENT TECHNIQUE MARIN', 'REFERENTE TECHNIQUE MARIN'),
+ Function.REPRESENTANT_ASSOCIATIF_L: ("332", 8513,
+ 'REPRESENTANT ASSOCIATIF'),
+ Function.OUVREUR_DE_GROUPE_L: ("333", 8516, 'OUVREUR DE GROUPE'),
+ Function.DIRECTEUR_DE_CAMP: ("351", 8517, 'DIRECTEUR DE CAMP',
+ 'DIRECTRICE DE CAMP'),
+ Function.RESPONSABLE_LOCAL_DEVELOPPEMENT_ET_RESEAUX: ("380", 8518,
+ 'RESPONSABLE LOCAL DEVELOPPEMENT ET RESEAUX'),
+ Function.FF_TRESORIER_DE_GROUPE: ("391", 8519,
+ 'FF TRESORIER DE GROUPE', 'FF TRESORIERE DE GROUPE'),
+ Function.NOMINATION_DES_CHEFS_ET_EQUIPIERS_DE_GROUPE: ("397", 8480,
+ 'NOMINATION DES CHEFS ET EQUIPIERS DE GROUPE'),
+ Function.FF_RESPONSABLE_DE_GROUPE: ("399", 8520,
+ 'FF RESPONSABLE DE GROUPE'),
+ Function.DELEGUE_TERRITORIAL: ("500", 8482, 'DELEGUE TERRITORIAL',
+ 'DELEGUEE TERRITORIALE'),
+ Function.DELEGUE_TERRITORIAL_ADJOINT: ("501", 8481,
+ 'DELEGUE TERRITORIAL ADJOINT', 'DELEGUEE TERRITORIALE ADJOINTE'),
+ Function.AUMONIER_TERRITORIAL: ("502", 8505, 'AUMONIER TERRITORIAL'),
+ Function.RESPONSABLE_POLE_PEDAGOGIQUE: ("503", 8521,
+ 'RESPONSABLE POLE PEDAGOGIQUE'),
+ Function.RESPONSABLE_POLE_DEVELOPPEMENT: ("504", 8522,
+ 'RESPONSABLE POLE DEVELOPPEMENT'),
+ Function.RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER: ("505", 8515,
+ 'RESPONSABLE POLE ADMINISTRATIF ET FINANCIER'),
+ Function.FF_RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER: ("591", 8514,
+ 'FF RESPONSABLE POLE ADMINISTRATIF ET FINANCIER'),
+ Function.NOMINATION_DES_EQUIPIERS_TERRITORIAUX: ("597", 8507,
+ 'NOMINATION DES EQUIPIERS TERRITORIAUX'),
+ Function.FF_DELEGUE_TERRITORIAL: ("598", 8483,
+ 'FF DELEGUE TERRITORIAL', 'FF DELEGUEE TERRITORIALE'),
+ Function.ACCOMPAGNATEUR_PEDAGOGIQUE: ("600", 8523,
+ 'ACCOMPAGNATEUR PEDAGOGIQUE', 'ACCOMPAGNATRICE PEDAGOGIQUE'),
+ Function.AUMONIER_DIOCESAIN: ("602", 8510, 'AUMONIER DIOCESAIN'),
+ Function.ACCOMPAGNATEUR_DES_RESPONSABLES_DE_GROUPE: ("609", 8524,
+ 'ACCOMPAGNATEUR DES RESPONSABLES DE GROUPE'),
+ Function.ANIMATEUR_CLEOPHAS_T: ("616", 8525, 'ANIMATEUR CLEOPHAS',
+ 'ANIMATRICE CLEOPHAS'),
+ Function.CHARGE_MISSION_DEVELOPPEMENT: ("620", 8526,
+ 'CHARGE MISSION DEVELOPPEMENT', 'CHARGEE MISSION DEVELOPPEMENT'),
+ Function.COORDINATEUR_DEVELOPPEMENT_ET_RESEAUX: ("621", 8527,
+ 'COORDINATEUR DEVELOPPEMENT ET RESEAUX',
+ 'COORDINATRICE DEVELOPPEMENT ET RESEAUX'),
+ Function.OUVREUR_DE_GROUPE_T: ("622", 8528, 'OUVREUR DE GROUPE'),
+ Function.RESPONSABLE_RECRUTEMENT: ("623", 8529,
+ 'RESPONSABLE RECRUTEMENT'),
+ Function.RESPONSABLE_PARTENARIATS_FINANCIERS: ("624", 8530,
+ 'RESPONSABLE PARTENARIATS FINANCIERS'),
+ Function.RESPONSABLE_COMMUNICATION: ("625", 8531,
+ 'RESPONSABLE COMMUNICATION'),
+ Function.CORRESPONDANT_HANDICAP: ("626", 8532,
+ 'CORRESPONDANT HANDICAP'),
+ Function.RESPONSABLE_SCOUTISME_EN_QUARTIER: ("627", 8533,
+ 'RESPONSABLE SCOUTISME EN QUARTIER'),
+ Function.CHARGE_MISSION_TERRITORIAL: ("630", 8534,
+ 'CHARGE MISSION TERRITORIAL', 'CHARGEE MISSION TERRITORIALE'),
+ Function.MEDIATEUR_T: ("631", 8535, 'MEDIATEUR', 'MEDIATRICE'),
+ Function.REPRESENTANT_ASSOCIATIF_T: ("632", 8536,
+ 'REPRESENTANT ASSOCIATIF', 'REPRESENTANTE ASSOCIATIF'),
+ Function.RESPONSABLE_BOUTIQUE_SGDF: ("650", 8537,
+ 'RESPONSABLE BOUTIQUE SGDF'),
+ Function.DIRECTEUR_DE_CAMP_TERRITORIAL: ("651", 8538,
+ 'DIRECTEUR DE CAMP TERRITORIAL', 'DIRECTRICE DE CAMP TERRITORIAL'),
+ Function.TRESORIER_DE_BOUTIQUE: ("652", 8539, 'TRESORIER DE BOUTIQUE',
+ 'TRESORIERE DE BOUTIQUE'),
+ Function.CHARGE_DE_MISSION_RASSEMBLEMENT: ("659", 8540,
+ 'CHARGE DE MISSION RASSEMBLEMENT'),
+ Function.CHARGE_MISSION_ADMINISTRATIF: ("660", 8541,
+ 'CHARGE MISSION ADMINISTRATIF', 'CHARGEE MISSION ADMINISTRATIF'),
+ Function.GESTIONNAIRE_MATERIEL_ET_LOGISTIQUE: ("661", 8542,
+ 'GESTIONNAIRE MATERIEL ET LOGISTIQUE'),
+ Function.TRESORIER_DE_BASE: ("663", 8543, 'TRESORIER DE BASE',
+ 'TRESORIERE DE BASE'),
+ Function.EQUIPIER_DE_BASE: ("664", 8544, 'EQUIPIER DE BASE',
+ 'EQUIPIERE DE BASE'),
+ Function.RESPONSABLE_DE_BASE: ("665", 8545, 'RESPONSABLE DE BASE'),
+ Function.SECRETAIRE_TERRITORIAL: ("670", 8546,
+ 'SECRETAIRE TERRITORIAL', 'SECRETAIRE TERRITORIALE'),
+ Function.CHARGE_DE_MISSION_RW2016_T: ("685", 8547,
+ 'CHARGE DE MISSION RW2016 T', 'CHARGEE DE MISSION RW2016 T'),
+ Function.TRESORIER_TERRITORIAL: ("690", 8548, 'TRESORIER TERRITORIAL',
+ 'TRESORIERE TERRITORIALE'),
+ Function.FF_TRESORIER_TERRITORIAL: ("691", 8549,
+ 'FF TRESORIER TERRITORIAL', 'FF TRESORIERE TERRITORIAL'),
+ Function.DIRECTEUR_DE_STAGE: ("850", 8446, 'DIRECTEUR DE STAGE',
+ 'DIRECTRICE DE STAGE'),
+ Function.DIRECTEUR_DE_CAMP_GROUPE: ("851", 8447,
+ 'DIRECTEUR DE CAMP GROUPE', 'DIRECTRICE DE CAMP GROUPE'),
+ Function.VOLONTAIRE_SERVICE_CIVIQUE: ("860", 8451,
+ 'VOLONTAIRE SERVICE CIVIQUE'),
+ Function.VOLONTAIRE_SERVICE_INTERNATIONAL: ("861", 8452,
+ 'VOLONTAIRE SERVICE INTERNATIONAL'),
+ Function.DELEGUE_GENERAL: ("900", 8449, 'DELEGUE GENERAL',
+ 'DELEGUEE GENERALE'),
+ Function.DELEGUE_GENERAL_ADJOINT: ("901", 8450,
+ 'DELEGUE GENERAL ADJOINT', 'DELEGUEE GENERALE ADJOINTE'),
+ Function.AUMONIER_GENERAL: ("902", 8453, 'AUMONIER GENERAL'),
+ Function.DELEGUE_NATIONAL: ("903", 8454, 'DELEGUE NATIONAL',
+ 'DELEGUEE NATIONALE'),
+ Function.RESPONSABLE_NATIONAL: ("910", 8448, 'RESPONSABLE NATIONAL',
+ 'RESPONSABLE NATIONALE'),
+ Function.AUMONIER_NATIONAL: ("911", 8455, 'AUMONIER NATIONAL'),
+ Function.EQUIPIER_NATIONAL: ("912", 8456, 'EQUIPIER NATIONAL',
+ 'EQUIPIERE NATIONALE'),
+ Function.RESPONSABLE_DE_LA_FORMATION_CR: ("913", 8457,
+ 'RESPONSABLE DE LA FORMATION CR'),
+ Function.CHARGE_MISSION: ("914", 8458, 'CHARGE MISSION',
+ 'CHARGEE MISSION'),
+ Function.CHARGE_MISSION_PAYS: ("915", 8459, 'CHARGE MISSION PAYS',
+ 'CHARGEE MISSION PAYS'),
+ Function.ADMINISTRATEUR: ("920", 8460, 'ADMINISTRATEUR',
+ 'ADMINISTRATRICE'),
+ Function.MEMBRE_D_HONNEUR: ("921", 8461, 'MEMBRE D HONNEUR'),
+ Function.MEDIATEUR_N: ("931", 8462, 'MEDIATEUR', 'MEDIATRICE'),
+ Function.REPRESENTANT_ASSOCIATIF: ("932", 8463,
+ 'REPRESENTANT ASSOCIATIF', 'REPRESENTANTE ASSOCIATIF'),
+ Function.SALARIE: ("980", 8464, 'SALARIE', 'SALARIEE'),
+ Function.SALARIE_FORMATION: ("981", 8465, 'SALARIE FORMATION',
+ 'SALARIEE FORMATION'),
+ Function.SALARIE_SERVICE_INTERNATIONAL: ("982", 8466,
+ 'SALARIE SERVICE INTERNATIONAL', 'SALARIEE SERVICE INTERNATIONAL'),
+ Function.CONSULTANT_BATEAU: ("983", 8467, 'CONSULTANT BATEAU',
+ 'CONSULTANTE BATEAU'),
+ Function.ASSISTANT_DE_SAISIE: ("984", 8468, 'ASSISTANT DE SAISIE',
+ 'ASSISTANTE DE SAISIE'),
+ Function.CHARGE_DE_MISSION_RW2016_N: ("985", 8469,
+ 'CHARGE DE MISSION RW2016 N', 'CHARGEE DE MISSION RW2016 N'),
+ Function.CHARGE_DE_MISSION_RASSEMBLEMENT_EN: ("987", 8470,
+ 'CHARGE DE MISSION RASSEMBLEMENT EN',
+ 'CHARGEE DE MISSION RASSEMBLEMENT EN'),
+ Function.ADMINISTRATEUR_MODULE_FORMATION: ("989", 8471,
+ 'ADMINISTRATEUR MODULE FORMATION', 'ADMINISTRATRICE MODULE FORMATION'),
+ Function.CONSULTANT_INTEGRATION: ("990", 8472,
+ 'Consultant Intégration', 'Consultante Intégration'),
+ Function.SALARIE_COMPTABILITE: ("991", 8473, 'SALARIE COMPTABILITE',
+ 'SALARIEE COMPTABILITE'),
+ Function.SALARIE_ASSURANCE: ("992", 8474, 'SALARIE ASSURANCE',
+ 'SALARIEE ASSURANCE'),
+ Function.ADMINISTRATEUR_ASSURANCE: ("993", 8475,
+ 'ADMINISTRATEUR ASSURANCE', 'ADMINISTRATRICE ASSURANCE'),
+ Function.SALARIE_CENTRE_DE_RESSOURCES: ("994", 8476,
+ 'SALARIE CENTRE DE RESSOURCES', 'SALARIEE CENTRE DE RESSOURCES'),
+ Function.ADMINISTRATEUR_COMPTABILITE: ("995", 8477,
+ 'ADMINISTRATEUR COMPTABILITE', 'ADMINISTRATRICE COMPTABILITE'),
+ Function.DIRECTEUR_DE_CENTRE_DE_RESSOURCES: ("996", 8478,
+ 'DIRECTEUR DE CENTRE DE RESSOURCES',
+ 'DIRECTRICE DE CENTRE DE RESSOURCES'),
+ Function.RESPONSABLE_ADMINISTRATIF_CR: ("997", 8444,
+ 'RESPONSABLE ADMINISTRATIF CR', 'RESPONSABLE ADMINISTRATIVE CR'),
+ Function.ANIMATION_TERRITORIALE_ET_DEVELOPPEMENT: ("998", 8443,
+ 'ANIMATION TERRITORIALE ET DEVELOPPEMENT'),
+ Function.ADMINISTRATEUR_INTRANET: ("999", 8437,
+ 'ADMINISTRATEUR INTRANET', 'ADMINISTRATRICE INTRANET'),
+ Function.MONITORING_APPLICATIF: ("9XX", 8479,
+ 'Monitoring applicatif'),
+}
+
+# End of file.
diff --git a/sgdfi/_dbs/_funcs.py b/sgdfi/_dbs/_funcs.py
index 5162175..9440c38 100755
--- a/sgdfi/_dbs/_funcs.py
+++ b/sgdfi/_dbs/_funcs.py
@@ -5,363 +5,16 @@
#******************************************************************************
""" Functions reference for SGDFi. """
-from enum import Enum as _Enum, unique as _unique
-
-__all__ = ["Function", "FunctionData"]
-
-@_unique
-class Function(_Enum):
- """ Unknown function. """
- UNKNOWN = 0
-
- LOUVETEAU = 1
- MOUSSAILLON = 2
- SCOUT = 3
- MOUSSE = 4
- PIONNIER = 5
- MARIN = 6
- COMPAGNON = 7
- COMPAGNON_MARIN = 8
- COMPAGNON_3EME_TEMPS = 9
- ECLAIREUR = 10
- FARFADET = 11
- MEMBRE_ASSOCIE_L = 12
- MEMBRE_ASSOCIE_N = 13
- MEMBRE_ASSOCIE_T = 14
- VENT_DU_LARGE = 15
- RESPONSABLE_D_UNITE_LOUVETEAU_JEANNETTE = 16
- RESPONSABLE_D_UNITE_MOUSSAILLON = 17
- CHEF_LOUVETEAU_JEANNETTE = 18
- CHEF_MOUSSAILLON = 19
- RESPONSABLE_D_UNITE_SCOUT_GUIDE = 20
- RESPONSABLE_D_UNITE_MOUSSE = 21
- CHEF_SCOUT_GUIDE = 22
- CHEF_MOUSSE = 23
- RESPONSABLE_D_UNITE_PIONNIER_CARAVELLE = 24
- RESPONSABLE_D_UNITE_FLOTILLE_CARAVELLE_MARINE = 25
- CHEF_PIONNIER_CARAVELLE = 26
- CHEF_FLOTILLE_CARAVELLE_MARINE = 27
- ACCOMPAGNATEUR_COMPAGNON = 28
- RESPONSABLE_FARFADET = 29
- PARENT_ANIMATEUR_FARFADET = 30
- RESPONSABLE_VENT_DU_LARGE = 31
- RESPONSABLE_DE_GROUPE = 32
- RESPONSABLE_DE_GROUPE_ADJOINT = 33
- AUMONIER_DE_GROUPE = 34
- SECRETAIRE_DE_GROUPE = 35
- TRESORIER_DE_GROUPE = 36
- ANIMATEUR_CLEOPHAS_L = 37
- CHARGE_DE_MISSION__DU_GROUPE = 38
- REFERENT_TECHNIQUE_MARIN = 39
- REPRESENTANT_ASSOCIATIF = 40
- OUVREUR_DE_GROUPE_L = 41
- DIRECTEUR_DE_CAMP = 42
- RESPONSABLE_LOCAL_DEVELOPPEMENT_ET_RESEAUX = 43
- FF_TRESORIER_DE_GROUPE = 44
- NOMINATION_DES_CHEFS_ET_EQUIPIERS_DE_GROUPE = 45
- FF_RESPONSABLE_DE_GROUPE = 46
- DELEGUE_TERRITORIAL = 47
- DELEGUE_TERRITORIAL_ADJOINT = 48
- AUMONIER_TERRITORIAL = 49
- RESPONSABLE_POLE_PEDAGOGIQUE = 50
- RESPONSABLE_POLE_DEVELOPPEMENT = 51
- RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER = 52
- FF_RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER = 53
- NOMINATION_DES_EQUIPIERS_TERRITORIAUX = 54
- FF_DELEGUE_TERRITORIAL = 55
- ACCOMPAGNATEUR_PEDAGOGIQUE = 56
- AUMONIER_DIOCESAIN = 57
- ACCOMPAGNATEUR_DES_RESPONSABLES_DE_GROUPE = 58
- ANIMATEUR_CLEOPHAS_T = 59
- CHARGE_MISSION_DEVELOPPEMENT = 60
- COORDINATEUR_DEVELOPPEMENT_ET_RESEAUX = 61
- OUVREUR_DE_GROUPE_T = 62
- RESPONSABLE_RECRUTEMENT = 63
- RESPONSABLE_PARTENARIATS_FINANCIERS = 64
- RESPONSABLE_COMMUNICATION = 65
- CORRESPONDANT_HANDICAP = 66
- RESPONSABLE_SCOUTISME_EN_QUARTIER = 67
- CHARGE_MISSION_TERRITORIAL = 68
- MEDIATEUR_T = 69
- REPRESENTANT_ASSOCIATIF_L = 70
- RESPONSABLE_BOUTIQUE_SGDF = 71
- DIRECTEUR_DE_CAMP_TERRITORIAL = 72
- TRESORIER_DE_BOUTIQUE = 73
- CHARGE_DE_MISSION_RASSEMBLEMENT = 74
- CHARGE_MISSION_ADMINISTRATIF = 75
- GESTIONNAIRE_MATERIEL_ET_LOGISTIQUE = 76
- TRESORIER_DE_BASE = 77
- EQUIPIER_DE_BASE = 78
- RESPONSABLE_DE_BASE = 79
- SECRETAIRE_TERRITORIAL = 80
- CHARGE_DE_MISSION_RW2016_T = 81
- TRESORIER_TERRITORIAL = 82
- FF_TRESORIER_TERRITORIAL = 83
- DIRECTEUR_DE_STAGE = 84
- DIRECTEUR_DE_CAMP_GROUPE = 85
- VOLONTAIRE_SERVICE_CIVIQUE = 86
- VOLONTAIRE_SERVICE_INTERNATIONAL = 87
- DELEGUE_GENERAL = 88
- DELEGUE_GENERAL_ADJOINT = 89
- AUMONIER_GENERAL = 90
- DELEGUE_NATIONAL = 91
- RESPONSABLE_NATIONAL = 92
- AUMONIER_NATIONAL = 93
- EQUIPIER_NATIONAL = 94
- RESPONSABLE_DE_LA_FORMATION_CR = 95
- CHARGE_MISSION = 96
- CHARGE_MISSION_PAYS = 97
- ADMINISTRATEUR = 98
- MEMBRE_D_HONNEUR = 99
- MEDIATEUR_N = 100
- REPRESENTANT_ASSOCIATIF_T = 101
- SALARIE = 102
- SALARIE_FORMATION = 103
- SALARIE_SERVICE_INTERNATIONAL = 104
- CONSULTANT_BATEAU = 105
- ASSISTANT_DE_SAISIE = 106
- CHARGE_DE_MISSION_RW2016_N = 107
- CHARGE_DE_MISSION_RASSEMBLEMENT_EN = 108
- ADMINISTRATEUR_MODULE_FORMATION = 109
- CONSULTANT_INTEGRATION = 110
- SALARIE_COMPTABILITE = 111
- SALARIE_ASSURANCE = 112
- ADMINISTRATEUR_ASSURANCE = 113
- SALARIE_CENTRE_DE_RESSOURCES = 114
- ADMINISTRATEUR_COMPTABILITE = 115
- DIRECTEUR_DE_CENTRE_DE_RESSOURCES = 116
- RESPONSABLE_ADMINISTRATIF_CR = 117
- ANIMATION_TERRITORIALE_ET_DEVELOPPEMENT = 118
- ADMINISTRATEUR_INTRANET = 119
- MONITORING_APPLICATIF = 120
-
-# Each entry in `FunctionData` has the function identifier as the key, and
-# a data composed of the following components:
-# - `c`: the intranet code (e.g. "120", "110M", "9XX", …).
-# - `ii`: the intranet internal identifier (e.g. "8434", "8437", …).
-# - `nm`: the masculin name for the function.
-# - `nf` (opt.): the feminine name for the function.
+from ._funcdata import Function, FunctionData as _FunctionData
-_FunctionData = {
- Function.LOUVETEAU: ("110", 8434, 'LOUVETEAU', 'JEANNETTE'),
- Function.MOUSSAILLON: ("110M", 8435, 'MOUSSAILLON'),
- Function.SCOUT: ("120", 8440, 'SCOUT', 'GUIDE'),
- Function.MOUSSE: ("120M", 8441, 'MOUSSE'),
- Function.PIONNIER: ("130", 8487, 'PIONNIER', 'CARAVELLE'),
- Function.MARIN: ("130M", 8488, 'MARIN', 'CARAVELLE MARINE'),
- Function.COMPAGNON: ("140", 8493, 'COMPAGNON'),
- Function.COMPAGNON_MARIN: ("140M", 8494, 'COMPAGNON MARIN'),
- Function.COMPAGNON_3EME_TEMPS: ("141", 8495, 'COMPAGNON 3EME TEMPS'),
- Function.ECLAIREUR: ("150", 8501, 'ECLAIREUR', 'ECLAIREUSE'),
- Function.FARFADET: ("170", 8497, 'FARFADET'),
- Function.MEMBRE_ASSOCIE_L: ("180L", 8439, 'MEMBRE ASSOCIE',
- 'MEMBRE ASSOCIEE'),
- Function.MEMBRE_ASSOCIE_N: ("180N", 8445, 'MEMBRE ASSOCIE',
- 'MEMBRE ASSOCIEE'),
- Function.MEMBRE_ASSOCIE_T: ("180T", 8438, 'MEMBRE ASSOCIE',
- 'MEMBRE ASSOCIEE'),
- Function.VENT_DU_LARGE: ("193", 8499, 'VENT DU LARGE'),
- Function.RESPONSABLE_D_UNITE_LOUVETEAU_JEANNETTE: ("210", 8436,
- "RESPONSABLE D'UNITE LOUVETEAU JEANNETTE"),
- Function.RESPONSABLE_D_UNITE_MOUSSAILLON: ("210M", 8550,
- "RESPONSABLE D'UNITE MOUSSAILLON"),
- Function.CHEF_LOUVETEAU_JEANNETTE: ("213", 8551,
- 'CHEF LOUVETEAU JEANNETTE', 'CHEFTAINE LOUVETEAU JEANNETTE'),
- Function.CHEF_MOUSSAILLON: ("213M", 8552, 'CHEF MOUSSAILLON',
- 'CHEFTAINE MOUSSAILLON'),
- Function.RESPONSABLE_D_UNITE_SCOUT_GUIDE: ("220", 8442,
- "RESPONSABLE D'UNITE SCOUT GUIDE"),
- Function.RESPONSABLE_D_UNITE_MOUSSE: ("220M", 8484,
- "RESPONSABLE D'UNITE MOUSSE"),
- Function.CHEF_SCOUT_GUIDE: ("223", 8485, 'CHEF SCOUT GUIDE',
- 'CHEFTAINE SCOUT GUIDE'),
- Function.CHEF_MOUSSE: ("223M", 8486, 'CHEF MOUSSE',
- 'CHEFTAINE MOUSSE'),
- Function.RESPONSABLE_D_UNITE_PIONNIER_CARAVELLE: ("230", 8489,
- "RESPONSABLE D'UNITE PIONNIER CARAVELLE"),
- Function.RESPONSABLE_D_UNITE_FLOTILLE_CARAVELLE_MARINE: ("230M", 8490,
- "RESPONSABLE D'UNITE FLOTILLE - CARAVELLE MARINE"),
- Function.CHEF_PIONNIER_CARAVELLE: ("233", 8491,
- 'CHEF PIONNIER CARAVELLE', 'CHEFTAINE PIONNIER CARAVELLE'),
- Function.CHEF_FLOTILLE_CARAVELLE_MARINE: ("233M", 8492,
- 'CHEF FLOTILLE - CARAVELLE MARINE',
- 'CHEFTAINE FLOTILLE - CARAVELLE MARINE'),
- Function.ACCOMPAGNATEUR_COMPAGNON: ("240", 8496,
- 'ACCOMPAGNATEUR COMPAGNON', 'ACCOMPAGNATRICE COMPAGNON'),
- Function.RESPONSABLE_FARFADET: ("270", 8498, 'RESPONSABLE FARFADET'),
- Function.PARENT_ANIMATEUR_FARFADET: ("271", 8554,
- 'PARENT ANIMATEUR FARFADET'),
- Function.RESPONSABLE_VENT_DU_LARGE: ("293", 8500,
- 'RESPONSABLE VENT DU LARGE'),
- Function.RESPONSABLE_DE_GROUPE: ("300", 8502,
- 'RESPONSABLE DE GROUPE'),
- Function.RESPONSABLE_DE_GROUPE_ADJOINT: ("301", 8503,
- 'RESPONSABLE DE GROUPE ADJOINT', 'RESPONSABLE DE GROUPE ADJOINTE'),
- Function.AUMONIER_DE_GROUPE: ("302", 8504, 'AUMONIER DE GROUPE'),
- Function.SECRETAIRE_DE_GROUPE: ("307", 8506, 'SECRETAIRE DE GROUPE'),
- Function.TRESORIER_DE_GROUPE: ("309", 8508, 'TRESORIER DE GROUPE',
- 'TRESORIERE DE GROUPE'),
- Function.ANIMATEUR_CLEOPHAS_L: ("316", 8509, 'ANIMATEUR CLEOPHAS',
- 'ANIMATRICE CLEOPHAS'),
- Function.CHARGE_DE_MISSION__DU_GROUPE: ("330", 8511,
- 'CHARGE DE MISSION DU GROUPE', 'CHARGEE DE MISSION DU GROUPE'),
- Function.REFERENT_TECHNIQUE_MARIN: ("330M", 8512,
- 'REFERENT TECHNIQUE MARIN', 'REFERENTE TECHNIQUE MARIN'),
- Function.REPRESENTANT_ASSOCIATIF_L: ("332", 8513,
- 'REPRESENTANT ASSOCIATIF'),
- Function.OUVREUR_DE_GROUPE_L: ("333", 8516, 'OUVREUR DE GROUPE'),
- Function.DIRECTEUR_DE_CAMP: ("351", 8517, 'DIRECTEUR DE CAMP',
- 'DIRECTRICE DE CAMP'),
- Function.RESPONSABLE_LOCAL_DEVELOPPEMENT_ET_RESEAUX: ("380", 8518,
- 'RESPONSABLE LOCAL DEVELOPPEMENT ET RESEAUX'),
- Function.FF_TRESORIER_DE_GROUPE: ("391", 8519,
- 'FF TRESORIER DE GROUPE', 'FF TRESORIERE DE GROUPE'),
- Function.NOMINATION_DES_CHEFS_ET_EQUIPIERS_DE_GROUPE: ("397", 8480,
- 'NOMINATION DES CHEFS ET EQUIPIERS DE GROUPE'),
- Function.FF_RESPONSABLE_DE_GROUPE: ("399", 8520,
- 'FF RESPONSABLE DE GROUPE'),
- Function.DELEGUE_TERRITORIAL: ("500", 8482, 'DELEGUE TERRITORIAL',
- 'DELEGUEE TERRITORIALE'),
- Function.DELEGUE_TERRITORIAL_ADJOINT: ("501", 8481,
- 'DELEGUE TERRITORIAL ADJOINT', 'DELEGUEE TERRITORIALE ADJOINTE'),
- Function.AUMONIER_TERRITORIAL: ("502", 8505, 'AUMONIER TERRITORIAL'),
- Function.RESPONSABLE_POLE_PEDAGOGIQUE: ("503", 8521,
- 'RESPONSABLE POLE PEDAGOGIQUE'),
- Function.RESPONSABLE_POLE_DEVELOPPEMENT: ("504", 8522,
- 'RESPONSABLE POLE DEVELOPPEMENT'),
- Function.RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER: ("505", 8515,
- 'RESPONSABLE POLE ADMINISTRATIF ET FINANCIER'),
- Function.FF_RESPONSABLE_POLE_ADMINISTRATIF_ET_FINANCIER: ("591", 8514,
- 'FF RESPONSABLE POLE ADMINISTRATIF ET FINANCIER'),
- Function.NOMINATION_DES_EQUIPIERS_TERRITORIAUX: ("597", 8507,
- 'NOMINATION DES EQUIPIERS TERRITORIAUX'),
- Function.FF_DELEGUE_TERRITORIAL: ("598", 8483,
- 'FF DELEGUE TERRITORIAL', 'FF DELEGUEE TERRITORIALE'),
- Function.ACCOMPAGNATEUR_PEDAGOGIQUE: ("600", 8523,
- 'ACCOMPAGNATEUR PEDAGOGIQUE', 'ACCOMPAGNATRICE PEDAGOGIQUE'),
- Function.AUMONIER_DIOCESAIN: ("602", 8510, 'AUMONIER DIOCESAIN'),
- Function.ACCOMPAGNATEUR_DES_RESPONSABLES_DE_GROUPE: ("609", 8524,
- 'ACCOMPAGNATEUR DES RESPONSABLES DE GROUPE'),
- Function.ANIMATEUR_CLEOPHAS_T: ("616", 8525, 'ANIMATEUR CLEOPHAS',
- 'ANIMATRICE CLEOPHAS'),
- Function.CHARGE_MISSION_DEVELOPPEMENT: ("620", 8526,
- 'CHARGE MISSION DEVELOPPEMENT', 'CHARGEE MISSION DEVELOPPEMENT'),
- Function.COORDINATEUR_DEVELOPPEMENT_ET_RESEAUX: ("621", 8527,
- 'COORDINATEUR DEVELOPPEMENT ET RESEAUX',
- 'COORDINATRICE DEVELOPPEMENT ET RESEAUX'),
- Function.OUVREUR_DE_GROUPE_T: ("622", 8528, 'OUVREUR DE GROUPE'),
- Function.RESPONSABLE_RECRUTEMENT: ("623", 8529,
- 'RESPONSABLE RECRUTEMENT'),
- Function.RESPONSABLE_PARTENARIATS_FINANCIERS: ("624", 8530,
- 'RESPONSABLE PARTENARIATS FINANCIERS'),
- Function.RESPONSABLE_COMMUNICATION: ("625", 8531,
- 'RESPONSABLE COMMUNICATION'),
- Function.CORRESPONDANT_HANDICAP: ("626", 8532,
- 'CORRESPONDANT HANDICAP'),
- Function.RESPONSABLE_SCOUTISME_EN_QUARTIER: ("627", 8533,
- 'RESPONSABLE SCOUTISME EN QUARTIER'),
- Function.CHARGE_MISSION_TERRITORIAL: ("630", 8534,
- 'CHARGE MISSION TERRITORIAL', 'CHARGEE MISSION TERRITORIALE'),
- Function.MEDIATEUR_T: ("631", 8535, 'MEDIATEUR', 'MEDIATRICE'),
- Function.REPRESENTANT_ASSOCIATIF_T: ("632", 8536,
- 'REPRESENTANT ASSOCIATIF', 'REPRESENTANTE ASSOCIATIF'),
- Function.RESPONSABLE_BOUTIQUE_SGDF: ("650", 8537,
- 'RESPONSABLE BOUTIQUE SGDF'),
- Function.DIRECTEUR_DE_CAMP_TERRITORIAL: ("651", 8538,
- 'DIRECTEUR DE CAMP TERRITORIAL', 'DIRECTRICE DE CAMP TERRITORIAL'),
- Function.TRESORIER_DE_BOUTIQUE: ("652", 8539, 'TRESORIER DE BOUTIQUE',
- 'TRESORIERE DE BOUTIQUE'),
- Function.CHARGE_DE_MISSION_RASSEMBLEMENT: ("659", 8540,
- 'CHARGE DE MISSION RASSEMBLEMENT'),
- Function.CHARGE_MISSION_ADMINISTRATIF: ("660", 8541,
- 'CHARGE MISSION ADMINISTRATIF', 'CHARGEE MISSION ADMINISTRATIF'),
- Function.GESTIONNAIRE_MATERIEL_ET_LOGISTIQUE: ("661", 8542,
- 'GESTIONNAIRE MATERIEL ET LOGISTIQUE'),
- Function.TRESORIER_DE_BASE: ("663", 8543, 'TRESORIER DE BASE',
- 'TRESORIERE DE BASE'),
- Function.EQUIPIER_DE_BASE: ("664", 8544, 'EQUIPIER DE BASE',
- 'EQUIPIERE DE BASE'),
- Function.RESPONSABLE_DE_BASE: ("665", 8545, 'RESPONSABLE DE BASE'),
- Function.SECRETAIRE_TERRITORIAL: ("670", 8546,
- 'SECRETAIRE TERRITORIAL', 'SECRETAIRE TERRITORIALE'),
- Function.CHARGE_DE_MISSION_RW2016_T: ("685", 8547,
- 'CHARGE DE MISSION RW2016 T', 'CHARGEE DE MISSION RW2016 T'),
- Function.TRESORIER_TERRITORIAL: ("690", 8548, 'TRESORIER TERRITORIAL',
- 'TRESORIERE TERRITORIALE'),
- Function.FF_TRESORIER_TERRITORIAL: ("691", 8549,
- 'FF TRESORIER TERRITORIAL', 'FF TRESORIERE TERRITORIAL'),
- Function.DIRECTEUR_DE_STAGE: ("850", 8446, 'DIRECTEUR DE STAGE',
- 'DIRECTRICE DE STAGE'),
- Function.DIRECTEUR_DE_CAMP_GROUPE: ("851", 8447,
- 'DIRECTEUR DE CAMP GROUPE', 'DIRECTRICE DE CAMP GROUPE'),
- Function.VOLONTAIRE_SERVICE_CIVIQUE: ("860", 8451,
- 'VOLONTAIRE SERVICE CIVIQUE'),
- Function.VOLONTAIRE_SERVICE_INTERNATIONAL: ("861", 8452,
- 'VOLONTAIRE SERVICE INTERNATIONAL'),
- Function.DELEGUE_GENERAL: ("900", 8449, 'DELEGUE GENERAL',
- 'DELEGUEE GENERALE'),
- Function.DELEGUE_GENERAL_ADJOINT: ("901", 8450,
- 'DELEGUE GENERAL ADJOINT', 'DELEGUEE GENERALE ADJOINTE'),
- Function.AUMONIER_GENERAL: ("902", 8453, 'AUMONIER GENERAL'),
- Function.DELEGUE_NATIONAL: ("903", 8454, 'DELEGUE NATIONAL',
- 'DELEGUEE NATIONALE'),
- Function.RESPONSABLE_NATIONAL: ("910", 8448, 'RESPONSABLE NATIONAL',
- 'RESPONSABLE NATIONALE'),
- Function.AUMONIER_NATIONAL: ("911", 8455, 'AUMONIER NATIONAL'),
- Function.EQUIPIER_NATIONAL: ("912", 8456, 'EQUIPIER NATIONAL',
- 'EQUIPIERE NATIONALE'),
- Function.RESPONSABLE_DE_LA_FORMATION_CR: ("913", 8457,
- 'RESPONSABLE DE LA FORMATION CR'),
- Function.CHARGE_MISSION: ("914", 8458, 'CHARGE MISSION',
- 'CHARGEE MISSION'),
- Function.CHARGE_MISSION_PAYS: ("915", 8459, 'CHARGE MISSION PAYS',
- 'CHARGEE MISSION PAYS'),
- Function.ADMINISTRATEUR: ("920", 8460, 'ADMINISTRATEUR',
- 'ADMINISTRATRICE'),
- Function.MEMBRE_D_HONNEUR: ("921", 8461, 'MEMBRE D HONNEUR'),
- Function.MEDIATEUR_N: ("931", 8462, 'MEDIATEUR', 'MEDIATRICE'),
- Function.REPRESENTANT_ASSOCIATIF: ("932", 8463,
- 'REPRESENTANT ASSOCIATIF', 'REPRESENTANTE ASSOCIATIF'),
- Function.SALARIE: ("980", 8464, 'SALARIE', 'SALARIEE'),
- Function.SALARIE_FORMATION: ("981", 8465, 'SALARIE FORMATION',
- 'SALARIEE FORMATION'),
- Function.SALARIE_SERVICE_INTERNATIONAL: ("982", 8466,
- 'SALARIE SERVICE INTERNATIONAL', 'SALARIEE SERVICE INTERNATIONAL'),
- Function.CONSULTANT_BATEAU: ("983", 8467, 'CONSULTANT BATEAU',
- 'CONSULTANTE BATEAU'),
- Function.ASSISTANT_DE_SAISIE: ("984", 8468, 'ASSISTANT DE SAISIE',
- 'ASSISTANTE DE SAISIE'),
- Function.CHARGE_DE_MISSION_RW2016_N: ("985", 8469,
- 'CHARGE DE MISSION RW2016 N', 'CHARGEE DE MISSION RW2016 N'),
- Function.CHARGE_DE_MISSION_RASSEMBLEMENT_EN: ("987", 8470,
- 'CHARGE DE MISSION RASSEMBLEMENT EN',
- 'CHARGEE DE MISSION RASSEMBLEMENT EN'),
- Function.ADMINISTRATEUR_MODULE_FORMATION: ("989", 8471,
- 'ADMINISTRATEUR MODULE FORMATION', 'ADMINISTRATRICE MODULE FORMATION'),
- Function.CONSULTANT_INTEGRATION: ("990", 8472,
- 'Consultant Intégration', 'Consultante Intégration'),
- Function.SALARIE_COMPTABILITE: ("991", 8473, 'SALARIE COMPTABILITE',
- 'SALARIEE COMPTABILITE'),
- Function.SALARIE_ASSURANCE: ("992", 8474, 'SALARIE ASSURANCE',
- 'SALARIEE ASSURANCE'),
- Function.ADMINISTRATEUR_ASSURANCE: ("993", 8475,
- 'ADMINISTRATEUR ASSURANCE', 'ADMINISTRATRICE ASSURANCE'),
- Function.SALARIE_CENTRE_DE_RESSOURCES: ("994", 8476,
- 'SALARIE CENTRE DE RESSOURCES', 'SALARIEE CENTRE DE RESSOURCES'),
- Function.ADMINISTRATEUR_COMPTABILITE: ("995", 8477,
- 'ADMINISTRATEUR COMPTABILITE', 'ADMINISTRATRICE COMPTABILITE'),
- Function.DIRECTEUR_DE_CENTRE_DE_RESSOURCES: ("996", 8478,
- 'DIRECTEUR DE CENTRE DE RESSOURCES',
- 'DIRECTRICE DE CENTRE DE RESSOURCES'),
- Function.RESPONSABLE_ADMINISTRATIF_CR: ("997", 8444,
- 'RESPONSABLE ADMINISTRATIF CR', 'RESPONSABLE ADMINISTRATIVE CR'),
- Function.ANIMATION_TERRITORIALE_ET_DEVELOPPEMENT: ("998", 8443,
- 'ANIMATION TERRITORIALE ET DEVELOPPEMENT'),
- Function.ADMINISTRATEUR_INTRANET: ("999", 8437,
- 'ADMINISTRATEUR INTRANET', 'ADMINISTRATRICE INTRANET'),
- Function.MONITORING_APPLICATIF: ("9XX", 8479,
- 'Monitoring applicatif'),
-}
+__all__ = ["Function", "FunctionData", "FunctionRawData"]
+
+def _isid(value):
+ try:
+ Function(value)
+ except:
+ return False
+ return True
def _isint(value):
try:
@@ -370,7 +23,94 @@ def _isint(value):
return False
return True
-# Leads are:
+class FunctionRawData:
+ """ Raw data from a function for importation of the autocomplete file
+ from the intranet. """
+
+ def __init__(self, iid, code, nm, nf, cname, srcorder):
+ self.__iid = iid
+ self.__code = code
+ self.__nm = nm
+ self.__nf = nf
+ self.__cname = cname
+ self.__srcorder = srcorder
+
+ def __repr__(self):
+ p = []
+ p.append(f"cname = {repr(self.__cname)}")
+ p.append(f"iid = {repr(self.__iid)}")
+ p.append(f"code = {repr(self.__code)}")
+ p.append(f"nm = {repr(self.__nm)}")
+ if self.__nf is not None:
+ p.append(f"nf = {repr(self.__nf)}")
+
+ return f"{self.__class__.__name__}({', '.join(p)})"
+
+ @property
+ def cname(self):
+ """ The canonical/constant name for the function. """
+
+ return self.__cname
+
+ @property
+ def iid(self):
+ """ The internal identifier (e.g. 8434). """
+
+ return self.__iid
+
+ @property
+ def code(self):
+ """ The code (e.g. "110", "110M" or "9XX"). """
+
+ return self.__code
+
+ @property
+ def name(self):
+ """ The full name. """
+
+ p = [self.__nm]
+ if self.__nf is not None:
+ p.append(self.__nf)
+ return " / ".join(p)
+
+ @property
+ def nm(self):
+ """ The masculine name. """
+
+ return self.__nm
+
+ @property
+ def nf(self):
+ """ The feminine name. """
+
+ return self.__nf
+
+ def replace(self, **kwargs):
+ cname = self.__cname
+
+ if 'cname' in kwargs:
+ cname = kwargs['cname']
+ del kwargs['cname']
+ if kwargs:
+ raise ValueError(f"Invalid keyword {repr(kwargs.keys()[0])}")
+
+ return FunctionRawData(self.__iid, self.__code, self.__nm, self.__nf,
+ cname, self.__srcorder)
+
+ @property
+ def srcorder(self):
+ """ Order in the original JSON. """
+
+ return self.__srcorder
+
+# Each entry in `_FunctionData` has the function identifier as the key, and
+# a data composed of the following components:
+# - `c`: the intranet code (e.g. "120", "110M", "9XX", …).
+# - `ii`: the intranet internal identifier (e.g. "8434", "8437", …).
+# - `nm`: the masculin name for the function.
+# - `nf` (opt.): the feminine name for the function.
+#
+# Leads defined in `_FunctionLeads` are:
# - the masculine noun (e.g. "LOUVETEAU").
# - the feminine noun (e.g. "JEANETTE").
# - the integer internal identifier (e.g. 8434).
@@ -400,13 +140,6 @@ _FunctionLeads.update({f"{c} ({nouns[1]})".strip().casefold(): i \
_FunctionLeads.update({f"{c} ({nouns[0]} / {nouns[1]})".strip().casefold(): i \
for i, (c, ii, *nouns) in _FunctionData.items() if len(nouns) > 1})
-def _isid(value):
- try:
- Function(value)
- except:
- return False
- return True
-
class FunctionData:
""" Function data (code, id, name, other). """
@@ -429,8 +162,7 @@ class FunctionData:
self.__nf = None
elif _isid(value):
value = Function(value)
- self.__id = _FunctionCodes.get(value, UNKNOWN)
- self.__code = value
+ self.__id = value
data = _FunctionData.get(self.__id, None)
else:
diff --git a/sgdfi/_dbs/_regime.py b/sgdfi/_dbs/_regime.py
new file mode 100644
index 0000000..3bcff3c
--- /dev/null
+++ b/sgdfi/_dbs/_regime.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+#******************************************************************************
+# Copyright (C) 2018 Thomas "Cakeisalie5" Touhey <thomas@touhey.fr>
+# This file is part of the sgdfi project, which is MIT-licensed.
+#******************************************************************************
+""" Allocations regime reference for SGDFi. """
+
+from enum import Enum as _Enum, unique as _unique
+
+__all__ = ["AllocationsRegime"]
+
+@_unique
+class AllocationsRegime(_Enum):
+ """ The default type (unknown). """
+ UNKNOWN = 0
+
+ """ Régime général (CAF, Maritime, SNCF, …). """
+ GENERAL = 1
+
+ """ MSA. """
+ MSA = 2
+
+ """ Étranger, conseil de l'Europe. """
+ EUROPE = 3
+
+# End of file.
diff --git a/sgdfi/_dbs/_st.py b/sgdfi/_dbs/_st.py
index ef7ac1d..e9c47a9 100755
--- a/sgdfi/_dbs/_st.py
+++ b/sgdfi/_dbs/_st.py
@@ -40,7 +40,7 @@ class StructureTypeData:
return False
return True
- self.__id = None
+ self.__id = StructureType.UNKNOWN
self.__name = None
data = None
@@ -49,7 +49,7 @@ class StructureTypeData:
self.__name = value.name
elif isid(value):
value = StructureType(value)
- self.__id = value.id
+ self.__id = value
data = _StructureTypeData.get(value, None)
else:
diff --git a/sgdfi/_dbs/_ststatus.py b/sgdfi/_dbs/_ststatus.py
new file mode 100755
index 0000000..ee7b0ed
--- /dev/null
+++ b/sgdfi/_dbs/_ststatus.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python3
+#******************************************************************************
+# Copyright (C) 2018 Thomas "Cakeisalie5" Touhey <thomas@touhey.fr>
+# This file is part of the sgdfi project, which is MIT-licensed.
+#******************************************************************************
+""" Structure status reference for SGDFi. """
+
+from enum import Enum as _Enum, unique as _unique
+
+__all__ = ["StructureStatus", "StructureStatusData"]
+
+@_unique
+class StructureStatus(_Enum):
+ """ The default status (unknown). """
+ UNKNOWN = 0
+
+ """ Ouverte. """
+ OPEN = 1
+
+_StructureStatusData = {
+ StructureStatus.OPEN: "Ouverte"
+}
+
+_StructureStatusLeads = {}
+_StructureStatusLeads.update({name.strip().casefold(): i for i, name \
+ in _StructureStatusData.items()})
+
+class StructureStatusData:
+ """ The structure status data. """
+
+ def __init__(self, value):
+ def isid(id):
+ try:
+ StructureStatus(value)
+ except ValueError:
+ return False
+ return True
+
+ self.__id = StructureStatus.UNKNOWN
+ self.__name = None
+ data = None
+
+ if isinstance(value, StructureStatusData):
+ self.__id = value.id
+ self.__name = value.name
+ elif isid(value):
+ value = StructureStatus(value)
+ self.__id = value
+
+ data = _StructureStatusData.get(value, None)
+ else:
+ lead = value
+ if type(lead) == str:
+ lead = lead.strip().casefold()
+
+ try:
+ self.__id = _StructureStatusLeads[lead]
+ data = _StructureStatusData.get(self.__id, None)
+ except KeyError:
+ if type(value) == str:
+ self.__name = value
+ else:
+ msg = "Could not determine a structure status."
+ raise ValueError(msg) from None
+
+ if data is not None:
+ self.__name = data
+
+ def __repr__(self):
+ p = []
+ if self.__id is not None:
+ p.append(f"id = {repr(self.__id)}")
+ if self.__name is not None:
+ p.append(f"name = {repr(self.__name)}")
+
+ return f"{self.__class__.__name__}({', '.join(p)})"
+
+ @property
+ def id(self):
+ """ The status identifier, as one of the identifiers defined in
+ the StructureStatus enumeration. """
+
+ return self.__id
+
+ @property
+ def name(self):
+ """ The status name as defined in the structure summary page. """
+
+ return self.__name
+
+# End of file.