Skip to content

Commit bca8876

Browse files
authored
fix: show FMC attempt activities for registered competitors without group assignments
Agent-Logs-Url: https://github.com/coder13/Competitor-groups/sessions/cebd1b6a-e202-4765-907c-77cadcf9012c
1 parent a475d4c commit bca8876

1 file changed

Lines changed: 48 additions & 7 deletions

File tree

src/containers/PersonalSchedule/utils.ts

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,24 @@ export const getNormalAssignments = (wcif: Competition, person: Person) => {
1717
...assignment,
1818
activity: allActivities.find(({ id }) => id === assignment.activityId),
1919
}))
20-
.filter(
21-
(assignment) =>
22-
!(
23-
assignment.activity?.activityCode === 'other-multi' &&
24-
assignment.assignmentCode === 'competitor'
25-
),
26-
)
20+
.filter((assignment) => {
21+
const activityCode = assignment.activity?.activityCode || '';
22+
const parsed = parseActivityCodeFlexible(activityCode);
23+
if (
24+
assignment.activity?.activityCode === 'other-multi' &&
25+
assignment.assignmentCode === 'competitor'
26+
) {
27+
return false;
28+
}
29+
if (
30+
parsed.eventId === '333fm' &&
31+
parsed.attemptNumber !== null &&
32+
assignment.assignmentCode === 'competitor'
33+
) {
34+
return false;
35+
}
36+
return true;
37+
})
2738
.sort((a, b) => byDate(a.activity, b.activity))
2839
: [];
2940

@@ -85,15 +96,45 @@ const getCubeSubmissionAssignments = (wcif: Competition, person: Person) => {
8596
);
8697
};
8798

99+
const getFmcAttemptAssignments = (wcif: Competition, person: Person) => {
100+
const allActivities = getAllActivities(wcif);
101+
102+
if (!person.registration?.eventIds.includes('333fm')) {
103+
return [];
104+
}
105+
106+
const fmcAttemptActivities = allActivities.filter((activity) => {
107+
const parsed = parseActivityCodeFlexible(activity.activityCode);
108+
return parsed.eventId === '333fm' && parsed.attemptNumber !== null;
109+
});
110+
111+
return fmcAttemptActivities.map(
112+
(
113+
activity,
114+
): Assignment & {
115+
type: 'extra';
116+
activity: Activity;
117+
} => ({
118+
type: 'extra',
119+
assignmentCode: 'competitor',
120+
activityId: activity.id,
121+
stationNumber: null,
122+
activity,
123+
}),
124+
);
125+
};
126+
88127
export const getAllAssignments = (wcif: Competition, person: Person) => {
89128
const normalAssignments = getNormalAssignments(wcif, person);
90129
const extraAssignments = getExtraAssignments(person);
91130
const mbldCubeSubmissionAssignments = getCubeSubmissionAssignments(wcif, person);
131+
const fmcAttemptAssignments = getFmcAttemptAssignments(wcif, person);
92132

93133
const allAssignments = [
94134
...normalAssignments,
95135
...extraAssignments,
96136
...mbldCubeSubmissionAssignments,
137+
...fmcAttemptAssignments,
97138
].sort((a, b) => byDate(a.activity, b.activity));
98139

99140
return allAssignments;

0 commit comments

Comments
 (0)