File tree Expand file tree Collapse file tree 3 files changed +37
-4
lines changed Expand file tree Collapse file tree 3 files changed +37
-4
lines changed Original file line number Diff line number Diff line change @@ -40,9 +40,25 @@ public function languagesAction(): Response
4040 if (!$ languagesEnabled ) {
4141 throw new BadRequestHttpException ("You are not allowed to view this page. " );
4242 }
43+ $ languages = [];
4344 $ currentContest = $ this ->dj ->getCurrentContest ();
44- /** @var Language[] $languages */
45- $ languages = $ this ->dj ->getAllowedLanguagesForContest ($ currentContest );
46- return $ this ->render ('team/languages.html.twig ' , ['languages ' => $ languages ]);
45+ $ limited = false ;
46+ foreach ($ this ->dj ->getCurrentContest ()->getProblems () as $ problem ) {
47+ foreach ($ problem ->getProblem ()->getLanguages () as $ language ) {
48+ $ langId = $ language ->getName ();
49+ if (!isset ($ languages [$ langId ])) {
50+ $ languages [$ langId ] = ['problems ' => [], 'contestlang ' => false , 'language ' => $ language ];
51+ }
52+ $ languages [$ langId ]['problems ' ][] = $ problem ;
53+ $ limited = true ;
54+ }
55+ }
56+ foreach ($ this ->dj ->getAllowedLanguagesForContest ($ currentContest ) as $ language ) {
57+ if (!isset ($ languages [$ language ->getName ()])) {
58+ $ languages [$ language ->getName ()] = ['problems ' => [], 'contestlang ' => true , 'language ' => $ language ];
59+ }
60+ $ languages [$ language ->getName ()]['contestlang ' ] = true ;
61+ };
62+ return $ this ->render ('team/languages.html.twig ' , ['languages ' => $ languages , 'limited ' => $ limited ]);
4763 }
4864}
Original file line number Diff line number Diff line change 2222use Symfony \Component \HttpFoundation \File \UploadedFile ;
2323use Symfony \Component \HttpFoundation \Request ;
2424use Symfony \Component \HttpFoundation \Response ;
25+ use Symfony \Component \HttpKernel \Exception \BadRequestHttpException ;
2526use Symfony \Component \HttpKernel \Exception \NotFoundHttpException ;
2627use Symfony \Component \HttpKernel \KernelInterface ;
2728use Symfony \Component \Routing \Attribute \Route ;
Original file line number Diff line number Diff line change 77
88 <div class =" container" >
99 <div class =" row row-cols-1 row-cols-md-2 row-cols-lg-2 g-2" >
10- {% for lang in languages %}
10+ {% for langarray in languages %}
11+ {% set lang = langarray ['language' ] %}
12+ {% set problems = langarray ['problems' ] %}
13+ {% set contestlang = langarray ['contestlang' ] %}
1114 <div class =" col" >
1215 <div class =" card" >
1316 <div class =" card-body" >
1821 {% for ext in lang .extensions %}
1922 <code >.{{ ext }}</code >{% if not loop .last %}, {% endif %}
2023 {% endfor %}
24+ </span >
25+ {% if limited %}
26+ <span style =" float: right; font-size:50%;" >
27+ {% if contestlang %}
28+ <span class =" badge problem-badge" style =" background-color: #fff; border: 1px solid #000" >
29+ <span style =" color: #000" >All</span >
30+ </span >
31+ {% endif %}
32+ {% for problem in problems %}
33+ {{ problem | problemBadge }}
34+ {% endfor %}
35+ </span >
36+ {% endif %}
2137 </h2 >
2238 </div >
2339 {% if lang .compilerVersion and lang .compilerVersionCommand %}
You can’t perform that action at this time.
0 commit comments