@@ -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+
88127export 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