Skip to content
Snippets Groups Projects
Commit d4bb5654 authored by Erik Reid's avatar Erik Reid
Browse files

one possible way of combining similar methods

parent 18164f0e
No related branches found
No related tags found
1 merge request!8Feature/iptrunks prototype
......@@ -19,26 +19,8 @@ from orchestrator.db.models import ProductTable, SubscriptionTable
from orchestrator.forms.validators import Choice, choice_list
from typing import List, Optional
def a_side_device_selector() -> list:
device_subscriptions = {}
for device_id, device_description in (
SubscriptionTable.query.join(ProductTable)
.filter(
ProductTable.product_type == "Device",
SubscriptionTable.status == "active",
)
.with_entities(SubscriptionTable.subscription_id, SubscriptionTable.description)
.all()
):
device_subscriptions[str(device_id)] = device_description
return choice_list(
Choice("DeviceEnumA", zip(device_subscriptions.keys(), device_subscriptions.items())), # type:ignore
min_items=1,
max_items=1,
)
def b_side_device_selector() -> list:
def device_selector(choice_value: str) -> list:
device_subscriptions = {}
for device_id, device_description in (
SubscriptionTable.query.join(ProductTable)
......@@ -52,19 +34,20 @@ def b_side_device_selector() -> list:
device_subscriptions[str(device_id)] = device_description
return choice_list(
Choice("DeviceEnumB", zip(device_subscriptions.keys(), device_subscriptions.items())), # type:ignore
Choice(choice_value, zip(device_subscriptions.keys(), device_subscriptions.items())), # type:ignore
min_items=1,
max_items=1,
)
def initial_input_form_generator(product_name: str) -> FormGenerator:
class CreateIptrunkForm(FormPage):
class Config:
title = product_name
geant_s_sid: str
iptrunk_sideA_fqdn: a_side_device_selector()
iptrunk_sideB_fqdn: b_side_device_selector()
iptrunk_sideA_fqdn: device_selector(choice_value='DeviceEnumA')
iptrunk_sideB_fqdn: device_selector(choice_value='DeviceEnumB')
user_input = yield CreateIptrunkForm
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment