diff --git a/.github/workflows/comment_pr.yml b/.github/workflows/comment_pr.yml
new file mode 100644
index 0000000000..34949da5d1
--- /dev/null
+++ b/.github/workflows/comment_pr.yml
@@ -0,0 +1,69 @@
+name: Comment on PR
+
+on: pull_request
+
+jobs:
+ welcome:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/github-script@v3
+ with:
+ github-token: ${{secrets.GITHUB_TOKEN}}
+ script: |
+ var a = await github.pulls.listFiles({
+ pull_number: context.payload.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ });
+ var bt = await github.pulls.listReviews({
+ pull_number: context.payload.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ });
+ var b = bt.data
+ //await github.pulls.createReview({
+ // pull_number: context.payload.number,
+ // owner: context.repo.owner,
+ // repo: context.repo.repo,
+ // body: "yes"
+ //})
+ //console.log(context.repo)
+ //console.log(context)
+ //console.log(github)
+ //console.log(a)
+ for (index = 0; index < b.length; ++index) {
+ console.log(b[index]);
+ console.log(b[index].user);
+ }
+ //b.forEach(function(entry) {
+ // console.log(entry.user);
+ //});
+ console.log(b)
+
+
+ // Get a list of all issues created by the PR opener
+ // See: https://octokit.github.io/rest.js/#pagination
+ //const creator = context.payload.sender.login
+ //const opts = github.issues.listForRepo.endpoint.merge({
+ // ...context.issue,
+ // creator,
+ // state: 'all'
+ //})
+ //const issues = await github.paginate(opts)
+
+ //for (const issue of issues) {
+ // if (issue.number === context.issue.number) {
+ // continue
+ // }
+
+ // if (issue.pull_request) {
+ // return // Creator is already a contributor.
+ // }
+ //}
+
+ //await github.issues.createComment({
+ // issue_number: context.issue.number,
+ // owner: context.repo.owner,
+ // repo: context.repo.repo,
+ // body: 'Welcome, new contributor!'
+ //})
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000..73f69e0958
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/domjudge.iml b/.idea/domjudge.iml
new file mode 100644
index 0000000000..9a6b8a68ad
--- /dev/null
+++ b/.idea/domjudge.iml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000..c73d2199e9
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jsLinters/jshint.xml b/.idea/jsLinters/jshint.xml
new file mode 100644
index 0000000000..d7c6485fe8
--- /dev/null
+++ b/.idea/jsLinters/jshint.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000..d4a949c3dd
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/php.xml b/.idea/php.xml
new file mode 100644
index 0000000000..2aa5f557b2
--- /dev/null
+++ b/.idea/php.xml
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000..94a25f7f4c
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/webapp/src/Controller/Jury/RejudgingController.php b/webapp/src/Controller/Jury/RejudgingController.php
index f650586c64..3a38cbe9d6 100644
--- a/webapp/src/Controller/Jury/RejudgingController.php
+++ b/webapp/src/Controller/Jury/RejudgingController.php
@@ -708,7 +708,7 @@ private function getStats(Rejudging $rejudging): array
->leftJoin('j.rejudging', 'r')
->leftJoin('j.submission', 's')
->leftJoin('j.judgehost', 'jh')
- ->select('j.judgingid', 's.submitid', 'jh.hostname', 'j.result',
+ ->select('r.rejudgingid, j.judgingid', 's.submitid', 'jh.hostname', 'j.result',
'AVG(jr.runtime) AS runtime_avg', 'COUNT(jr.runtime) AS ntestcases',
'(j.endtime - j.starttime) AS duration'
)
@@ -812,19 +812,19 @@ function ($a, $b) {
'count' => count($submissions[$submitid]),
'verdict' => (
!array_key_exists($submitid, $submissions_to_result)
- ? '*multiple*'
+ ? join(', ', $results)
: $submissions_to_result[$submitid]
)
];
}
$judgehost_stats = [];
- foreach ($judgehosts as $judgehost => $judgings) {
+ foreach ($judgehosts as $judgehost => $host_judgings) {
$totaltime = 0.0; // Actual time begin--end of judging
$totalrun = 0.0; // Time spent judging runs
$sumsquare = 0.0;
$njudged = 0;
- foreach ($judgings as $judging) {
+ foreach ($host_judgings as $judging) {
$runtime = $judging['runtime_avg']*$judging['ntestcases'];
$totaltime += $judging['duration'];
$totalrun += $runtime;
@@ -849,7 +849,8 @@ function ($a, $b) {
'judging_runs_differ' => array_slice($judging_runs_differ, 0, $max_list_len),
'judging_runs_differ_overflow' => count($judging_runs_differ) - $max_list_len,
'runtime_spread' => $runtime_spread_list,
- 'judgehost_stats' => $judgehost_stats
+ 'judgehost_stats' => $judgehost_stats,
+ 'judgings' => $judgings
];
}
}
diff --git a/webapp/templates/jury/partials/submission_testcase_boxes.html.twig b/webapp/templates/jury/partials/submission_testcase_boxes.html.twig
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/webapp/templates/jury/rejudging.html.twig b/webapp/templates/jury/rejudging.html.twig
index a0d37bc618..844ab00e23 100644
--- a/webapp/templates/jury/rejudging.html.twig
+++ b/webapp/templates/jury/rejudging.html.twig
@@ -148,6 +148,20 @@
{% endfor %}
+
+
Judging verdicts
+
+ jID | rID | Judgehost | runtime | verdict |
+ {% for judging in stats.judgings %}
+
+ {{ judging.judgingid }} |
+ {{ judging.rejudgingid }} |
+ {{ judging.hostname }} |
+ {{ judging.duration | number_format(3) }} |
+ {{ judging.result | printResult }} |
+
+ {% endfor %}
+
{% endif %}
{% endif %}