0011-fields-prefill-phone-value-69838.patch
tests/form_pages/test_all.py | ||
---|---|---|
107 | 107 |
user = pub.user_class() |
108 | 108 |
user.name = 'User Name' |
109 | 109 |
user.email = 'foo@localhost' |
110 |
user.phone = '+33123456789' |
|
110 | 111 |
user.store() |
111 | 112 |
account = PasswordAccount(id='foo') |
112 | 113 |
account.set_password('foo') |
... | ... | |
2064 | 2065 |
resp = app.get('/code/%s/load' % tracking_code, headers={'User-agent': 'Googlebot'}, status=403) |
2065 | 2066 | |
2066 | 2067 | |
2068 |
def test_form_phone_prefill(pub, nocache): |
|
2069 |
create_user(pub) |
|
2070 |
formdef = create_formdef() |
|
2071 |
formdef.data_class().wipe() |
|
2072 |
formdef.fields = [fields.StringField(id='0', label='string', prefill={'type': 'user', 'value': 'phone'})] |
|
2073 |
formdef.store() |
|
2074 | ||
2075 |
resp = login(get_app(pub), username='foo', password='foo').get('/test/') |
|
2076 |
assert resp.pyquery('input#form_f0').val() == '+33123456789' |
|
2077 |
resp.forms[0]['f0'] = '+33987654321' |
|
2078 |
resp = resp.forms[0].submit('submit') |
|
2079 |
assert resp.pyquery('button.form-submit').val() == 'Submit' |
|
2080 | ||
2081 | ||
2082 |
def test_form_phone_prefill_phone_fr_validation(pub, nocache): |
|
2083 |
create_user(pub) |
|
2084 |
formdef = create_formdef() |
|
2085 |
formdef.data_class().wipe() |
|
2086 |
field = fields.StringField(id='0', label='string', prefill={'type': 'user', 'value': 'phone'}) |
|
2087 |
field.validation = {'type': 'phone-fr'} |
|
2088 |
formdef.fields = [field] |
|
2089 |
formdef.store() |
|
2090 | ||
2091 |
resp = login(get_app(pub), username='foo', password='foo').get('/test/') |
|
2092 |
assert resp.pyquery('input#form_f0').val() == '01 23 45 67 89' |
|
2093 |
resp.forms[0]['f0'] = '0987654321' |
|
2094 |
resp = resp.forms[0].submit('submit') |
|
2095 |
assert resp.pyquery('button.form-submit').val() == 'Submit' |
|
2096 | ||
2097 | ||
2067 | 2098 |
def test_form_tracking_code_prefill(pub, nocache): |
2068 | 2099 |
create_user(pub) |
2069 | 2100 |
formdef = create_formdef() |
tests/test_prefill.py | ||
---|---|---|
27 | 27 |
pub.user_class.wipe() |
28 | 28 |
user = pub.user_class(name='user') |
29 | 29 |
user.email = 'test@example.net' |
30 |
user.phone = '+33123456789' |
|
30 | 31 |
user.store() |
31 | 32 |
get_request()._user = user |
32 | 33 |
return user |
... | ... | |
66 | 67 |
assert field.get_prefill_value() == ('{{cards|objects:"unknown"|first|get:"foo"}}', False) |
67 | 68 | |
68 | 69 | |
69 |
def test_prefill_user(user): |
|
70 |
def test_prefill_user_email(user):
|
|
70 | 71 |
field = fields.Field() |
71 | 72 |
field.prefill = {'type': 'user', 'value': 'email'} |
72 | 73 |
assert field.get_prefill_value(user=get_request().user) == ('test@example.net', False) |
73 | 74 | |
74 | 75 | |
76 |
def test_prefill_user_phone(user): |
|
77 |
field = fields.Field() |
|
78 |
field.prefill = {'type': 'user', 'value': 'phone'} |
|
79 |
assert field.get_prefill_value(user=get_request().user) == ('+33123456789', False) |
|
80 | ||
81 | ||
82 |
def test_prefill_user_phone_fr(user): |
|
83 |
field = fields.Field() |
|
84 |
field.validation = {'type': 'phone-fr'} |
|
85 |
field.prefill = {'type': 'user', 'value': 'phone'} |
|
86 |
assert field.get_prefill_value(user=get_request().user) == ('01 23 45 67 89', False) |
|
87 | ||
88 | ||
75 | 89 |
def test_prefill_user_attribute(user): |
76 | 90 |
from wcs.admin.settings import UserFieldsFormDef |
77 | 91 |
wcs/fields.py | ||
---|---|---|
85 | 85 |
get_document_types, |
86 | 86 |
strftime, |
87 | 87 |
strip_some_tags, |
88 |
try_local_number, |
|
88 | 89 |
xml_node_text, |
89 | 90 |
) |
90 | 91 |
from .qommon.ods import NS as OD_NS |
... | ... | |
539 | 540 |
x = self.prefill.get('value') |
540 | 541 |
if x == 'email': |
541 | 542 |
return (user.email, explicit_lock or 'email' in (user.verified_fields or [])) |
543 |
elif x == 'phone': |
|
544 |
if hasattr(self, 'validation') and self.validation.get('type', None) == 'phone-fr': |
|
545 |
phone = try_local_number(user.phone) |
|
546 |
else: |
|
547 |
phone = user.phone |
|
548 |
return (phone, explicit_lock or 'phone' in (user.verified_fields or [])) |
|
542 | 549 |
elif user.form_data: |
543 | 550 |
userform = user.get_formdef() |
544 | 551 |
for userfield in userform.fields: |
545 |
- |