Commit graph

5822 commits

Author SHA1 Message Date
Martin
a13594792a feat(cross-domain-redirect): redirect to APP_HOST when user is on APP_HOST_LEGACY 2024-02-28 06:23:55 +01:00
Colin Darie
0a07c9cd72
fix: encode reset link email in param because it's rendered in view later 2024-02-27 18:59:52 +01:00
Colin Darie
9db7b5b864
fix: encode reset password email in param because it's rendered in view later 2024-02-27 18:53:07 +01:00
Christophe Robillard
26a86d8003 filter all demarches by kind usager 2024-02-23 16:04:27 +01:00
Martin
8ca853c79c feat(application_controller): add method to check if request is on app_host_legacy? 2024-02-23 10:42:23 +01:00
Colin Darie
3cf2e3ecde
Merge pull request #10031 from colinux/fix-typo-tiers
ETQ instructeur: corrige une typo tier => tiers dans les exports
2024-02-23 09:13:19 +00:00
Colin Darie
f04420812b
fix(export): typo tier => tiers 2024-02-22 15:58:29 +01:00
Colin Darie
a8166f43d6
Revert "test: fix graphql syntax error output since JSON parser is now yajl-ruby"
This reverts commit eb41f7e85e.
2024-02-22 15:18:35 +01:00
Colin Darie
7143c7e8e2
Merge pull request #9995 from colinux/attestation-v2-improvements
ETQ admin, quelques améliorations sur l'éditeur v2
2024-02-22 11:30:41 +00:00
Colin Darie
3c22f4ea48
fix(attestation): always return v1 template when exists, otherwise it's a v2 2024-02-22 12:19:07 +01:00
Colin Darie
8ba1c0e481
feat(attestation): can toggle optional champs tags visibility 2024-02-22 12:19:06 +01:00
Colin Darie
0f0c7d83f9
Merge pull request #9998 from colinux/bundle-update-phase-2
Tech: massive gem updates, phase 2
2024-02-22 10:33:37 +00:00
Colin Darie
bacfc0c5d1
Merge pull request #10015 from mfo/US/feat-export-include-mandataire
ETQ instructeur, ETQ API les exports contiennent plus de donnée (mandataire & info de france connection france connect)
2024-02-22 10:33:15 +00:00
Colin Darie
ff8c0e6c69
Merge pull request #10012 from colinux/doc-STRICT_EMAIL_VALIDATION_STARTS_ON
Tech: document STRICT_EMAIL_VALIDATION_STARTS_ON env var
2024-02-21 17:09:00 +00:00
mfo
8579736c03
Merge pull request #10025 from colinux/fix-filter-too-long-error
ETQ instructeur, message d'erreur plutôt que crash lorsqu'on ajoute un filtre trop long (plus de 100 caractères)
2024-02-21 14:51:26 +00:00
Martin
31168f9602 perf(spec): build not create some variables, & fix specs 2024-02-21 14:44:49 +01:00
Martin
c2675dfb4d feat(export.user): add when user passthru FranceConnect or not 2024-02-21 14:44:49 +01:00
Martin
c9235c8a3d feat(export.for_tier): add to export 2024-02-21 14:44:49 +01:00
Colin Darie
5f5756a034
Merge pull request #10017 from mfo/US/a11y-after-signup
ETQ usager utilisant un lecteur d'écran: la page de demande de confirmation de compte ne concentre pas le lecteur d'écran sur le champ pour renvoyer un mail de confirmation
2024-02-21 12:25:35 +00:00
Colin Darie
41a27fbad2
Merge pull request #10014 from mfo/US/better-expert-exports
ETQ expert: je retrouve mes avis confidentiel dans les exports. ETQ instructeur, je retrouve les fichiers joint a une demande d'avis expert
2024-02-21 11:25:58 +00:00
Colin Darie
5ab1d45b8a fix(instructeur): don't crash when adding a filter too long 2024-02-21 12:13:47 +01:00
Paul Chavard
5a8859cd28
Merge pull request #10018 from tchak/fix-address-champ
fix(champ): do not reset data on champs without fetch_external_data
2024-02-21 09:06:24 +00:00
Colin Darie
1671a783a2
Merge pull request #10021 from colinux/fix-email-subject-double-encode
ETQ usager je dois voir de vraies apostrophes à la place de `'` dans les sujets d'email
2024-02-21 08:33:44 +00:00
Paul Chavard
702b9dd8b3 fix(champ): do not reset data on champs without fetch_external_data 2024-02-21 08:54:08 +01:00
Martin
48336f0ca4 a11y(users/confirmations#new): avoid autofocus on input to resend the mail, otherwise screen reader goes straight to the input 2024-02-21 07:56:00 +01:00
Colin Darie
c05aaa5f35 fix(email): dynamic subject should be escaped, cf RFC 2047 which have its own encoding 2024-02-20 18:29:41 +01:00
Colin Darie
560d50f52d fix(dropdown-multiple): a valid option starting by [ may not be a JSON value 2024-02-20 17:41:53 +01:00
Martin
ba3fda1928 bug(monavisvalidator): what any domain could be used ?! 2024-02-20 11:51:00 +01:00
mfo
de4369db29
Merge pull request #10010 from mfo/US/fix-expert-signup
amelioration(expert.signup): passe la page de creation de compte expert au dsfr
2024-02-19 16:43:31 +00:00
Martin
a151a304e2 feat(pj_service): add expert's avis (even when confidential) to exports asked by same expert 2024-02-19 16:22:08 +01:00
Martin
dd39ac313b feat(pj_service): add introduction_file to exports 2024-02-19 16:21:26 +01:00
Colin Darie
1626a71f93
test: fix invalid emails 2024-02-19 15:16:18 +01:00
Martin
8dc3103ac1 fix(champs.email): allow nil 2024-02-19 15:13:20 +01:00
Martin
e788846894 feat(expert.signup): dsfrize 2024-02-19 11:28:38 +01:00
Colin Darie
eb41f7e85e
test: fix graphql syntax error output since JSON parser is now yajl-ruby 2024-02-19 09:28:39 +01:00
Paul Chavard
46b12c0c3d
Merge pull request #9990 from tchak/refactor-adresse-champ
refactor(address): use directly BAN data
2024-02-16 16:42:17 +00:00
Martin
1a424beb6f fix(tags): libelle with double dash, becomes double underscore. no worries it was already broken 2024-02-16 14:00:18 +01:00
Martin
0fbbe4d97c bug(tags): libelle with double dash, double dash also known as tag delimiter 2024-02-16 14:00:18 +01:00
Paul Chavard
20307f1d21 refactor(address): use directly BAN data 2024-02-16 12:15:14 +01:00
Martin
32e8f34511 refactor(PiecesJustificativesService): stop passing flags, pass user_profile and manage ACL from the service itself 2024-02-16 11:23:39 +01:00
Martin
56ed901703 tech(clean): remove dead code 2024-02-16 11:23:39 +01:00
Martin
72a3f6e89c refactor(export/archives): holds user profile asking for the archive or export 2024-02-16 11:23:38 +01:00
mfo
4dfb3b86ef
Merge pull request #10000 from mfo/US/groupe-instructeur-manageable-for-routee-procedure
ETQ administrateur, je peux gerer la liste des instructeurs même si le routage est activé sur ma démarche
2024-02-16 09:26:06 +00:00
mfo
cc53946d22
Merge pull request #9978 from mfo/US/enforce-real-email-validation
feat(email): stricter validation
2024-02-16 09:25:58 +00:00
Colin Darie
fc482c1607
Merge pull request #10008 from colinux/fix-draft-procedure-description-cache
ETQ admin: correction du cache de la liste des PJ d'une démarche en brouillon
2024-02-16 07:22:22 +00:00
mfo
3e9abd73e4
Merge pull request #10004 from mfo/add_missing_acl_on_instructeurs_self_management_enabled
secu(instructeurs/groupes_instructeurs): s'assure que seul les instructeurs d'une demarche ayant la gestion activé puisse acceder aux ecrans
2024-02-16 06:37:45 +00:00
Colin Darie
a783c50026 fix(commencer): cache on description of draft procedure
Des changements dans le formulaire d'une démarche en brouillon
ne mettent pas à jour la cache_key de la procedure, donc au fait au plus
simple pour éviter un cache stale dans ces cas là.
2024-02-15 18:45:13 +01:00
Martin
a274629719 fix(instructeurs/groupes_instructeurs#*): add some ACL here 2024-02-15 17:11:25 +01:00
Martin
b6c2742cda bug(instructeurs/groupes_instructeurs#*): any ACL here ? 2024-02-15 17:11:25 +01:00
Martin
8488e74bbb review(suggestion): better code with reviews, normalize Champs::EmailChamp.value, simplier default strict validation activation
Co-authored-by: Colin Darie <colin@darie.eu>
2024-02-15 16:41:00 +01:00
Martin
5f77c0cd06 feat(email.validation): expand email validation to Avis, ContactInformation, Invite, DossierTransfert 2024-02-15 16:41:00 +01:00
Martin
05193e1d1e feat(User.validation): validates email when env var is present 2024-02-15 16:41:00 +01:00
Martin
25f92a7760 feat(email.validator): define a strict email validator, validates Champs::EmailChamp.value only on validation context
Co-authored-by: Paul Chavard <github@paul.chavard.net>
2024-02-15 16:41:00 +01:00
Martin
5407011668 feat(procedure.routing): allow admin to manage instructeur even when procedure has some routing 2024-02-15 13:40:48 +01:00
Colin Darie
a650114671
test: fix flaky match_array test 2024-02-15 11:00:53 +01:00
seb-by-ouidou
9ddd55d5cd feat: remove commentaire_component and replace it by message_component + replace commentaires/_form by messages/_form + few fixes 2024-02-15 07:50:20 +00:00
Colin Darie
bd3c2c070a
Merge pull request #9957 from demarches-simplifiees/finalize-rna-rnf-ldu
ETQ instructeur et consommateur API, la vue du champ RNA est harmonisée avec le champ RNF
2024-02-14 15:30:54 +00:00
Colin Darie
a9b24b897e
Merge pull request #9971 from demarches-simplifiees/harmonize-merci-message-from-admin-apercu-to-user-ldu
ETQ admin, je veux que le message de fin de dépot d'une démarche déclarative soit correct
2024-02-14 15:14:20 +00:00
Colin Darie
48644ae407
Merge pull request #9846 from adullact/feature-ouidou/admin_creation_delegation_gestionnaire_contact_parent_gestionnaires
Délégation de compte: ETQ gestionnaire je peux contacter les gestionnaires des groupes parents
2024-02-13 14:42:03 +00:00
Paul Chavard
7d9cb4d497
Merge pull request #9988 from tchak/refactor-logic-compute-sub-values
refactor(logic): compute sub champ values
2024-02-13 14:22:09 +00:00
Paul Chavard
ff95a812e2 fix(combobox): always sort on the client 2024-02-13 12:26:43 +01:00
Paul Chavard
93635b3516 refactor(logic): compute sub champ values 2024-02-13 11:57:31 +01:00
seb-by-ouidou
fba3cbe331 feat: as gestionnaire, contact gestionnaire of parent groupe 2024-02-13 11:19:52 +01:00
Paul Chavard
641a33e1e0
Merge pull request #9985 from tchak/fix-update-dossier-en-construction
ETQ Usager, je ne veux pas voir un message d'alerte indiquant que la démarche est close lorsque je modifie un dossier en construction
2024-02-13 09:38:08 +00:00
Colin Darie
c0f9b8c1cd test: fix flaky test due to passing time 2024-02-13 09:54:23 +01:00
Eric Leroy-Terquem
7b539c72b1
Merge pull request #9955 from demarches-simplifiees/fix-simple-routing
ETQ admin je peux faire un routage simple à partir d'un type de champ communes ou epci
2024-02-13 07:56:42 +00:00
Paul Chavard
034015384b fix(dossier): do not warn about closed demarche when updating a fork 2024-02-13 08:19:19 +01:00
Colin Darie
5e859bd41f
test(rna): add test against RNA type 2024-02-12 17:20:08 +01:00
Lisa Durand
f09ab62620
add rna type de champ to harmonize api with rnf 2024-02-12 17:20:07 +01:00
Colin Darie
7251a5ca01
Merge pull request #9983 from colinux/fix-address-champ
ETQ instructeur: fix génération d'attestation avec une balise "nom de la commune" depuis un champ adresse
2024-02-12 15:48:11 +00:00
Colin Darie
bfb98554ff
fix(active-storage): don't fail on analyzing a blob derivated by watermark
Quand l'analyse du job se produit après le watermark, elle doit comparer
le checksum avec celui du fichier filigrané.
2024-02-12 16:30:58 +01:00
Colin Darie
ea89c2e8dd
fix(attestation): tag commune_name from address 2024-02-12 15:08:05 +01:00
Colin Darie
c4110c35bf
fix(graphql): json error is not anymore prefixed by unknown line number 2024-02-12 09:33:28 +01:00
Colin Darie
18e5e13eba
test: fix devise-i18n change courriel => email 2024-02-12 09:33:27 +01:00
Colin Darie
e0d5dc84d5
fix(rubocop): Rails/TimeZone 2024-02-12 09:33:20 +01:00
Colin Darie
6ab3fa1cf4
fix(rubocop): Rails/RedundantActiveRecordAllMethod 2024-02-12 09:33:18 +01:00
Paul Chavard
23592087ae refactor(instructeur): use precomputed timestamps 2024-02-08 18:36:04 +01:00
Eric Leroy-Terquem
79ff2ba779 feat(combobox): can paste many terms separated by semicolons 2024-02-08 11:53:47 +01:00
Colin Darie
fb14afc530 fix(rna): real RNA identifier could contain at least 1 letter, despite of specs 2024-02-06 15:02:57 +01:00
Colin Darie
70e92f7c6b
Merge pull request #9903 from colinux/attestation-ux
ETQ admin, je peux tester l'attestation v2
2024-02-06 08:09:53 +00:00
Lisa Durand
0a8e8ebd05 change wording for co-constructing dossier 2024-02-05 12:08:10 +01:00
seb-by-ouidou
c2c54083e8
feat: display tree structure of a group 2024-02-05 09:30:24 +01:00
Colin Darie
eb55abebfc style(attestation): fix for headings style and spacing following charte 2024-02-02 13:49:22 +01:00
Colin Darie
f7484eb0e5
feat(attestation): list tags errors and substitute missing tag by libelle 2024-02-02 13:05:09 +01:00
seb-by-ouidou
46c19014f9 feat: notify administrateur and gestionnaire by email when new commentaire + for administrateur highlight card and commentaires if any unread 2024-02-02 12:52:36 +01:00
Colin Darie
6f49dd892d
fix(attestation): multiple tags improvements
- no menu when no matching tags
- insert a space after clicking a button
- allow no space before mention
2024-02-02 09:47:20 +01:00
Colin Darie
7e02342518
feat(attestation): tiptap default attestation 2024-02-01 18:55:58 +01:00
Colin Darie
475406f3f2
style(attestation): improve editor UI & style 2024-02-01 18:55:55 +01:00
Colin Darie
16478651a9
test(attestation): more tests for v2 2024-02-01 18:55:53 +01:00
Colin Darie
443e41a6ed
style(attestation): group tags by section 2024-02-01 18:55:52 +01:00
Colin Darie
40353fee04
feat(attestation): replace tags in preview for v2 2024-02-01 18:55:50 +01:00
Colin Darie
16cdff8425
feat(tiptap): detect first body paragraph for spacing, handle empty nodes 2024-01-31 17:03:47 +01:00
Colin Darie
45071b7bb6
fix(tiptap): don't fail on node without content 2024-01-31 17:03:40 +01:00
Eric Leroy-Terquem
b04f152733 fix(routing): can create simple routing with communes and epci tdc 2024-01-31 15:27:45 +01:00
Kara Diaby
17a471e880
Merge pull request #9939 from demarches-simplifiees/feat/9937
ETQ Super-Admin, je souhaite marquer une démarche comme modèle
2024-01-31 10:21:30 +00:00
Kara Diaby
46748091a6 Permet au Support de marquer une démarche comme modèle et de filtrer dans toutes les démarches 2024-01-31 09:30:14 +00:00
Colin Darie
88e62323b6
Merge pull request #9949 from mfo/US/fix-device-locale
correctif: ETQ usager naviguant sur le site en anglais, je m'attends a recevoir des messages d'erreur de connexion en anglais
2024-01-31 09:28:15 +00:00
Colin Darie
3ea718a3f5
Merge pull request #9664 from adullact/feature-ouidou/admin_creation_delegation_follow_commentaire
ETQ gestionnaire, j'ai un suivi des messages au sein de mes groupes
2024-01-31 08:56:29 +00:00
Martin
672b341279 bug(auth.error_message): should be i18n 2024-01-30 10:03:00 +01:00
Colin Darie
df1dd19eac
Merge pull request #9946 from colinux/fix-procedure-external-url
Tech: fix le job de vérification des liens externes des procédures lorsqu'un autre attribut est en erreur
2024-01-29 17:31:38 +00:00
seb-by-ouidou
f3cba9331d fix: improvement after review 2024-01-29 18:23:39 +01:00
seb-by-ouidou
6cd8b6d2df feat: for gestionnaire highlight card and commentaires if any unread 2024-01-29 18:23:39 +01:00
seb-by-ouidou
a5d95b2d9d fix: fix activate gestionnaire and activate administrateur 2024-01-29 18:23:39 +01:00
Colin Darie
533ce8d7ba fix(procedure-url-check): don't fail when other attribute have an error 2024-01-29 15:42:35 +01:00
Eric Leroy-Terquem
6203b1fd05
Merge pull request #9879 from demarches-simplifiees/cleaning-conditional-and-routing-code
Tech : nettoyage du code conditionnel et routage
2024-01-29 13:43:52 +00:00
mfo
77ca3dd28a
Merge pull request #9922 from mfo/US/nplus_one_in_summary
perf(TypeDeChampEditor): faster
2024-01-29 10:58:05 +00:00
Colin Darie
a582fef1e5
Merge pull request #9934 from colinux/fix-export-link-witout-file
ETQ instructeur, n'affiche pas encore de lien vers un export quand le fichier n'est pas encore disponible
2024-01-29 10:11:33 +00:00
LeSim
e12c663d21
Merge pull request #9940 from demarches-simplifiees/can_edit_again_a_token
Admin: je peux modifier le nom et les réseaux d'un jeton d'API
2024-01-29 09:21:21 +00:00
simon lehericey
5eaa957c31 can edit api_token to change networks and name 2024-01-29 10:09:55 +01:00
Colin Darie
c02171ede7
Merge pull request #9936 from colinux/badge-corrige
ETQ instructeur, je vois un badge Corrigé lorsque le dossier a été corrigé
2024-01-29 08:57:54 +00:00
Colin Darie
b64a32444c
Merge pull request #9935 from colinux/transfer-empty-no-fail
Tech: plus d'erreur lorsque l'email de transfert n'a plus de dossier associé
2024-01-29 08:43:50 +00:00
Martin
01752bc2e8 perf(ProcedureRevisionPreloader): preload revision quickly 2024-01-26 14:47:44 +01:00
Martin
ecc83edf4f wip 2024-01-26 13:43:10 +01:00
simon lehericey
97f335c36a add a cron job to send expiration notice 2024-01-26 10:18:16 +01:00
simon lehericey
6353c10955 add APIToken expiration mailer 2024-01-26 10:18:16 +01:00
simon lehericey
d909e2c8ea add various expiring scopes to APIToken 2024-01-26 10:15:37 +01:00
Martin
0e5768ec5b fixup! perf(editor): better perf to add, destroy, update, move up, move down and move with number 2024-01-26 09:45:59 +01:00
Colin Darie
50b9813b4d
Merge pull request #9932 from colinux/lock-submit-fork
Correctif: ETQ usager, je ne peux pas soumettre 2x mes modifications en parallèle
2024-01-25 11:37:56 +00:00
Colin Darie
4aa1306536
feat(transfer): make it silent in case dossier had been destroyed between queuing and processing
Co-authored-by: mfo <mfo@users.noreply.github.com>
2024-01-25 11:31:12 +01:00
simon lehericey
588e58195c move api_tokens to admin module 2024-01-25 11:27:15 +01:00
simon lehericey
49f0caba7e fix(spec): flaky test 2024-01-25 11:17:44 +01:00
simon lehericey
9a0dd45385 feat(api): add invalid ip addr error 2024-01-25 11:17:44 +01:00
simon lehericey
852eedbc50 refactor(api): create api_token with validity and network filtering 2024-01-25 11:17:44 +01:00
simon lehericey
7e8555923f feature(api): add ensure_token_is_not_expired to api_controller v1 and v2 2024-01-25 10:51:58 +01:00
simon lehericey
d8bc38bc69 feature(api): add ensure_authorized_network for api_controller v1 and v2 2024-01-25 10:51:58 +01:00
simon lehericey
6e5678d1c2 feature(api): add forbidden_network? to api_token 2024-01-25 10:51:58 +01:00
Colin Darie
8e6a1c58b2 feat(correction): badge Corrigé when a correction has been resolved
Closes #9928
2024-01-24 17:26:34 +01:00
Colin Darie
520a7c4402
fix(exports): don't try to link to an export when file is not yet attached 2024-01-24 13:36:25 +01:00
Kara Diaby
ac29cfbfdb Envoie un email à l'expert en cas de nouveau commentaire de l'usager dans la messagerie 2024-01-24 10:48:17 +00:00
Colin Darie
56f8b61866
feat(dossiers): lock submit en construction to avoid merge collisions with double submits 2024-01-24 10:58:40 +01:00
Martin
2952987ad8 refactor(spec): stop using procedure type de champs traits as :with_datetime, :with_xxx in favor of :types_de_champ_public which keeps position in check 2024-01-23 17:30:22 +01:00
mfo
15e0ed8480
Merge pull request #9927 from mfo/fix-flacky-type-de-champ-template
fix(spec.flacky): ./spec/system/administrateurs/types_de_champ_spec.rb:272 was flacky, try to fix it
2024-01-22 17:10:37 +00:00
Colin Darie
716e4bbe5d
Merge pull request #9645 from adullact/feature-ouidou/admin_creation_delegation_gestionnaire_answer_administrateur
Feature ouidou/admin creation delegation gestionnaire answer administrateur
2024-01-22 15:45:58 +00:00
Martin
2fa59076f9 fix(spec.flacky): ./spec/system/administrateurs/types_de_champ_spec.rb:272 was flacky, try to fix it 2024-01-22 15:50:38 +01:00
Martin
0f194a5e8e refactor(procedure_revision): without renumber, use types_de_champ_public factory for ordered champs 2024-01-22 14:57:04 +01:00
Martin
5c049a1c0f feat(update_draft_revision_type_de_champs_task): force to use real position otherwise have to process parent_coordinates... 2024-01-22 14:57:04 +01:00
Martin
434cd77030 poc(spec): renumber only at one point 2024-01-22 14:57:04 +01:00
Martin
a9c0d3e7e9 tech(clean): avoid useless indirection, cleanup some code complexity, rubocopify 2024-01-22 14:57:04 +01:00
Martin
4d97c5bc8a feat(move_type_de_champ): stop renumbering all procedure_revision_type_de_champ on move_type_de_champ 2024-01-22 14:57:04 +01:00
Martin
4b57ed871a feat(add_type_de_champ): stop renumbering all procedure_revision_type_de_champ 2024-01-22 14:57:04 +01:00
seb-by-ouidou
a6ca4b668e feat: answer message to administrateur as gestionnaire 2024-01-22 14:36:38 +01:00
seb-by-ouidou
8d8feedff0 fix: group "it" test 2024-01-22 14:36:38 +01:00
seb-by-ouidou
e6474f0d14 feat: US4.3.9 children management 2024-01-22 14:36:38 +01:00
seb-by-ouidou
96dd6bec52 feat: US4.3 update and delete groupe gestionnaire 2024-01-22 14:36:38 +01:00
Colin Darie
7892b54aa6 fix(discarded-dossiers): don't crash whole job when a single dossier causes an error 2024-01-17 13:15:42 +01:00
Colin Darie
1a8f839a7e
Merge pull request #9915 from colinux/fix-admin-memory-leak
Perf: remplace les `OpenStruct` par des objets plus performants
2024-01-17 08:59:01 +00:00
Colin Darie
a4db911585
perf(admin): remove 2 useless zones queries on each admin page due to navigation 2024-01-16 19:43:58 +01:00
Colin Darie
a0e64151d5
test: replace OpenStruct by model expected 2024-01-16 19:43:24 +01:00
Lisa Durand
d9b75ce0a2
Merge pull request #9882 from demarches-simplifiees/add-dossier-reference-in-transfer-email
Je veux que le numéro du dossier apparaisse dans l'email de demande de transfert
2024-01-15 15:39:09 +00:00
mfo
0328446bee
Merge pull request #9861 from demarches-simplifiees/US/move-type-de-champ-with-select
ETQ administrateur, je peux deplacer un champ via un select
2024-01-15 13:09:56 +00:00