Commit graph

761 commits

Author SHA1 Message Date
Colin Darie
de7d60e18e
chore(schema): remove exports unicity constraint
Co-Authored-By: Lisa Durand <lisa.c.durand@gmail.com>
2023-09-28 15:23:28 +02:00
seb-by-ouidou
d29bbf6d4f
Merge branch 'main' into feature-ouidou/existing_procedure_hidden_as_template 2023-09-21 15:53:38 +02:00
seb-by-ouidou
0d2cd0fe5d feat(procedure): hide as template 2023-09-19 11:21:27 +00:00
Christophe Robillard
46dec40543 add contact information model 2023-09-08 11:04:06 +02:00
Eric Leroy-Terquem
bbb3823212 db(routing): remove routing criteria name column 2023-08-02 18:25:37 +02:00
Paul Chavard
e9cb50d09c feat(api): add last_authenticated_at timestamp to api requests 2023-08-02 13:22:18 +02:00
Paul Chavard
fd24f283de chore(schema): update timestamp 2023-08-02 11:43:30 +02:00
Eric Leroy-Terquem
cdbaf987c0 db(routing): remove migrated champ routage columns 2023-08-01 16:59:22 +02:00
Colin Darie
f2afe5008f
chore(schema): remove dossier_corrections#kind, replaced in 5998cf 2023-07-27 16:31:48 +02:00
Colin Darie
5998cfe31f refactor(correction): rename kind => reason with default correction => incorrect 2023-07-21 16:45:47 +02:00
Paul Chavard
735c504c0f fix(postgis): do not try to create postgis extension if it is already created or it is disabled 2023-07-18 18:01:29 +02:00
Paul Chavard
573954c45f feat(postgis): enable postgis 2023-07-18 18:01:29 +02:00
Eric Leroy-Terquem
5f5714678c feat(DossierAsignment): create model 2023-07-18 16:54:00 +02:00
simon lehericey
c130f80a7d feat(user): add blocket_at and block_reason columns 2023-07-18 13:46:27 +02:00
Colin Darie
1c977c72bf
chore(schema): +dossier_corrections#kind 2023-07-11 10:01:48 +02:00
Colin Darie
c3480f550d
chore(schema): +dossiers#sva_svr_decision_on, sva_svr_decision_triggered_at 2023-07-11 10:01:46 +02:00
Colin Darie
bb4a6e22ce
chore(schema): +procedures#sva_svr 2023-07-11 10:01:45 +02:00
Paul Chavard
a43c3fd19d feat(procedure): add lien_notice_error and lien_dpo_error 2023-07-06 10:27:43 +02:00
Martin
5f8fce7997 amelioration(dossier.indexes): lors de sa suppression, un dossier nullifie les autre parent_dossier_id ayant son id. ça fait que la suppression des dossiers [ds le cas des expires] est LENT [3s pr executer la requete de nullification en dev] 2023-06-26 15:51:26 +02:00
Colin Darie
e1146eaa98
chore(schema): fix missing procedures#description_pj added in 9338a7 2023-06-22 23:12:07 +02:00
Lisa Durand
9338a73362 add possibility to override generated pj list by admin 2023-06-22 09:50:38 +02:00
Colin Darie
d41d69d167 fix(schema): missing column addition declaration in ce1429b 2023-06-19 23:59:06 +02:00
Eric Leroy-Terquem
ce1429b850 migration : add forced_group_instructeur_to_dossier 2023-06-15 14:14:47 +02:00
Colin Darie
f34f4f23b0
Merge pull request #9127 from colinux/fix-schema-missing-column
ETQ dev fix colonne manquante dans schema.rb
2023-06-05 15:40:17 +00:00
Colin Darie
a03f8b2ea4 fix(schema): dossier_corrections foreign keys in separate migration 2023-06-05 12:42:06 +02:00
Colin Darie
ec37611807
fix(schema): drop drop_down_lists migration not reversible 2023-06-02 16:16:15 +02:00
Colin Darie
5ab44fc7a9
chore: rename dossier_resolution => dossier_correction 2023-06-02 16:16:14 +02:00
Colin Darie
2c79ca94f5
chore(schema): create dossier_corrections 2023-06-02 16:13:15 +02:00
Colin Darie
15401749f5 fix(schema): missing procedures#description_target_audience introduced in 7340206 2023-06-02 12:31:39 +02:00
Lisa Durand
a20ec44841
Merge pull request #9074 from demarches-simplifiees/add-more-info-on-procedure-description
[Refonte page accueil demarche] Détailler la description pour plus de clarté pour l'usager
2023-05-30 09:45:32 +00:00
Lisa Durand
7340206f81 rollback - add just one new field and use actual description field 2023-05-24 11:31:24 +02:00
Lisa Durand
4a51a9a351 add two more fields for procedure description what et and for_who 2023-05-22 15:36:48 +02:00
Christophe Robillard
34540d34e9 create default_zones_administrateurs 2023-05-16 09:40:53 +02:00
Christophe Robillard
a191f66508 add tchap hs to zone 2023-05-16 09:40:53 +02:00
Paul Chavard
025bd5beaf
feat(dossier): dossier can be forked for editing 2023-05-09 15:34:10 +02:00
Colin Darie
6616acb825
chore(super-admin): update devise-two-factor v5 with otp_secret encrypted attribute 2023-05-03 11:35:32 +02:00
Colin Darie
109504d9be
chore(schema): sync schema with production options 2023-05-03 11:35:31 +02:00
Colin Darie
42c1e32909
chore(schema): missing foreign key declarations 2023-05-03 11:35:31 +02:00
Colin Darie
7597d898a6
chore(schema): fix precision option for datetime columns 2023-05-03 11:35:31 +02:00
Nicolas Cavigneaux
5ee60cbb0c
chore: update and default initializer for Rails 7 2023-05-03 11:35:29 +02:00
Eric Leroy-Terquem
cade677355 feat(db): add defaut_groupe_instructeur_id column to procedures 2023-04-13 10:36:42 +02:00
Martin
a859bd0fbf chore(données): supprime la table drop_down_lists qui est inutilisée 2023-03-31 16:36:06 +02:00
Eric Leroy-Terquem
3ef6adccd6 feat(db): add routing column to groupe_instructeurs 2023-03-30 10:51:20 +02:00
Kara Diaby
ba8d78bd97 migration 2023-03-27 13:38:22 +02:00
Lisa Durand
a4a99a72ec first step to add question in experts avis 2023-03-16 11:32:05 +01:00
Paul Chavard
64f79bb6d8 feat(api_token): add allowed_procedure_ids to api tokens 2023-03-15 19:09:49 +01:00
Martin
b0376ec99c correctif(data): ajoute la clé etrangère entre active_storage_attachements et active_storage_blobs uniquement si elle est manquante 2023-03-02 08:34:17 +01:00
Christophe Robillard
bd92291f8a cache dossiers count 2023-02-21 10:06:07 +01:00
Martin
b0a757a89d chore(db): supprime un index non utilisé 2023-02-20 11:47:14 +01:00
mfo
290ba94de7
Merge branch 'main' into ensure-pg-fk-between-attachments-and-blobs 2023-02-16 16:51:28 +01:00
Martin
514835af1c correctif(db): force active_storage_attachments.blob fk on active_storage_blobs 2023-02-16 16:02:14 +01:00
Martin
0427c28103 correctif(db.active_storage_attachements): ajoute un fk non validable a priori pour eviter les problemes d'attachments sans blob 2023-02-16 14:18:40 +01:00
sebastiencarceles
8220ea58ef review: make use of migration helper 2023-02-07 14:34:52 +01:00
sebastiencarceles
5417d3adea add external id index to champs 2023-02-07 12:04:49 +01:00
Martin
2de9026c13 amelioration(dolist_api): forward le message_id afin de faciliter les investigations 2023-02-03 17:19:36 +01:00
Colin Darie
eb9cd90ee8 chore(schema): +procedure#estimated_duration_visible 2023-02-01 11:02:55 +01:00
Eric Leroy-Terquem
1b67f93c66 feat(avis): add reminded_at field to avis 2023-01-30 11:13:23 +01:00
Paul Chavard
dad393355b chore(db): remove unused columns 2023-01-17 12:49:22 +01:00
Martin
3e6b82ed9e amelioration(safe_mailer): ajoute au manager la fonction pour configurer le routage des mails sur un fournisseur unique
Update app/mailers/devise_user_mailer.rb

Co-authored-by: LeSim <mail@simon.lehericey.net>
2023-01-11 17:32:24 +01:00
Martin
2f43ffc940 data(safe_mailer): ajout d'un object permetant d'orienter les mails vers un unique fournisseur au cas ou l'autre soit down 2023-01-11 17:13:05 +01:00
simon lehericey
bd3fbbce49 add schema and annotation 2023-01-11 11:19:24 +01:00
simon lehericey
28ab19e4f7 remove default value as it can cause lock and does not add value 2023-01-11 11:18:21 +01:00
Eric Leroy-Terquem
60cd9a5d0e add migrated champ routage to dossiers, procedures and procedure_revisions 2023-01-11 11:18:21 +01:00
François Vantomme
f0ff364ed6 fix(migration): backfill procedure nil duree_conservation_etendue_par_ds 2023-01-11 11:00:43 +01:00
Paul Chavard
af33d5d65c refactor(repetition): use row_id instead of row 2023-01-10 19:31:41 +01:00
Colin Darie
07167cead9 chore(schema): create email_events 2023-01-10 16:07:35 +01:00
Paul Chavard
dfe65136be refactor(repetition): add row_id to champs 2023-01-05 18:04:54 +01:00
Paul Chavard
378f3c5fb0 use join table instead of arrays 2023-01-05 16:20:18 +01:00
Paul Chavard
ec6045c370 chore(blobs): add virus_scan_result index 2023-01-04 12:12:11 +01:00
Paul Chavard
6e18090fb3 refactor(virus_scan_result): use column instead of metadata on blob 2023-01-04 12:12:11 +01:00
Paul Chavard
d469bca0ae refactor(watermark): use column instead of metadata on blob 2023-01-04 12:07:08 +01:00
Sébastien Carceles
20136b7ac8
feat(demarche): create and prefill a dossier with POST request (#8233)
* add base controller for public api

* add dossiers controller with basic checks

* create the dossier

* ensure content-type is json

* prefill dossier with given values

* mark a dossier as prefilled

When a dossier is prefilled, it's allowed not to have a user.

Plus, we add a secure token to the dossier, which we will need later to set a
user after sign in / sign up.

* set user as owner of an orphan prefilled dossier

When a visitor comes from the dossier_url answered by the public api,
the dossier is orphan:
- when the user is already authenticated: they become the owner
- when the user is not authenticated: they can sign in / sign up / france_connect
and then they become the owner

So here is the procedure:
- allow to sign in / sign up / france connect when user is unauthenticated
- set dossier ownership when the dossier is orphan
- check dossier ownership when the dossier is not
- redirect to brouillon path when user is signed in and owner

* mark the dossier as prefilled when it's prefilled
(even with a GET request, because it will be useful later on, for
exmample in order to cleanup the unused prefilled dossiers)

* system spec: prefilling dossier with post request
2023-01-03 14:46:10 +01:00
sebastiencarceles
4e1dff0dce fix schema about prefilled default 2022-12-14 15:44:27 +01:00
simon lehericey
e1f63f0148 fix(schema): add missing team_account attribute 2022-12-08 15:42:14 +01:00
sebastiencarceles
38894fc853 review: prefilled has no default value 2022-12-08 15:27:39 +01:00
sebastiencarceles
373e8aeadb review: validate prefilled champs only 2022-12-08 15:27:39 +01:00
Paul Chavard
47f716f9fa feat(api_token): add api_tokens table 2022-12-07 18:19:37 +01:00
Martin
e5944eed34 poc(batch_operation): habtm groupe instructeurs, permettra de visualiser plus facilement les batch en cours pour les instructeurs du meme groupe 2022-12-06 11:28:48 +01:00
Martin
61f4cded75 poc(batch_operation): just the model and some specs and a poc for archive them without async 2022-12-06 11:28:48 +01:00
Colin Darie
0014ce4b91 chore(schema): +procedures#piece_justificative_multiple 2022-12-05 10:47:10 +01:00
Paul Chavard
ece68076a7 feat(dossier): add some metadata to archive and remove operation log 2022-11-30 16:20:13 +01:00
Paul Chavard
1022e4d18b fix(db): update schema timestamp 2022-11-24 18:20:54 +01:00
simon lehericey
870d7280fb fix(procedure): add not null constraint on duree_conservation 2022-11-23 18:04:49 +01:00
Paul Chavard
e4bf1bd2db feat(dossier): add data to DossierOperationLog 2022-11-22 18:06:05 +01:00
Christophe Robillard
cee087a794 add libelle index on procedures 2022-11-22 17:08:17 +01:00
Martin
18b7f4e4fa remaniement(dossier.clone): simplifications, pas de callback/after, pas d'heritage, mm interface pour cloner les champs public/prive, clonage des PJs avec le nouveau service de clone, ajoute une cle etrangere sur la colonne parent_dossier_id 2022-11-14 09:53:19 +01:00
Martin
844004818a amelioration(dossier.clone): dossier.clone, permet de cloner un dossier 2022-11-14 09:13:52 +01:00
Martin
c9292e7ba8 amelioration(bdd): mise en place d'un flag pour identifier les anciens comptes d'admin de DS 2022-11-08 09:55:21 +01:00
simon lehericey
46852c7f81 fix(migration): ignore strong migration for small nb of procedure 2022-10-27 09:39:41 +02:00
Kara Diaby
492c7f377f migration 2022-10-21 19:13:12 +02:00
Paul Chavard
fa18ebd63a fix(message): add instructeurs foreign key 2022-10-20 14:42:42 +02:00
simon lehericey
de875632e6 refactor(spec): use match_array 2022-10-14 09:45:58 +02:00
Martin
654d38626b correctif(fusion de compte): recupération sur les comptes usagers ayant initié la fusion de leurs compte sur lui même [ce qui detruit la donnée] 2022-10-13 17:00:20 +02:00
Damien Le Thiec
73f6063c87
Merge branch 'main' into feature/add_rna_type_de_champs 2022-10-11 15:36:46 +02:00
Damien Le Thiec
bcdc9c18ae Remove skip_fetch_data mechanism 2022-10-11 11:52:59 +02:00
Paul Chavard
bc5e46e6de chore(db): add index on type to champs 2022-10-11 10:43:32 +02:00
Martin
c52b06a84f fix(data): move type de champs engagement to checkbox 2022-10-07 18:30:56 +02:00
Christophe Robillard
6d90f65159 backfill procedures_zones 2022-10-07 10:48:34 +02:00
Christophe Robillard
bffd9d61a9 add habtm between procedures and zones 2022-10-07 10:48:34 +02:00
Martin
f2a6697ebe fix(migration): backfill max_duree_conservation_dossiers_dans_ds without typo 2022-10-06 20:08:48 +02:00
simon lehericey
95430b2ee8 perf: add index on invite dossier_id 2022-10-06 17:17:27 +02:00
Martin
405a885160 feat(procedure.max_duree_conservation_dossiers_dans_ds): make it more flexible 2022-10-05 17:27:09 +02:00
Christophe Robillard
dc15b39648 add zone_label migration 2022-09-26 16:58:53 +02:00
Paul Chavard
16bba911ba Revert "Merge pull request #7637 from tchak/chore-add-missing-foreign-keys"
This reverts commit b21ee46dc2, reversing
changes made to dd85b5c35c.
2022-09-21 15:20:42 +02:00
Paul Chavard
2485fb67cc fix(db): add missing foreign key on attachements blob_id 2022-09-20 15:18:19 +02:00
Paul Chavard
84b9644bcd fix(db): add missing foreign keys 2022-09-20 15:16:52 +02:00
Colin Darie
81149cc809 chore(schema): safer migration for add_etablissment_infos_to_services 2022-09-06 09:23:52 +02:00
Colin Darie
7d39cc6b3e chore(schema): +services#etablissement_{infos,geopoint}
- `etablissement_infos` est une représentation partielle en jsonb
de ce qui est renvoyé par l'API Entreprise.
(On ne conserve que l'adresse pour le moment, utilisée pour le geocodage)
- `etablissement_geopoint` est le point (x,y) issu du géocodage de
l'établissement
2022-09-06 09:23:52 +02:00
Colin Darie
a4d9a45280 chore(schema): +services#siret 2022-09-06 09:23:52 +02:00
simon lehericey
8c884b4869 fix(migration): fix avis email notification migration 2022-09-02 17:23:04 +02:00
Kara Diaby
aab0c445de Add instant avis email notification to assign_tos 2022-09-02 16:17:22 +02:00
Martin
5b551682cb feat(super-admin): re-add to procedure without any instructeur 2022-08-24 14:37:27 +02:00
Martin
e23525ff4a feat(clean.super_admin.assign_tos): remove former assign to so our support team is happy :-) 2022-08-23 14:39:40 +02:00
Martin
c2e0994e11 feat(Administrateur::ArchivesController#*): prevent SuperAdmin to index/download archives 2022-08-23 13:28:10 +02:00
Martin
f0a4cbb61e feat(assign_tos): add manager column to assign_tos table. Same idea as administrateur_procedures.manager which flag a link between procedure/administrateur coming from a SuperAdmin [target: able to avoid SuperAdmin sec issues] 2022-08-23 13:28:10 +02:00
Paul Chavard
e764aade13 fix(db): types_de_champ migration is too long 2022-08-03 14:22:34 +02:00
Paul Chavard
10ef4a4be5 chore(db): remove ignored columns 2022-08-02 15:24:52 +02:00
Colin Darie
67d2cb2061 chore(schema): add exports#job_status
Same behavior as Archive

On destroy tous les exports existants qui n'ont pas cette notion de status.
2022-07-26 17:53:24 +02:00
Colin Darie
e1d3d1f844 chore(schema): add entreprise_etat_administratif to etablissements 2022-07-25 10:58:02 +02:00
Martin
3e56fdd1d7 fix(export): when it takes more than 3 hours, exports are purge before being generated. make it possible to have an export that takes more than 3 hours and share this behaviour with kind of same class archive 2022-07-25 10:48:54 +02:00
Martin
24c8dc5829 feat(procedure.duree_conservation_dossiers_dans_ds): decrease max duree_conservation_dossiers_dans_ds from 36 to 12 2022-07-18 14:08:53 +02:00
Christophe Robillard
ea59f5f260 add opendata boolean attribute for procedure
when opendata is set to true, it means that descriptive's procedure can be
public
when opendata is set to false, ti means that descriptive's can not be
public, because the procedure is only available for public servants, not
citizens.
2022-06-23 14:11:09 +02:00
Martin
a1623a1213 fix(data): ensure to populate closed column in after_party migration 2022-06-21 18:46:13 +02:00
Martin
4275096349 fix(AddColumnClosedToGroupeInstructeurs): add column with change_column_default 2022-06-21 16:15:28 +02:00
Martin
ab4d4c83a8 feat(GroupeInstructeurs.closed): add closed option to GroupeInstructeur in order to prevent usagers to submit dossier 2022-06-20 16:32:06 +02:00
Martin
274b5eab2e feat(invite): wrap invitation with targeted_user_links 2022-06-17 16:44:37 +02:00
simon lehericey
758933f6f9 tdc can have condition 2022-06-17 14:53:28 +02:00
Martin
cb890343ff feat(targeted_user_link): add targeted user link to wrap expert invitation in order to avoid access issue when the expert is connected with another account
feat(user.merge): ensure to merge user.targeted_user_link

Update app/models/targeted_user_link.rb

Co-authored-by: LeSim <mail@simon.lehericey.net>

Update app/models/targeted_user_link.rb

Co-authored-by: LeSim <mail@simon.lehericey.net>

Update app/models/targeted_user_link.rb

Co-authored-by: LeSim <mail@simon.lehericey.net>

feat(db/create_targeted_user_links): ensure not null with fk
2022-05-31 14:50:31 +02:00
Kara Diaby
0381444770 migration 2022-05-26 12:45:05 +02:00
Martin
3737311390 feat(procedure.procedure_expires_when_termine_enabled): enable by default, allow contributor to choose the default settings of this flag using an env var during migration. ie: DEFAULT_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED=true|false
feat(administrateurs/procedures#show): warning/alert when procedure_expires_when_termine_enabled is not true on current procedure

feat(administrateur/procedure#update): after an update redirect to procedure show: suggested by: https://ux.stackexchange.com/questions/55291/after-updating-form-should-redirect-back-to-form-itself-or-to-the-show-page-or-b and confirmed by Olivier

clean(Flipper.archive_zip_globale): no more in use, so remove all occurences

Update app/views/administrateurs/procedures/_suggest_expires_when_termine.html.haml

Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>

Update app/views/administrateurs/procedures/_suggest_expires_when_termine.html.haml

Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>

Update app/views/administrateurs/procedures/_suggest_expires_when_termine.html.haml

Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>

Update spec/views/administrateurs/procedures/show.html.haml_spec.rb

Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>

fix(review): typo, why ena?, who knows

fix(env.example.optional): add missing DEFAULT_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED
2022-05-05 13:07:11 +02:00
Martin
636f887698 fix(user.merge): when merging old_user having an instructeur with dossier_operation_logs containing the old_user.instructeur_id, should be able to merge to new instructeur
feat(user.merge): when user have an instructeur having dossier_opertions_logs containing instructeur_id
2022-05-04 14:24:11 +02:00
Paul Chavard
27f9a820cc feat(dossier): add preview flag 2022-04-28 11:52:38 +02:00
Martin
be090a1bec feat(administrateur/procedure#create): allow admin to add a lien to the DPO, allow user to consult link to dpo. enhance spec on _procedure_footer.html
Update spec/views/users/_procedure_footer.html.haml_spec.rb

Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>
2022-04-27 15:09:02 +02:00
Remi-Frk
17bf19e3f0 fix(migrate): lien administrateurs_procedures - administrateurs 2022-04-25 14:20:57 +02:00
simon lehericey
53de567b59 revert fix(user.merge) : waiting for ignore column instructeur_id in ruby code 2022-04-12 14:02:20 +02:00
Martin
e83f5fe475 fix(user.merge): when merging old_user having an instructeur with dossier_operation_logs containing the old_user.instructeur_id, should be able to merge to new instructeur
feat(user.merge): when user have an instructeur having dossier_opertions_logs containing instructeur_id
2022-04-12 11:28:33 +02:00
Martin
f84c7ac5e4 fix(migration): apply what strong migration recommends 2022-04-07 10:25:05 +02:00
Paul Chavard
21945b6df0 fix(exports): disable strong migration checks because we are operating on a “small” table 2022-04-07 09:44:09 +02:00
Paul Chavard
9904dabffe feat(procedure_presentation): pass filters as serialized snapshot 2022-04-06 17:08:38 +02:00
Paul Chavard
be1a2f916d feat(exports): add statut and procedure_presentation to exports 2022-04-06 17:08:38 +02:00
simon lehericey
200e8680d5 add uniq index on attestation dossier_id 2022-04-05 15:43:21 +02:00
Pierre de La Morinerie
79ea80c199 db: remove deprecated role columns on user 2022-03-29 14:52:38 +02:00
Pierre de La Morinerie
017625207e db: add constraints to role tables 2022-03-29 14:52:38 +02:00
Pierre de La Morinerie
9dcd92a678 db: add not-null constraints to AdministrateursInstructeur 2022-03-22 13:32:02 +01:00
Pierre de La Morinerie
21bf4d38cf db: alphabetize schema.rb
This avoids the column order being de-synchronized between different
machines.
2022-03-16 10:30:25 +01:00
Pierre de La Morinerie
48ea53b90d db: add foreign keys to Administrateur, Instructeur and Expert 2022-03-15 15:15:51 +01:00
Pierre de La Morinerie
27edc6676d db: add foreign key contraint to AdministrateursProcedure
In production there are around 20 000 AdministrateursProcedure
records that reference a deleted Procedure.
2022-03-08 14:48:17 +01:00
Pierre de La Morinerie
a4108c7787 db: backport delete_orphans in recent migrations
Recent migrations used ActiveRecord when removing invalid data. This may
break if the ActiveRecord model later changes.

To ensure these migrations will run correctly, even when the code will
have changed, let's use an SQL-based helper instead of ActiveRecord.
2022-03-08 14:48:17 +01:00
Pierre de La Morinerie
13dfa577bd db: add missing part of schema.rb 2022-03-02 14:09:43 +01:00
Pierre de La Morinerie
5eee6b161f db: add foreign key contraints to AdministrateursInstructeur 2022-03-02 14:09:23 +01:00