Skip to content

Commit

Permalink
Merge branch 'master'
Browse files Browse the repository at this point in the history
  • Loading branch information
BreathingFlesh committed Aug 6, 2024
2 parents cd48b75 + 5eafa82 commit 7c52c99
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 45 deletions.
20 changes: 2 additions & 18 deletions src/onegov/translator_directory/forms/accreditation.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ class RequestAccreditationForm(Form, DrivingDistanceMixin):

social_sec_number = StringField(
label=_('Swiss social security number'),
validators=[ValidSwissSocialSecurityNumber()],
validators=[ValidSwissSocialSecurityNumber(), InputRequired()],
fieldset=_('Identification / Bank details'),
)

Expand Down Expand Up @@ -211,7 +211,7 @@ class RequestAccreditationForm(Form, DrivingDistanceMixin):

tel_mobile = StringField(
label=_('Mobile Number'),
validators=[ValidPhoneNumber()],
validators=[ValidPhoneNumber(), InputRequired()],
fieldset=_('Contact'),
)

Expand Down Expand Up @@ -517,22 +517,6 @@ def validate_confirm_submission(self, field: BooleanField) -> None:
_('Please confirm the correctness of the above data.')
)

def ensure_at_least_on_phone_number(self) -> bool:
if not (
self.tel_private.data
or self.tel_office.data
or self.tel_mobile.data
):
error = _('Please provide at least one phone number.')
assert isinstance(self.tel_private.errors, list)
assert isinstance(self.tel_office.errors, list)
assert isinstance(self.tel_mobile.errors, list)
self.tel_private.errors.append(error)
self.tel_office.errors.append(error)
self.tel_mobile.errors.append(error)
return False
return True

@cached_property
def gender_choices(self) -> list['_Choice']:
return [
Expand Down
14 changes: 11 additions & 3 deletions src/onegov/translator_directory/forms/mutation.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
from functools import cached_property

from wtforms.fields.simple import EmailField

from onegov.form import Form
from onegov.form.fields import ChosenSelectField
from onegov.form.fields import ChosenSelectMultipleField
Expand All @@ -24,8 +27,7 @@
from wtforms.fields import IntegerField
from wtforms.fields import StringField
from wtforms.fields import TextAreaField
from wtforms.validators import Optional

from wtforms.validators import Optional, Email

from typing import Any, TYPE_CHECKING
if TYPE_CHECKING:
Expand Down Expand Up @@ -304,9 +306,15 @@ def ensure_has_content(self) -> bool:
fieldset=_('Proposed changes'),
)

email = EmailField(
label=_('Email'),
validators=[Optional(), Email()],
fieldset=_('Proposed changes'),
)

tel_mobile = StringField(
label=_('Mobile Number'),
validators=[ValidPhoneNumber()],
validators=[ValidPhoneNumber(), Optional()],
fieldset=_('Proposed changes'),
)

Expand Down
8 changes: 4 additions & 4 deletions src/onegov/translator_directory/forms/translator.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ class TranslatorForm(Form, FormChoicesMixin, DrivingDistanceMixin):

nationality = StringField(
label=_('Nationality'),
validators=[Optional()],
validators=[InputRequired()],
fieldset=_('Personal Information')
)

Expand Down Expand Up @@ -241,7 +241,7 @@ class TranslatorForm(Form, FormChoicesMixin, DrivingDistanceMixin):

social_sec_number = StringField(
label=_('Swiss social security number'),
validators=[Optional(), ValidSwissSocialSecurityNumber()],
validators=[ValidSwissSocialSecurityNumber(), InputRequired()],
fieldset=_('Identification / bank account')
)

Expand All @@ -264,13 +264,13 @@ class TranslatorForm(Form, FormChoicesMixin, DrivingDistanceMixin):

email = EmailField(
label=_('Email'),
validators=[Optional(), Email()],
validators=[InputRequired(), Email()],
fieldset=_('Contact information')
)

tel_mobile = StringField(
label=_('Mobile Number'),
validators=[Optional(), ValidPhoneNumber()],
validators=[InputRequired(), ValidPhoneNumber()],
)

tel_private = StringField(
Expand Down
36 changes: 17 additions & 19 deletions tests/onegov/translator_directory/test_forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ def test_translator_mutation_form(translator_app):
iban='CH9300762011623852957',
operation_comments='Some comment',
tel_private='041 444 44 45',
tel_mobile='079 123 45 67',
social_sec_number='756.1234.4568.95',
)
translator.certificates = certificates[0:2]
translator.mother_tongues = languages[0:2]
Expand Down Expand Up @@ -99,12 +101,13 @@ def test_translator_mutation_form(translator_app):
assert form.zip_code.long_description == '4000'
assert form.city.long_description == 'Luzern'
assert form.drive_distance.long_description == '1.1'
assert form.social_sec_number.long_description == '756.1234.4568.90'
assert form.social_sec_number.long_description == '756.1234.4568.95'
assert form.bank_name.long_description == 'R-BS'
assert form.bank_address.long_description == 'Bullstreet 5'
assert form.account_owner.long_description == 'Hugo Benito'
assert form.iban.long_description == 'CH9300762011623852957'
assert form.tel_mobile.long_description == '079 000 00 00'
assert form.email.long_description == '[email protected]'
assert form.tel_mobile.long_description == '079 123 45 67'
assert form.tel_private.long_description == '041 444 44 45'
assert form.tel_office.long_description == '041 444 44 44'
assert form.availability.long_description == 'always'
Expand Down Expand Up @@ -169,17 +172,17 @@ def test_translator_mutation_form(translator_app):
form.request.is_admin = False
form.request.is_translator = True
form.on_request()
assert len(form._fields) == 43
assert len(form.proposal_fields) == 42
assert len(form._fields) == 44
assert len(form.proposal_fields) == 43

form = TranslatorMutationForm()
form.model = translator
form.request = request
form.request.is_translator = False
form.request.is_editor = True
form.on_request()
assert len(form._fields) == 32
assert len(form.proposal_fields) == 31
assert len(form._fields) == 33
assert len(form.proposal_fields) == 32
assert form.operation_comments is None
assert form.confirm_name_reveal is None
assert form.date_of_application is None
Expand All @@ -196,8 +199,8 @@ def test_translator_mutation_form(translator_app):
form.request.is_editor = False
form.request.is_member = True
form.on_request()
assert len(form._fields) == 27
assert len(form.proposal_fields) == 26
assert len(form._fields) == 28
assert len(form.proposal_fields) == 27
assert form.operation_comments is None
assert form.confirm_name_reveal is None
assert form.date_of_application is None
Expand Down Expand Up @@ -245,12 +248,12 @@ def test_translator_mutation_form(translator_app):
'zip_code': '4000',
'city': 'Luzern',
'drive_distance': 1.1,
'social_sec_number': '756.1234.4568.90',
'social_sec_number': '756.1234.4568.95',
'bank_name': 'R-BS',
'bank_address': 'Bullstreet 5',
'account_owner': 'Hugo Benito',
'iban': 'CH9300762011623852957',
'tel_mobile': '079 000 00 00',
'tel_mobile': '079 123 45 67',
'tel_private': '041 444 44 45',
'tel_office': '041 444 44 44',
'availability': 'always',
Expand All @@ -277,6 +280,7 @@ def test_translator_mutation_form(translator_app):
form.request = request
form.request.is_admin = True
form.on_request()
assert form.proposed_changes == {}
assert not form.validate()
assert form.errors == {
'submitter_message': [
Expand Down Expand Up @@ -311,12 +315,12 @@ def test_translator_mutation_form(translator_app):
'zip_code': '4000',
'city': 'Luzern',
'drive_distance': 1.1,
'social_sec_number': '756.1234.4568.90',
'social_sec_number': '756.1234.4568.95',
'bank_name': 'R-BS',
'bank_address': 'Bullstreet 5',
'account_owner': 'Hugo Benito',
'iban': 'CH9300762011623852957',
'tel_mobile': '079 000 00 00',
'tel_mobile': '079 123 45 67',
'tel_private': '041 444 44 45',
'tel_office': '041 444 44 44',
'availability': 'always',
Expand Down Expand Up @@ -388,13 +392,7 @@ def test_accreditation_form(translator_app):
'A translator with this email already exists'
]
assert form.errors['tel_mobile'] == [
'Please provide at least one phone number.'
]
assert form.errors['tel_office'] == [
'Please provide at least one phone number.'
]
assert form.errors['tel_private'] == [
'Please provide at least one phone number.'
'This field is required.'
]
assert 'confirmation_compensation_office' not in form.errors

Expand Down
7 changes: 6 additions & 1 deletion tests/onegov/translator_directory/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ def test_view_translator(client):
page.form['pers_id'] = 978654
page.form['first_name'] = 'Uncle'
page.form['last_name'] = 'Bob'
page.form['nationality'] = 'CH'
page.form['social_sec_number'] = 'xxxx'
page.form['zip_code'] = 'xxxx'
page.form['iban'] = 'xxxx'
Expand Down Expand Up @@ -139,7 +140,7 @@ def test_view_translator(client):
dl.find('dd').text_content().strip()
for dl in page.pyquery('dl')
}
assert len(values) == 23
assert len(values) == 24
assert values['Personal Nr.'] == '978654'
assert values['Zulassung'] == 'nicht akkreditiert / Einsatz Dringlichkeit'
assert values['Quellensteuer'] == 'Nein'
Expand All @@ -164,6 +165,7 @@ def test_view_translator(client):
assert values['Versteckt'] == 'Nein'
assert values['Zertifikate'] == cert_names[0]
assert values['Heimatort'] == 'Gersau'
assert values['Nationalität'] == 'CH'

# test user account created and activation mail sent
user = UserCollection(session).by_username('[email protected]')
Expand Down Expand Up @@ -651,6 +653,9 @@ def test_view_redirects(client):
page.form['first_name'] = 'First'
page.form['last_name'] = 'Last'
page.form['email'] = '[email protected]'
page.form['tel_mobile'] = '+41791234567'
page.form['nationality'] = 'CH'
page.form['social_sec_number'] = '756.1234.5678.97'
page.form['agency_references'] = 'OK'
page.form['mother_tongues_ids'] = [language_id]
page = page.form.submit().follow()
Expand Down

0 comments on commit 7c52c99

Please sign in to comment.