Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
msom committed Jul 15, 2024
1 parent 4ddb6d4 commit 5f0770d
Show file tree
Hide file tree
Showing 14 changed files with 539 additions and 14 deletions.
2 changes: 0 additions & 2 deletions src/onegov/pas/forms/attendence.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,6 @@ class AttendenceAddCommissionForm(Form, SettlementRunBoundMixin):
validators=[InputRequired()],
)

# todo:

def get_useful_data(self) -> dict[str, 'Any']: # type:ignore[override]
result = super().get_useful_data()
result['commission_id'] = self.model.id
Expand Down
17 changes: 11 additions & 6 deletions src/onegov/pas/forms/parliamentarian.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from onegov.form.fields import PhoneNumberField
from onegov.form.fields import TranslatedSelectField
from onegov.form.fields import UploadField
from onegov.form.forms import NamedFileForm
from onegov.form.validators import ValidPhoneNumber
from onegov.pas import _
from onegov.pas.models.parliamentarian import GENDERS
from onegov.pas.models.parliamentarian import SHIPPING_METHODS
Expand Down Expand Up @@ -150,22 +152,25 @@ class ParliamentarianForm(NamedFileForm):
fieldset=_('Additional information'),
)

# todo: phone number field and validator?
phone_private = StringField(
phone_private = PhoneNumberField(
label=_('Private phone number'),
fieldset=_('Additional information'),
validators=[ValidPhoneNumber()],
render_kw={'autocomplete': 'tel'}
)

# todo: phone number field and validator?
phone_mobile = StringField(
phone_mobile = PhoneNumberField(
label=_('Mobile phone number'),
fieldset=_('Additional information'),
validators=[ValidPhoneNumber()],
render_kw={'autocomplete': 'tel'}
)

# todo: phone number field and validator?
phone_business = StringField(
phone_business = PhoneNumberField(
label=_('Business phone number'),
fieldset=_('Additional information'),
validators=[ValidPhoneNumber()],
render_kw={'autocomplete': 'tel'}
)

email_primary = EmailField(
Expand Down
2 changes: 1 addition & 1 deletion src/onegov/pas/forms/parliamentarian_role.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class ParliamentarianRoleForm(Form):
parliamentary_group_role = TranslatedSelectField(
label=_('Parliamentary group role'),
choices=list(PARLIAMENTARY_GROUP_ROLES.items()),
default='noe'
default='none'
)

def on_request(self) -> None:
Expand Down
6 changes: 4 additions & 2 deletions src/onegov/pas/forms/rate_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,11 @@ class RateSetForm(Form):
)

def validate_year(self, field: IntegerField) -> None:
if field.data is not None and not isinstance(self.model, RateSet):
if field.data is not None:
query = self.request.session.query(RateSet)
query = query.filter_by(year=field.data)
query = query.filter(RateSet.year == field.data)
if isinstance(self.model, RateSet):
query = query.filter(RateSet.id != self.model.id)
if query.first():
raise ValidationError(_(
'Rate set for ${year} alredy exists',
Expand Down
2 changes: 2 additions & 0 deletions src/onegov/pas/layouts/commission.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def og_description(self) -> str:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(self.title, self.request.link(self.model))
]

Expand Down Expand Up @@ -61,6 +62,7 @@ def og_description(self) -> str:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(
_('Commissions'),
self.request.link(self.collection)
Expand Down
1 change: 1 addition & 0 deletions src/onegov/pas/layouts/commission_membership.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ def commission_collection(self) -> CommissionCollection:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(
_('Commissions'),
self.request.link(self.commission_collection)
Expand Down
2 changes: 1 addition & 1 deletion src/onegov/pas/layouts/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def pas_settings_url(self) -> str:
return self.request.link(self.app.org, 'pas-settings')

def format_minutes(self, value: int | None) -> str:
if not value:
if not value or value < 0:
return ''

hours = value // 60
Expand Down
2 changes: 2 additions & 0 deletions src/onegov/pas/layouts/parliamentarian.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def og_description(self) -> str:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(self.title, self.request.link(self.model))
]

Expand Down Expand Up @@ -61,6 +62,7 @@ def og_description(self) -> str:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(
_('Parliamentarians'),
self.request.link(self.collection)
Expand Down
1 change: 1 addition & 0 deletions src/onegov/pas/layouts/parliamentarian_role.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ def parliamentarian_collection(self) -> ParliamentarianCollection:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(
_('Parliamentarians'),
self.request.link(self.parliamentarian_collection)
Expand Down
2 changes: 2 additions & 0 deletions src/onegov/pas/layouts/settlement_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def og_description(self) -> str:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(self.title, self.request.link(self.model))
]

Expand Down Expand Up @@ -61,6 +62,7 @@ def og_description(self) -> str:
def breadcrumbs(self) -> list[Link]:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('PAS settings'), self.pas_settings_url),
Link(
_('Settlement runs'),
self.request.link(self.collection)
Expand Down
2 changes: 0 additions & 2 deletions src/onegov/pas/models/parliamentarian.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,10 +293,8 @@ def shipping_method_label(self) -> str:

@property
def active(self) -> bool:
# todo: add hybrid property?
if not self.roles:
return True

for role in self.roles:
if role.end is None or role.end >= date.today():
return True
Expand Down
Loading

0 comments on commit 5f0770d

Please sign in to comment.