77from sqlalchemy .orm import joinedload , selectinload
88
99from app .core .schools import models_schools
10+ from app .core .schools .schemas_schools import CoreSchool
1011from app .core .users import models_users , schemas_users
1112from app .modules .sport_competition import (
1213 models_sport_competition ,
@@ -233,6 +234,11 @@ async def load_memberships_by_competition_group(
233234 name = membership .user .name ,
234235 firstname = membership .user .firstname ,
235236 groups = [],
237+ school = CoreSchool (
238+ id = membership .user .school .id ,
239+ name = membership .user .school .name ,
240+ email_regex = membership .user .school .email_regex ,
241+ ),
236242 ),
237243 )
238244 for membership in membership
@@ -319,6 +325,29 @@ async def load_all_competition_users(
319325 ]
320326
321327
328+ async def load_all_competition_users_by_school (
329+ school_id : UUID ,
330+ edition_id : UUID ,
331+ db : AsyncSession ,
332+ ) -> list [schemas_sport_competition .CompetitionUser ]:
333+ competition_users = await db .execute (
334+ select (models_sport_competition .CompetitionUser )
335+ .join (
336+ models_users .CoreUser ,
337+ models_sport_competition .CompetitionUser .user_id
338+ == models_users .CoreUser .id ,
339+ )
340+ .where (
341+ models_sport_competition .CompetitionUser .edition_id == edition_id ,
342+ models_users .CoreUser .school_id == school_id ,
343+ ),
344+ )
345+ return [
346+ competition_user_model_to_schema (competition_user )
347+ for competition_user in competition_users .scalars ().all ()
348+ ]
349+
350+
322351async def load_competition_user_by_id (
323352 user_id : str ,
324353 edition_id : UUID ,
@@ -479,6 +508,8 @@ async def load_school_base_by_id(
479508 school_id = school .school_id ,
480509 from_lyon = school .from_lyon ,
481510 active = school .active ,
511+ inscription_enabled = school .inscription_enabled ,
512+ ffsu_id = school .ffsu_id ,
482513 )
483514 if school
484515 else None
@@ -487,23 +518,12 @@ async def load_school_base_by_id(
487518
488519async def load_school_by_id (
489520 school_id : UUID ,
490- edition_id : UUID ,
491521 db : AsyncSession ,
492522) -> schemas_sport_competition .SchoolExtension | None :
493523 school_extension = (
494524 (
495525 await db .execute (
496526 select (models_sport_competition .SchoolExtension )
497- .join (
498- models_sport_competition .SchoolGeneralQuota ,
499- and_ (
500- models_sport_competition .SchoolExtension .school_id
501- == models_sport_competition .SchoolGeneralQuota .school_id ,
502- models_sport_competition .SchoolGeneralQuota .edition_id
503- == edition_id ,
504- ),
505- isouter = True ,
506- )
507527 .where (
508528 models_sport_competition .SchoolExtension .school_id == school_id ,
509529 )
@@ -611,7 +631,7 @@ async def update_participant(
611631 await db .flush ()
612632
613633
614- async def validate_participant (
634+ async def validate_competition_user (
615635 user_id : str ,
616636 edition_id : UUID ,
617637 db : AsyncSession ,
@@ -629,7 +649,7 @@ async def validate_participant(
629649 await db .flush ()
630650
631651
632- async def invalidate_participant (
652+ async def invalidate_competition_user (
633653 user_id : str ,
634654 edition_id : UUID ,
635655 db : AsyncSession ,
@@ -2108,6 +2128,7 @@ async def load_available_product_variants(
21082128 edition_id = variant .product .edition_id ,
21092129 name = variant .product .name ,
21102130 description = variant .product .description ,
2131+ required = variant .product .required ,
21112132 ),
21122133 )
21132134 for variant in variants .scalars ().all ()
@@ -2139,6 +2160,7 @@ async def load_product_variant_by_id(
21392160 edition_id = variant .product .edition_id ,
21402161 name = variant .product .name ,
21412162 description = variant .product .description ,
2163+ required = variant .product .required ,
21422164 ),
21432165 )
21442166 if variant
0 commit comments