diff --git a/gso/workflows/tasks/delete_partners.py b/gso/workflows/tasks/delete_partners.py index 6eac752bbb417500d383d43fbc6ce2c3567031d1..8a557c9953079ee4e6723bb89bf60d1bc7a9dfca 100644 --- a/gso/workflows/tasks/delete_partners.py +++ b/gso/workflows/tasks/delete_partners.py @@ -7,23 +7,18 @@ from orchestrator.targets import Target from orchestrator.types import FormGenerator, State, UUIDstr from orchestrator.workflow import StepList, begin, done, step, workflow from pydantic import ConfigDict, EmailStr, field_validator -from pydantic_forms.validators import Choice -from gso.services.partners import delete_partner, get_all_partners, get_partner_by_name +from gso.services.partners import delete_partner, get_partner_by_name from gso.services.subscriptions import get_subscriptions +from gso.utils.helpers import partner_choice def initial_input_form_generator() -> FormGenerator: """Gather input from the user needed for deleting a partner.""" - partners = {} - for partner in get_all_partners(): - partners[partner["partner_id"]] = partner["name"] - - partner_choice = Choice("Select a partner", zip(partners.values(), partners.items(), strict=True)) # type: ignore[arg-type] class SelectPartnerForm(FormPage): model_config = ConfigDict(title="Delete a Partner") - partners: partner_choice # type: ignore[valid-type] + partners: partner_choice() # type: ignore[valid-type] @field_validator("partners") def validate_partners(cls, value: Enum) -> Enum: diff --git a/gso/workflows/tasks/modify_partners.py b/gso/workflows/tasks/modify_partners.py index cb2daddac8d646c87e20d80449024707cb319d21..c557203eede28c35dde9997f74a383002fb3e6fd 100644 --- a/gso/workflows/tasks/modify_partners.py +++ b/gso/workflows/tasks/modify_partners.py @@ -5,30 +5,24 @@ from orchestrator.targets import Target from orchestrator.types import FormGenerator, State, UUIDstr from orchestrator.workflow import StepList, begin, done, step, workflow from pydantic import ConfigDict, EmailStr, field_validator -from pydantic_forms.validators import Choice from gso.services.partners import ( ModifiedPartnerSchema, edit_partner, filter_partners_by_email, filter_partners_by_name, - get_all_partners, get_partner_by_name, ) +from gso.utils.helpers import partner_choice def initial_input_form_generator() -> FormGenerator: """Gather input from the user needed for modifying a partner.""" - partners = {} - for partner in get_all_partners(): - partners[partner["partner_id"]] = partner["name"] - - partner_choice = Choice("Select a partner", zip(partners.values(), partners.items(), strict=True)) # type: ignore[arg-type] class SelectPartnerForm(FormPage): model_config = ConfigDict(title="Choose a Partner") - partners: partner_choice # type: ignore[valid-type] + partners: partner_choice() # type: ignore[valid-type] initial_user_input = yield SelectPartnerForm