Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ClassChangeController multi-request revamp #2416

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Commits on Aug 6, 2017

  1. Let class change lottery accept request priorities

    Make the lottery accept multiple requests per student per timeblock with
    priority, specified by a list of StudentRegistration types.
    betaveros committed Aug 6, 2017
    Configuration menu
    Copy the full SHA
    2436d73 View commit details
    Browse the repository at this point in the history
  2. Add flag to prioritize students without classes

    This might be kind of unfair since all of their requests are now
    "stronger" than even the first request from a student with at least one
    class. However, it's calculated dynamically so the advantage disappears
    once they get their first class, and they don't get any extra priority
    when we try to kick students, mostly just because that part of the code
    is hard to reason about.
    betaveros committed Aug 6, 2017
    Configuration menu
    Copy the full SHA
    9ca87a7 View commit details
    Browse the repository at this point in the history
  3. Add more class change stats

    Classify requests by priority, calculate student happiness crudely, and
    flag potentially buggy requests.
    betaveros committed Aug 6, 2017
    Configuration menu
    Copy the full SHA
    74ed314 View commit details
    Browse the repository at this point in the history
  4. ClassChangeController: work around overflowing classes

    Take note of the "badness" of the assignment, which is how much it
    overflows true class capacities, and add a "pessimism" parameter that
    makes the algorithm more conservative about guessing that everybody who
    wants to switch out will get to. This way the lottery can be tuned to
    not overflow classes. This is a hacky workaround to patch the confusing
    student-kicking algorithm applied to "fix" the greedy student-assigning
    process, which doesn't always manage to get enrollments below true class
    capacities.
    betaveros committed Aug 6, 2017
    Configuration menu
    Copy the full SHA
    c701d1c View commit details
    Browse the repository at this point in the history
  5. Make options all true parameters

    This allows for better introspection (shell_plus can autocomplete the
    parameters names), alerts you if you misspell a parameter name, puts the
    default values right next to the option names, and generally shortens
    the code a little.
    betaveros committed Aug 6, 2017
    Configuration menu
    Copy the full SHA
    a75f42d View commit details
    Browse the repository at this point in the history
  6. ClassChangeController: rename, clarify orig/base enrollments

    Separate "orig" and "base" enrollments and capacities, "base" referring
    to the state of enrollments after unenrolling students from classes they
    want to switch out from, so that enroll_orig and section_capacities_orig
    (among others) are consistent with each other about the state of
    enrollments, and so that we have the section capacities needed to
    print_stats accurately after assignments are saved.
    betaveros committed Aug 6, 2017
    Configuration menu
    Copy the full SHA
    3ab0e92 View commit details
    Browse the repository at this point in the history
  7. Add ClassChangeController email options

    - Make the previously hard-coded check-in room an option, and prompt for
      it as needed
    - Slightly paranoidly confirm which email to send the class changes
      email from
    - Text formatting
    betaveros committed Aug 6, 2017
    Configuration menu
    Copy the full SHA
    4f73cd5 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2018

  1. Configuration menu
    Copy the full SHA
    38ca75d View commit details
    Browse the repository at this point in the history
  2. Fix double-counting multi-timeslot classes

    A lot of sums along some axes should have been "any"s.
    betaveros committed Mar 1, 2018
    Configuration menu
    Copy the full SHA
    e6f8adf View commit details
    Browse the repository at this point in the history