Santa Assignments are now possible, powered by the inverse bubble sort.
Adds SantaAssignment, ExclusionTeam, and UserExclusionTeam db tables, migrations, controllers and models.
Santa Assignments
Fixes #5 , all discussed topics in that issue are implemented in this pull request.
When the group owner is ready, they click the button Assign Secret Santas which will assign all users' secret santas.
The button is able to be clicked once the group has at least 2 members within.
A user has one santa assignment per group.
Santa Assignments are made through an inverse bubble sort. It reorganizes the list of users based on their matching limitations. If there are no exclusion teams (discussed below), the list is shuffled twice and then matched.
Service Class Added
The service SantaAssignmentService has been added to abstract the assigning functionality away from the SantaAssignments controller. The plan for the future is for the santa assigning method to be moved to an ActiveJob worker.
Exclusion Teams
The exclusion team functionality is accessible for groups of 4 members or more to prevent users from being matched together. This allows for more customized matching.
An exclusion team cannot have more users than all other users not in the team combined. This is to prevent a no-match scenario.
This feature is optional and only prevents users within their exclusion group from being matched.
Wish Lists
Wish lists now store the private santa message to only be shown to your matched santa and the user.
The private message can be created before the santa assignments take place, allowing no one to view it.
The private message can be added, edited and deleted from links in the wish list page.
The private message for the assigned santa only is available on their dashboard page within the group listing.
Styling
Adds styling to new section to group page logged in as the group owner.
Adds red required * for all form fields that are required.
New font Cabin used for all text except h1-h4 headings. This replaces the font Glacial-Indifference.
Secret Santa Feature Additions
Santa Assignments are now possible, powered by the inverse bubble sort.
Adds
SantaAssignment
,ExclusionTeam
, andUserExclusionTeam
db tables, migrations, controllers and models.Santa Assignments
Assign Secret Santas
which will assign all users' secret santas.Service Class Added
SantaAssignmentService
has been added to abstract the assigning functionality away from theSantaAssignments
controller. The plan for the future is for the santa assigning method to be moved to anActiveJob
worker.Exclusion Teams
Wish Lists
Styling
*
for all form fields that are required.Cabin
used for all text excepth1-h4
headings. This replaces the fontGlacial-Indifference
.Testing
shoulda
matchers for model specs