Skip to content

Commit 2ee2712

Browse files
committed
Implement Nicky his suggestion
1 parent 903bff3 commit 2ee2712

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

webapp/src/Controller/Team/LanguageController.php

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use App\Controller\BaseController;
66
use App\Entity\Language;
7+
use App\Entity\ContestProblem;
78
use App\Service\ConfigurationService;
89
use App\Service\DOMJudgeService;
910
use App\Service\EventLogService;
@@ -33,6 +34,20 @@ public function __construct(
3334
parent::__construct($em, $eventLogService, $dj, $kernel);
3435
}
3536

37+
/**
38+
* @param Language[] $languages
39+
* @return Language[]
40+
*/
41+
private function addLanguage(array $languages, Language $language, ContestProblem $problem): array
42+
{
43+
$langId = $language->getName();
44+
if (!isset($languages[$langId])) {
45+
$languages[$langId] = ['problems' => [], 'language' => $language];
46+
}
47+
$languages[$langId]['problems'][] = $problem;
48+
return $languages;
49+
}
50+
3651
#[Route(path: '', name: 'team_languages')]
3752
public function languagesAction(): Response
3853
{
@@ -45,20 +60,15 @@ public function languagesAction(): Response
4560
$limited = false;
4661
foreach ($this->dj->getCurrentContest()->getProblems() as $problem) {
4762
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;
63+
$languages = $this->addLanguage($languages, $language, $problem);
5364
$limited = true;
5465
}
55-
}
56-
foreach ($this->dj->getAllowedLanguagesForContest($currentContest) as $language) {
57-
if (!isset($languages[$language->getName()])) {
58-
$languages[$language->getName()] = ['problems' => [], 'contestlang' => true, 'language' => $language];
66+
if (count($problem->getProblem()->getLanguages()) == 0) {
67+
foreach ($this->dj->getAllowedLanguagesForContest($currentContest) as $language) {
68+
$languages = $this->addLanguage($languages, $language, $problem);
69+
}
5970
}
60-
$languages[$language->getName()]['contestlang'] = true;
61-
};
71+
}
6272
return $this->render('team/languages.html.twig', ['languages' => $languages, 'limited' => $limited]);
6373
}
6474
}

webapp/templates/team/languages.html.twig

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
{% for langarray in languages %}
1111
{% set lang = langarray['language'] %}
1212
{% set problems = langarray['problems'] %}
13-
{% set contestlang = langarray['contestlang'] %}
1413
<div class="col">
1514
<div class="card">
1615
<div class="card-body">
@@ -24,11 +23,6 @@
2423
</span>
2524
{% if limited %}
2625
<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 %}
3226
{% for problem in problems %}
3327
{{ problem | problemBadge }}
3428
{% endfor %}

0 commit comments

Comments
 (0)