misc: rely on phonenumbers library for is_french_mobile_phone_number (#72793) #1037
Open
fpeters
wants to merge 1 commits from
wip/72793-french-mobile-number-templatetag
into main
pull from: wip/72793-french-mobile-number-templatetag
merge into: entrouvert:main
entrouvert:main
entrouvert:wip/61870-wscall-parts
entrouvert:wip/80760-wf-form-same-id
entrouvert:wip/26688-datasource-cache-invalidate
entrouvert:wip/90192-move-block-error-after-block
entrouvert:wip/87739-clamav-cli
entrouvert:wip/86903-fts-cards
entrouvert:wip/71249-application-card-data
entrouvert:wip/17346-condition-log-errors
entrouvert:hotfix/v11.41
entrouvert:wip/90114-backoffice-submission-keep-channel-user-in-draft
entrouvert:wip/44887-backoffice-submission-user-roles
entrouvert:wip/29808-data-source-expire-cache-on-duration-change
entrouvert:wip/47894-get_table_column
entrouvert:wip/60412-dynamic-prefill-select2-card
entrouvert:wip/84136-passage-a-nox
entrouvert:wip/89412-global-interactive-no-live
entrouvert:hotfix/v11.26
entrouvert:wip/75162-do-not-save-prefill-first-visit
entrouvert:wip/81260-workflow-in-progress
entrouvert:hotfix/v11.13
entrouvert:wip/81831-remove-parametric-workflow-variables
entrouvert:wip/88687-update-relations-once-per-model
entrouvert:wip/76958-a11y-live-validation
entrouvert:wip/46617-map-field-jsonb
entrouvert:wip/88208-tests-hobo-provision-clean
entrouvert:wip/4794-mark-vhost-name
entrouvert:wip/87739-clamav
entrouvert:wip/87690-backoffice-builtin-select-filters
entrouvert:hotfix/v10.81
entrouvert:wip/87525-marqueur-position-initiale
entrouvert:wip/36626-html-form-details
entrouvert:wip/87435-submission-index-query
entrouvert:wip/87434-Ameliorer-les-requetes-dans-Subm
entrouvert:wip/xxxxx-lazy-publication-attributes
entrouvert:wip/86992-Condition-de-sortie-de-page-ne-p
entrouvert:wip/28236-age-in-partial-days
entrouvert:wip/83593-testdef-socle-de-base-pour-les-w
entrouvert:wip/86587-testdef-inclure-les-tests-dans-l
entrouvert:hotfix/v10.71
entrouvert:wip/xxx-failing-tests-1
entrouvert:wip/xxx-failing-tests-2
entrouvert:wip/86587-testdef-inclure-les-tests-dans-l-old
entrouvert:wip/86490-opacify-short-url
entrouvert:83593-old-2
entrouvert:hotfix/v10.63
entrouvert:wip/86224-no-godo-for-loops
entrouvert:wip/27992-history-comment-rich
entrouvert:wip/75777-Doublon-d-utilisateur-au-provisi
entrouvert:wip/83593-testdef-socle-de-base-pour-les-w-old
entrouvert:wip/84500-fausse-exception-None-dans-les-t
entrouvert:wip/41460-workflow-zoom-with-ctrl
entrouvert:wip/tests-jenkins
entrouvert:wip/85108-gin-indexes
entrouvert:hotfix/v10.48
entrouvert:wip/50829-sql-schema
entrouvert:wip/84579-jenkinsfile-double-numprocesses
entrouvert:wip/test-ci
entrouvert:wip/78777-template-data-source
entrouvert:wip/81734-rewrite-stats-in-sql
entrouvert:wip/74723-last-jump
entrouvert:wip/66067-admin-permissions-check-all
entrouvert:wip/79738-role-usage
entrouvert:wip/81105-tests-unitaires-js
entrouvert:wip/81496-application-diff-version
entrouvert:wip/77911-decimal-queries
entrouvert:wip/80843-unicite-identifiant
entrouvert:wip/73401-longueur-champ-text
entrouvert:wip/81020-clamp
entrouvert:hotfix/v9.94
entrouvert:wip/80613-visited-objects
entrouvert:wip/80360-form-details-titles
entrouvert:wip/59221-import-none-role
entrouvert:wip/79858-has-role-filter-uuid
entrouvert:wip/79859-liste-image-live-update-champ-ignore
entrouvert:wip/79775-tox-v4-compat
entrouvert:tmp-paul/godo-dependency-riddance
entrouvert:hotfix/v9.68
entrouvert:hotfix/v9.58
entrouvert:wip/72091-remove-python-option
entrouvert:hotfix/v9.36
entrouvert:hotfix/v9.21
entrouvert:wip/75724-live-validation-js
entrouvert:wip/75724-error-template-markup
entrouvert:wip/75724-JS-live-validation
entrouvert:wip/75170-testdef-revoir-la-creation
entrouvert:wip/75795-sql-application_name
entrouvert:wip/75647-cron-ne-pas-bloquer-sur-une-erre
entrouvert:hotfix/v8.98
entrouvert:wip/75178-Retirer-l-application-d-ExifRest
entrouvert:hotfix/v8.90
entrouvert:wip/74840-tox-30
entrouvert:wip/74840-tox-31
entrouvert:wip/73674-sql-cleanup
entrouvert:wip/74435-show-max-file-size-in-error
entrouvert:wip/check-pylint-broad-exception-raised
entrouvert:wip/xxxxx-native-form-pages
entrouvert:wip/73860-enforce-phone-fr-validation
entrouvert:wip/73513-audit-reduce-default-retention-delay
entrouvert:hotfix/v8.68
entrouvert:wip/72989-testdef-gerer-les-pages-conditio
entrouvert:wip/69561-page-title
entrouvert:wip/72704-testdef-verifier-la-validation-d
entrouvert:wip/72802-wf-actions-tracing-table
entrouvert:wip/72860-geojson-missing-id_property
entrouvert:wip/72862-i18n-none-template
entrouvert:wip/70508-missing-edited-data
entrouvert:wip/71789-empty-supported-languages
entrouvert:wip/72859-recreate-formdef-indexes
entrouvert:wip/72857-call-command-close-conn
entrouvert:wip/72682-grep-backoffice-fields
entrouvert:wip/72851-anonymised-tz
entrouvert:wip/38269-adapt-some-category-slugs
entrouvert:wip/72819-myspace-redirect
entrouvert:wip/72815-steps-title
entrouvert:wip/71590-translate-card-digests
entrouvert:wip/61416-cards-fields-directory
entrouvert:wip/72809-stub-data-source
entrouvert:wip/71020-anonymisation-as-trigger-date
entrouvert:wip/72083-add-deprecated-to-python-labels
entrouvert:wip/72803-snapshot-no-changes
entrouvert:wip/72801-jsonvalue-migration-exceptions
entrouvert:wip/71455-move-form-tokens-to-database
entrouvert:wip/72096-datasource-jsondef
entrouvert:wip/72765-phone-number-prefill
entrouvert:wip/31201-redirect-as-endpoint
entrouvert:wip/67090-saml-lier-la-session-en-cours-a-
entrouvert:wip/xxx-track-possible-regression
entrouvert:wip/72623-native-home-anyformdata
entrouvert:wip/71937-add-json-output-in-inspect-tool
entrouvert:hotfix/v8.54
entrouvert:wip/39178-history-message-template
entrouvert:wip/XXX-optimize-condition
entrouvert:wip/71471-fullname-vs-hobo
entrouvert:wip/XXXXX-test-jumps
entrouvert:wip/71330-api-include-workflow-data-param
entrouvert:wip/71333-lazy-evolution-and-old-pickles
entrouvert:wip/71327-redirect-query-string-trailing-slash
entrouvert:wip/71316-redirect-to-correct-category
entrouvert:wip/71303-api-fix-include-evolution
entrouvert:wip/69108-api-formdata-split-full
entrouvert:wip/71252-wscall-deps-conditions
entrouvert:wip/71152-api-export-import-category
entrouvert:wip/71184-preview-redirection
entrouvert:wip/71183-preview-redirection
entrouvert:wip/71183-edit-backoffice-redirection
entrouvert:wip/71176-summary-display-labels-as-p
entrouvert:wip/71102-timetable-a11y-focus-on-week-change
entrouvert:wip/71103-timetable-a11y-keyboard-nav
entrouvert:wip/71101-timetable-a11y-week-nav-buttons
entrouvert:wip/71091-evolution-metadata-p-tag
entrouvert:wip/71118-post-same-slug
entrouvert:wip/71087-filename-p-tag
entrouvert:wip/71051-edit-with-category
entrouvert:wip/70259-import-submission-channel
entrouvert:wip/71038-backoffice-data-admin-url
entrouvert:wip/71034-fullname-template
entrouvert:wip/70952-get-cron-status-no-lock
entrouvert:wip/4281-use-filewidget-in-export-to-model-action
entrouvert:wip/70045-ignore-anonymised-formdata-in-jumps
entrouvert:wip/70639-order-filter-options
entrouvert:wip/70990-restricted-api-user-substvars
entrouvert:wip/70458-create-doc-section
entrouvert:wip/70576-add-action-types-to-deprecation-page
entrouvert:wip/70978-not-set
entrouvert:wip/70979-fix-distance-filter-templatetags
entrouvert:wip/68883-go-to-mail-template
entrouvert:wip/70773-tempfile-link-on-edit-card
entrouvert:wip/70931-api-geojson-no-result
entrouvert:wip/70949-a-in-rich-text
entrouvert:wip/70858-mail-template-category-in-create
entrouvert:wip/70772-fix-json-import-bad-user-format
entrouvert:wip/70644-fix-get-int-or-404
entrouvert:wip/70914-tracing-members
entrouvert:wip/70904-pgpassword
entrouvert:wip/70908-cron-setproctitle
entrouvert:wip/70907-cron-legacy-needed
entrouvert:wip/70906-meta-unique-index
entrouvert:wip/70000-wf-edit-carddata-evolution-bis
entrouvert:wip/70898-missing-card-custom-view-redirect
entrouvert:wip/70702-api-export-import-set-categories
entrouvert:wip/69375-api-export-import-cards-forms-objects-dependencies
entrouvert:wip/69441-api-export-import-wscall-dependencies
entrouvert:wip/62800-formdata-snapshot-bis
entrouvert:wip/70853-remove-static-pages-support
entrouvert:wip/70606-api-export-import-redirect-url
entrouvert:wip/70685-parallel-cron
entrouvert:wip/70587-dedup-sms
entrouvert:wip/70575-add-field-types-to-deprecation-page
entrouvert:wip/69546-redirect-form-to-url-with-category-bis
entrouvert:wip/69546-redirect-form-to-url-with-category
entrouvert:wip/test-formdata-snapshot-show-diffs
entrouvert:wip/67283-L-affectation-d-un-id-inconnu-a-
entrouvert:hotfix/v8.17
entrouvert:wip/xxxxx-responses-as-mock-library
entrouvert:wip/68413-sql-simplify-fields-used-items
entrouvert:wip/68324-custom_view-2
entrouvert:wip/27991-rich-hints
entrouvert:hotfix/v8.4
entrouvert:wip/64499-computed-field-only-cards
entrouvert:wip/67843-itemsfield-with-none-prefill
entrouvert:wip/clean-more-pickle-code
entrouvert:wip/59052-prefill-items
entrouvert:wip/xxxxx-flex-backoffice
entrouvert:wip/xxxxx-api-perfs
entrouvert:hotfix/v7.93
entrouvert:wip/65104-texte-riche-pour-le-message-d-er
entrouvert:wip/xxxxx-transient-data-table
entrouvert:hotfix/v7.87
entrouvert:wip/api-prefetch-users-and-roles
entrouvert:wip/sql-get-listing-item-ids
entrouvert:wip/check-test-admin-pages-sql-mode
entrouvert:wip/64768-fix-dynamic-internal-id-filter
entrouvert:wip/64260-disable-table-fields
entrouvert:misc/id-matching
entrouvert:wip/62760-block-remove-label
entrouvert:wip/62919-block-remove-row
entrouvert:wip/56640-add-informative-pages-into-summary
entrouvert:wip/63038-extend-error-messages-with-examples
entrouvert:wip/62750-a11y-all
entrouvert:hotfix/v7.46
entrouvert:wip/62344-clean-snapshot-models-check-usage
entrouvert:hotfix/v7.42
entrouvert:wip/61728-computed-and-field-position
entrouvert:wip60469-index-gin-for-arrays
entrouvert:wip/60611-fix-computed-field-with-lazylist
entrouvert:wip/58884-agendas-datasource
entrouvert:wip/58208-formulaire-un-autosave-peut-se-t
entrouvert:wip/60025-wscall-allow-empty-parameter-values
entrouvert:wip/59914-do-not-trace-skipped-jumps
entrouvert:wip/xxxxx-do-no-reload-empty-evolution
entrouvert:wip/59683-fix-test
entrouvert:wip/try-to-fix-test
entrouvert:hotfix/v7.17
entrouvert:wip/58632-allow-empty-values-on-create-formdata
entrouvert:wip/43614-move-post-formdata-to-advanced-wscall-options
entrouvert:wip/56802-remove-display-exception-settings
entrouvert:wip/57066-filter-by-on-list-of-dicts
entrouvert:wip/pin-pylint
entrouvert:wip/56205-La-recherche-sur-un-champ-date-e
entrouvert:wip/55494-card-summary-status
entrouvert:wip/pylint-too-many-xxx
entrouvert:hotfix/v6.66
entrouvert:wip/users-in-functions
entrouvert:hotfix/v6.62
entrouvert:hotfix/v6.54
entrouvert:wip/get-roles-translation-refactor-to-list
entrouvert:wip/tests-close-files
entrouvert:hotfix/v6.33
entrouvert:wip/pylint-no-init-hook
entrouvert:wip/pylint-more
entrouvert:hotfix/v6.27
entrouvert:hotfix/v6.18
entrouvert:hotfix/v6.7
entrouvert:wip/jenkins-check-black
entrouvert:hotfix/v5.96
entrouvert:wip/49538-wscall-record-errors-more-more
entrouvert:hotfix/v5.84
entrouvert:hotfix/v5.75
entrouvert:wip/48678-add-items-options-for-radio
entrouvert:hotfix/v5.70
entrouvert:hotfix/v5.51
entrouvert:wip/46617-map-data-as-dictionary
entrouvert:wip/setuptools
entrouvert:wip/admin-tests-split
entrouvert:hotfix/v5.24
entrouvert:hotfix/v5.18
entrouvert:wip/widget-list
entrouvert:wip/transfer-form-value
entrouvert:wip/readonly-validation
entrouvert:hotfix/v5.6
entrouvert:wip/43384-jump-compute-timeout-errors
entrouvert:wip/django-22
entrouvert:hotfix/v4.56
entrouvert:wip/latest-pylint
entrouvert:hotfix/v4.46
entrouvert:wip/alternate-file-storage
entrouvert:hotfix/v4.40
entrouvert:wip/38852-Evaluation-live-des-formulaires-
entrouvert:wip/python3-part2
entrouvert:hotfix/v4.22
entrouvert:wip/36752-fc-attr-verification-bypassed
entrouvert:wip/36037-datasource-notype
entrouvert:hotfix/v4.2
entrouvert:wip/31942-wipe-exclude
entrouvert:wip/checkboxes-tpl
entrouvert:wip/django
entrouvert:wip/future
entrouvert:wip/misc-fred
entrouvert:wip/json-with-files-content
entrouvert:wip/alfortville
entrouvert:debian-squeeze
entrouvert:debian-wheezy
entrouvert:qommon-for-authentic1
entrouvert:v2012.3
No reviewers
Labels
Clear labels
No items
No Label
Milestone
Clear milestone
No items
No Milestone
Assignees
Clear assignees
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: entrouvert/wcs#1037
Reference in New Issue
No description provided.
Delete Branch "wip/72793-french-mobile-number-templatetag"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
WIP: misc: rely on phonenumbers library for is_french_mobile_phone_number (#72793)to misc: rely on phonenumbers library for is_french_mobile_phone_number (#72793)A priori on pourrait donc faire évoluer test_is_french_mobile_phone_number pour tester l'usage de numéros mobiles avec numérotation internationale, genre +33 6 39 98 42 42 et +262 6 92 42 42 42 qui doivent être ok, alors qu'un +61 442 424242 (mobile australie) ne devrait toujours pas passer.
Peut-être mais je serais très frileux, en imaginant trop facilement que soudainement des numéros internationaux vont être envoyés à une application métier qui ne s'y attend pas; et je préfère donc rester prudent ici.
J'avais juste mal lu ce patch, qui n'autorise effectivement pas la numérotation internationale, et c'est ok.
Désolé j'ai cliqué sur "commenter et fermer" lors de mon commentaire, pensant clore juste la discussion et non pas la proposition dans son ensemble... et je ne sais plus comment on ré-ouvre...
En tout cas c'est validé.
Ah je viens de voir le bouton "Réouvrir".
cf8e6a5b5c
tofef1563902
Il y avait un mini-rebase à faire mais avec #87044 on a récemment vu que l'utilisation de region_code "FR" pour parser les numéros était insuffisante, j'ai donc finalement tout repris pour toujours passer dans le même code :
(glossaire : code région, c'est BE pour la Belgique, RE pour la Réunion, etc. code pays c'est l'indicatif, 32 pour la Belgique, 262 pour la Réunion, etc. + on continue à traiter spécialement le code région "FR" pour dire "la France métropolitaine mais également la Réunion, la Martinique, etc.").
Avec ça je pense que le tour aura été fait et que #73948 pourra être fermé.
misc: rely on phonenumbers library for is_french_mobile_phone_number (#72793)to WIP: misc: rely on phonenumbers library for is_french_mobile_phone_number (#72793)va falloir tout relire
fef1563902
to3cf3fda47f
3cf3fda47f
tob7fdff0146
b7fdff0146
to53b7e0d3cc
WIP: misc: rely on phonenumbers library for is_french_mobile_phone_number (#72793)to misc: rely on phonenumbers library for is_french_mobile_phone_number (#72793)On se retrouve ici avec un filtre "is_french_mobile_phone_number" qui va changer de comportement et accepter les numéros avec indicatif.
Ça part d'une bonne intention et c'est peut-être mieux ainsi, mais il faudra dire (dans les notes de mises à jour et dans la doc) et ajouter des tests, genre:
Je clique sur "demander des changements" pour mettre l'accent sur ça...
@ -854,0 +852,4 @@
def get_valid_phone_number(string_value, region_codes=None, country_codes=None):
# get string_value as a valid phonenumber in default or specified region_codes,
# with additional check against country_codes if given.
if not re.match(r'^[0\+][\(\)\d\.\s]+$', string_value or ''):
Dans les commentaires, quelque part, ici ou ailleurs, je verrais bien une copie de ce que tu as écrit à côté, parce que c'est utile de se le rappeler dans ce fratas de code:
@ -878,2 +874,2 @@
region_code = get_publisher().get_phone_local_region_code()
country_codes = []
def get_french_country_and_region_codes():
country_codes = [33, 262, 508, 590, 594, 596]
Pour éviter de rechercher l'info, je proposerais ici de rappeler la signification de ces 6 indicatifs:
éventuellement pour rappeler/sous-entendre que ça ne gère pas Nouvelle-Calédonie, Wallis-et-Futuna, Polynésie française et autres endroits qui ne sont pas partie du "plan de numérotation français".
@ -1049,3 +1048,1 @@
return False
return value.startswith('06') or value.startswith('07')
return validate_mobile_phone_local(value, region_code='FR')
Ici on se retrouve avec une fonction qui accepte également les numéros avec un indicatif, comme +33 6 23 45 67 89 ou +262 6 92 11 22 33, ce qui n'est pas le cas actuellement.
Soit on le précise (et donc aussi ajouter des tests qui le montre) soit on laisse le
final ?
7621dd70e5
to30c1870533
Ok, le commit avec les modifications demandées :
7621dd70e5