Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/graphql/graphql_operations_generated.json

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions app/graphql/types/signup_round_input_type.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ class Types::SignupRoundInputType < Types::BaseInputObject
required: false,
camelize: false,
description: "For ranked-choice conventions, the order to execute signup choices in"
argument :rerandomize_lottery_numbers,
Boolean,
required: false,
camelize: false,
description:
"If true, the automation will reassign random lottery numbers to all attendees before executing this round"
argument :start, Types::DateType, required: false, description: "The time that this signup round starts"
end
6 changes: 6 additions & 0 deletions app/graphql/types/signup_round_type.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ class SignupRoundType < Types::BaseObject
In ranked-choice signup conventions, the order to use for executing users' ranked choices in this round.
MARKDOWN
end
field :rerandomize_lottery_numbers, Boolean, null: false, camelize: false do
description <<~MARKDOWN
If true, the automation will reassign random lottery numbers to all attendees in the convention before
executing this signup round.
MARKDOWN
end
field :start, Types::DateType, description: "When this SignupRound starts."
field :updated_at, Types::DateType, null: false, description: "When this SignupRound was last modified."

Expand Down
8 changes: 4 additions & 4 deletions app/javascript/SignupModeration/queries.generated.ts

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions app/javascript/SignupModeration/queries.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ query CreateSignupRunCardQuery($userConProfileId: ID!, $eventId: ID!) {
id
start
maximum_event_signups
rerandomize_lottery_numbers
}

event(id: $eventId) {
Expand Down Expand Up @@ -215,6 +216,7 @@ query SignupModerationQueuePageQuery {
id
start
maximum_event_signups
rerandomize_lottery_numbers
}
}
}
Expand Down
17 changes: 16 additions & 1 deletion app/javascript/SignupRoundsAdmin/SignupRoundCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { RankedChoiceOrder, SignupAutomationMode, SignupRoundAutomationAction }
import { useTranslation } from 'react-i18next';
import MaximumEventSignupsInput from './MaximumEventSignupsInput';
import {
BootstrapFormCheckbox,
BootstrapFormSelect,
ErrorDisplay,
FormGroupWithLabel,
Expand Down Expand Up @@ -49,7 +50,8 @@ function SignupRoundCard({ rounds, roundIndex }: SignupRoundCardProps) {
() =>
editingRound.maximum_event_signups !== round.maximum_event_signups ||
editingRound.automation_action != round.automation_action ||
editingRound.ranked_choice_order !== round.ranked_choice_order,
editingRound.ranked_choice_order !== round.ranked_choice_order ||
editingRound.rerandomize_lottery_numbers !== round.rerandomize_lottery_numbers,
[editingRound, round],
);

Expand Down Expand Up @@ -152,6 +154,19 @@ function SignupRoundCard({ rounds, roundIndex }: SignupRoundCardProps) {
</option>
</BootstrapFormSelect>
)}
<BootstrapFormCheckbox
type="checkbox"
name="rerandomize_lottery_numbers"
value="true"
label={t('signups.signupRounds.rerandomizeLotteryNumbers')}
checked={editingRound.rerandomize_lottery_numbers}
onCheckedChange={(checked) =>
setEditingRound((prevEditingRound) => ({
...prevEditingRound,
rerandomize_lottery_numbers: checked,
}))
}
/>
<div className="">
{editingRound.executed_at ? (
<>
Expand Down
1 change: 1 addition & 0 deletions app/javascript/SignupRoundsAdmin/buildSignupRoundInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export function buildSignupRoundInputFromFormData(formData: FormData): SignupRou
maximum_event_signups: formData.get('maximum_event_signups')?.toString(),
automation_action: (automationActionValue || null) as SignupRoundAutomationAction | null,
ranked_choice_order: formData.get('ranked_choice_order')?.toString() as RankedChoiceOrder | undefined,
rerandomize_lottery_numbers: formData.get('rerandomize_lottery_numbers') != null,
start: formData.get('start')?.toString(),
};
}
8 changes: 4 additions & 4 deletions app/javascript/SignupRoundsAdmin/mutations.generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ export type CreateSignupRoundMutationVariables = Types.Exact<{
}>;


export type CreateSignupRoundMutationData = { __typename: 'Mutation', createSignupRound: { __typename: 'CreateSignupRoundPayload', signup_round: { __typename: 'SignupRound', id: string, maximum_event_signups: string, automation_action?: Types.SignupRoundAutomationAction | null, ranked_choice_order?: Types.RankedChoiceOrder | null, start?: string | null, executed_at?: string | null } } };
export type CreateSignupRoundMutationData = { __typename: 'Mutation', createSignupRound: { __typename: 'CreateSignupRoundPayload', signup_round: { __typename: 'SignupRound', id: string, maximum_event_signups: string, automation_action?: Types.SignupRoundAutomationAction | null, ranked_choice_order?: Types.RankedChoiceOrder | null, rerandomize_lottery_numbers: boolean, start?: string | null, executed_at?: string | null } } };

export type UpdateSignupRoundMutationVariables = Types.Exact<{
id: Types.Scalars['ID']['input'];
signupRound: Types.SignupRoundInput;
}>;


export type UpdateSignupRoundMutationData = { __typename: 'Mutation', updateSignupRound: { __typename: 'UpdateSignupRoundPayload', signup_round: { __typename: 'SignupRound', id: string, maximum_event_signups: string, automation_action?: Types.SignupRoundAutomationAction | null, ranked_choice_order?: Types.RankedChoiceOrder | null, start?: string | null, executed_at?: string | null } } };
export type UpdateSignupRoundMutationData = { __typename: 'Mutation', updateSignupRound: { __typename: 'UpdateSignupRoundPayload', signup_round: { __typename: 'SignupRound', id: string, maximum_event_signups: string, automation_action?: Types.SignupRoundAutomationAction | null, ranked_choice_order?: Types.RankedChoiceOrder | null, rerandomize_lottery_numbers: boolean, start?: string | null, executed_at?: string | null } } };

export type DeleteSignupRoundMutationVariables = Types.Exact<{
id: Types.Scalars['ID']['input'];
Expand All @@ -26,6 +26,6 @@ export type DeleteSignupRoundMutationVariables = Types.Exact<{
export type DeleteSignupRoundMutationData = { __typename: 'Mutation', deleteSignupRound: { __typename: 'DeleteSignupRoundPayload', clientMutationId?: string | null } };


export const CreateSignupRoundDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateSignupRound"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"conventionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRoundInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createSignupRound"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"conventionId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"conventionId"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"signupRound"},"value":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"signup_round"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"FragmentSpread","name":{"kind":"Name","value":"SignupRoundFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SignupRoundFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRound"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"maximum_event_signups"}},{"kind":"Field","name":{"kind":"Name","value":"automation_action"}},{"kind":"Field","name":{"kind":"Name","value":"ranked_choice_order"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"executed_at"}}]}}]} as unknown as DocumentNode<CreateSignupRoundMutationData, CreateSignupRoundMutationVariables>;
export const UpdateSignupRoundDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateSignupRound"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRoundInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateSignupRound"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"signupRound"},"value":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"signup_round"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"FragmentSpread","name":{"kind":"Name","value":"SignupRoundFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SignupRoundFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRound"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"maximum_event_signups"}},{"kind":"Field","name":{"kind":"Name","value":"automation_action"}},{"kind":"Field","name":{"kind":"Name","value":"ranked_choice_order"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"executed_at"}}]}}]} as unknown as DocumentNode<UpdateSignupRoundMutationData, UpdateSignupRoundMutationVariables>;
export const CreateSignupRoundDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateSignupRound"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"conventionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRoundInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createSignupRound"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"conventionId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"conventionId"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"signupRound"},"value":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"signup_round"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"FragmentSpread","name":{"kind":"Name","value":"SignupRoundFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SignupRoundFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRound"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"maximum_event_signups"}},{"kind":"Field","name":{"kind":"Name","value":"automation_action"}},{"kind":"Field","name":{"kind":"Name","value":"ranked_choice_order"}},{"kind":"Field","name":{"kind":"Name","value":"rerandomize_lottery_numbers"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"executed_at"}}]}}]} as unknown as DocumentNode<CreateSignupRoundMutationData, CreateSignupRoundMutationVariables>;
export const UpdateSignupRoundDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateSignupRound"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRoundInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateSignupRound"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"signupRound"},"value":{"kind":"Variable","name":{"kind":"Name","value":"signupRound"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"signup_round"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"FragmentSpread","name":{"kind":"Name","value":"SignupRoundFields"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SignupRoundFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"SignupRound"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"maximum_event_signups"}},{"kind":"Field","name":{"kind":"Name","value":"automation_action"}},{"kind":"Field","name":{"kind":"Name","value":"ranked_choice_order"}},{"kind":"Field","name":{"kind":"Name","value":"rerandomize_lottery_numbers"}},{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"executed_at"}}]}}]} as unknown as DocumentNode<UpdateSignupRoundMutationData, UpdateSignupRoundMutationVariables>;
export const DeleteSignupRoundDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteSignupRound"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteSignupRound"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"clientMutationId"}}]}}]}}]} as unknown as DocumentNode<DeleteSignupRoundMutationData, DeleteSignupRoundMutationVariables>;
Loading
Loading