@@ -17,13 +17,21 @@ 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+ if (
22+ assignment . activity ?. activityCode === 'other-multi' &&
23+ assignment . assignmentCode === 'competitor'
24+ ) {
25+ return false ;
26+ }
27+ if ( assignment . assignmentCode === 'competitor' ) {
28+ const parsed = parseActivityCodeFlexible ( assignment . activity ?. activityCode || '' ) ;
29+ if ( parsed . eventId === '333fm' && parsed . attemptNumber !== null ) {
30+ return false ;
31+ }
32+ }
33+ return true ;
34+ } )
2735 . sort ( ( a , b ) => byDate ( a . activity , b . activity ) )
2836 : [ ] ;
2937
@@ -85,15 +93,45 @@ const getCubeSubmissionAssignments = (wcif: Competition, person: Person) => {
8593 ) ;
8694} ;
8795
96+ const getFmcAttemptAssignments = ( wcif : Competition , person : Person ) => {
97+ const allActivities = getAllActivities ( wcif ) ;
98+
99+ if ( ! person . registration ?. eventIds . includes ( '333fm' ) ) {
100+ return [ ] ;
101+ }
102+
103+ const fmcAttemptActivities = allActivities . filter ( ( activity ) => {
104+ const parsed = parseActivityCodeFlexible ( activity . activityCode ) ;
105+ return parsed . eventId === '333fm' && parsed . attemptNumber !== null ;
106+ } ) ;
107+
108+ return fmcAttemptActivities . map (
109+ (
110+ activity ,
111+ ) : Assignment & {
112+ type : 'extra' ;
113+ activity : Activity ;
114+ } => ( {
115+ type : 'extra' ,
116+ assignmentCode : 'competitor' ,
117+ activityId : activity . id ,
118+ stationNumber : null ,
119+ activity,
120+ } ) ,
121+ ) ;
122+ } ;
123+
88124export const getAllAssignments = ( wcif : Competition , person : Person ) => {
89125 const normalAssignments = getNormalAssignments ( wcif , person ) ;
90126 const extraAssignments = getExtraAssignments ( person ) ;
91127 const mbldCubeSubmissionAssignments = getCubeSubmissionAssignments ( wcif , person ) ;
128+ const fmcAttemptAssignments = getFmcAttemptAssignments ( wcif , person ) ;
92129
93130 const allAssignments = [
94131 ...normalAssignments ,
95132 ...extraAssignments ,
96133 ...mbldCubeSubmissionAssignments ,
134+ ...fmcAttemptAssignments ,
97135 ] . sort ( ( a , b ) => byDate ( a . activity , b . activity ) ) ;
98136
99137 return allAssignments ;
0 commit comments