Skip to content

Settings page improvements #274

Open
@BenMusch

Description

@BenMusch

Two areas from improvement:

  1. Add a section grouping, which can either be added like:
high_opp_penalty:
  ...
  section: Pairing algorithm

Or like:

- section: Pairing algorithm
  description: Modify the weights of the pairing algorithm
  settings:
      - high_opp_penalty:
         ...

and then use this to group in the UI to organize things clearly as we add more to the yaml file

  1. Add another type: enum (like boolean)

Based on recent doomthreads constructive discussions it seems like there's strong support to at least have the option to pair judges based on a middle-out style, and some other tweaks like this. Though a boolean may make sense in some instances, an enum is probably a better choice so support the possibility of having more than 1 way to pair judges.

The yaml file could look like:

judge_pairing_strategy:
  type: enum
  options:
    - "Middle out"
    - "Top down"
    - "Randomized within bracket"

On the UI, this would lead to a select box where the display is the listed option and the value is the index in the list

Additionally, we could add support for a function on the TabSetting module like:

def coerced_value(self):
  # parse the yaml config based on self.name
  if yaml_config["type"] == "boolean":
    return self.value == 1
  elif yaml_config["type"] == "enum":
    return yaml_config["options"][self.value]
  else:
    return self.value

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions