From 3e4f18575e3ad5997352150c09a1fea129a702f5 Mon Sep 17 00:00:00 2001 From: Olaf Date: Fri, 6 Apr 2018 17:59:01 +0200 Subject: [PATCH] SIO-2075 Mainpage update In the current version, the main page is a portal. We want a mainpage to be a separate entity. Change-Id: I7e6ef9406cfa44ee53a1e2039f08ac25a4ff2fde --- oioioi/base/static/scss/_language-picker.scss | 8 + oioioi/base/static/scss/_navbar.scss | 14 +- oioioi/base/static/scss/style.scss | 1 + oioioi/base/templates/base-with-menu.html | 8 +- oioioi/base/templates/base.html | 11 +- .../templates/ingredients/head-favicon.html | 3 + .../ingredients/language-picker.html | 32 +- .../ingredients/navbar-logo-with-menu.html | 5 + .../templates/ingredients/navbar-logo.html | 3 + .../templates/ingredients/navbar-user.html | 2 - oioioi/clock/static/common/clocks.js | 10 +- oioioi/locale/en/LC_MESSAGES/django.mo | Bin 132288 -> 134094 bytes oioioi/locale/en/LC_MESSAGES/django.po | 1433 ++++++++-------- oioioi/locale/en/LC_MESSAGES/djangojs.mo | Bin 5216 -> 5257 bytes oioioi/locale/pl/LC_MESSAGES/django.mo | Bin 151308 -> 152325 bytes oioioi/locale/pl/LC_MESSAGES/django.po | 1437 +++++++++-------- oioioi/locale/pl/LC_MESSAGES/djangojs.mo | Bin 6250 -> 6291 bytes .../newsfeed/{widgets => }/news.html | 2 +- .../templates/newsfeed/newsfeed-view.html | 9 + .../newsfeed/templates/newsfeed/newsfeed.html | 18 +- .../templates/newsfeed/widgets/newsfeed.html | 9 - oioioi/newsfeed/templatetags/__init__.py | 0 oioioi/newsfeed/templatetags/newsfeed.py | 11 + oioioi/newsfeed/views.py | 5 +- oioioi/newsfeed/widgets.py | 37 - .../portals/templates/portals/base-node.html | 4 +- .../portals/navbar-logo-with-menu.html | 5 + .../templates/portals/navbar-menu.html | 42 +- .../templates/portals/widgets/redirect.html | 14 + oioioi/portals/widgets.py | 23 + oioioi/szkopul/__init__.py | 0 oioioi/szkopul/menu.py | 4 + oioioi/szkopul/static/szkopul/favicon.ico | Bin 0 -> 1150 bytes oioioi/szkopul/static/szkopul/logo-small.png | Bin 0 -> 13665 bytes oioioi/szkopul/static/szkopul/logo.png | Bin 0 -> 28925 bytes oioioi/szkopul/static/szkopul/napis.png | Bin 0 -> 1980 bytes .../szkopul/static/szkopul/szkopul-logo-2.svg | 422 +++++ .../szkopul/static/szkopul/szkopul-logo-3.png | Bin 0 -> 27638 bytes .../szkopul/static/szkopul/szkopul-logo-3.svg | 663 ++++++++ .../szkopul/static/szkopul/szkopul-logo-4.png | Bin 0 -> 22392 bytes .../szkopul/static/szkopul/szkopul-logo-4.svg | 731 +++++++++ .../templates/ingredients/head-favicon.html | 3 + .../ingredients/navbar-logo-with-menu.html | 32 + .../templates/ingredients/navbar-logo.html | 5 + oioioi/szkopul/templates/main-page.html | 46 + oioioi/szkopul/views.py | 39 + .../{widgets => }/contest-selection.html | 0 oioioi/teachers/templatetags/__init__.py | 0 .../templatetags/contest_selection.py | 36 + oioioi/teachers/views.py | 5 - oioioi/teachers/widgets.py | 41 - 51 files changed, 3634 insertions(+), 1539 deletions(-) create mode 100644 oioioi/base/static/scss/_language-picker.scss create mode 100644 oioioi/base/templates/ingredients/head-favicon.html create mode 100644 oioioi/base/templates/ingredients/navbar-logo-with-menu.html create mode 100644 oioioi/base/templates/ingredients/navbar-logo.html rename oioioi/newsfeed/templates/newsfeed/{widgets => }/news.html (88%) create mode 100644 oioioi/newsfeed/templates/newsfeed/newsfeed-view.html delete mode 100644 oioioi/newsfeed/templates/newsfeed/widgets/newsfeed.html create mode 100644 oioioi/newsfeed/templatetags/__init__.py create mode 100644 oioioi/newsfeed/templatetags/newsfeed.py delete mode 100644 oioioi/newsfeed/widgets.py create mode 100644 oioioi/portals/templates/portals/navbar-logo-with-menu.html create mode 100644 oioioi/portals/templates/portals/widgets/redirect.html create mode 100644 oioioi/szkopul/__init__.py create mode 100644 oioioi/szkopul/menu.py create mode 100644 oioioi/szkopul/static/szkopul/favicon.ico create mode 100644 oioioi/szkopul/static/szkopul/logo-small.png create mode 100644 oioioi/szkopul/static/szkopul/logo.png create mode 100644 oioioi/szkopul/static/szkopul/napis.png create mode 100644 oioioi/szkopul/static/szkopul/szkopul-logo-2.svg create mode 100644 oioioi/szkopul/static/szkopul/szkopul-logo-3.png create mode 100644 oioioi/szkopul/static/szkopul/szkopul-logo-3.svg create mode 100644 oioioi/szkopul/static/szkopul/szkopul-logo-4.png create mode 100644 oioioi/szkopul/static/szkopul/szkopul-logo-4.svg create mode 100644 oioioi/szkopul/templates/ingredients/head-favicon.html create mode 100644 oioioi/szkopul/templates/ingredients/navbar-logo-with-menu.html create mode 100644 oioioi/szkopul/templates/ingredients/navbar-logo.html create mode 100644 oioioi/szkopul/templates/main-page.html create mode 100644 oioioi/szkopul/views.py rename oioioi/teachers/templates/teachers/{widgets => }/contest-selection.html (100%) create mode 100644 oioioi/teachers/templatetags/__init__.py create mode 100644 oioioi/teachers/templatetags/contest_selection.py diff --git a/oioioi/base/static/scss/_language-picker.scss b/oioioi/base/static/scss/_language-picker.scss new file mode 100644 index 000000000..d3129d48a --- /dev/null +++ b/oioioi/base/static/scss/_language-picker.scss @@ -0,0 +1,8 @@ +.current-language { + position: absolute; + right: 5px; + font-weight: bold; + font-size: 18px; + margin: 0px 5px 0px 0px; + color: $brand-success; +} diff --git a/oioioi/base/static/scss/_navbar.scss b/oioioi/base/static/scss/_navbar.scss index 4e697eae0..211a96b21 100644 --- a/oioioi/base/static/scss/_navbar.scss +++ b/oioioi/base/static/scss/_navbar.scss @@ -67,7 +67,8 @@ body { > a, .dropdown > a, .oioioi-navbar__extra > a, - .oioioi-navbar__extra > .dropdown > a { + .oioioi-navbar__extra > .dropdown > a, + .oioioi-navbar__menu-uncollapsed > a { @include centered-block($navbar-height); color: $oioioi-navbar-link-color; padding: 0 $oioioi-navbar-padding-base-horizontal; @@ -127,7 +128,8 @@ body { padding: 0 $oioioi-navbar-padding-base-horizontal; } - > .oioioi-navbar__extra { + > .oioioi-navbar__extra, + > .oioioi-navbar__menu-uncollapsed { display: flex; } @@ -163,7 +165,8 @@ body { // * Labels get shrunk @media (max-width: $screen-md-max) { .oioioi-navbar, - .oioioi-navbar > .oioioi-navbar__extra { + .oioioi-navbar > .oioioi-navbar__extra, + .oioioi-navbar__menu-uncollapsed { > a > .label, .dropdown > a > .label { max-width: $oioioi-navbar-label-md-width; @@ -173,6 +176,7 @@ body { // Small screens // * Menu replaces brand +// * Navbar links collapse to a dropdown menu // * Contest picker max width decreases // * Username and labels gets hidden (only icons) @media (max-width: $screen-sm-max) { @@ -181,6 +185,10 @@ body { display: block; } + > .oioioi-navbar__menu-uncollapsed { + display: none; + } + > .oioioi-navbar__brand:not(.oioioi-navbar__brand--always) { display: none; } diff --git a/oioioi/base/static/scss/style.scss b/oioioi/base/static/scss/style.scss index 6cf792be6..f46ba9490 100644 --- a/oioioi/base/static/scss/style.scss +++ b/oioioi/base/static/scss/style.scss @@ -10,6 +10,7 @@ @import "scss/layout"; @import "scss/markdown-editor"; @import "scss/spinner"; +@import "scss/language-picker"; body { min-width: $oioioi-body-min-width; diff --git a/oioioi/base/templates/base-with-menu.html b/oioioi/base/templates/base-with-menu.html index c58d450fb..64e0aed4a 100644 --- a/oioioi/base/templates/base-with-menu.html +++ b/oioioi/base/templates/base-with-menu.html @@ -3,12 +3,8 @@ {% block body-class %}body-with-menu{% endblock %} {% block container-class %}container-fluid{% endblock %} -{% block navbar-menu %} -{{ site_name }} - - +{% block navbar-logo %} + {% include "ingredients/navbar-logo-with-menu.html" %} {% endblock %} {% block body %} diff --git a/oioioi/base/templates/base.html b/oioioi/base/templates/base.html index a0a1751f3..a5d2896ca 100644 --- a/oioioi/base/templates/base.html +++ b/oioioi/base/templates/base.html @@ -10,7 +10,7 @@ - + {% include "ingredients/head-favicon.html" %} {% comment %} Load jQuery because inlined scripts in some views depends on it. @@ -41,8 +41,8 @@ {% if request.session.admin_time %} oioioi-navbar--admin-time {% endif %} {% if is_under_su %} oioioi-navbar--admin-su {% endif %} {% block navbar-class %}{% endblock %}"> - {% block navbar-menu %} - {{ site_name }} + {% block navbar-logo %} + {% include "ingredients/navbar-logo.html" with always_visible=True %} {% endblock %}
@@ -72,6 +72,11 @@ {% endif %}
+
+ {% block navbar_language_selector %} + {% include 'ingredients/language-picker.html' %} + {% endblock %} +
{% block navbar_user_su_panel %} diff --git a/oioioi/base/templates/ingredients/head-favicon.html b/oioioi/base/templates/ingredients/head-favicon.html new file mode 100644 index 000000000..493380961 --- /dev/null +++ b/oioioi/base/templates/ingredients/head-favicon.html @@ -0,0 +1,3 @@ +{% load staticfiles %} + + diff --git a/oioioi/base/templates/ingredients/language-picker.html b/oioioi/base/templates/ingredients/language-picker.html index 91feb3ca0..2c1a4ab38 100644 --- a/oioioi/base/templates/ingredients/language-picker.html +++ b/oioioi/base/templates/ingredients/language-picker.html @@ -1,12 +1,24 @@ {% if LANGUAGES|length > 1 %} -{% load i18n %} - - {% for lang_short, lang_name in LANGUAGES %} -
  • - - - {{ lang_short|language_name_local }} - -
  • - {% endfor %} + {% load i18n %} + {% get_current_language as LANGUAGE_CODE %} + + {% endif %} diff --git a/oioioi/base/templates/ingredients/navbar-logo-with-menu.html b/oioioi/base/templates/ingredients/navbar-logo-with-menu.html new file mode 100644 index 000000000..b842cc9bf --- /dev/null +++ b/oioioi/base/templates/ingredients/navbar-logo-with-menu.html @@ -0,0 +1,5 @@ +{% include "ingredients/navbar-logo.html" with always_visible=False %} + + diff --git a/oioioi/base/templates/ingredients/navbar-logo.html b/oioioi/base/templates/ingredients/navbar-logo.html new file mode 100644 index 000000000..07273909b --- /dev/null +++ b/oioioi/base/templates/ingredients/navbar-logo.html @@ -0,0 +1,3 @@ + + {{ site_name }} + diff --git a/oioioi/base/templates/ingredients/navbar-user.html b/oioioi/base/templates/ingredients/navbar-user.html index 666fda120..ba62a187e 100644 --- a/oioioi/base/templates/ingredients/navbar-user.html +++ b/oioioi/base/templates/ingredients/navbar-user.html @@ -23,7 +23,6 @@ - {% include 'ingredients/language-picker.html' %}
    {% else %} @@ -51,7 +50,6 @@ {% for item in menu %}
  • {{ item.text }}
  • {% endfor %} - {% include 'ingredients/language-picker.html' %} {% su_dropdown_form %} {% user_info_dropdown_form %} diff --git a/oioioi/clock/static/common/clocks.js b/oioioi/clock/static/common/clocks.js index 984c665f4..13e722657 100644 --- a/oioioi/clock/static/common/clocks.js +++ b/oioioi/clock/static/common/clocks.js @@ -74,9 +74,13 @@ $(function() { * @returns {string} formatted date */ function getDatetimeString(time) { - return time.getFullYear() + '-' + time.getMonth() + '-' - + time.getDay() + ' ' + time.getHours() + ':' - + time.getMinutes() + ':' + time.getSeconds(); + function twoDigit(number) { + return ("0" + number).slice(-2); + } + + return time.getFullYear() + '-' + twoDigit(time.getMonth() + 1) + '-' + + twoDigit(time.getDate()) + ' ' + twoDigit(time.getHours()) + ':' + + twoDigit(time.getMinutes()) + ':' + twoDigit(time.getSeconds()); } /** diff --git a/oioioi/locale/en/LC_MESSAGES/django.mo b/oioioi/locale/en/LC_MESSAGES/django.mo index 02c47db459086dfaa08b2f2ac94878734514d496..0b3f76a8445a93a39169d6d1e68475add44117fd 100644 GIT binary patch delta 32849 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

    1z1>ahMqbsTf6d0J9pY2rCi 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

    _XK)X4B828orELnP;epy|(EeZ9Fzd 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 EKc\n" "Language-Team: English (http://www.transifex.com/sio2project/sio2project/" @@ -40,16 +40,16 @@ msgstr "#" #: acm/controllers.py:234 contests/forms.py:285 #: contests/templates/contests/basic_user_info.html:20 #: contests/templates/contests/navbar-user-info-form.html:18 -#: oireports/forms.py:91 rankings/forms.py:8 su/forms.py:23 +#: oireports/forms.py:93 rankings/forms.py:9 su/forms.py:24 #: su/templates/su/navbar-su-form.html:11 msgid "Username" msgstr "Username" -#: acm/controllers.py:234 base/forms.py:33 rankings/controllers.py:265 +#: acm/controllers.py:234 base/forms.py:33 rankings/controllers.py:263 msgid "First name" msgstr "First name" -#: acm/controllers.py:234 base/forms.py:34 rankings/controllers.py:265 +#: acm/controllers.py:234 base/forms.py:34 rankings/controllers.py:263 msgid "Last name" msgstr "Last name" @@ -57,7 +57,7 @@ msgstr "Last name" msgid "Solved" msgstr "Solved" -#: acm/controllers.py:238 rankings/controllers.py:268 +#: acm/controllers.py:238 rankings/controllers.py:266 #: rankings/templates/rankings/default_ranking.html:22 msgid "Sum" msgstr "Sum" @@ -72,15 +72,15 @@ msgstr "Your submission for task %(short_name)s is accepted. Congratulations!" msgid "Your submission for task %(short_name)s is not accepted." msgstr "Your submission for task %(short_name)s is not accepted." -#: acm/models.py:9 contests/forms.py:185 contests/models.py:315 +#: acm/models.py:9 contests/forms.py:185 contests/models.py:316 msgid "Ignored" msgstr "Ignored" -#: acm/score.py:43 +#: acm/score.py:44 msgid "Accepted" msgstr "Accepted" -#: acm/score.py:45 +#: acm/score.py:46 msgid "Rejected" msgstr "Rejected" @@ -90,21 +90,22 @@ msgstr "The ranking is frozen." #: acm/templates/acm/acm_ranking.html:12 #: complaints/templates/complaints/jury-email.txt:6 contests/forms.py:163 -#: evalmgr/admin.py:169 oireports/forms.py:90 prizes/reports.py:16 -#: prizes/reports.py:37 rankings/templates/rankings/default_ranking.html:11 +#: evalmgr/admin.py:169 oireports/forms.py:92 prizes/reports.py:17 +#: prizes/reports.py:38 rankings/templates/rankings/default_ranking.html:11 #: teams/templates/teams/confirm-join-team.html:14 #: teams/templates/teams/team.html:14 teams/templates/teams/teams.html:14 msgid "User" msgstr "User" -#: acm/templates/acm/acm_ranking.html:13 contests/admin.py:595 -#: contests/fields.py:11 +#: acm/templates/acm/acm_ranking.html:13 contests/admin.py:597 +#: contests/fields.py:12 #: contests/templates/contests/my_submissions_table.html:29 #: contests/templates/contests/problems_list.html:18 #: contests/templates/contests/submission.html:51 #: programs/templates/programs/report-body.html:14 #: programs/templates/programs/submission_header.html:116 #: publicsolutions/templates/publicsolutions/solutions-table.html:9 +#: quizzes/models.py:70 quizzes/templates/quizzes/report-body.html:12 #: scoresreveal/templates/scoresreveal/submission-footer.html:14 #: simpleui/templates/simpleui/contest/ingredients/submissions.html:11 #: zeus/templates/zeus/program-report.html:18 @@ -157,13 +158,13 @@ msgstr "Regenerate key" msgid "Regeneration link" msgstr "Regeneration link" -#: balloons/management/commands/import_balloons_displays.py:17 -#: participants/management/commands/import_onsite_participants.py:18 -#: participants/management/commands/import_participants.py:14 +#: balloons/management/commands/import_balloons_displays.py:19 +#: participants/management/commands/import_onsite_participants.py:20 +#: participants/management/commands/import_participants.py:16 msgid " " msgstr " " -#: balloons/management/commands/import_balloons_displays.py:18 +#: balloons/management/commands/import_balloons_displays.py:20 #, python-format msgid "" "Updates the list of balloons displays of from the given CSV " @@ -178,43 +179,43 @@ msgstr "" "Given CSV file should contain a header row with column names (respectively " "%(columns)s) separated by commas." -#: balloons/management/commands/import_balloons_displays.py:29 -#: participants/management/commands/import_onsite_participants.py:30 -#: participants/management/commands/import_participants.py:23 +#: balloons/management/commands/import_balloons_displays.py:31 +#: participants/management/commands/import_onsite_participants.py:32 +#: participants/management/commands/import_participants.py:25 msgid "Expected two arguments" msgstr "Expected two arguments" -#: balloons/management/commands/import_balloons_displays.py:34 +#: balloons/management/commands/import_balloons_displays.py:36 #: oi/management/commands/oi_generate_dnsauth.py:33 -#: participants/management/commands/import_onsite_participants.py:35 -#: participants/management/commands/import_participants.py:28 +#: participants/management/commands/import_onsite_participants.py:37 +#: participants/management/commands/import_participants.py:30 #, python-format msgid "Contest %s does not exist" msgstr "Contest %s does not exist" -#: balloons/management/commands/import_balloons_displays.py:39 -#: base/management/commands/import_users.py:35 -#: oi/management/commands/import_schools.py:38 -#: participants/management/commands/import_onsite_participants.py:46 -#: participants/management/commands/import_participants.py:38 +#: balloons/management/commands/import_balloons_displays.py:41 +#: base/management/commands/import_users.py:36 +#: oi/management/commands/import_schools.py:37 +#: participants/management/commands/import_onsite_participants.py:48 +#: participants/management/commands/import_participants.py:40 #, python-format msgid "Fetching %s...\n" msgstr "Fetching %s...\n" -#: balloons/management/commands/import_balloons_displays.py:43 -#: base/management/commands/import_users.py:39 +#: balloons/management/commands/import_balloons_displays.py:45 +#: base/management/commands/import_users.py:40 #: confirmations/management/commands/verify_receipt.py:26 -#: oi/management/commands/import_schools.py:42 -#: participants/management/commands/import_onsite_participants.py:50 -#: participants/management/commands/import_participants.py:42 -#: problems/management/commands/addproblem.py:36 -#: problems/management/commands/updateproblem.py:28 +#: oi/management/commands/import_schools.py:41 +#: participants/management/commands/import_onsite_participants.py:52 +#: participants/management/commands/import_participants.py:44 +#: problems/management/commands/addproblem.py:38 +#: problems/management/commands/updateproblem.py:30 msgid "File not found: " msgstr "File not found: " -#: balloons/management/commands/import_balloons_displays.py:49 -#: base/management/commands/import_users.py:45 -#: participants/management/commands/import_onsite_participants.py:56 +#: balloons/management/commands/import_balloons_displays.py:51 +#: base/management/commands/import_users.py:46 +#: participants/management/commands/import_onsite_participants.py:58 #, python-format msgid "" "Missing header or invalid columns: %(header)s\n" @@ -223,114 +224,114 @@ msgstr "" "Missing header or invalid columns: %(header)s\n" "Expected: %(expected)s" -#: balloons/management/commands/import_balloons_displays.py:71 -#: participants/management/commands/import_onsite_participants.py:84 -#: participants/management/commands/import_participants.py:62 +#: balloons/management/commands/import_balloons_displays.py:73 +#: participants/management/commands/import_onsite_participants.py:86 +#: participants/management/commands/import_participants.py:64 #, python-format msgid "Error for user=%(user)s: user does not exist\n" msgstr "Error for user=%(user)s: user does not exist\n" -#: balloons/management/commands/import_balloons_displays.py:80 -#: base/management/commands/import_users.py:73 -#: participants/management/commands/import_onsite_participants.py:98 -#: participants/management/commands/import_participants.py:71 +#: balloons/management/commands/import_balloons_displays.py:82 +#: base/management/commands/import_users.py:74 +#: participants/management/commands/import_onsite_participants.py:100 +#: participants/management/commands/import_participants.py:73 #, python-format msgid "DB Error for user=%(user)s: %(message)s\n" msgstr "DB Error for user=%(user)s: %(message)s\n" -#: balloons/management/commands/import_balloons_displays.py:88 +#: balloons/management/commands/import_balloons_displays.py:90 msgid "Error for user=%(user)s: %s\n" msgstr "Error for user=%(user)s: %s\n" -#: balloons/management/commands/import_balloons_displays.py:92 -#: base/management/commands/import_users.py:85 -#: participants/management/commands/import_onsite_participants.py:110 +#: balloons/management/commands/import_balloons_displays.py:94 +#: base/management/commands/import_users.py:86 +#: participants/management/commands/import_onsite_participants.py:112 #, python-format msgid "Error for user=%(user)s, field %(field)s: %(message)s\n" msgstr "Error for user=%(user)s, field %(field)s: %(message)s\n" -#: balloons/management/commands/import_balloons_displays.py:99 -#: base/management/commands/import_users.py:92 +#: balloons/management/commands/import_balloons_displays.py:101 +#: base/management/commands/import_users.py:93 #: oi/management/commands/oi_generate_dnsauth.py:52 -#: participants/management/commands/import_onsite_participants.py:117 -#: participants/management/commands/import_participants.py:75 +#: participants/management/commands/import_onsite_participants.py:119 +#: participants/management/commands/import_participants.py:77 #, python-format msgid "Processed %d entries" msgstr "Processed %d entries" -#: balloons/management/commands/import_balloons_displays.py:101 -#: base/management/commands/import_users.py:94 -#: participants/management/commands/import_onsite_participants.py:119 -#: participants/management/commands/import_participants.py:77 +#: balloons/management/commands/import_balloons_displays.py:103 +#: base/management/commands/import_users.py:95 +#: participants/management/commands/import_onsite_participants.py:121 +#: participants/management/commands/import_participants.py:79 msgid "There were some errors. Database not changed.\n" msgstr "There were some errors. Database not changed.\n" -#: balloons/models.py:16 balloons/models.py:47 contests/admin.py:394 -#: contests/admin.py:398 contests/models.py:252 contests/models.py:329 -#: evalmgr/admin.py:51 mailsubmit/models.py:26 problems/models.py:106 -#: problems/models.py:221 scoresreveal/models.py:18 testrun/models.py:24 +#: balloons/models.py:15 balloons/models.py:46 contests/admin.py:396 +#: contests/admin.py:400 contests/models.py:253 contests/models.py:330 +#: evalmgr/admin.py:51 mailsubmit/models.py:25 problems/models.py:106 +#: problems/models.py:221 scoresreveal/models.py:19 testrun/models.py:26 msgid "problem" msgstr "problem" -#: balloons/models.py:19 +#: balloons/models.py:18 msgid "color" msgstr "color" -#: balloons/models.py:22 balloons/models.py:23 +#: balloons/models.py:21 balloons/models.py:22 msgid "balloons colors" msgstr "balloons colors" -#: balloons/models.py:32 ipdnsauth/models.py:13 +#: balloons/models.py:31 ipdnsauth/models.py:13 msgid "IP address" msgstr "IP address" -#: balloons/models.py:33 balloons/models.py:45 contests/models.py:331 -#: disqualification/models.py:12 evalmgr/admin.py:20 mailsubmit/models.py:28 -#: teachers/models.py:19 teams/models.py:15 +#: balloons/models.py:32 balloons/models.py:44 contests/models.py:332 +#: disqualification/models.py:13 evalmgr/admin.py:20 mailsubmit/models.py:27 +#: teachers/models.py:20 teams/models.py:15 msgid "user" msgstr "user" -#: balloons/models.py:34 balloons/models.py:69 contestlogo/models.py:16 -#: contestlogo/models.py:43 contests/admin.py:451 contests/models.py:84 -#: contests/models.py:125 contests/models.py:183 contests/models.py:248 -#: contests/models.py:525 disqualification/models.py:11 problems/models.py:60 +#: balloons/models.py:33 balloons/models.py:68 contestlogo/models.py:18 +#: contestlogo/models.py:45 contests/admin.py:453 contests/models.py:85 +#: contests/models.py:126 contests/models.py:184 contests/models.py:249 +#: contests/models.py:526 disqualification/models.py:12 problems/models.py:60 #: problems/models.py:220 similarsubmits/models.py:12 msgid "contest" msgstr "contest" -#: balloons/models.py:37 +#: balloons/models.py:36 msgid "balloons display" msgstr "balloons display" -#: balloons/models.py:38 +#: balloons/models.py:37 msgid "balloons displays" msgstr "balloons displays" -#: balloons/models.py:48 +#: balloons/models.py:47 msgid "delivered" msgstr "delivered" -#: balloons/models.py:51 +#: balloons/models.py:50 msgid "first accepted solution" msgstr "first accepted solution" -#: balloons/models.py:55 +#: balloons/models.py:54 msgid "balloon delivery" msgstr "balloon delivery" -#: balloons/models.py:56 +#: balloons/models.py:55 msgid "balloon deliveries" msgstr "balloon deliveries" -#: balloons/models.py:70 +#: balloons/models.py:69 msgid "access key" msgstr "access key" -#: balloons/models.py:72 +#: balloons/models.py:71 msgid "valid until" msgstr "valid until" -#: balloons/models.py:75 balloons/models.py:76 +#: balloons/models.py:74 balloons/models.py:75 msgid "balloons delivery access data" msgstr "balloons delivery access data" @@ -351,72 +352,72 @@ msgstr "Team" msgid "Recently delivered" msgstr "Recently delivered" -#: balloons/views.py:60 +#: balloons/views.py:61 msgid "No IP address detected" msgstr "No IP address detected" -#: balloons/views.py:64 +#: balloons/views.py:65 #, python-format msgid "No balloons display configured for this IP: %s" msgstr "No balloons display configured for this IP: %s" -#: base/admin.py:81 +#: base/admin.py:80 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "%(name)s object with primary key %(key)r does not exist." -#: base/admin.py:89 +#: base/admin.py:88 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "The %(name)s \"%(obj)s\" was deleted successfully." -#: base/admin.py:165 +#: base/admin.py:164 #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "Successfully deleted %(count)d %(items)s." -#: base/admin.py:179 +#: base/admin.py:178 #, python-format msgid "Cannot delete %(name)s" msgstr "Cannot delete %(name)s" -#: base/admin.py:181 +#: base/admin.py:180 #: base/templates/registration/delete_account_confirmation.html:10 #: contests/templates/contests/confirm_rejudge.html:17 #: contests/templates/contests/confirm_resetting_limits.html:23 msgid "Are you sure?" msgstr "Are you sure?" -#: base/admin.py:208 +#: base/admin.py:207 #, python-format msgid "Delete selected %(verbose_name_plural)s" msgstr "Delete selected %(verbose_name_plural)s" -#: base/admin.py:280 +#: base/admin.py:279 msgid "System Administration" msgstr "System Administration" -#: base/admin.py:296 oi/templates/oi/sensitive_participant_info.html:4 +#: base/admin.py:295 oi/templates/oi/sensitive_participant_info.html:4 msgid "Personal info" msgstr "Personal info" -#: base/admin.py:297 +#: base/admin.py:296 msgid "Permissions" msgstr "Permissions" -#: base/admin.py:299 +#: base/admin.py:298 msgid "Important dates" msgstr "Important dates" -#: base/admin.py:309 +#: base/admin.py:308 msgid "Mark users as active" msgstr "Mark users as active" -#: base/admin.py:314 +#: base/admin.py:313 msgid "Users" msgstr "Users" -#: base/config_version_check.py:13 +#: base/config_version_check.py:14 #, python-format msgid "" "The 'CONFIG_VERSION' in your custom deployment directory " @@ -452,7 +453,7 @@ msgstr "%s is an abstract class and cannot be used" msgid "Enumeration" msgstr "Enumeration" -#: base/fields.py:232 oi/models.py:71 oi/models.py:105 +#: base/fields.py:232 oi/models.py:70 oi/models.py:104 msgid "Invalid phone number" msgstr "Invalid phone number" @@ -460,7 +461,7 @@ msgstr "Invalid phone number" msgid "Including the area code." msgstr "Including the area code." -#: base/fields.py:251 oi/models.py:65 oi/models.py:101 +#: base/fields.py:251 oi/models.py:64 oi/models.py:100 msgid "Enter a postal code in the format XX-XXX" msgstr "Enter a postal code in the format XX-XXX" @@ -480,11 +481,11 @@ msgstr "You cannot change your username." msgid "That email address doesn't have an associated local user account." msgstr "That email address doesn't have an associated local user account." -#: base/management/commands/import_users.py:15 +#: base/management/commands/import_users.py:16 msgid "" msgstr "" -#: base/management/commands/import_users.py:19 +#: base/management/commands/import_users.py:20 #, python-format msgid "" "Creates user accounts from a CSV file with the following " @@ -499,13 +500,13 @@ msgstr "" " Given CSV file should contain a header row with column names (respectively " "%(columns)s) separated by commas. Following rows should contain user data." -#: base/management/commands/import_users.py:30 +#: base/management/commands/import_users.py:31 #: oi/management/commands/oi_generate_dnsauth.py:28 msgid "Expected one argument" msgstr "Expected one argument" -#: base/management/commands/import_users.py:81 -#: participants/management/commands/import_onsite_participants.py:106 +#: base/management/commands/import_users.py:82 +#: participants/management/commands/import_onsite_participants.py:108 #, python-format msgid "Error for user=%(user)s: %(message)s\n" msgstr "Error for user=%(user)s: %(message)s\n" @@ -538,7 +539,7 @@ msgstr "User Menu" msgid "Account Menu" msgstr "Account Menu" -#: base/middleware.py:96 +#: base/middleware.py:95 #, python-format msgid "" "Your login - %(login)s - contains forbidden characters. Please click OIOIOI, " "from the SIO2 Project." -#: base/templates/ingredients/form.html:8 contests/models.py:324 +#: base/templates/ingredients/form.html:8 contests/models.py:325 #: mailsubmit/templates/mailsubmit/accept.html:15 problems/models.py:208 msgid "Error" msgstr "Error" @@ -644,18 +646,20 @@ msgid "Switch contest" msgstr "Switch contest" #: base/templates/ingredients/navbar-contests.html:26 -#: teachers/templates/teachers/widgets/contest-selection.html:23 -#: teachers/templates/teachers/widgets/contest-selection.html:37 +#: teachers/templates/teachers/contest-selection.html:23 +#: teachers/templates/teachers/contest-selection.html:37 msgid "Create a new contest" msgstr "Create a new contest" #: base/templates/ingredients/navbar-contests.html:32 #: simpleui/templates/simpleui/main_dashboard/dashboard.html:34 +#: szkopul/views.py:9 msgid "Problemset" msgstr "Problemset" #: base/templates/ingredients/navbar-menu.html:4 -#: portals/templates/portals/navbar-menu.html:7 +#: portals/templates/portals/navbar-menu.html:4 +#: szkopul/templates/ingredients/navbar-logo-with-menu.html:16 msgid "Toggle navigation" msgstr "Toggle navigation" @@ -674,9 +678,9 @@ msgstr "Switched user" msgid "Log in" msgstr "Log in" -#: base/templates/ingredients/navbar-user.html:17 contests/admin.py:565 -#: contests/admin.py:730 mailsubmit/admin.py:74 participants/admin.py:46 -#: rankings/controllers.py:265 +#: base/templates/ingredients/navbar-user.html:17 contests/admin.py:567 +#: contests/admin.py:732 mailsubmit/admin.py:74 participants/admin.py:47 +#: rankings/controllers.py:263 msgid "Login" msgstr "Login" @@ -688,8 +692,8 @@ msgstr "Password" msgid "Register" msgstr "Register" -#: base/templates/ingredients/navbar-user.html:36 -#: base/templates/ingredients/navbar-user.html:38 +#: base/templates/ingredients/navbar-user.html:35 +#: base/templates/ingredients/navbar-user.html:37 msgid "Maintenance Mode is ON" msgstr "Maintenance Mode is ON" @@ -907,7 +911,7 @@ msgstr "Please fill the form below to register." #: base/templates/registration/registration_form.html:27 #: base/templates/simple-centered-form.html:12 #: contests/templates/contests/my_submissions.html:14 -#: contests/templates/contests/submit.html:13 contests/views.py:159 +#: contests/templates/contests/submit.html:13 contests/views.py:164 #: dashboard/views.py:34 forum/templates/forum/edit_post.html:30 #: forum/templates/forum/thread.html:49 #: forum/templates/forum/thread_add.html:26 @@ -915,7 +919,7 @@ msgstr "Please fill the form below to register." #: mailsubmit/templates/mailsubmit/submit.html:26 #: newsfeed/templates/newsfeed/news-form.html:8 #: participants/templates/participants/registration.html:30 -#: problems/problem_site.py:118 +#: problems/problem_site.py:117 #: problems/templates/admin/problems/problem-add.html:13 #: problems/templates/admin/problems/problem-reupload.html:33 #: problems/templates/problems/package-source.html:7 @@ -1177,7 +1181,7 @@ msgstr "Testing backend" msgid "Too large value for progress bar" msgstr "Too large value for progress bar" -#: base/utils/user_selection.py:170 +#: base/utils/user_selection.py:169 #, python-format msgid "User not found or you do not have access to this user account: %s" msgstr "User not found or you do not have access to this user account: %s" @@ -1249,18 +1253,18 @@ msgstr "Enable complaints" msgid "Disable complaints" msgstr "Disable complaints" -#: complaints/models.py:19 contestexcl/models.py:55 globalmessage/models.py:9 -#: ipauthsync/models.py:31 mailsubmit/models.py:49 +#: complaints/models.py:19 contestexcl/models.py:54 globalmessage/models.py:9 +#: ipauthsync/models.py:30 mailsubmit/models.py:48 msgid "enabled" msgstr "enabled" -#: complaints/models.py:20 contestexcl/models.py:59 contests/models.py:187 -#: ipauthsync/models.py:33 mailsubmit/models.py:50 +#: complaints/models.py:20 contestexcl/models.py:58 contests/models.py:188 +#: ipauthsync/models.py:32 mailsubmit/models.py:49 msgid "start date" msgstr "start date" -#: complaints/models.py:22 contestexcl/models.py:61 contests/models.py:189 -#: ipauthsync/models.py:34 mailsubmit/models.py:52 +#: complaints/models.py:22 contestexcl/models.py:60 contests/models.py:190 +#: ipauthsync/models.py:33 mailsubmit/models.py:51 msgid "end date" msgstr "end date" @@ -1328,10 +1332,10 @@ msgstr "" "\n" "the following complaint was received:" -#: complaints/templates/complaints/jury-email.txt:5 contests/admin.py:600 +#: complaints/templates/complaints/jury-email.txt:5 contests/admin.py:602 #: evalmgr/admin.py:163 prizes/templates/prizes/email_footer.txt:4 #: questions/templates/admin/questions/change_message.html:32 -#: rankings/controllers.py:224 statistics/controllers.py:18 +#: rankings/controllers.py:222 statistics/controllers.py:21 msgid "Contest" msgstr "Contest" @@ -1339,10 +1343,10 @@ msgstr "Contest" msgid "Participant status" msgstr "Participant status" -#: complaints/templates/complaints/jury-email.txt:8 contests/admin.py:677 -#: contests/admin.py:681 +#: complaints/templates/complaints/jury-email.txt:8 contests/admin.py:679 +#: contests/admin.py:683 #: dashboard/templates/dashboard/dashboard-submissions.html:3 -#: problems/problem_site.py:96 +#: problems/problem_site.py:95 #: simpleui/templates/simpleui/contest/contest.html:60 msgid "Submissions" msgstr "Submissions" @@ -1485,15 +1489,15 @@ msgstr "" "You have been redirected to this contest, because you are not currently " "allowed to access other contests." -#: contestexcl/models.py:41 +#: contestexcl/models.py:40 msgid "Enable exclusiveness" msgstr "Enable exclusiveness" -#: contestexcl/models.py:44 +#: contestexcl/models.py:43 msgid "Disable exclusiveness" msgstr "Disable exclusiveness" -#: contestexcl/models.py:56 +#: contestexcl/models.py:55 msgid "" "Caution! If you'll disable exclusiveness and you are not superadmin you " "won't be able to enable it again!" @@ -1501,15 +1505,15 @@ msgstr "" "Caution! If you'll disable exclusiveness and you are not superadmin you " "won't be able to enable it again!" -#: contestexcl/models.py:66 +#: contestexcl/models.py:65 msgid "exclusiveness config" msgstr "exclusiveness config" -#: contestexcl/models.py:67 +#: contestexcl/models.py:66 msgid "exclusiveness configs" msgstr "exclusiveness configs" -#: contestexcl/models.py:77 ipauthsync/models.py:57 +#: contestexcl/models.py:76 ipauthsync/models.py:56 msgid "The start date should precede the end date" msgstr "The start date should precede the end date" @@ -1564,27 +1568,27 @@ msgstr "" msgid "Filename" msgstr "Filename" -#: contestlogo/models.py:19 +#: contestlogo/models.py:21 msgid "logo image" msgstr "logo image" -#: contestlogo/models.py:22 +#: contestlogo/models.py:24 msgid "external contest webpage url" msgstr "external contest webpage url" -#: contestlogo/models.py:33 contestlogo/models.py:34 +#: contestlogo/models.py:35 contestlogo/models.py:36 msgid "contest logo" msgstr "contest logo" -#: contestlogo/models.py:45 +#: contestlogo/models.py:47 msgid "icon image" msgstr "icon image" -#: contestlogo/models.py:57 +#: contestlogo/models.py:59 msgid "contest icon" msgstr "contest icon" -#: contestlogo/models.py:58 +#: contestlogo/models.py:60 msgid "contest icons" msgstr "contest icons" @@ -1596,106 +1600,106 @@ msgstr "Contest icon" msgid "Contest logo" msgstr "Contest logo" -#: contests/admin.py:131 problems/admin.py:73 problems/admin.py:97 +#: contests/admin.py:133 problems/admin.py:72 problems/admin.py:96 msgid "Content file" msgstr "Content file" -#: contests/admin.py:242 simpleui/templates/simpleui/contest/contest.html:40 +#: contests/admin.py:244 simpleui/templates/simpleui/contest/contest.html:40 #: simpleui/templates/simpleui/contest/ingredients/round.html:20 #: simpleui/templates/simpleui/main_dashboard/contest.html:7 msgid "Settings" msgstr "Settings" -#: contests/admin.py:271 problems/admin.py:320 +#: contests/admin.py:273 problems/admin.py:319 #: problems/templates/problems/problemset/problem-site.html:47 msgid "Edit problem" msgstr "Edit problem" -#: contests/admin.py:303 quizzes/admin.py:73 +#: contests/admin.py:305 quizzes/admin.py:73 msgid "Edit quiz questions" msgstr "Edit quiz questions" -#: contests/admin.py:317 programs/admin.py:232 +#: contests/admin.py:319 programs/admin.py:232 #: programs/templates/programs/admin/model_solutions.html:4 #: programs/templates/programs/admin/model_solutions.html:17 msgid "Model solutions" msgstr "Model solutions" -#: contests/admin.py:318 +#: contests/admin.py:320 msgid "Problem site" msgstr "Problem site" -#: contests/admin.py:319 +#: contests/admin.py:321 msgid "Reset tests limits" msgstr "Reset tests limits" -#: contests/admin.py:320 +#: contests/admin.py:322 msgid "Attach to another contest" msgstr "Attach to another contest" -#: contests/admin.py:328 +#: contests/admin.py:330 msgid "Reupload package" msgstr "Reupload package" -#: contests/admin.py:333 +#: contests/admin.py:335 msgid "Rejudge all submissions for problem" msgstr "Rejudge all submissions for problem" -#: contests/admin.py:339 contests/templates/contests/submission.html:46 -#: problems/admin.py:333 +#: contests/admin.py:341 contests/templates/contests/submission.html:46 +#: problems/admin.py:332 #: problems/templates/problems/problemset/problem-site.html:43 #: programs/templates/programs/my_submissions_table_diff.html:5 #: similarsubmits/templates/similarsubmits/programming_similar_submissions_admin.html:29 msgid "Actions" msgstr "Actions" -#: contests/admin.py:345 contests/admin.py:581 contests/forms.py:108 +#: contests/admin.py:347 contests/admin.py:583 contests/forms.py:108 #: contests/templates/contests/my_submissions_table.html:24 #: evalmgr/admin.py:154 mailsubmit/forms.py:14 #: programs/templates/programs/submission_header.html:110 -#: publicsolutions/forms.py:8 +#: publicsolutions/forms.py:9 #: publicsolutions/templates/publicsolutions/publish-table.html:7 #: publicsolutions/templates/publicsolutions/solutions-table.html:7 #: similarsubmits/admin.py:85 #: simpleui/templates/simpleui/contest/ingredients/submissions.html:9 -#: statistics/controllers.py:19 +#: statistics/controllers.py:22 #: testrun/templates/testrun/submission-header.html:11 msgid "Problem" msgstr "Problem" -#: contests/admin.py:352 +#: contests/admin.py:354 msgid "Symbol" msgstr "Symbol" -#: contests/admin.py:364 problems/admin.py:306 problems/forms.py:38 +#: contests/admin.py:366 problems/admin.py:305 problems/forms.py:38 #: testspackages/admin.py:51 msgid "Package file" msgstr "Package file" -#: contests/admin.py:388 contests/templates/contests/problems_list.html:5 -#: contests/templates/contests/problems_list.html:8 contests/views.py:64 +#: contests/admin.py:390 contests/templates/contests/problems_list.html:5 +#: contests/templates/contests/problems_list.html:8 contests/views.py:69 #: dashboard/views.py:28 msgid "Problems" msgstr "Problems" -#: contests/admin.py:420 contests/models.py:335 programs/models.py:45 -#: programs/models.py:129 questions/models.py:34 +#: contests/admin.py:422 contests/models.py:336 programs/models.py:47 +#: programs/models.py:131 questions/models.py:34 msgid "kind" msgstr "kind" -#: contests/admin.py:434 contests/admin.py:692 contests/models.py:131 -#: contests/models.py:200 contests/models.py:250 +#: contests/admin.py:436 contests/admin.py:694 contests/models.py:132 +#: contests/models.py:201 contests/models.py:251 msgid "round" msgstr "round" -#: contests/admin.py:524 +#: contests/admin.py:526 #, python-format msgid "Queued one submission for rejudge." msgid_plural "Queued %(counter)d submissions for rejudge." msgstr[0] "Queued one submission for rejudge." msgstr[1] "Queued %(counter)d submissions for rejudge." -#: contests/admin.py:530 +#: contests/admin.py:532 msgid "" "Cannot rejudge submissions due to lack of active reports for one or more " "submissions" @@ -1703,55 +1707,56 @@ msgstr "" "Cannot rejudge submissions due to lack of active reports for one or more " "submissions" -#: contests/admin.py:572 contests/admin.py:738 contests/admin.py:772 -#: disqualification/admin.py:70 mailsubmit/admin.py:81 participants/admin.py:57 +#: contests/admin.py:574 contests/admin.py:740 contests/admin.py:774 +#: disqualification/admin.py:71 mailsubmit/admin.py:81 participants/admin.py:58 #: programs/templates/programs/submission_header.html:108 #: similarsubmits/admin.py:75 msgid "User name" msgstr "User name" -#: contests/admin.py:590 +#: contests/admin.py:592 #: contests/templates/contests/my_submissions_table.html:27 #: contests/templates/contests/submission.html:50 evalmgr/admin.py:175 #: participants/templates/participants/participant_info.html:19 -#: problems/admin.py:296 programs/templates/programs/submission_header.html:112 +#: problems/admin.py:295 programs/templates/programs/submission_header.html:112 +#: quizzes/models.py:74 #: simpleui/templates/simpleui/contest/ingredients/submissions.html:10 #: testrun/templates/testrun/submission-header.html:13 msgid "Status" msgstr "Status" -#: contests/admin.py:613 +#: contests/admin.py:615 #, python-format msgid "" "You have selected %(sub_count)d submission(s) from %(pis_count)d problem(s)" msgstr "" "You have selected %(sub_count)d submission(s) from %(pis_count)d problem(s)" -#: contests/admin.py:637 +#: contests/admin.py:639 msgid "Rejudge selected submissions" msgstr "Rejudge selected submissions" -#: contests/admin.py:686 +#: contests/admin.py:688 msgid "All submissions" msgstr "All submissions" -#: contests/admin.py:758 +#: contests/admin.py:760 msgid "Round extensions" msgstr "Round extensions" -#: contests/admin.py:793 +#: contests/admin.py:795 msgid "Contest rights" msgstr "Contest rights" -#: contests/auth.py:6 +#: contests/auth.py:7 msgid "Contests permissions" msgstr "Contests permissions" -#: contests/controllers.py:192 +#: contests/controllers.py:193 msgid "Public contest" msgstr "Public contest" -#: contests/controllers.py:871 +#: contests/controllers.py:873 msgid "Your submission was judged." msgstr "Your submission was judged." @@ -1775,7 +1780,7 @@ msgstr "Round 1" msgid "User does not exist or you do not have enough privileges" msgstr "User does not exist or you do not have enough privileges" -#: contests/forms.py:185 contests/models.py:313 +#: contests/forms.py:185 contests/models.py:314 msgid "Normal" msgstr "Normal" @@ -1836,7 +1841,7 @@ msgstr "Observer Menu" msgid "Personal Data Menu" msgstr "Personal Data Menu" -#: contests/models.py:41 contests/templates/contests/select_contest.html:15 +#: contests/models.py:42 contests/templates/contests/select_contest.html:15 #: contests/templates/contests/submission.html:47 mailsubmit/forms.py:76 #: problems/templates/problems/problemset/problem-list.html:13 #: problems/templates/problems/problemset/select-contest.html:14 @@ -1844,27 +1849,27 @@ msgstr "Personal Data Menu" msgid "ID" msgstr "ID" -#: contests/models.py:42 portals/models.py:12 problems/models.py:53 +#: contests/models.py:43 portals/models.py:13 problems/models.py:53 msgid "full name" msgstr "full name" -#: contests/models.py:49 problems/models.py:58 +#: contests/models.py:50 problems/models.py:58 msgid "type" msgstr "type" -#: contests/models.py:51 +#: contests/models.py:52 msgid "creation date" msgstr "creation date" -#: contests/models.py:53 +#: contests/models.py:54 msgid "default submissions limit" msgstr "default submissions limit" -#: contests/models.py:56 +#: contests/models.py:57 msgid "contact email" msgstr "contact email" -#: contests/models.py:57 +#: contests/models.py:58 msgid "" "Address of contest owners. Sent emails related to this contest (i.e. " "submission confirmations) will have the return address set to this value. " @@ -1874,110 +1879,110 @@ msgstr "" "submission confirmations) will have the return address set to this value. " "Defaults to system admins address if left empty." -#: contests/models.py:62 +#: contests/models.py:63 msgid "judging priority" msgstr "" -#: contests/models.py:65 +#: contests/models.py:66 msgid "" "Contest with higher judging priority is always judged before contest with " "lower judging priority." msgstr "" -#: contests/models.py:68 +#: contests/models.py:69 msgid "judging weight" msgstr "" -#: contests/models.py:72 +#: contests/models.py:73 msgid "" "If some contests have the same judging priority, the judging resources are " "allocated proportionally to their weights." msgstr "" -#: contests/models.py:85 +#: contests/models.py:86 msgid "contests" msgstr "contests" -#: contests/models.py:88 +#: contests/models.py:89 msgid "Can administer the contest" msgstr "Can administer the contest" -#: contests/models.py:89 +#: contests/models.py:90 msgid "Can observe the contest" msgstr "Can observe the contest" -#: contests/models.py:90 +#: contests/models.py:91 msgid "Can enter the contest" msgstr "Can enter the contest" -#: contests/models.py:91 +#: contests/models.py:92 msgid "Has access to the private data of users" msgstr "Has access to the private data of users" -#: contests/models.py:127 contests/models.py:527 problems/models.py:176 +#: contests/models.py:128 contests/models.py:528 problems/models.py:176 msgid "description" msgstr "description" -#: contests/models.py:129 disqualification/models.py:19 newsfeed/models.py:15 +#: contests/models.py:130 disqualification/models.py:20 newsfeed/models.py:14 #: problems/models.py:145 problems/models.py:178 questions/models.py:37 #: questions/models.py:100 msgid "content" msgstr "content" -#: contests/models.py:133 questions/models.py:41 +#: contests/models.py:134 questions/models.py:41 msgid "publication date" msgstr "publication date" -#: contests/models.py:147 problems/models.py:189 +#: contests/models.py:148 problems/models.py:189 msgid "attachment" msgstr "attachment" -#: contests/models.py:148 problems/models.py:190 +#: contests/models.py:149 problems/models.py:190 msgid "attachments" msgstr "attachments" -#: contests/models.py:155 +#: contests/models.py:156 #, python-format msgid "End of %(name)s (+ %(ext)d min)" msgid_plural "End of %(name)s (+ %(ext)d mins)" msgstr[0] "End of %(name)s (+ %(ext)d min)" msgstr[1] "End of %(name)s (+ %(ext)d mins)" -#: contests/models.py:160 +#: contests/models.py:161 #, python-format msgid "End of %s" msgstr "End of %s" -#: contests/models.py:165 +#: contests/models.py:166 #, python-format msgid "Start of %s" msgstr "Start of %s" -#: contests/models.py:174 +#: contests/models.py:175 #, python-format msgid "Results of %s" msgstr "Results of %s" -#: contests/models.py:179 +#: contests/models.py:180 #, python-format msgid "Public results of %s" msgstr "Public results of %s" -#: contests/models.py:184 oi/models.py:61 prizes/models.py:121 -#: prizes/models.py:273 problems/models.py:328 programs/models.py:40 -#: programs/models.py:126 sinolpack/models.py:31 +#: contests/models.py:185 oi/models.py:60 prizes/models.py:122 +#: prizes/models.py:274 problems/models.py:328 programs/models.py:42 +#: programs/models.py:128 sinolpack/models.py:30 msgid "name" msgstr "name" -#: contests/models.py:191 +#: contests/models.py:192 msgid "results date" msgstr "results date" -#: contests/models.py:193 +#: contests/models.py:194 msgid "public results date" msgstr "public results date" -#: contests/models.py:194 +#: contests/models.py:195 msgid "" "Participants may learn about others' results, what exactly happens depends " "on the type of the contest (eg. rankings, contestants' solutions are " @@ -1987,50 +1992,50 @@ msgstr "" "on the type of the contest (eg. rankings, contestants' solutions are " "published)." -#: contests/models.py:197 +#: contests/models.py:198 msgid "is trial" msgstr "is trial" -#: contests/models.py:201 +#: contests/models.py:202 msgid "rounds" msgstr "rounds" -#: contests/models.py:211 +#: contests/models.py:212 msgid "Start date should be before end date." msgstr "Start date should be before end date." -#: contests/models.py:214 +#: contests/models.py:215 msgid "" "If you specify a public results date, you should enter a results date too." msgstr "" "If you specify a public results date, you should enter a results date too." -#: contests/models.py:217 +#: contests/models.py:218 msgid "Results cannot appear later than public results." msgstr "Results cannot appear later than public results." -#: contests/models.py:227 +#: contests/models.py:228 #, python-format msgid "Round %d" msgstr "Round %d" -#: contests/models.py:230 +#: contests/models.py:231 msgid "Visible" msgstr "Visible" -#: contests/models.py:231 teams/models.py:55 +#: contests/models.py:232 teams/models.py:55 msgid "Not visible" msgstr "Not visible" -#: contests/models.py:232 +#: contests/models.py:233 msgid "Auto" msgstr "Auto" -#: contests/models.py:238 +#: contests/models.py:239 msgid "statements visibility" msgstr "statements visibility" -#: contests/models.py:239 +#: contests/models.py:240 msgid "" "If set to Auto, the visibility is determined according to the type of the " "contest." @@ -2038,157 +2043,157 @@ msgstr "" "If set to Auto, the visibility is determined according to the type of the " "contest." -#: contests/models.py:243 +#: contests/models.py:244 msgid "problem statement config" msgstr "problem statement config" -#: contests/models.py:244 +#: contests/models.py:245 msgid "problem statement configs" msgstr "problem statement configs" -#: contests/models.py:253 portals/models.py:15 problems/models.py:55 +#: contests/models.py:254 portals/models.py:16 problems/models.py:55 msgid "short name" msgstr "short name" -#: contests/models.py:257 +#: contests/models.py:258 msgid "submissions limit" msgstr "submissions limit" -#: contests/models.py:262 +#: contests/models.py:263 msgid "needs rejudge" msgstr "needs rejudge" -#: contests/models.py:265 programs/models.py:263 testrun/models.py:65 +#: contests/models.py:266 programs/models.py:265 testrun/models.py:67 msgid "problem instance" msgstr "problem instance" -#: contests/models.py:266 +#: contests/models.py:267 msgid "problem instances" msgstr "problem instances" -#: contests/models.py:317 oisubmit/templates/oisubmit/submission-footer.html:6 +#: contests/models.py:318 oisubmit/templates/oisubmit/submission-footer.html:6 msgid "Suspected" msgstr "Suspected" -#: contests/models.py:319 +#: contests/models.py:320 msgid "Ignored-Hidden" msgstr "Ignored-Hidden" -#: contests/models.py:322 +#: contests/models.py:323 msgid "Pending" msgstr "Pending" -#: contests/models.py:323 +#: contests/models.py:324 msgid "OK" msgstr "OK" -#: contests/models.py:333 mailsubmit/models.py:30 newsfeed/models.py:13 +#: contests/models.py:334 mailsubmit/models.py:29 newsfeed/models.py:12 #: questions/models.py:39 msgid "date" msgstr "date" -#: contests/models.py:337 programs/models.py:52 +#: contests/models.py:338 programs/models.py:54 msgid "score" msgstr "score" -#: contests/models.py:339 problems/models.py:233 +#: contests/models.py:340 problems/models.py:233 msgid "status" msgstr "status" -#: contests/models.py:341 +#: contests/models.py:342 msgid "comment" msgstr "comment" -#: contests/models.py:348 disqualification/models.py:15 -#: publicsolutions/models.py:9 scoresreveal/models.py:9 +#: contests/models.py:349 disqualification/models.py:16 +#: publicsolutions/models.py:10 scoresreveal/models.py:10 #: similarsubmits/models.py:22 msgid "submission" msgstr "submission" -#: contests/models.py:349 +#: contests/models.py:350 msgid "submissions" msgstr "submissions" -#: contests/models.py:374 +#: contests/models.py:375 msgid "Final report" msgstr "Final report" -#: contests/models.py:375 contests/templates/contests/failure_report.html:3 +#: contests/models.py:376 contests/templates/contests/failure_report.html:3 msgid "Evaluation failure report" msgstr "Evaluation failure report" -#: contests/models.py:378 +#: contests/models.py:379 msgid "Inactive" msgstr "Inactive" -#: contests/models.py:379 participants/models.py:19 +#: contests/models.py:380 participants/models.py:18 msgid "Active" msgstr "Active" -#: contests/models.py:380 +#: contests/models.py:381 msgid "Superseded" msgstr "Superseded" -#: contests/models.py:477 participants/forms.py:51 +#: contests/models.py:478 participants/forms.py:52 msgid "Extra time (in minutes)" msgstr "Extra time (in minutes)" -#: contests/models.py:481 +#: contests/models.py:482 msgid "round time extension" msgstr "round time extension" -#: contests/models.py:482 +#: contests/models.py:483 msgid "round time extensions" msgstr "round time extensions" -#: contests/models.py:488 +#: contests/models.py:489 msgid "Admin" msgstr "Admin" -#: contests/models.py:489 +#: contests/models.py:490 msgid "Observer" msgstr "Observer" -#: contests/models.py:490 +#: contests/models.py:491 msgid "Personal Data" msgstr "Personal Data" -#: contests/models.py:497 +#: contests/models.py:498 msgid "permission" msgstr "permission" -#: contests/models.py:501 +#: contests/models.py:502 msgid "contest permission" msgstr "contest permission" -#: contests/models.py:502 +#: contests/models.py:503 msgid "contest permissions" msgstr "contest permissions" -#: contests/models.py:512 +#: contests/models.py:513 msgid "last view" msgstr "last view" -#: contests/models.py:528 +#: contests/models.py:529 msgid "url" msgstr "url" -#: contests/models.py:532 +#: contests/models.py:533 msgid "contest menu link" msgstr "contest menu link" -#: contests/models.py:533 +#: contests/models.py:534 msgid "contest menu links" msgstr "contest menu links" -#: contests/scores.py:69 +#: contests/scores.py:70 #, python-format msgid "" "Score must look like this: ':', for example 'int:100', not '%s'." msgstr "" "Score must look like this: ':', for example 'int:100', not '%s'." -#: contests/scores.py:76 +#: contests/scores.py:77 #, python-format msgid "Unrecognized score type '%s'" msgstr "Unrecognized score type '%s'" @@ -2288,8 +2293,8 @@ msgstr "" "error_handlers removed for readability) was:" #: contests/templates/contests/files.html:6 -#: contests/templates/contests/files.html:20 contests/views.py:275 -#: problems/problem_site.py:80 +#: contests/templates/contests/files.html:20 contests/views.py:280 +#: problems/problem_site.py:79 msgid "Files" msgstr "Files" @@ -2299,7 +2304,7 @@ msgstr "Add file" #: contests/templates/contests/html_statement.html:5 #: contests/templates/contests/no_problem_statement.html:4 -#: problems/problem_site.py:58 +#: problems/problem_site.py:57 msgid "Problem statement" msgstr "Problem statement" @@ -2345,7 +2350,7 @@ msgstr "" #: contests/templates/contests/my_submissions.html:5 #: contests/templates/contests/my_submissions.html:17 -#: contests/templates/contests/tests_choice.html:5 contests/views.py:176 +#: contests/templates/contests/tests_choice.html:5 contests/views.py:181 msgid "My submissions" msgstr "My submissions" @@ -2444,7 +2449,7 @@ msgid "User's round time extensions" msgstr "User's round time extensions" #: contests/templates/contests/roundtimeextension_info.html:8 -#: oireports/forms.py:102 problems/forms.py:25 +#: oireports/forms.py:104 problems/forms.py:25 msgid "Round" msgstr "Round" @@ -2492,35 +2497,35 @@ msgstr "User info" msgid "User's submissions" msgstr "User's submissions" -#: contests/views.py:253 +#: contests/views.py:258 msgid "Rejudge request received." msgstr "Rejudge request received." -#: contests/views.py:267 +#: contests/views.py:272 msgid "Submission kind has been changed." msgstr "Submission kind has been changed." -#: contests/views.py:270 +#: contests/views.py:275 #, python-format msgid "%(kind)s is not valid kind for submission %(submission_id)d." msgstr "%(kind)s is not valid kind for submission %(submission_id)d." -#: contests/views.py:377 +#: contests/views.py:382 msgid "See user info page" msgstr "See user info page" -#: contests/views.py:396 +#: contests/views.py:401 #, python-format msgid "%(count)d rejudge request received." msgid_plural "%(count)d rejudge requests reveived." msgstr[0] "%(count)d rejudge request received." msgstr[1] "%(count)d rejudge requests reveived." -#: contests/views.py:414 +#: contests/views.py:419 msgid "Tests limits resetted successfully" msgstr "Tests limits resetted successfully" -#: contests/views.py:451 +#: contests/views.py:456 msgid "Problem {} added successfully." msgstr "Problem {} added successfully." @@ -2528,19 +2533,19 @@ msgstr "Problem {} added successfully." msgid "You can use the following tags and attributes: {}." msgstr "You can use the following tags and attributes: {}." -#: dashboard/menu.py:6 +#: dashboard/menu.py:7 msgid "Top Links Menu" msgstr "Top Links Menu" -#: dashboard/models.py:8 globalmessage/models.py:8 +#: dashboard/models.py:9 globalmessage/models.py:8 msgid "message" msgstr "message" -#: dashboard/models.py:11 +#: dashboard/models.py:12 msgid "dashboard message" msgstr "dashboard message" -#: dashboard/models.py:12 +#: dashboard/models.py:13 msgid "dashboard messages" msgstr "dashboard messages" @@ -2618,40 +2623,40 @@ msgstr "Show all" msgid "Ranking" msgstr "Ranking" -#: disqualification/admin.py:66 +#: disqualification/admin.py:67 #: programs/templates/programs/submission_header.html:98 #: similarsubmits/admin.py:71 msgid "Submission" msgstr "Submission" -#: disqualification/admin.py:74 disqualification/controllers.py:278 +#: disqualification/admin.py:75 disqualification/controllers.py:278 #: oisubmit/templates/oisubmit/submission-footer.html:18 #: oisubmit/templates/received-suspected.html:6 #: portals/templates/portals/create-global-portal.html:10 #: portals/templates/portals/create-user-portal.html:10 #: portals/templates/portals/delete-node.html:11 -#: portals/templates/portals/delete-portal.html:10 scoresreveal/admin.py:15 +#: portals/templates/portals/delete-portal.html:10 scoresreveal/admin.py:16 #: scoresreveal/templates/scoresreveal/submission-footer.html:46 msgid "Yes" msgstr "Yes" -#: disqualification/admin.py:74 disqualification/controllers.py:278 +#: disqualification/admin.py:75 disqualification/controllers.py:278 #: oisubmit/templates/oisubmit/submission-footer.html:20 #: oisubmit/templates/received-suspected.html:9 #: portals/templates/portals/create-global-portal.html:11 #: portals/templates/portals/create-user-portal.html:11 #: portals/templates/portals/delete-node.html:12 -#: portals/templates/portals/delete-portal.html:11 scoresreveal/admin.py:16 +#: portals/templates/portals/delete-portal.html:11 scoresreveal/admin.py:17 #: scoresreveal/templates/scoresreveal/submission-footer.html:45 msgid "No" msgstr "No" -#: disqualification/admin.py:75 +#: disqualification/admin.py:76 #: similarsubmits/templates/similarsubmits/programming_similar_submissions_admin.html:28 msgid "Guilty" msgstr "Guilty" -#: disqualification/admin.py:91 +#: disqualification/admin.py:92 msgid "Custom disqualification" msgstr "Custom disqualification" @@ -2659,19 +2664,19 @@ msgstr "Custom disqualification" msgid "Disqualified" msgstr "Disqualified" -#: disqualification/models.py:18 newsfeed/models.py:14 +#: disqualification/models.py:19 newsfeed/models.py:13 msgid "title" msgstr "title" -#: disqualification/models.py:23 +#: disqualification/models.py:24 msgid "disqualification" msgstr "disqualification" -#: disqualification/models.py:24 +#: disqualification/models.py:25 msgid "disqualifications" msgstr "disqualifications" -#: disqualification/models.py:28 +#: disqualification/models.py:29 msgid "The submission does not match the user." msgstr "The submission does not match the user." @@ -2715,7 +2720,7 @@ msgid "(not guilty)" msgstr "(not guilty)" #: disqualification/templates/disqualification/reason.html:11 -#: newsfeed/templates/newsfeed/widgets/news.html:17 +#: newsfeed/templates/newsfeed/news.html:17 #: similarsubmits/templates/similarsubmits/programming_similar_submissions_admin.html:16 msgid "Edit" msgstr "Edit" @@ -2807,35 +2812,35 @@ msgstr "Evaluation queue" msgid "Contest Queued Jobs" msgstr "Contest Queued Jobs" -#: evalmgr/models.py:12 +#: evalmgr/models.py:11 msgid "Queued" msgstr "Queued" -#: evalmgr/models.py:13 +#: evalmgr/models.py:12 msgid "In progress" msgstr "In progress" -#: evalmgr/models.py:14 +#: evalmgr/models.py:13 msgid "Cancelled" msgstr "Cancelled" -#: evalmgr/models.py:15 +#: evalmgr/models.py:14 msgid "Waiting" msgstr "Waiting" -#: evalmgr/models.py:29 +#: evalmgr/models.py:28 msgid "Queued job" msgstr "Queued job" -#: evalmgr/models.py:30 +#: evalmgr/models.py:29 msgid "Queued jobs" msgstr "Queued jobs" -#: evalmgr/models.py:39 +#: evalmgr/models.py:38 msgid "JSON-encoded evaluation environ" msgstr "" -#: evalmgr/models.py:41 +#: evalmgr/models.py:40 msgid "Time and date when the environ was saved" msgstr "" @@ -2857,50 +2862,50 @@ msgstr "Choose round" msgid "Only final submissions" msgstr "Only final submissions" -#: filetracker/management/commands/collectgarbage.py:14 +#: filetracker/management/commands/collectgarbage.py:15 msgid "Delete all orphaned files older than specified number of days." msgstr "Delete all orphaned files older than specified number of days." -#: filetracker/management/commands/collectgarbage.py:18 +#: filetracker/management/commands/collectgarbage.py:19 msgid "" "Orphaned files older than DAYS days will be deleted. Default value is 30." msgstr "" "Orphaned files older than DAYS days will be deleted. Default value is 30." -#: filetracker/management/commands/collectgarbage.py:20 +#: filetracker/management/commands/collectgarbage.py:21 msgid "DAYS" msgstr "DAYS" -#: filetracker/management/commands/collectgarbage.py:23 +#: filetracker/management/commands/collectgarbage.py:24 msgid "If set, the orphaned files will only be displayed, not deleted." msgstr "If set, the orphaned files will only be displayed, not deleted." -#: filetracker/management/commands/collectgarbage.py:54 +#: filetracker/management/commands/collectgarbage.py:55 msgid "No files to delete." msgstr "No files to delete." -#: filetracker/management/commands/collectgarbage.py:57 +#: filetracker/management/commands/collectgarbage.py:58 #, python-format msgid "The following %d file is scheduled for deletion:" msgid_plural "The following %d files are scheduled for deletion:" msgstr[0] "The following %d file is scheduled for deletion:" msgstr[1] "The following %d files are scheduled for deletion:" -#: filetracker/management/commands/collectgarbage.py:65 +#: filetracker/management/commands/collectgarbage.py:66 #, python-format msgid "%d file scheduled for deletion." msgid_plural "%d files scheduled for deletion." msgstr[0] "%d file scheduled for deletion." msgstr[1] "%d files scheduled for deletion." -#: filetracker/management/commands/collectgarbage.py:70 +#: filetracker/management/commands/collectgarbage.py:71 #, python-format msgid "Deleting the following %d file:" msgid_plural "Deleting the following %d files:" msgstr[0] "Deleting the following %d file:" msgstr[1] "Deleting the following %d files:" -#: filetracker/management/commands/collectgarbage.py:74 +#: filetracker/management/commands/collectgarbage.py:75 #, python-format msgid "Deleting %d file" msgid_plural "Deleting %d files" @@ -2969,96 +2974,96 @@ msgstr[1] "\"Reported\" status removed from %(counter)d posts." msgid "Dismiss reports for selected posts" msgstr "Dismiss reports for selected posts" -#: forum/forms.py:26 questions/templates/questions/list_table.html:15 +#: forum/forms.py:27 questions/templates/questions/list_table.html:15 #: simpleui/templates/simpleui/contest/ingredients/questions.html:12 msgid "Topic" msgstr "Topic" -#: forum/models.py:15 +#: forum/models.py:16 msgid "Lock the forum" msgstr "Lock the forum" -#: forum/models.py:17 +#: forum/models.py:18 msgid "Unlock the forum" msgstr "Unlock the forum" -#: forum/models.py:24 +#: forum/models.py:25 msgid "forum is visible after lock" msgstr "forum is visible after lock" -#: forum/models.py:27 +#: forum/models.py:28 msgid "autolock date" msgstr "autolock date" -#: forum/models.py:29 +#: forum/models.py:30 msgid "autounlock date" msgstr "autounlock date" -#: forum/models.py:32 forum/models.py:58 +#: forum/models.py:33 forum/models.py:59 msgid "forum" msgstr "forum" -#: forum/models.py:33 +#: forum/models.py:34 msgid "forums" msgstr "forums" -#: forum/models.py:59 forum/models.py:62 forum/models.py:93 +#: forum/models.py:60 forum/models.py:63 forum/models.py:94 msgid "category" msgstr "category" -#: forum/models.py:63 +#: forum/models.py:64 msgid "categories" msgstr "categories" -#: forum/models.py:70 +#: forum/models.py:71 msgid "Threads count" msgstr "Threads count" -#: forum/models.py:77 forum/models.py:108 +#: forum/models.py:78 forum/models.py:109 msgid "Posts count" msgstr "Posts count" -#: forum/models.py:84 forum/models.py:117 +#: forum/models.py:85 forum/models.py:118 msgid "Reported posts count" msgstr "Reported posts count" -#: forum/models.py:94 forum/models.py:100 forum/models.py:126 +#: forum/models.py:95 forum/models.py:101 forum/models.py:127 msgid "thread" msgstr "thread" -#: forum/models.py:96 +#: forum/models.py:97 msgid "last post" msgstr "last post" -#: forum/models.py:101 +#: forum/models.py:102 msgid "threads" msgstr "threads" -#: forum/models.py:127 forum/models.py:145 +#: forum/models.py:128 forum/models.py:146 msgid "post" msgstr "post" -#: forum/models.py:128 +#: forum/models.py:129 msgid "add date" msgstr "add date" -#: forum/models.py:130 +#: forum/models.py:131 msgid "last edit" msgstr "last edit" -#: forum/models.py:132 problems/models.py:62 +#: forum/models.py:133 problems/models.py:62 msgid "author" msgstr "author" -#: forum/models.py:133 +#: forum/models.py:134 msgid "reported" msgstr "reported" -#: forum/models.py:134 +#: forum/models.py:135 msgid "hidden" msgstr "hidden" -#: forum/models.py:146 +#: forum/models.py:147 msgid "posts" msgstr "posts" @@ -3109,7 +3114,7 @@ msgstr "Delete confirmation" #: forum/templates/forum/confirm_delete.html:4 #: forum/templates/forum/forum.html:5 forum/templates/forum/forum.html:30 -#: forum/templates/forum/forum.html:87 forum/views.py:20 forum/views.py:23 +#: forum/templates/forum/forum.html:87 forum/views.py:22 forum/views.py:25 msgid "Forum" msgstr "Forum" @@ -3141,7 +3146,7 @@ msgid "There is no category in the forum, sorry." msgstr "There is no category in the forum, sorry." #: forum/templates/forum/thread-element-footer.html:12 -#: newsfeed/templates/newsfeed/widgets/news.html:8 +#: newsfeed/templates/newsfeed/news.html:8 msgid "Added" msgstr "Added" @@ -3196,26 +3201,26 @@ msgstr "New post" msgid "Add thread" msgstr "Add thread" -#: forum/utils.py:81 +#: forum/utils.py:82 msgid "This forum is locked, it is not possible to add or edit posts right now" msgstr "" "This forum is locked, it is not possible to add or edit posts right now" -#: forum/utils.py:86 +#: forum/utils.py:87 #, python-format msgid "Forum is going to be locked at %s" msgstr "Forum is going to be locked at %s" -#: forum/utils.py:91 +#: forum/utils.py:92 #, python-format msgid "Forum is going to be unlocked at %s" msgstr "Forum is going to be unlocked at %s" -#: globalmessage/admin.py:14 +#: globalmessage/admin.py:13 msgid "Auto show and hide" msgstr "Auto show and hide" -#: globalmessage/admin.py:46 +#: globalmessage/admin.py:45 msgid "Global message" msgstr "Global message" @@ -3227,47 +3232,47 @@ msgstr "start" msgid "end" msgstr "end" -#: ipauthsync/models.py:25 +#: ipauthsync/models.py:24 msgid "Enable IP authentication sync" msgstr "Enable IP authentication sync" -#: ipauthsync/models.py:28 +#: ipauthsync/models.py:27 msgid "Disable IP authentication sync" msgstr "Disable IP authentication sync" -#: ipauthsync/models.py:37 +#: ipauthsync/models.py:36 msgid "MySQL username" msgstr "MySQL username" -#: ipauthsync/models.py:39 +#: ipauthsync/models.py:38 msgid "MySQL password" msgstr "MySQL password" -#: ipauthsync/models.py:41 +#: ipauthsync/models.py:40 msgid "MySQL database name" msgstr "MySQL database name" -#: ipauthsync/models.py:46 +#: ipauthsync/models.py:45 msgid "IP authentication sync config" msgstr "IP authentication sync config" -#: ipauthsync/models.py:47 +#: ipauthsync/models.py:46 msgid "IP authentication sync configs" msgstr "IP authentication sync configs" -#: ipauthsync/models.py:67 +#: ipauthsync/models.py:66 msgid "Warnings" msgstr "Warnings" -#: ipauthsync/models.py:68 +#: ipauthsync/models.py:67 msgid "Mapping" msgstr "Mapping" -#: ipauthsync/models.py:71 ipauthsync/models.py:72 +#: ipauthsync/models.py:70 ipauthsync/models.py:71 msgid "IP authentication sync messages" msgstr "IP authentication sync messages" -#: ipdnsauth/backends.py:20 +#: ipdnsauth/backends.py:19 msgid "IP/DNS based authentication" msgstr "IP/DNS based authentication" @@ -3306,6 +3311,7 @@ msgstr "" " " #: jotform/templates/jotform/jotform-head.html:8 +#: szkopul/templates/main-page.html:32 msgid "Send Feedback" msgstr "Send Feedback" @@ -3347,27 +3353,27 @@ msgstr "Postal submission number %s is for a different contest" msgid "Invalid confirmation code" msgstr "Invalid confirmation code" -#: mailsubmit/models.py:33 +#: mailsubmit/models.py:32 msgid "related submission" msgstr "related submission" -#: mailsubmit/models.py:35 +#: mailsubmit/models.py:34 msgid "accepted by" msgstr "accepted by" -#: mailsubmit/models.py:40 +#: mailsubmit/models.py:39 msgid "Mail submissions start" msgstr "Mail submissions start" -#: mailsubmit/models.py:44 +#: mailsubmit/models.py:43 msgid "Mail submissions end" msgstr "Mail submissions end" -#: mailsubmit/models.py:54 +#: mailsubmit/models.py:53 msgid "printout text" msgstr "printout text" -#: mailsubmit/models.py:55 +#: mailsubmit/models.py:54 msgid "" "LaTeX-formatted text to show on the printed document sent by regular post; " "usually contains the instruction on how, where and when to send it." @@ -3375,7 +3381,7 @@ msgstr "" "LaTeX-formatted text to show on the printed document sent by regular post; " "usually contains the instruction on how, where and when to send it." -#: mailsubmit/models.py:58 +#: mailsubmit/models.py:57 msgid "" "This document confirms that you have uploaded a file for postal submission " "on our server. To have this file judged, send this document by mail to us." @@ -3383,11 +3389,11 @@ msgstr "" "This document confirms that you have uploaded a file for postal submission " "on our server. To have this file judged, send this document by mail to us." -#: mailsubmit/models.py:63 +#: mailsubmit/models.py:62 msgid "postal submission configuration" msgstr "postal submission configuration" -#: mailsubmit/models.py:64 +#: mailsubmit/models.py:63 msgid "postal submission configurations" msgstr "postal submission configurations" @@ -3399,7 +3405,7 @@ msgstr "Please enter postal submission confirmation code to accept." msgid "Upload solution for postal submission" msgstr "Upload solution for postal submission" -#: mailsubmit/templates/mailsubmit/submit.html:7 mailsubmit/views.py:25 +#: mailsubmit/templates/mailsubmit/submit.html:7 mailsubmit/views.py:27 msgid "Postal submission" msgstr "Postal submission" @@ -3447,15 +3453,15 @@ msgstr "" " or pendrives, you still can.

    \n" " " -#: mailsubmit/views.py:62 +#: mailsubmit/views.py:64 msgid "Postal submission was already accepted" msgstr "Postal submission was already accepted" -#: mailsubmit/views.py:66 +#: mailsubmit/views.py:68 msgid "Postal submission accepted" msgstr "Postal submission accepted" -#: mailsubmit/views.py:100 +#: mailsubmit/views.py:102 msgid "confirmation" msgstr "confirmation" @@ -3464,19 +3470,19 @@ msgstr "confirmation" msgid "Maintenance mode" msgstr "Maintenance mode" -#: maintenancemode/management/commands/maintenance_mode.py:9 +#: maintenancemode/management/commands/maintenance_mode.py:10 msgid " \"\"" msgstr " \"\"" -#: maintenancemode/management/commands/maintenance_mode.py:10 +#: maintenancemode/management/commands/maintenance_mode.py:11 msgid "Sets maintenance mode state" msgstr "Sets maintenance mode state" -#: maintenancemode/management/commands/maintenance_mode.py:14 +#: maintenancemode/management/commands/maintenance_mode.py:15 msgid "Expected one or two arguments" msgstr "Expected one or two arguments" -#: maintenancemode/management/commands/maintenance_mode.py:25 +#: maintenancemode/management/commands/maintenance_mode.py:26 msgid "Unrecognized first argument" msgstr "Unrecognized first argument" @@ -3510,8 +3516,7 @@ msgstr "Content" #: newsfeed/templates/newsfeed/news-add.html:4 #: newsfeed/templates/newsfeed/news-add.html:7 -#: newsfeed/templates/newsfeed/newsfeed.html:9 -#: newsfeed/templates/newsfeed/widgets/newsfeed.html:4 +#: newsfeed/templates/newsfeed/newsfeed.html:4 #: questions/templates/questions/list.html:94 questions/views.py:300 msgid "Add news" msgstr "Add news" @@ -3521,17 +3526,17 @@ msgstr "Add news" msgid "Edit news" msgstr "Edit news" -#: newsfeed/templates/newsfeed/newsfeed.html:4 -#: newsfeed/templates/newsfeed/newsfeed.html:7 +#: newsfeed/templates/newsfeed/newsfeed-view.html:4 +#: newsfeed/templates/newsfeed/newsfeed-view.html:7 msgid "Newsfeed" msgstr "" -#: newsfeed/templates/newsfeed/widgets/news.html:19 +#: newsfeed/templates/newsfeed/news.html:19 #, python-format msgid "Are you sure you want to delete %(news.title)s?" msgstr "Are you sure you want to delete %(news.title)s?" -#: newsfeed/templates/newsfeed/widgets/news.html:20 +#: newsfeed/templates/newsfeed/news.html:20 #: questions/templates/admin/questions/change_message.html:50 #: simpleui/templates/simpleui/problem_settings/ingredients/attachments.html:40 #: simpleui/templates/simpleui/problem_settings/ingredients/tags.html:28 @@ -3544,7 +3549,7 @@ msgstr "Delete" msgid "You have no new notifications." msgstr "You have no new notifications." -#: oi/admin.py:29 oi/admin.py:31 participants/admin.py:189 +#: oi/admin.py:29 oi/admin.py:31 participants/admin.py:190 msgid "Participants" msgstr "Participants" @@ -3592,7 +3597,7 @@ msgid "-- school deleted --" msgstr "-- school deleted --" #: oi/admin.py:129 oi/templates/oi/sensitive_participant_info.html:15 -#: teachers/forms.py:19 +#: teachers/forms.py:20 msgid "School" msgstr "School" @@ -3632,19 +3637,19 @@ msgstr "-- Choose province --" msgid "This school is no longer active." msgstr "This school is no longer active." -#: oi/forms.py:91 pa/forms.py:20 participants/forms.py:44 +#: oi/forms.py:91 pa/forms.py:20 participants/forms.py:45 msgid "Terms not accepted" msgstr "Terms not accepted" -#: oi/management/commands/export_schools.py:9 +#: oi/management/commands/export_schools.py:11 msgid "Exports schools list to a CSV file" msgstr "Exports schools list to a CSV file" -#: oi/management/commands/import_schools.py:22 +#: oi/management/commands/import_schools.py:21 msgid "filename_or_url" msgstr "filename_or_url" -#: oi/management/commands/import_schools.py:23 +#: oi/management/commands/import_schools.py:22 #, python-format msgid "" "Updates the list of schools from the given CSV file , with " @@ -3659,47 +3664,47 @@ msgstr "" "Given CSV file should contain a header row with column names (respectively " "%(columns)s) separated by commas. Following rows should contain school data." -#: oi/management/commands/import_schools.py:33 +#: oi/management/commands/import_schools.py:32 msgid "Expected one argument - filename or url" msgstr "Expected one argument - filename or url" -#: oi/management/commands/import_schools.py:49 +#: oi/management/commands/import_schools.py:48 #, python-format msgid "Missing header or invalid columns: %(h)s. Expected: %(col)s" msgstr "Missing header or invalid columns: %(h)s. Expected: %(col)s" -#: oi/management/commands/import_schools.py:101 +#: oi/management/commands/import_schools.py:100 #, python-format msgid "Line %(lineNum)s: %(msg)s\n" msgstr "Line %(lineNum)s: %(msg)s\n" -#: oi/management/commands/import_schools.py:105 +#: oi/management/commands/import_schools.py:104 #, python-format msgid "Line %(lineNum)s, field %(field)s: %(msg)s\n" msgstr "Line %(lineNum)s, field %(field)s: %(msg)s\n" -#: oi/management/commands/import_schools.py:113 +#: oi/management/commands/import_schools.py:112 #, python-format msgid "Processed %(all_count)d entries (%(new_count)d new)\n" msgstr "Processed %(all_count)d entries (%(new_count)d new)\n" -#: oi/management/commands/import_schools.py:116 +#: oi/management/commands/import_schools.py:115 msgid "There were some errors. Database not changed\n" msgstr "There were some errors. Database not changed\n" -#: oi/management/commands/oi_export_personal_data.py:21 +#: oi/management/commands/oi_export_personal_data.py:20 msgid " " msgstr " " -#: oi/management/commands/oi_export_personal_data.py:22 +#: oi/management/commands/oi_export_personal_data.py:21 msgid "Export personal data." msgstr "Export personal data." -#: oi/management/commands/oi_export_personal_data.py:53 +#: oi/management/commands/oi_export_personal_data.py:52 msgid "Exactly two arguments are required." msgstr "Exactly two arguments are required." -#: oi/management/commands/oi_export_personal_data.py:67 +#: oi/management/commands/oi_export_personal_data.py:66 #: oi/management/commands/oi_timepres_data.py:50 #, python-format msgid "Ok, written %d rows" @@ -3718,8 +3723,8 @@ msgstr "" "contest." #: oi/management/commands/oi_generate_dnsauth.py:38 -#: participants/management/commands/import_onsite_participants.py:41 -#: participants/management/commands/import_participants.py:33 +#: participants/management/commands/import_onsite_participants.py:43 +#: participants/management/commands/import_participants.py:35 msgid "Wrong type of contest" msgstr "Wrong type of contest" @@ -3740,68 +3745,68 @@ msgstr "Export data for oi-timepres final presentation." msgid "Expected contest_id, output_file and non-empty list of usernames" msgstr "Expected contest_id, output_file and non-empty list of usernames" -#: oi/models.py:62 oi/models.py:98 pa/models.py:28 +#: oi/models.py:61 oi/models.py:97 pa/models.py:29 msgid "address" msgstr "address" -#: oi/models.py:63 oi/models.py:99 pa/models.py:29 +#: oi/models.py:62 oi/models.py:98 pa/models.py:30 msgid "postal code" msgstr "postal code" -#: oi/models.py:67 oi/models.py:103 pa/models.py:30 +#: oi/models.py:66 oi/models.py:102 pa/models.py:31 msgid "city" msgstr "city" -#: oi/models.py:69 +#: oi/models.py:68 msgid "province" msgstr "province" -#: oi/models.py:72 oi/models.py:106 +#: oi/models.py:71 oi/models.py:105 msgid "phone number" msgstr "phone number" -#: oi/models.py:73 +#: oi/models.py:72 msgid "email" msgstr "email" -#: oi/models.py:75 teachers/models.py:20 +#: oi/models.py:74 teachers/models.py:21 msgid "active" msgstr "active" -#: oi/models.py:76 +#: oi/models.py:75 msgid "approved" msgstr "approved" -#: oi/models.py:84 +#: oi/models.py:83 #, python-format msgid "%(name)s, %(city)s" msgstr "%(name)s, %(city)s" -#: oi/models.py:107 +#: oi/models.py:106 msgid "birth date" msgstr "birth date" -#: oi/models.py:108 +#: oi/models.py:107 msgid "birthplace" msgstr "birthplace" -#: oi/models.py:110 pa/models.py:36 +#: oi/models.py:109 pa/models.py:37 msgid "t-shirt size" msgstr "t-shirt size" -#: oi/models.py:111 teachers/models.py:21 +#: oi/models.py:110 teachers/models.py:22 msgid "school" msgstr "school" -#: oi/models.py:113 +#: oi/models.py:112 msgid "class" msgstr "class" -#: oi/models.py:114 pa/models.py:40 participants/models.py:94 +#: oi/models.py:113 pa/models.py:41 participants/models.py:93 msgid "terms accepted" msgstr "terms accepted" -#: oi/models.py:117 +#: oi/models.py:116 #, python-format msgid "%(class_type)s of %(school)s" msgstr "%(class_type)s of %(school)s" @@ -3854,7 +3859,7 @@ msgstr "OI info" msgid "Number" msgstr "Number" -#: oi/templates/oi/participant_info.html:5 oireports/forms.py:104 +#: oi/templates/oi/participant_info.html:5 oireports/forms.py:106 msgid "Region" msgstr "Region" @@ -3945,28 +3950,28 @@ msgstr "Is active" msgid "Is approved" msgstr "Is approved" -#: oireports/forms.py:19 oireports/forms.py:40 publicsolutions/forms.py:16 +#: oireports/forms.py:21 oireports/forms.py:42 publicsolutions/forms.py:17 #: questions/forms.py:121 msgid "All" msgstr "All" -#: oireports/forms.py:70 +#: oireports/forms.py:72 msgid "PDF" msgstr "PDF" -#: oireports/forms.py:71 +#: oireports/forms.py:73 msgid "XML" msgstr "XML" -#: oireports/forms.py:87 +#: oireports/forms.py:89 msgid "Single report" msgstr "Single report" -#: oireports/forms.py:93 +#: oireports/forms.py:95 msgid "Report type" msgstr "Report type" -#: oireports/forms.py:147 +#: oireports/forms.py:149 msgid "No user specified." msgstr "No user specified." @@ -3992,11 +3997,11 @@ msgstr "Single user" msgid "Generate report" msgstr "Generate report" -#: oireports/views.py:38 +#: oireports/views.py:36 msgid "Printing reports" msgstr "Printing reports" -#: oisubmit/admin.py:35 +#: oisubmit/admin.py:36 msgid "Received suspected" msgstr "Received suspected" @@ -4080,11 +4085,11 @@ msgstr "SIO time" msgid "Server time" msgstr "Server time" -#: ontak/controllers.py:8 +#: ontak/controllers.py:9 msgid "ONTAK" msgstr "ONTAK" -#: ontak/controllers.py:22 +#: ontak/controllers.py:23 msgid "ONTAK-eternal" msgstr "ONTAK-eternal" @@ -4092,7 +4097,7 @@ msgstr "ONTAK-eternal" msgid "Algorithmic Engagements" msgstr "Algorithmic Engagements" -#: pa/controllers.py:139 pa/models.py:66 pa/models.py:69 +#: pa/controllers.py:139 pa/models.py:67 pa/models.py:70 msgid "Division" msgstr "Division" @@ -4104,7 +4109,7 @@ msgstr "A" msgid "B" msgstr "B" -#: pa/controllers.py:140 pa/models.py:61 +#: pa/controllers.py:140 pa/models.py:62 msgid "None" msgstr "None" @@ -4116,7 +4121,7 @@ msgstr "PA style ranking" msgid "Division A + B" msgstr "Division A + B" -#: pa/controllers.py:202 pa/models.py:60 +#: pa/controllers.py:202 pa/models.py:61 msgid "Division B" msgstr "Division B" @@ -4124,25 +4129,25 @@ msgstr "Division B" msgid "Algorithmic Engagements finals" msgstr "Algorithmic Engagements finals" -#: pa/models.py:32 +#: pa/models.py:33 msgid "job or school kind" msgstr "job or school kind" -#: pa/models.py:34 +#: pa/models.py:35 msgid "job or school name" msgstr "job or school name" -#: pa/models.py:37 +#: pa/models.py:38 msgid "newsletter" msgstr "newsletter" -#: pa/models.py:37 +#: pa/models.py:38 msgid "" "I want to receive the information about further editions of the contest." msgstr "" "I want to receive the information about further editions of the contest." -#: pa/models.py:41 participants/models.py:95 +#: pa/models.py:42 participants/models.py:94 msgid "" "I declare that I have read the contest rules and the technical arrangements. " "I fully understand them and accept them unconditionally." @@ -4150,11 +4155,11 @@ msgstr "" "I declare that I have read the contest rules and the technical arrangements. " "I fully understand them and accept them unconditionally." -#: pa/models.py:59 +#: pa/models.py:60 msgid "Division A" msgstr "Division A" -#: pa/models.py:70 +#: pa/models.py:71 msgid "Divisions" msgstr "Divisions" @@ -4173,37 +4178,37 @@ msgstr "" " contest registration form.\n" " " -#: participants/admin.py:97 +#: participants/admin.py:98 msgid "Mark selected participants as active" msgstr "Mark selected participants as active" -#: participants/admin.py:101 +#: participants/admin.py:102 msgid "Mark selected participants as banned" msgstr "Mark selected participants as banned" -#: participants/admin.py:133 +#: participants/admin.py:134 #, python-format msgid "Updated one %(name)s." msgid_plural "%(name)s updated: %(existing_count)d." msgstr[0] "Updated one %(name)s." msgstr[1] "%(name)s updated: %(existing_count)d." -#: participants/admin.py:144 +#: participants/admin.py:145 #, python-format msgid "Created one %(name)s." msgid_plural "%(name)s created: %(new_count)d." msgstr[0] "Created one %(name)s." msgstr[1] "%(name)s created: %(new_count)d." -#: participants/admin.py:158 +#: participants/admin.py:159 msgid "Extend round" msgstr "Extend round" -#: participants/admin.py:243 +#: participants/admin.py:244 msgid "Regions" msgstr "Regions" -#: participants/admin.py:305 participants/models.py:107 +#: participants/admin.py:306 participants/models.py:106 msgid "region" msgstr "region" @@ -4220,16 +4225,16 @@ msgstr "" "Anonymous participant uses the account name instead of the real name in " "rankings." -#: participants/forms.py:18 +#: participants/forms.py:19 #, python-format msgid "%s is already a participant of this contest." msgstr "%s is already a participant of this contest." -#: participants/forms.py:33 +#: participants/forms.py:34 msgid "Region with this name already exists." msgstr "Region with this name already exists." -#: participants/management/commands/import_onsite_participants.py:19 +#: participants/management/commands/import_onsite_participants.py:21 #, python-format msgid "" "Updates the list of participants of from the given CSV file " @@ -4246,12 +4251,12 @@ msgstr "" "%(columns)s) separated by commas. Following rows should contain participant " "data." -#: participants/management/commands/import_onsite_participants.py:89 +#: participants/management/commands/import_onsite_participants.py:91 #, python-format msgid "Error for user=%(user)s: region %(region)s does not exist\n" msgstr "Error for user=%(user)s: region %(region)s does not exist\n" -#: participants/management/commands/import_participants.py:15 +#: participants/management/commands/import_participants.py:17 msgid "" "Updates the list of participants of from the given text file " "(one login per line).\n" @@ -4261,31 +4266,31 @@ msgstr "" "(one login per line).\n" "Lines starting with '#' are ignored." -#: participants/models.py:20 +#: participants/models.py:19 msgid "Banned" msgstr "Banned" -#: participants/models.py:21 +#: participants/models.py:20 msgid "Account deleted" msgstr "Account deleted" -#: participants/models.py:72 +#: participants/models.py:71 msgid "Region server" msgstr "Region server" -#: participants/models.py:73 +#: participants/models.py:72 msgid "IP address or hostname of the regional server" msgstr "IP address or hostname of the regional server" -#: participants/models.py:105 +#: participants/models.py:104 msgid "number" msgstr "number" -#: participants/models.py:108 +#: participants/models.py:107 msgid "local number" msgstr "local number" -#: participants/models.py:114 +#: participants/models.py:113 #, python-format msgid "%(number)s/%(region)s/%(local_number)s" msgstr "%(number)s/%(region)s/%(local_number)s" @@ -4300,8 +4305,8 @@ msgid "Extend" msgstr "Extend" #: participants/templates/participants/data.html:4 -#: participants/templates/participants/data.html:17 participants/views.py:49 -#: participants/views.py:54 +#: participants/templates/participants/data.html:17 participants/views.py:52 +#: participants/views.py:57 msgid "Participants' data" msgstr "Participants' data" @@ -4332,7 +4337,7 @@ msgstr "Participant info" #: participants/templates/participants/registration.html:14 #: participants/templates/participants/registration.html:17 -#: participants/views.py:17 +#: participants/views.py:20 msgid "Register to the contest" msgstr "Register to the contest" @@ -4349,11 +4354,11 @@ msgstr "Confirm deregistration" msgid "Are you sure you want to deregister from the current contest?" msgstr "Are you sure you want to deregister from the current contest?" -#: participants/views.py:24 +#: participants/views.py:27 msgid "Edit contest registration" msgstr "Edit contest registration" -#: portals/forms.py:26 +#: portals/forms.py:27 #, python-format msgid "Node %(parent)s already has a child with this short name." msgstr "Node %(parent)s already has a child with this short name." @@ -4410,24 +4415,24 @@ msgstr "" msgid "Some lines of the input are not JSON" msgstr "Some lines of the input are not JSON" -#: portals/models.py:13 +#: portals/models.py:14 msgid "Shown in the navigation menu." msgstr "Shown in the navigation menu." -#: portals/models.py:16 +#: portals/models.py:17 msgid "Shown in the URL." msgstr "Shown in the URL." -#: portals/models.py:19 +#: portals/models.py:20 msgid "parent" msgstr "parent" -#: portals/models.py:21 +#: portals/models.py:22 msgid "panel code" msgstr "panel code" -#: portals/templates/portals/add-node.html:4 portals/tests.py:153 -#: portals/views.py:132 +#: portals/templates/portals/add-node.html:4 portals/tests.py:152 +#: portals/views.py:135 msgid "Add child node" msgstr "Add child node" @@ -4468,8 +4473,8 @@ msgstr "" "Are you sure you want to delete your portal? All nodes will be deleted. This " "cannot be undone." -#: portals/templates/portals/edit-node.html:4 portals/tests.py:152 -#: portals/views.py:118 +#: portals/templates/portals/edit-node.html:4 portals/tests.py:151 +#: portals/views.py:121 msgid "Edit node" msgstr "Edit node" @@ -4482,8 +4487,8 @@ msgstr "" "to modify it." #: portals/templates/portals/manage-portal.html:4 -#: portals/templates/portals/manage-portal.html:61 portals/tests.py:155 -#: portals/views.py:162 +#: portals/templates/portals/manage-portal.html:61 portals/tests.py:154 +#: portals/views.py:165 msgid "Manage portal" msgstr "Manage portal" @@ -4491,10 +4496,6 @@ msgstr "Manage portal" msgid "Drag and drop nodes to reorganize the portal structure." msgstr "Drag and drop nodes to reorganize the portal structure." -#: portals/templates/portals/menu.html:4 -msgid "Navigation" -msgstr "" - #: portals/templates/portals/user-portal-initial-main-page-body.txt:1 msgid "" "This is the main page of your portal. Click \"Edit node\" on the right to " @@ -4503,38 +4504,47 @@ msgstr "" "This is the main page of your portal. Click \"Edit node\" on the right to " "modify it." -#: portals/tests.py:151 portals/views.py:109 +#: portals/templates/portals/widgets/redirect.html:9 +#, python-format +msgid "" +"Users who do not have permission to edit this portal would now get " +"redirected to: \"%(redirect_url)s\"." +msgstr "" +"Users who do not have permission to edit this portal would now get " +"redirected to: \"%(redirect_url)s\"." + +#: portals/tests.py:150 portals/views.py:112 msgid "Show node" msgstr "Show node" -#: portals/tests.py:154 portals/views.py:148 +#: portals/tests.py:153 portals/views.py:151 msgid "Delete node" msgstr "Delete node" -#: portals/views.py:240 +#: portals/views.py:243 msgid "My portal" msgstr "My portal" -#: portals/widgets.py:195 +#: portals/widgets.py:196 msgid "Problem Name" msgstr "Problem Name" -#: printing/forms.py:11 +#: printing/forms.py:12 msgid "The file should be a text file." msgstr "The file should be a text file." -#: printing/forms.py:16 +#: printing/forms.py:17 msgid "The file size limit exceeded." msgstr "The file size limit exceeded." -#: printing/forms.py:20 problems/templates/problems/files.html:14 -#: programs/controllers.py:430 +#: printing/forms.py:21 problems/templates/problems/files.html:14 +#: programs/controllers.py:431 #: simpleui/templates/simpleui/problem_settings/ingredients/attachments.html:6 #: testspackages/templates/testspackages/tests.html:17 msgid "File" msgstr "File" -#: printing/forms.py:37 +#: printing/forms.py:38 msgid "The page limit exceeded." msgstr "The page limit exceeded." @@ -4566,95 +4576,95 @@ msgstr "Error occurred while printing." msgid "Print" msgstr "Print" -#: printing/views.py:18 +#: printing/views.py:19 msgid "Print file" msgstr "Print file" -#: printing/views.py:38 +#: printing/views.py:39 msgid "File has been printed." msgstr "File has been printed." -#: prizes/admin.py:30 +#: prizes/admin.py:31 msgid "state" msgstr "state" -#: prizes/controllers.py:36 +#: prizes/controllers.py:37 msgid "total score" msgstr "total score" -#: prizes/forms.py:13 +#: prizes/forms.py:14 msgid "redo" msgstr "redo" -#: prizes/models.py:73 +#: prizes/models.py:74 msgid "NOT SCHEDULED" msgstr "NOT SCHEDULED" -#: prizes/models.py:74 +#: prizes/models.py:75 msgid "SCHEDULED" msgstr "SCHEDULED" -#: prizes/models.py:75 +#: prizes/models.py:76 msgid "FAILURE" msgstr "FAILURE" -#: prizes/models.py:76 +#: prizes/models.py:77 msgid "SUCCESS" msgstr "SUCCESS" -#: prizes/models.py:118 prizes/templates/prizes/email_footer.txt:5 +#: prizes/models.py:119 prizes/templates/prizes/email_footer.txt:5 msgid "Distribution date" msgstr "Distribution date" -#: prizes/models.py:119 +#: prizes/models.py:120 msgid "Leave blank for 'later'." msgstr "Leave blank for 'later'." -#: prizes/models.py:122 +#: prizes/models.py:123 msgid "Prize-givings with the same name are listed together." msgstr "Prize-givings with the same name are listed together." -#: prizes/models.py:125 +#: prizes/models.py:126 msgid "awarding rules" msgstr "awarding rules" -#: prizes/models.py:138 prizes/models.py:272 +#: prizes/models.py:139 prizes/models.py:273 msgid "prize-giving" msgstr "prize-giving" -#: prizes/models.py:139 +#: prizes/models.py:140 msgid "prize-givings" msgstr "prize-givings" -#: prizes/models.py:261 +#: prizes/models.py:262 msgid "Invalid value for position in distribution order." msgstr "Invalid value for position in distribution order." -#: prizes/models.py:274 +#: prizes/models.py:275 msgid "quantity" msgstr "quantity" -#: prizes/models.py:276 +#: prizes/models.py:277 msgid "position in non-strict distribution order" msgstr "position in non-strict distribution order" -#: prizes/models.py:280 +#: prizes/models.py:281 msgid "prize" msgstr "prize" -#: prizes/models.py:281 +#: prizes/models.py:282 msgid "prizes" msgstr "prizes" -#: prizes/reports.py:16 prizes/reports.py:37 +#: prizes/reports.py:17 prizes/reports.py:38 msgid "Prize" msgstr "Prize" -#: prizes/reports.py:30 +#: prizes/reports.py:31 msgid "Nothing" msgstr "Nothing" -#: prizes/reports.py:37 +#: prizes/reports.py:38 msgid "Place" msgstr "Place" @@ -4683,51 +4693,51 @@ msgstr "" "Then redo the prize-giving (tick the 'redo' checkbox in admin and save)." #: prizes/templates/prizes/prizes.html:4 prizes/templates/prizes/prizes.html:7 -#: prizes/views.py:28 +#: prizes/views.py:30 msgid "Prizes" msgstr "Prizes" -#: prizes/utils.py:18 +#: prizes/utils.py:20 msgid "prizes_conflict.csv" msgstr "prizes_conflict.csv" -#: problems/admin.py:134 +#: problems/admin.py:133 msgid "Tag" msgstr "Tag" -#: problems/admin.py:135 +#: problems/admin.py:134 #: problems/templates/problems/problemset/problem-list.html:16 #: simpleui/templates/simpleui/problem_settings/settings.html:48 msgid "Tags" msgstr "Tags" -#: problems/admin.py:192 +#: problems/admin.py:191 #, python-format msgid "Package not available for problem %s." msgstr "Package not available for problem %s." -#: problems/admin.py:284 +#: problems/admin.py:283 msgid "Cannot delete a processed Problem Package" msgstr "Cannot delete a processed Problem Package" -#: problems/admin.py:287 +#: problems/admin.py:286 #, python-format msgid "Delete selected %s" msgstr "Delete selected %s" -#: problems/admin.py:325 +#: problems/admin.py:324 msgid "Error details" msgstr "Error details" -#: problems/admin.py:348 problems/admin.py:396 +#: problems/admin.py:347 problems/admin.py:395 msgid "Problem packages" msgstr "Problem packages" -#: problems/admin.py:358 +#: problems/admin.py:357 msgid "Contest Problem Package" msgstr "Contest Problem Package" -#: problems/controllers.py:306 +#: problems/controllers.py:305 msgid "Visible only for admins" msgstr "Visible only for admins" @@ -4735,38 +4745,38 @@ msgstr "Visible only for admins" msgid "Enter problem's secret key" msgstr "Enter problem's secret key" -#: problems/management/commands/addproblem.py:10 +#: problems/management/commands/addproblem.py:12 msgid "" msgstr "" -#: problems/management/commands/addproblem.py:11 +#: problems/management/commands/addproblem.py:13 msgid "Adds the problem from the given package to the database." msgstr "Adds the problem from the given package to the database." -#: problems/management/commands/addproblem.py:16 +#: problems/management/commands/addproblem.py:18 msgid "Missing argument (filename)" msgstr "Missing argument (filename)" -#: problems/management/commands/addproblem.py:18 +#: problems/management/commands/addproblem.py:20 msgid "Expected at most two arguments" msgstr "Expected at most two arguments" -#: problems/management/commands/addproblem.py:30 +#: problems/management/commands/addproblem.py:32 msgid "" "The second argument (if provided) can only have value 'nothrow' - to be used " "in testing" msgstr "" -#: problems/management/commands/addproblem.py:41 -#: problems/management/commands/updateproblem.py:39 +#: problems/management/commands/addproblem.py:43 +#: problems/management/commands/updateproblem.py:41 msgid "Package format not recognized" msgstr "Package format not recognized" -#: problems/management/commands/addproblem.py:47 +#: problems/management/commands/addproblem.py:49 msgid "There was an error adding the problem" msgstr "There was an error adding the problem" -#: problems/management/commands/showbrokensolutions.py:9 +#: problems/management/commands/showbrokensolutions.py:10 msgid "" "Prints problems without 100-scored model solution. If username is provided " "it shows only problems added by that user." @@ -4774,27 +4784,27 @@ msgstr "" "Prints problems without 100-scored model solution. If username is provided " "it shows only problems added by that user." -#: problems/management/commands/updateproblem.py:11 +#: problems/management/commands/updateproblem.py:13 msgid " " msgstr " " -#: problems/management/commands/updateproblem.py:12 +#: problems/management/commands/updateproblem.py:14 msgid "Updates an existing problem using the given package file." msgstr "Updates an existing problem using the given package file." -#: problems/management/commands/updateproblem.py:17 +#: problems/management/commands/updateproblem.py:19 msgid "Not enough arguments" msgstr "Not enough arguments" -#: problems/management/commands/updateproblem.py:19 +#: problems/management/commands/updateproblem.py:21 msgid "Too many arguments" msgstr "Too many arguments" -#: problems/management/commands/updateproblem.py:24 +#: problems/management/commands/updateproblem.py:26 msgid "Invalid problem id: " msgstr "Invalid problem id: " -#: problems/management/commands/updateproblem.py:33 +#: problems/management/commands/updateproblem.py:35 #, python-format msgid "Problem #%d does not exist" msgstr "Problem #%d does not exist" @@ -4888,7 +4898,7 @@ msgstr "tag" msgid "tags" msgstr "tags" -#: problems/problem_site.py:137 problems/templates/problems/secret-key.html:12 +#: problems/problem_site.py:136 problems/templates/problems/secret-key.html:12 msgid "Secret key" msgstr "Secret key" @@ -5024,11 +5034,11 @@ msgstr "Problemset - add or update problem" msgid "Public problems" msgstr "Public problems" -#: problems/templates/problems/problemset/base.html:39 problems/views.py:190 +#: problems/templates/problems/problemset/base.html:39 problems/views.py:187 msgid "My problems" msgstr "My problems" -#: problems/templates/problems/problemset/base.html:46 problems/views.py:201 +#: problems/templates/problems/problemset/base.html:46 problems/views.py:198 msgid "All problems" msgstr "All problems" @@ -5100,19 +5110,19 @@ msgstr "" msgid "You have not submitted anything yet." msgstr "You have not submitted anything yet." -#: problems/views.py:181 +#: problems/views.py:178 msgid "Welcome to problemset, the place where all the problems are." msgstr "Welcome to problemset, the place where all the problems are." -#: problems/views.py:280 +#: problems/views.py:277 msgid "Reports are not available now (ಥ ﹏ ಥ)" msgstr "Reports are not available now (ಥ ﹏ ಥ)" -#: problems/views.py:411 +#: problems/views.py:408 msgid "Model solutions sent for evaluation." msgstr "Model solutions sent for evaluation." -#: programs/admin.py:47 sinolpack/package.py:608 +#: programs/admin.py:47 sinolpack/package.py:607 #, python-format msgid "" "Sum of time limits for all tests is too big. It's %(sum)ds, but it shouldn't " @@ -5154,27 +5164,27 @@ msgstr "Diff submissions" msgid "language" msgstr "language" -#: programs/controllers.py:38 +#: programs/controllers.py:39 msgid "Simple programming problem" msgstr "Simple programming problem" -#: programs/controllers.py:318 +#: programs/controllers.py:319 msgid "You have to either choose file or paste code." msgstr "You have to either choose file or paste code." -#: programs/controllers.py:332 +#: programs/controllers.py:333 msgid "You have to choose programming language." msgstr "You have to choose programming language." -#: programs/controllers.py:334 +#: programs/controllers.py:335 msgid "Unrecognized file extension." msgstr "Unrecognized file extension." -#: programs/controllers.py:338 +#: programs/controllers.py:339 msgid "This language is not allowed for selected problem." msgstr "This language is not allowed for selected problem." -#: programs/controllers.py:360 +#: programs/controllers.py:361 msgid "" "You have submitted the same file for this problem again. Please resubmit if " "you really want to submit the same file" @@ -5182,19 +5192,19 @@ msgstr "" "You have submitted the same file for this problem again. Please resubmit if " "you really want to submit the same file" -#: programs/controllers.py:403 +#: programs/controllers.py:404 msgid "File size limit exceeded." msgstr "File size limit exceeded." -#: programs/controllers.py:407 +#: programs/controllers.py:408 msgid "Code length limit exceeded." msgstr "Code length limit exceeded." -#: programs/controllers.py:413 +#: programs/controllers.py:414 msgid "Unknown or not supported file extension." msgstr "Unknown or not supported file extension." -#: programs/controllers.py:432 +#: programs/controllers.py:433 #, python-format msgid "" "Language is determined by the file extension. It has to be one of: %s. You " @@ -5205,180 +5215,180 @@ msgstr "" "can paste the code below instead of choosing file. Try drag-and-drop " "too!" -#: programs/controllers.py:441 +#: programs/controllers.py:442 msgid "Code" msgstr "Code" -#: programs/controllers.py:451 +#: programs/controllers.py:452 msgid "Programming language" msgstr "Programming language" -#: programs/controllers.py:595 +#: programs/controllers.py:596 msgid "Simple programming contest" msgstr "Simple programming contest" -#: programs/handlers.py:614 +#: programs/handlers.py:613 msgid "submission report" msgstr "submission report" -#: programs/models.py:20 +#: programs/models.py:22 msgid "Normal test" msgstr "Normal test" -#: programs/models.py:21 +#: programs/models.py:23 msgid "Example test" msgstr "Example test" -#: programs/models.py:26 +#: programs/models.py:28 msgid "Time limit must be a positive number." msgstr "Time limit must be a positive number." -#: programs/models.py:31 +#: programs/models.py:33 msgid "Memory limit must be a positive number." msgstr "Memory limit must be a positive number." -#: programs/models.py:33 +#: programs/models.py:35 #, python-format msgid "Memory limit mustn't be greater than %dKiB." msgstr "Memory limit mustn't be greater than %dKiB." -#: programs/models.py:42 +#: programs/models.py:44 msgid "input" msgstr "input" -#: programs/models.py:44 +#: programs/models.py:46 msgid "output/hint" msgstr "output/hint" -#: programs/models.py:46 similarsubmits/models.py:24 +#: programs/models.py:48 similarsubmits/models.py:24 msgid "group" msgstr "group" -#: programs/models.py:47 testrun/models.py:27 +#: programs/models.py:49 testrun/models.py:29 msgid "time limit (ms)" msgstr "time limit (ms)" -#: programs/models.py:49 testrun/models.py:29 +#: programs/models.py:51 testrun/models.py:31 msgid "memory limit (KiB)" msgstr "memory limit (KiB)" -#: programs/models.py:66 +#: programs/models.py:68 msgid "test" msgstr "test" -#: programs/models.py:67 +#: programs/models.py:69 msgid "tests" msgstr "tests" -#: programs/models.py:74 +#: programs/models.py:76 msgid "checker executable file" msgstr "checker executable file" -#: programs/models.py:77 +#: programs/models.py:79 msgid "output checker" msgstr "output checker" -#: programs/models.py:78 +#: programs/models.py:80 msgid "output checkers" msgstr "output checkers" -#: programs/models.py:83 +#: programs/models.py:85 msgid "libname" msgstr "libname" -#: programs/models.py:84 +#: programs/models.py:86 msgid "Filename that the library should be given during compilation" msgstr "Filename that the library should be given during compilation" -#: programs/models.py:87 programs/models.py:88 +#: programs/models.py:89 programs/models.py:90 msgid "library problem data" msgstr "library problem data" -#: programs/models.py:97 +#: programs/models.py:99 msgid "Model solution" msgstr "Model solution" -#: programs/models.py:98 +#: programs/models.py:100 msgid "Slow solution" msgstr "Slow solution" -#: programs/models.py:99 +#: programs/models.py:101 msgid "Incorrect solution" msgstr "Incorrect solution" -#: programs/models.py:128 +#: programs/models.py:130 msgid "source" msgstr "source" -#: programs/models.py:180 +#: programs/models.py:182 msgid "Source code length" msgstr "Source code length" -#: programs/models.py:199 +#: programs/models.py:201 msgid "Compilation failed" msgstr "Compilation failed" -#: programs/models.py:200 +#: programs/models.py:202 msgid "Runtime error" msgstr "Runtime error" -#: programs/models.py:201 +#: programs/models.py:203 msgid "Wrong answer" msgstr "Wrong answer" -#: programs/models.py:202 +#: programs/models.py:204 msgid "Time limit exceeded" msgstr "Time limit exceeded" -#: programs/models.py:203 +#: programs/models.py:205 msgid "Memory limit exceeded" msgstr "Memory limit exceeded" -#: programs/models.py:204 +#: programs/models.py:206 msgid "Output limit exceeded" msgstr "Output limit exceeded" -#: programs/models.py:205 +#: programs/models.py:207 msgid "System error" msgstr "System error" -#: programs/models.py:206 +#: programs/models.py:208 msgid "Rule violation" msgstr "Rule violation" -#: programs/models.py:208 +#: programs/models.py:210 msgid "Initial tests: OK" msgstr "Initial tests: OK" -#: programs/models.py:209 +#: programs/models.py:211 msgid "Initial tests: failed" msgstr "Initial tests: failed" -#: programs/models.py:211 +#: programs/models.py:213 msgid "Generate user out" msgstr "Generate user out" -#: programs/models.py:213 +#: programs/models.py:215 msgid "Initial report" msgstr "Initial report" -#: programs/models.py:214 +#: programs/models.py:216 msgid "Normal report" msgstr "Normal report" -#: programs/models.py:215 +#: programs/models.py:217 msgid "Full report" msgstr "Full report" -#: programs/models.py:217 +#: programs/models.py:219 msgid "Hidden report (for admins only)" msgstr "Hidden report (for admins only)" -#: programs/models.py:218 +#: programs/models.py:220 msgid "Report with user out" msgstr "Report with user out" -#: programs/models.py:268 +#: programs/models.py:270 msgid "Allow users to generate their outs on tests from visible reports." msgstr "Allow users to generate their outs on tests from visible reports." @@ -5434,6 +5444,7 @@ msgid "Test" msgstr "Test" #: programs/templates/programs/report-body.html:11 +#: quizzes/templates/quizzes/report-body.html:11 #: testrun/templates/testrun/report.html:19 #: zeus/templates/zeus/program-report.html:12 msgid "Result" @@ -5595,11 +5606,11 @@ msgstr "%(minutes)dm %(seconds).2fs" msgid "Not enough information given" msgstr "Not enough information given" -#: publicsolutions/models.py:12 +#: publicsolutions/models.py:13 msgid "voluntary solution publication" msgstr "voluntary solution publication" -#: publicsolutions/models.py:13 +#: publicsolutions/models.py:14 msgid "voluntary solution publications" msgstr "voluntary solution publications" @@ -5607,7 +5618,7 @@ msgstr "voluntary solution publications" #: publicsolutions/templates/publicsolutions/list-solutions.html:16 #: publicsolutions/templates/publicsolutions/list_solutions.html:5 #: publicsolutions/templates/publicsolutions/list_solutions.html:16 -#: publicsolutions/views.py:18 +#: publicsolutions/views.py:20 msgid "Solutions" msgstr "Solutions" @@ -5700,7 +5711,8 @@ msgid "" " " msgstr "" -#: questions/models.py:20 quizzes/models.py:16 quizzes/models.py:30 +#: questions/models.py:20 quizzes/models.py:19 quizzes/models.py:33 +#: quizzes/models.py:72 quizzes/templates/quizzes/report-body.html:10 msgid "Question" msgstr "Question" @@ -5744,7 +5756,7 @@ msgstr "Your question was answered." msgid "New public message." msgstr "New public message." -#: questions/processors.py:43 +#: questions/processors.py:44 #, python-format msgid "%(count)d NEW MESSAGE" msgid_plural "%(count)d NEW MESSAGES" @@ -5928,11 +5940,11 @@ msgstr "Ask question" msgid "A question needs at least one answer." msgstr "A question needs at least one answer." -#: quizzes/controllers.py:47 +#: quizzes/controllers.py:39 msgid "Answer is required here." msgstr "Answer is required here." -#: quizzes/controllers.py:145 +#: quizzes/controllers.py:133 msgid "Edit questions" msgstr "Edit questions" @@ -5944,69 +5956,69 @@ msgstr "Quiz name" msgid "Short name" msgstr "Shor tname" -#: quizzes/models.py:11 quizzes/models.py:20 +#: quizzes/models.py:14 quizzes/models.py:23 msgid "Quiz" msgstr "Quiz" -#: quizzes/models.py:12 +#: quizzes/models.py:15 msgid "Quizzes" msgstr "Quizzes" -#: quizzes/models.py:18 +#: quizzes/models.py:21 msgid "Is multiple choice" msgstr "Is multiple choice" -#: quizzes/models.py:19 +#: quizzes/models.py:22 #: simpleui/templates/simpleui/problem_settings/ingredients/tests.html:10 #: statistics/plotfunctions.py:175 msgid "Points" msgstr "Points" -#: quizzes/models.py:21 quizzes/models.py:34 +#: quizzes/models.py:24 quizzes/models.py:37 msgid "Order" msgstr "Order" -#: quizzes/models.py:25 +#: quizzes/models.py:28 msgid "Quiz question" msgstr "Quiz question" -#: quizzes/models.py:26 +#: quizzes/models.py:29 msgid "Quiz questions" msgstr "Quiz questions" -#: quizzes/models.py:31 quizzes/models.py:52 +#: quizzes/models.py:34 quizzes/models.py:55 msgid "Answer" msgstr "Answer" -#: quizzes/models.py:33 +#: quizzes/models.py:36 msgid "Is answer correct" msgstr "Is answer correct" -#: quizzes/models.py:38 +#: quizzes/models.py:41 msgid "Quiz answer" msgstr "Quiz answer" -#: quizzes/models.py:39 +#: quizzes/models.py:42 msgid "Quiz answers" msgstr "Quiz answers" -#: quizzes/models.py:45 quizzes/models.py:51 +#: quizzes/models.py:48 quizzes/models.py:54 msgid "Quiz submission" msgstr "Quiz submission" -#: quizzes/models.py:46 +#: quizzes/models.py:49 msgid "Quiz submissions" msgstr "Quiz submissions" -#: quizzes/models.py:55 +#: quizzes/models.py:58 msgid "Is answer selected" msgstr "Is answer selected" -#: quizzes/models.py:58 +#: quizzes/models.py:61 msgid "Quiz submission answer" msgstr "Quiz submission answer" -#: quizzes/models.py:59 +#: quizzes/models.py:62 msgid "Quiz submission answers" msgstr "Quiz submission answers" @@ -6030,19 +6042,19 @@ msgstr "You can use drag and drop to change the order of questions and answers." msgid "Default ranking" msgstr "Default ranking" -#: rankings/controllers.py:265 +#: rankings/controllers.py:263 msgid "No." msgstr "No." -#: rankings/controllers.py:286 +#: rankings/controllers.py:284 msgid "ranking" msgstr "ranking" -#: rankings/forms.py:15 +#: rankings/forms.py:16 msgid "Search for user..." msgstr "Search for user..." -#: rankings/management/commands/rankingsd.py:11 +#: rankings/management/commands/rankingsd.py:12 msgid "" "Daemon that rebuilds rankings. Ranking generation is quite a slow process, " "so it is done independently from request, in this daemon. This allows " @@ -6110,27 +6122,27 @@ msgstr "" msgid "User is not in the ranking." msgstr "User is not in the ranking." -#: scoresreveal/admin.py:10 +#: scoresreveal/admin.py:11 msgid "revealed" msgstr "revealed" -#: scoresreveal/admin.py:70 +#: scoresreveal/admin.py:71 msgid "Revealed" msgstr "Revealed" -#: scoresreveal/controllers.py:68 +#: scoresreveal/controllers.py:71 msgid "The round is not active." msgstr "The round is not active." -#: scoresreveal/controllers.py:70 +#: scoresreveal/controllers.py:73 msgid "Only author can reveal the submission score." msgstr "Only author can reveal the submission score." -#: scoresreveal/controllers.py:72 +#: scoresreveal/controllers.py:75 msgid "You have already reached the reveals limit." msgstr "You have already reached the reveals limit." -#: scoresreveal/controllers.py:79 +#: scoresreveal/controllers.py:82 #, python-format msgid "" "Scores revealing is disabled during the last minute of the " @@ -6145,7 +6157,7 @@ msgstr[1] "" "Scores revealing is disabled during the last " "%(scores_reveals_disable_time)d minutes of the round." -#: scoresreveal/controllers.py:87 +#: scoresreveal/controllers.py:90 msgid "" "You cannot reveal the score of the submission with status \"Compilation Error" "\"." @@ -6153,11 +6165,11 @@ msgstr "" "You cannot reveal the score of the submission with status \"Compilation Error" "\"." -#: scoresreveal/controllers.py:90 +#: scoresreveal/controllers.py:93 msgid "The submission author is not set." msgstr "The submission author is not set." -#: scoresreveal/controllers.py:92 +#: scoresreveal/controllers.py:95 msgid "" "Unfortunately, this submission has not been scored yet, so you can't see " "your score. Please come back later." @@ -6165,31 +6177,31 @@ msgstr "" "Unfortunately, this submission has not been scored yet, so you can't see " "your score. Please come back later." -#: scoresreveal/controllers.py:97 +#: scoresreveal/controllers.py:100 msgid "You already have access to the submission score." msgstr "You already have access to the submission score." -#: scoresreveal/models.py:12 +#: scoresreveal/models.py:13 msgid "score reveal" msgstr "score reveal" -#: scoresreveal/models.py:13 +#: scoresreveal/models.py:14 msgid "score reveals" msgstr "score reveals" -#: scoresreveal/models.py:20 +#: scoresreveal/models.py:21 msgid "reveal limit" msgstr "reveal limit" -#: scoresreveal/models.py:22 +#: scoresreveal/models.py:23 msgid "disable for last minutes of the round" msgstr "disable for last minutes of the round" -#: scoresreveal/models.py:25 +#: scoresreveal/models.py:26 msgid "score reveal config" msgstr "score reveal config" -#: scoresreveal/models.py:26 +#: scoresreveal/models.py:27 msgid "score reveal configs" msgstr "score reveal configs" @@ -6244,7 +6256,7 @@ msgstr "Reveal score" msgid "You are going to reveal your score.
    Would you like to proceed?" msgstr "You are going to reveal your score.
    Would you like to proceed?" -#: scoresreveal/views.py:24 +#: scoresreveal/views.py:25 msgid "Submission score has been revealed." msgstr "Submission score has been revealed." @@ -6270,7 +6282,7 @@ msgstr "Cannot connect to external site: %s" msgid "Invalid server response: %s" msgstr "Invalid server response: %s" -#: sharingcli/problem_sources.py:47 +#: sharingcli/problem_sources.py:46 msgid "Add from external site" msgstr "Add from external site" @@ -6459,14 +6471,14 @@ msgstr "Mark guilty" msgid "Change kind: %(description)s (and mark not guilty)" msgstr "" -#: similarsubmits/views.py:47 +#: similarsubmits/views.py:46 #, python-format msgid "Created one group" msgid_plural "Created %(groups_count)d groups" msgstr[0] "Created group" msgstr[1] "Created %(groups_count)d groups" -#: similarsubmits/views.py:67 +#: similarsubmits/views.py:66 msgid "" "You can't mark a removed submission as guilty because the author will not be " "able to see it." @@ -6486,12 +6498,12 @@ msgstr "in" msgid "out" msgstr "out" -#: simpleui/templates/simpleui/contest/contest.html:34 teachers/views.py:126 +#: simpleui/templates/simpleui/contest/contest.html:34 teachers/views.py:121 msgid "Pupils" msgstr "Pupils" -#: simpleui/templates/simpleui/contest/contest.html:36 teachers/admin.py:42 -#: teachers/views.py:129 +#: simpleui/templates/simpleui/contest/contest.html:36 teachers/admin.py:43 +#: teachers/views.py:124 msgid "Teachers" msgstr "Teachers" @@ -6750,7 +6762,7 @@ msgstr "" " " #: simpleui/templates/simpleui/main_dashboard/dashboard.html:62 -#: teachers/templates/teachers/widgets/contest-selection.html:28 +#: teachers/templates/teachers/contest-selection.html:28 msgid "Show all contests" msgstr "Show all contests" @@ -6798,44 +6810,44 @@ msgstr "Tests" msgid "Extra file" msgstr "Extra file" -#: sinolpack/controllers.py:8 +#: sinolpack/controllers.py:9 msgid "Sinol package problem" msgstr "Sinol package problem" -#: sinolpack/models.py:14 +#: sinolpack/models.py:13 msgid "config" msgstr "config" -#: sinolpack/models.py:23 +#: sinolpack/models.py:22 msgid "sinolpack's configuration" msgstr "sinolpack's configuration" -#: sinolpack/models.py:24 +#: sinolpack/models.py:23 msgid "sinolpack's configurations" msgstr "sinolpack's configurations" -#: sinolpack/models.py:35 +#: sinolpack/models.py:34 msgid "sinolpack's extra file" msgstr "sinolpack's extra file" -#: sinolpack/models.py:36 +#: sinolpack/models.py:35 msgid "sinolpack's extra files" msgstr "sinolpack's extra files" -#: sinolpack/models.py:45 +#: sinolpack/models.py:44 msgid "original problem package" msgstr "original problem package" -#: sinolpack/models.py:46 +#: sinolpack/models.py:45 msgid "original problem packages" msgstr "original problem packages" -#: sinolpack/package.py:248 +#: sinolpack/package.py:247 #, python-format msgid "Compilation of file %(filename)s failed. Compiler output: %(output)s" msgstr "Compilation of file %(filename)s failed. Compiler output: %(output)s" -#: sinolpack/package.py:296 +#: sinolpack/package.py:295 #, python-format msgid "" "Tried to replace problem '%(oldname)s' with '%(newname)s'. For safety, " @@ -6844,31 +6856,31 @@ msgstr "" "Tried to replace problem '%(oldname)s' with '%(newname)s'. For safety, " "changing problem short name is not possible." -#: sinolpack/package.py:405 +#: sinolpack/package.py:404 #, python-format msgid "Expected extra files %r not found in prog/" msgstr "Expected extra files %r not found in prog/" -#: sinolpack/package.py:499 +#: sinolpack/package.py:498 msgid "index.html has to be utf8 or iso8859-2 encoded" msgstr "index.html has to be utf8 or iso8859-2 encoded" -#: sinolpack/package.py:635 +#: sinolpack/package.py:634 #, python-format msgid "Inwer failed on test %(test)s. Inwer output %(output)s" msgstr "Inwer failed on test %(test)s. Inwer output %(output)s" -#: sinolpack/package.py:660 +#: sinolpack/package.py:659 #, python-format msgid "Missing out file for test %s" msgstr "Missing out file for test %s" -#: sinolpack/package.py:695 +#: sinolpack/package.py:694 #, python-format msgid "Unrecognized test: %s" msgstr "Unrecognized test: %s" -#: sinolpack/package.py:797 +#: sinolpack/package.py:796 #, python-format msgid "" "Score for group '%(group_name)s' not found. You must either provide scores " @@ -6877,7 +6889,7 @@ msgid "" "%(config_groups)s)" msgstr "" -#: sinolpack/package.py:810 +#: sinolpack/package.py:809 #, python-format msgid "" "Score for group '%(group_name)s' found in config, but no such test group " @@ -6890,27 +6902,27 @@ msgstr "" "not provide them at all (to have them assigned automatically). (Scored " "groups: %(scored_groups)s, groups from config: %(config_groups)s)" -#: sinolpack/package.py:1066 +#: sinolpack/package.py:1065 msgid "Sinol Package" msgstr "Sinol Package" -#: statistics/models.py:8 +#: statistics/models.py:9 msgid "Show statistics" msgstr "Show statistics" -#: statistics/models.py:12 +#: statistics/models.py:13 msgid "visible to users" msgstr "visible to users" -#: statistics/models.py:14 +#: statistics/models.py:15 msgid "visibility date" msgstr "visibility date" -#: statistics/models.py:17 +#: statistics/models.py:18 msgid "statistics configuration" msgstr "statistics configuration" -#: statistics/models.py:18 +#: statistics/models.py:19 msgid "statistics configurations" msgstr "statistics configurations" @@ -6997,11 +7009,11 @@ msgstr "" msgid "Refresh" msgstr "Refresh" -#: su/forms.py:18 +#: su/forms.py:19 msgid "Switching to a superuser is not allowed for security reasons." msgstr "Switching to a superuser is not allowed for security reasons." -#: su/forms.py:25 +#: su/forms.py:26 msgid "Authentication backend" msgstr "Authentication backend" @@ -7151,15 +7163,60 @@ msgstr "Judge initial" msgid "Judge final" msgstr "Judge final" -#: suspendjudge/models.py:9 +#: suspendjudge/models.py:8 msgid "Suspended" msgstr "Suspended" -#: teachers/admin.py:94 +#: szkopul/menu.py:4 +msgid "Navigation Bar Menu" +msgstr "Navigation Bar Menu" + +#: szkopul/templates/main-page.html:18 +msgid "Welcome!" +msgstr "Welcome!" + +#: szkopul/templates/main-page.html:20 +msgid "" +"Choose the contest you want to enter. To enter a new contest, ask a teacher " +"for a registration link." +msgstr "" +"Choose the contest you want to enter. To enter a new contest, ask a teacher " +"for a registration link." + +#: szkopul/templates/main-page.html:27 +msgid "News" +msgstr "News" + +#: szkopul/templates/main-page.html:30 +#, fuzzy +#| msgid "Contests" +msgid "Contact us" +msgstr "Contact us" + +#: szkopul/templates/main-page.html:33 +#, python-format +msgid "" +"Do you have any questions or feedback? Is something wrong? Use the " +"%(send_feedback)s button in the corner of the page." +msgstr "" +"Do you have any questions or feedback? Is something wrong? Use the " +"%(send_feedback)s button in the corner of the page." + +#: szkopul/templates/main-page.html:39 +#, fuzzy +#| msgid "accepted by" +msgid "We are supported by" +msgstr "We are supported by" + +#: szkopul/views.py:16 +msgid "Task archive" +msgstr "Task archive" + +#: teachers/admin.py:95 msgid "Contest added successfully." msgstr "Contest added successfully." -#: teachers/admin.py:104 +#: teachers/admin.py:105 msgid "New contest" msgstr "New contest" @@ -7167,11 +7224,11 @@ msgstr "New contest" msgid "Teachers permissions" msgstr "Teachers permissions" -#: teachers/controllers.py:36 +#: teachers/controllers.py:37 msgid "Contest for teachers" msgstr "Contest for teachers" -#: teachers/forms.py:20 +#: teachers/forms.py:21 msgid "" "Please provide the full name. If the school is a part of a larger " "organization of schools,
    enter the name of this organization." @@ -7179,26 +7236,26 @@ msgstr "" "Please provide the full name. If the school is a part of a larger " "organization of schools,
    enter the name of this organization." -#: teachers/forms.py:26 +#: teachers/forms.py:27 msgid "Message" msgstr "Message" -#: teachers/forms.py:27 +#: teachers/forms.py:28 msgid "Optional. If provided, this message will be sent to the managers." msgstr "Optional. If provided, this message will be sent to the managers." -#: teachers/menu.py:4 +#: teachers/menu.py:5 msgid "Teacher Menu" msgstr "Teacher Menu" -#: teachers/models.py:25 +#: teachers/models.py:26 msgid "Is a teacher" msgstr "Is a teacher" #: teachers/templates/registration/activation_complete.html:14 #: teachers/templates/teachers/request.html:4 #: teachers/templates/teachers/request.html:7 -#: teachers/templates/teachers/request_sent.html:4 teachers/views.py:82 +#: teachers/templates/teachers/request_sent.html:4 teachers/views.py:77 msgid "Request teacher account" msgstr "Request teacher account" @@ -7435,31 +7492,31 @@ msgstr "Request has been sent." msgid "You will receive an email once your teacher account is activated." msgstr "You will receive an email once your teacher account is activated." -#: teachers/templates/teachers/widgets/contest-selection.html:7 +#: teachers/templates/teachers/contest-selection.html:7 msgid "Proceed to the default contest:" msgstr "Proceed to the default contest:" -#: teachers/templates/teachers/widgets/contest-selection.html:12 +#: teachers/templates/teachers/contest-selection.html:12 msgid "Or select one of the following:" msgstr "Or select one of the following:" -#: teachers/templates/teachers/widgets/contest-selection.html:34 +#: teachers/templates/teachers/contest-selection.html:34 msgid "You have teacher's access." msgstr "You have teacher's access." -#: teachers/templates/teachers/widgets/contest-selection.html:41 +#: teachers/templates/teachers/contest-selection.html:41 msgid "There are no contests you could take part in." msgstr "There are no contests you could take part in." -#: teachers/templates/teachers/widgets/contest-selection.html:43 +#: teachers/templates/teachers/contest-selection.html:43 msgid "Your request for teacher's access awaits administrators approval." msgstr "Your request for teacher's access awaits administrators approval." -#: teachers/templates/teachers/widgets/contest-selection.html:45 +#: teachers/templates/teachers/contest-selection.html:45 msgid "Ask your teacher for a registration link" msgstr "Ask your teacher for a registration link" -#: teachers/templates/teachers/widgets/contest-selection.html:47 +#: teachers/templates/teachers/contest-selection.html:47 #, python-format msgid "" "\n" @@ -7474,27 +7531,27 @@ msgstr "" "teacher's access.\n" " " -#: teachers/views.py:111 +#: teachers/views.py:106 msgid "User already accepted." msgstr "User already accepted." -#: teachers/views.py:121 +#: teachers/views.py:116 msgid "Successfully accepted and emailed the new teacher." msgstr "Successfully accepted and emailed the new teacher." -#: teachers/views.py:214 +#: teachers/views.py:209 msgid "You are already registered." msgstr "You are already registered." -#: teachers/views.py:216 +#: teachers/views.py:211 msgid "Activation successful." msgstr "Activation successful." -#: teachers/views.py:288 +#: teachers/views.py:283 msgid "Import members completed successfully." msgstr "Import members completed successfully." -#: teams/admin.py:45 teams/templates/teams/confirm-join-team.html:4 +#: teams/admin.py:46 teams/templates/teams/confirm-join-team.html:4 #: teams/templates/teams/team.html:4 teams/templates/teams/teams.html:4 #: teams/templates/teams/teams.html:7 teams/views.py:29 msgid "Teams" @@ -7682,7 +7739,7 @@ msgstr "" "%s, but allowed languages may vary. You can paste the code below instead of " "choosing file." -#: testrun/controllers.py:178 testrun/models.py:13 +#: testrun/controllers.py:178 testrun/models.py:15 #: testrun/templates/testrun/no-testrun-problems.html:4 #: testrun/templates/testrun/no-testrun-problems.html:7 #: testrun/templates/testrun/submit.html:4 @@ -7690,31 +7747,31 @@ msgstr "" msgid "Test run" msgstr "Test run" -#: testrun/models.py:12 +#: testrun/models.py:14 msgid "No error" msgstr "No error" -#: testrun/models.py:14 testrun/templates/testrun/report.html:4 +#: testrun/models.py:16 testrun/templates/testrun/report.html:4 msgid "Test run report" msgstr "Test run report" -#: testrun/models.py:33 +#: testrun/models.py:35 msgid "test run config" msgstr "test run config" -#: testrun/models.py:34 +#: testrun/models.py:36 msgid "test run configs" msgstr "test run configs" -#: testrun/models.py:70 +#: testrun/models.py:72 msgid "test runs limit" msgstr "test runs limit" -#: testrun/models.py:73 +#: testrun/models.py:75 msgid "test run configuration for instance" msgstr "test run configuration for instance" -#: testrun/models.py:74 +#: testrun/models.py:76 msgid "test run configuration for instances" msgstr "test run configuration for instances" @@ -7880,15 +7937,15 @@ msgstr "Zeus ID" msgid "Zeus Problem ID" msgstr "Zeus Problem ID" -#: zeus/models.py:15 +#: zeus/models.py:14 msgid "Outgoing message size limit exceeded" msgstr "Outgoing message size limit exceeded" -#: zeus/models.py:16 +#: zeus/models.py:15 msgid "Outgoing message count limit exceeded" msgstr "Outgoing message count limit exceeded" -#: zeus/package.py:54 +#: zeus/package.py:53 msgid "Zeus Package" msgstr "Zeus Package" diff --git a/oioioi/locale/en/LC_MESSAGES/djangojs.mo b/oioioi/locale/en/LC_MESSAGES/djangojs.mo index 7092ab663107117bcb571c92b6a1cea40a3b6f4b..dc3022a4efebd93066e0672b8d172b10b8151346 100644 GIT binary patch delta 489 zcmXZYzb`{k7{>AUrbvIF6rF@Fnu^@yxQ#2Ch(s-BMur>dK>VuIAZgshX7(4bm;~uc zECz!xG)#iYARP=6LrHw!^h}>T=e*~fC+9tPIC^pKgy)XPbwZ>pA{$*IGx&x@9PVzp zf`jB!jN>h4@DVvGUzo#R${`NQ_&v zm_{u$jaq0I+p&s6c!2sN$Ed~5FpXEpRZ>Tt|FHWFV;7p3XT#|iiQok4LsO_<$GM*XtUE{l+$$0sK=Z_iBnA&$@J^Bw?{5#(O delta 450 zcmXZYAxlGH6vpvqOyxSSZf;W$hTJ5ZNmx)UA`>*&1_Og1z%`pIyG2B^uwpQ27z)Bg z+kz}uOw(YTAHb@`u>awn^y4}2d3hh+tJ=8w^qz??GSXm9I+e6HFYVw9Ht^ToUXUu} zF6QtCBfLkh>J6*-fn3qQ=UhI`bv$Oiiy_`(fDd`a`lG-zgCz!!i&6oHXp5h?iQhPb zD@AD*BeaLsk+-zv?qiAE^4xYiX#1C*dpJeDE5>P)zAq$b1ztUm(29(44S&!Im3hSq z9pW@LaTSlye&h_T*f}oaHF8ybwEcmf4>x=;!a4_En8mQ1K2$*a@&mLY&7_m<21yj2 F1QWsBE`0z1 diff --git a/oioioi/locale/pl/LC_MESSAGES/django.mo b/oioioi/locale/pl/LC_MESSAGES/django.mo index 364808efde36c73a9bf4fab27eaf3c041bdb7988..ef3f855e241ebaa3feb75b193b40b1c2beec451c 100644 GIT binary patch delta 33136 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 delta 32128 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

    ;*SGd=E$fy5VL5T3(g=#6jQ4<%8j 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 diff --git a/oioioi/locale/pl/LC_MESSAGES/django.po b/oioioi/locale/pl/LC_MESSAGES/django.po index be3b51945..2c56c12a3 100644 --- a/oioioi/locale/pl/LC_MESSAGES/django.po +++ b/oioioi/locale/pl/LC_MESSAGES/django.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: SIO2 Project\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-04-13 15:51+0200\n" +"POT-Creation-Date: 2018-04-17 11:46+0200\n" "PO-Revision-Date: 2018-04-05 11:24+0000\n" "Last-Translator: Jacek Olczyk \n" "Language-Team: Polish (http://www.transifex.com/sio2project/sio2project/" @@ -64,16 +64,16 @@ msgstr "Lp." #: acm/controllers.py:234 contests/forms.py:285 #: contests/templates/contests/basic_user_info.html:20 #: contests/templates/contests/navbar-user-info-form.html:18 -#: oireports/forms.py:91 rankings/forms.py:8 su/forms.py:23 +#: oireports/forms.py:93 rankings/forms.py:9 su/forms.py:24 #: su/templates/su/navbar-su-form.html:11 msgid "Username" msgstr "Login" -#: acm/controllers.py:234 base/forms.py:33 rankings/controllers.py:265 +#: acm/controllers.py:234 base/forms.py:33 rankings/controllers.py:263 msgid "First name" msgstr "Imię" -#: acm/controllers.py:234 base/forms.py:34 rankings/controllers.py:265 +#: acm/controllers.py:234 base/forms.py:34 rankings/controllers.py:263 msgid "Last name" msgstr "Nazwisko" @@ -81,7 +81,7 @@ msgstr "Nazwisko" msgid "Solved" msgstr "Rozwiązane" -#: acm/controllers.py:238 rankings/controllers.py:268 +#: acm/controllers.py:238 rankings/controllers.py:266 #: rankings/templates/rankings/default_ranking.html:22 msgid "Sum" msgstr "Suma" @@ -97,15 +97,15 @@ msgstr "" msgid "Your submission for task %(short_name)s is not accepted." msgstr "Twoje zgłoszenie do zadania %(short_name)s zostało odrzucone." -#: acm/models.py:9 contests/forms.py:185 contests/models.py:315 +#: acm/models.py:9 contests/forms.py:185 contests/models.py:316 msgid "Ignored" msgstr "Zignorowane" -#: acm/score.py:43 +#: acm/score.py:44 msgid "Accepted" msgstr "Zaakceptowane" -#: acm/score.py:45 +#: acm/score.py:46 msgid "Rejected" msgstr "Odrzucone" @@ -115,21 +115,22 @@ msgstr "Ranking jest zamrożony." #: acm/templates/acm/acm_ranking.html:12 #: complaints/templates/complaints/jury-email.txt:6 contests/forms.py:163 -#: evalmgr/admin.py:169 oireports/forms.py:90 prizes/reports.py:16 -#: prizes/reports.py:37 rankings/templates/rankings/default_ranking.html:11 +#: evalmgr/admin.py:169 oireports/forms.py:92 prizes/reports.py:17 +#: prizes/reports.py:38 rankings/templates/rankings/default_ranking.html:11 #: teams/templates/teams/confirm-join-team.html:14 #: teams/templates/teams/team.html:14 teams/templates/teams/teams.html:14 msgid "User" msgstr "Użytkownik" -#: acm/templates/acm/acm_ranking.html:13 contests/admin.py:595 -#: contests/fields.py:11 +#: acm/templates/acm/acm_ranking.html:13 contests/admin.py:597 +#: contests/fields.py:12 #: contests/templates/contests/my_submissions_table.html:29 #: contests/templates/contests/problems_list.html:18 #: contests/templates/contests/submission.html:51 #: programs/templates/programs/report-body.html:14 #: programs/templates/programs/submission_header.html:116 #: publicsolutions/templates/publicsolutions/solutions-table.html:9 +#: quizzes/models.py:70 quizzes/templates/quizzes/report-body.html:12 #: scoresreveal/templates/scoresreveal/submission-footer.html:14 #: simpleui/templates/simpleui/contest/ingredients/submissions.html:11 #: zeus/templates/zeus/program-report.html:18 @@ -182,13 +183,13 @@ msgstr "Wygeneruj ponownie klucz" msgid "Regeneration link" msgstr "Odnośnik ponownego generowania " -#: balloons/management/commands/import_balloons_displays.py:17 -#: participants/management/commands/import_onsite_participants.py:18 -#: participants/management/commands/import_participants.py:14 +#: balloons/management/commands/import_balloons_displays.py:19 +#: participants/management/commands/import_onsite_participants.py:20 +#: participants/management/commands/import_participants.py:16 msgid " " msgstr "‹id_konkursu› ‹plik_lub_adres_url›" -#: balloons/management/commands/import_balloons_displays.py:18 +#: balloons/management/commands/import_balloons_displays.py:20 #, python-format msgid "" "Updates the list of balloons displays of from the given CSV " @@ -204,43 +205,43 @@ msgstr "" "Podany plik powinien zawierać wiersz będący nagłówkiem z nazwami kolumn " "(odpowiednio %(columns)s) oddzielonymi przecinkami." -#: balloons/management/commands/import_balloons_displays.py:29 -#: participants/management/commands/import_onsite_participants.py:30 -#: participants/management/commands/import_participants.py:23 +#: balloons/management/commands/import_balloons_displays.py:31 +#: participants/management/commands/import_onsite_participants.py:32 +#: participants/management/commands/import_participants.py:25 msgid "Expected two arguments" msgstr "Oczekiwano dwóch argumentów" -#: balloons/management/commands/import_balloons_displays.py:34 +#: balloons/management/commands/import_balloons_displays.py:36 #: oi/management/commands/oi_generate_dnsauth.py:33 -#: participants/management/commands/import_onsite_participants.py:35 -#: participants/management/commands/import_participants.py:28 +#: participants/management/commands/import_onsite_participants.py:37 +#: participants/management/commands/import_participants.py:30 #, python-format msgid "Contest %s does not exist" msgstr "Konkurs %s nie istnieje" -#: balloons/management/commands/import_balloons_displays.py:39 -#: base/management/commands/import_users.py:35 -#: oi/management/commands/import_schools.py:38 -#: participants/management/commands/import_onsite_participants.py:46 -#: participants/management/commands/import_participants.py:38 +#: balloons/management/commands/import_balloons_displays.py:41 +#: base/management/commands/import_users.py:36 +#: oi/management/commands/import_schools.py:37 +#: participants/management/commands/import_onsite_participants.py:48 +#: participants/management/commands/import_participants.py:40 #, python-format msgid "Fetching %s...\n" msgstr "Pobieranie %s…\n" -#: balloons/management/commands/import_balloons_displays.py:43 -#: base/management/commands/import_users.py:39 +#: balloons/management/commands/import_balloons_displays.py:45 +#: base/management/commands/import_users.py:40 #: confirmations/management/commands/verify_receipt.py:26 -#: oi/management/commands/import_schools.py:42 -#: participants/management/commands/import_onsite_participants.py:50 -#: participants/management/commands/import_participants.py:42 -#: problems/management/commands/addproblem.py:36 -#: problems/management/commands/updateproblem.py:28 +#: oi/management/commands/import_schools.py:41 +#: participants/management/commands/import_onsite_participants.py:52 +#: participants/management/commands/import_participants.py:44 +#: problems/management/commands/addproblem.py:38 +#: problems/management/commands/updateproblem.py:30 msgid "File not found: " msgstr "Nie znaleziono pliku:" -#: balloons/management/commands/import_balloons_displays.py:49 -#: base/management/commands/import_users.py:45 -#: participants/management/commands/import_onsite_participants.py:56 +#: balloons/management/commands/import_balloons_displays.py:51 +#: base/management/commands/import_users.py:46 +#: participants/management/commands/import_onsite_participants.py:58 #, python-format msgid "" "Missing header or invalid columns: %(header)s\n" @@ -249,116 +250,116 @@ msgstr "" "Brak nagłówka bądź niepoprawne kolumny: %(header)s\n" "Oczekiwano: %(expected)s" -#: balloons/management/commands/import_balloons_displays.py:71 -#: participants/management/commands/import_onsite_participants.py:84 -#: participants/management/commands/import_participants.py:62 +#: balloons/management/commands/import_balloons_displays.py:73 +#: participants/management/commands/import_onsite_participants.py:86 +#: participants/management/commands/import_participants.py:64 #, python-format msgid "Error for user=%(user)s: user does not exist\n" msgstr "Błąd: użytkownik %(user)s nie istnieje\n" -#: balloons/management/commands/import_balloons_displays.py:80 -#: base/management/commands/import_users.py:73 -#: participants/management/commands/import_onsite_participants.py:98 -#: participants/management/commands/import_participants.py:71 +#: balloons/management/commands/import_balloons_displays.py:82 +#: base/management/commands/import_users.py:74 +#: participants/management/commands/import_onsite_participants.py:100 +#: participants/management/commands/import_participants.py:73 #, python-format msgid "DB Error for user=%(user)s: %(message)s\n" msgstr "" "Błąd bazy danych podczas przetwarzania użytkownika %(user)s: %(message)s\n" -#: balloons/management/commands/import_balloons_displays.py:88 +#: balloons/management/commands/import_balloons_displays.py:90 msgid "Error for user=%(user)s: %s\n" msgstr "Błąd przy przetwarzaniu użytkownika %(user)s: %s\n" -#: balloons/management/commands/import_balloons_displays.py:92 -#: base/management/commands/import_users.py:85 -#: participants/management/commands/import_onsite_participants.py:110 +#: balloons/management/commands/import_balloons_displays.py:94 +#: base/management/commands/import_users.py:86 +#: participants/management/commands/import_onsite_participants.py:112 #, python-format msgid "Error for user=%(user)s, field %(field)s: %(message)s\n" msgstr "" "Błąd podczas przetwarzania pola %(field)s użytkownika %(user)s: %(message)s\n" -#: balloons/management/commands/import_balloons_displays.py:99 -#: base/management/commands/import_users.py:92 +#: balloons/management/commands/import_balloons_displays.py:101 +#: base/management/commands/import_users.py:93 #: oi/management/commands/oi_generate_dnsauth.py:52 -#: participants/management/commands/import_onsite_participants.py:117 -#: participants/management/commands/import_participants.py:75 +#: participants/management/commands/import_onsite_participants.py:119 +#: participants/management/commands/import_participants.py:77 #, python-format msgid "Processed %d entries" msgstr "Przetworzono %d wpisów" -#: balloons/management/commands/import_balloons_displays.py:101 -#: base/management/commands/import_users.py:94 -#: participants/management/commands/import_onsite_participants.py:119 -#: participants/management/commands/import_participants.py:77 +#: balloons/management/commands/import_balloons_displays.py:103 +#: base/management/commands/import_users.py:95 +#: participants/management/commands/import_onsite_participants.py:121 +#: participants/management/commands/import_participants.py:79 msgid "There were some errors. Database not changed.\n" msgstr "Wystąpiły pewne błędy. Baza danych nie została zmieniona.\n" -#: balloons/models.py:16 balloons/models.py:47 contests/admin.py:394 -#: contests/admin.py:398 contests/models.py:252 contests/models.py:329 -#: evalmgr/admin.py:51 mailsubmit/models.py:26 problems/models.py:106 -#: problems/models.py:221 scoresreveal/models.py:18 testrun/models.py:24 +#: balloons/models.py:15 balloons/models.py:46 contests/admin.py:396 +#: contests/admin.py:400 contests/models.py:253 contests/models.py:330 +#: evalmgr/admin.py:51 mailsubmit/models.py:25 problems/models.py:106 +#: problems/models.py:221 scoresreveal/models.py:19 testrun/models.py:26 msgid "problem" msgstr "zadanie" -#: balloons/models.py:19 +#: balloons/models.py:18 msgid "color" msgstr "kolor" -#: balloons/models.py:22 balloons/models.py:23 +#: balloons/models.py:21 balloons/models.py:22 msgid "balloons colors" msgstr "kolory balonów" -#: balloons/models.py:32 ipdnsauth/models.py:13 +#: balloons/models.py:31 ipdnsauth/models.py:13 msgid "IP address" msgstr "adres IP" -#: balloons/models.py:33 balloons/models.py:45 contests/models.py:331 -#: disqualification/models.py:12 evalmgr/admin.py:20 mailsubmit/models.py:28 -#: teachers/models.py:19 teams/models.py:15 +#: balloons/models.py:32 balloons/models.py:44 contests/models.py:332 +#: disqualification/models.py:13 evalmgr/admin.py:20 mailsubmit/models.py:27 +#: teachers/models.py:20 teams/models.py:15 msgid "user" msgstr "użytkownik" -#: balloons/models.py:34 balloons/models.py:69 contestlogo/models.py:16 -#: contestlogo/models.py:43 contests/admin.py:451 contests/models.py:84 -#: contests/models.py:125 contests/models.py:183 contests/models.py:248 -#: contests/models.py:525 disqualification/models.py:11 problems/models.py:60 +#: balloons/models.py:33 balloons/models.py:68 contestlogo/models.py:18 +#: contestlogo/models.py:45 contests/admin.py:453 contests/models.py:85 +#: contests/models.py:126 contests/models.py:184 contests/models.py:249 +#: contests/models.py:526 disqualification/models.py:12 problems/models.py:60 #: problems/models.py:220 similarsubmits/models.py:12 msgid "contest" msgstr "konkurs" -#: balloons/models.py:37 +#: balloons/models.py:36 msgid "balloons display" msgstr "wyświetlacz balonów" -#: balloons/models.py:38 +#: balloons/models.py:37 msgid "balloons displays" msgstr "wyświetlacze balonów" -#: balloons/models.py:48 +#: balloons/models.py:47 msgid "delivered" msgstr "dostarczone" -#: balloons/models.py:51 +#: balloons/models.py:50 msgid "first accepted solution" msgstr "pierwsze zaakceptowane rozwiązanie" -#: balloons/models.py:55 +#: balloons/models.py:54 msgid "balloon delivery" msgstr "dostarczenie balonów" -#: balloons/models.py:56 +#: balloons/models.py:55 msgid "balloon deliveries" msgstr "dostarczenia balonów" -#: balloons/models.py:70 +#: balloons/models.py:69 msgid "access key" msgstr "klucz dostępu" -#: balloons/models.py:72 +#: balloons/models.py:71 msgid "valid until" msgstr "ważne do" -#: balloons/models.py:75 balloons/models.py:76 +#: balloons/models.py:74 balloons/models.py:75 msgid "balloons delivery access data" msgstr "dane dostępu do dostarczania balonów" @@ -379,72 +380,72 @@ msgstr "Drużyna" msgid "Recently delivered" msgstr "Ostatnio dostarczone" -#: balloons/views.py:60 +#: balloons/views.py:61 msgid "No IP address detected" msgstr "Nie rozpoznano adresu IP" -#: balloons/views.py:64 +#: balloons/views.py:65 #, python-format msgid "No balloons display configured for this IP: %s" msgstr "Brak ustawień wyświetlania balonów dla IP: %s" -#: base/admin.py:81 +#: base/admin.py:80 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "Nie istnieje obiekt %(name)s z kluczem głównym %(key)r." -#: base/admin.py:89 +#: base/admin.py:88 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "Pomyślnie usunięto %(name)s \"%(obj)s\"." -#: base/admin.py:165 +#: base/admin.py:164 #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "Usunięto %(count)d %(items)s." -#: base/admin.py:179 +#: base/admin.py:178 #, python-format msgid "Cannot delete %(name)s" msgstr "Nie można usunąć %(name)s" -#: base/admin.py:181 +#: base/admin.py:180 #: base/templates/registration/delete_account_confirmation.html:10 #: contests/templates/contests/confirm_rejudge.html:17 #: contests/templates/contests/confirm_resetting_limits.html:23 msgid "Are you sure?" msgstr "Czy jesteś pewien?" -#: base/admin.py:208 +#: base/admin.py:207 #, python-format msgid "Delete selected %(verbose_name_plural)s" msgstr "Usuń wybrane %(verbose_name_plural)s" -#: base/admin.py:280 +#: base/admin.py:279 msgid "System Administration" msgstr "Administracja systemu" -#: base/admin.py:296 oi/templates/oi/sensitive_participant_info.html:4 +#: base/admin.py:295 oi/templates/oi/sensitive_participant_info.html:4 msgid "Personal info" msgstr "Dane osobowe" -#: base/admin.py:297 +#: base/admin.py:296 msgid "Permissions" msgstr "Uprawnienia" -#: base/admin.py:299 +#: base/admin.py:298 msgid "Important dates" msgstr "Ważne daty" -#: base/admin.py:309 +#: base/admin.py:308 msgid "Mark users as active" msgstr "Oznacz użytkowników jako aktywnych" -#: base/admin.py:314 +#: base/admin.py:313 msgid "Users" msgstr "Użytkownicy" -#: base/config_version_check.py:13 +#: base/config_version_check.py:14 #, python-format msgid "" "The 'CONFIG_VERSION' in your custom deployment directory " @@ -480,7 +481,7 @@ msgstr "%s to klasa abstrakcyjna i nie może zostać tu użyta" msgid "Enumeration" msgstr "Wyliczenie" -#: base/fields.py:232 oi/models.py:71 oi/models.py:105 +#: base/fields.py:232 oi/models.py:70 oi/models.py:104 msgid "Invalid phone number" msgstr "Niepoprawny numer telefonu" @@ -488,7 +489,7 @@ msgstr "Niepoprawny numer telefonu" msgid "Including the area code." msgstr "(wraz z numerem kierunkowym)" -#: base/fields.py:251 oi/models.py:65 oi/models.py:101 +#: base/fields.py:251 oi/models.py:64 oi/models.py:100 msgid "Enter a postal code in the format XX-XXX" msgstr "Wprowadź kod pocztowy w formacie XX-XXX" @@ -508,11 +509,11 @@ msgstr "Nie możesz zmienić swojego loginu." msgid "That email address doesn't have an associated local user account." msgstr "Ten adres email nie ma przypisanego lokalnego konta użytkownika." -#: base/management/commands/import_users.py:15 +#: base/management/commands/import_users.py:16 msgid "" msgstr "‹ścieżka_lub_URL›" -#: base/management/commands/import_users.py:19 +#: base/management/commands/import_users.py:20 #, python-format msgid "" "Creates user accounts from a CSV file with the following " @@ -528,13 +529,13 @@ msgstr "" "(odpowiednio %(columns)s) oddzielonymi przecinkami. W kolejnych wierszach " "należy umieścić dane użytkowników." -#: base/management/commands/import_users.py:30 +#: base/management/commands/import_users.py:31 #: oi/management/commands/oi_generate_dnsauth.py:28 msgid "Expected one argument" msgstr "Oczekiwano tylko jednego argumentu" -#: base/management/commands/import_users.py:81 -#: participants/management/commands/import_onsite_participants.py:106 +#: base/management/commands/import_users.py:82 +#: participants/management/commands/import_onsite_participants.py:108 #, python-format msgid "Error for user=%(user)s: %(message)s\n" msgstr "Błąd przy przetwarzaniu użytkownika %(user)s: %(message)s\n" @@ -567,7 +568,7 @@ msgstr "Menu użytkownika" msgid "Account Menu" msgstr "Menu konta" -#: base/middleware.py:96 +#: base/middleware.py:95 #, python-format msgid "" "Your login - %(login)s - contains forbidden characters. Please click OIOIOI, części SIO2 " "Project." -#: base/templates/ingredients/form.html:8 contests/models.py:324 +#: base/templates/ingredients/form.html:8 contests/models.py:325 #: mailsubmit/templates/mailsubmit/accept.html:15 problems/models.py:208 msgid "Error" msgstr "Błąd" @@ -674,18 +676,20 @@ msgid "Switch contest" msgstr "Przełącz się na inny konkurs" #: base/templates/ingredients/navbar-contests.html:26 -#: teachers/templates/teachers/widgets/contest-selection.html:23 -#: teachers/templates/teachers/widgets/contest-selection.html:37 +#: teachers/templates/teachers/contest-selection.html:23 +#: teachers/templates/teachers/contest-selection.html:37 msgid "Create a new contest" msgstr "Utwórz nowy konkurs" #: base/templates/ingredients/navbar-contests.html:32 #: simpleui/templates/simpleui/main_dashboard/dashboard.html:34 +#: szkopul/views.py:9 msgid "Problemset" msgstr "Baza zadań" #: base/templates/ingredients/navbar-menu.html:4 -#: portals/templates/portals/navbar-menu.html:7 +#: portals/templates/portals/navbar-menu.html:4 +#: szkopul/templates/ingredients/navbar-logo-with-menu.html:16 msgid "Toggle navigation" msgstr "Przełącz widoczność menu" @@ -704,9 +708,9 @@ msgstr "Zmieniony użytkownik" msgid "Log in" msgstr "Zaloguj się" -#: base/templates/ingredients/navbar-user.html:17 contests/admin.py:565 -#: contests/admin.py:730 mailsubmit/admin.py:74 participants/admin.py:46 -#: rankings/controllers.py:265 +#: base/templates/ingredients/navbar-user.html:17 contests/admin.py:567 +#: contests/admin.py:732 mailsubmit/admin.py:74 participants/admin.py:47 +#: rankings/controllers.py:263 msgid "Login" msgstr "Login" @@ -718,8 +722,8 @@ msgstr "Hasło" msgid "Register" msgstr "Rejestracja" -#: base/templates/ingredients/navbar-user.html:36 -#: base/templates/ingredients/navbar-user.html:38 +#: base/templates/ingredients/navbar-user.html:35 +#: base/templates/ingredients/navbar-user.html:37 msgid "Maintenance Mode is ON" msgstr "Tryb serwisowy jest WŁĄCZONY" @@ -933,7 +937,7 @@ msgstr "Wypełnij poniższy formularz aby założyć konto." #: base/templates/registration/registration_form.html:27 #: base/templates/simple-centered-form.html:12 #: contests/templates/contests/my_submissions.html:14 -#: contests/templates/contests/submit.html:13 contests/views.py:159 +#: contests/templates/contests/submit.html:13 contests/views.py:164 #: dashboard/views.py:34 forum/templates/forum/edit_post.html:30 #: forum/templates/forum/thread.html:49 #: forum/templates/forum/thread_add.html:26 @@ -941,7 +945,7 @@ msgstr "Wypełnij poniższy formularz aby założyć konto." #: mailsubmit/templates/mailsubmit/submit.html:26 #: newsfeed/templates/newsfeed/news-form.html:8 #: participants/templates/participants/registration.html:30 -#: problems/problem_site.py:118 +#: problems/problem_site.py:117 #: problems/templates/admin/problems/problem-add.html:13 #: problems/templates/admin/problems/problem-reupload.html:33 #: problems/templates/problems/package-source.html:7 @@ -1239,7 +1243,7 @@ msgstr "Logowanie testowe" msgid "Too large value for progress bar" msgstr "Zbyt duża wartość paska postępu" -#: base/utils/user_selection.py:170 +#: base/utils/user_selection.py:169 #, python-format msgid "User not found or you do not have access to this user account: %s" msgstr "Użytkownik nie istnieje lub nie masz do niego dostępu: %s" @@ -1311,18 +1315,18 @@ msgstr "Początek reklamacji" msgid "Disable complaints" msgstr "Koniec reklamacji" -#: complaints/models.py:19 contestexcl/models.py:55 globalmessage/models.py:9 -#: ipauthsync/models.py:31 mailsubmit/models.py:49 +#: complaints/models.py:19 contestexcl/models.py:54 globalmessage/models.py:9 +#: ipauthsync/models.py:30 mailsubmit/models.py:48 msgid "enabled" msgstr "włączone" -#: complaints/models.py:20 contestexcl/models.py:59 contests/models.py:187 -#: ipauthsync/models.py:33 mailsubmit/models.py:50 +#: complaints/models.py:20 contestexcl/models.py:58 contests/models.py:188 +#: ipauthsync/models.py:32 mailsubmit/models.py:49 msgid "start date" msgstr "data rozpoczęcia" -#: complaints/models.py:22 contestexcl/models.py:61 contests/models.py:189 -#: ipauthsync/models.py:34 mailsubmit/models.py:52 +#: complaints/models.py:22 contestexcl/models.py:60 contests/models.py:190 +#: ipauthsync/models.py:33 mailsubmit/models.py:51 msgid "end date" msgstr "data zakończenia" @@ -1391,10 +1395,10 @@ msgstr "" "\n" "otrzymaliśmy następującą reklamację:" -#: complaints/templates/complaints/jury-email.txt:5 contests/admin.py:600 +#: complaints/templates/complaints/jury-email.txt:5 contests/admin.py:602 #: evalmgr/admin.py:163 prizes/templates/prizes/email_footer.txt:4 #: questions/templates/admin/questions/change_message.html:32 -#: rankings/controllers.py:224 statistics/controllers.py:18 +#: rankings/controllers.py:222 statistics/controllers.py:21 msgid "Contest" msgstr "Konkurs" @@ -1402,10 +1406,10 @@ msgstr "Konkurs" msgid "Participant status" msgstr "Uczestnictwo" -#: complaints/templates/complaints/jury-email.txt:8 contests/admin.py:677 -#: contests/admin.py:681 +#: complaints/templates/complaints/jury-email.txt:8 contests/admin.py:679 +#: contests/admin.py:683 #: dashboard/templates/dashboard/dashboard-submissions.html:3 -#: problems/problem_site.py:96 +#: problems/problem_site.py:95 #: simpleui/templates/simpleui/contest/contest.html:60 msgid "Submissions" msgstr "Zgłoszenia" @@ -1552,15 +1556,15 @@ msgstr "" "Przekierowaliśmy Cię do tego konkursu, ponieważ w tym momencie nie możesz " "startować w żadnym innym." -#: contestexcl/models.py:41 +#: contestexcl/models.py:40 msgid "Enable exclusiveness" msgstr "Włącz wykluczanie" -#: contestexcl/models.py:44 +#: contestexcl/models.py:43 msgid "Disable exclusiveness" msgstr "Wyłącz wykluczanie" -#: contestexcl/models.py:56 +#: contestexcl/models.py:55 msgid "" "Caution! If you'll disable exclusiveness and you are not superadmin you " "won't be able to enable it again!" @@ -1568,15 +1572,15 @@ msgstr "" "Uwaga! Jeśli wyłączysz wykluczanie i nie jesteś superadminem nie będziesz " "mógł jej włączyć ponownie!" -#: contestexcl/models.py:66 +#: contestexcl/models.py:65 msgid "exclusiveness config" msgstr "konfiguracja wykluczania" -#: contestexcl/models.py:67 +#: contestexcl/models.py:66 msgid "exclusiveness configs" msgstr "konfiguracje wykluczania" -#: contestexcl/models.py:77 ipauthsync/models.py:57 +#: contestexcl/models.py:76 ipauthsync/models.py:56 msgid "The start date should precede the end date" msgstr "Data początku powinna być wcześniejsza od daty zakończenia." @@ -1630,27 +1634,27 @@ msgstr "" msgid "Filename" msgstr "Nazwa pliku" -#: contestlogo/models.py:19 +#: contestlogo/models.py:21 msgid "logo image" msgstr "obrazek z logo" -#: contestlogo/models.py:22 +#: contestlogo/models.py:24 msgid "external contest webpage url" msgstr "adres zewnętrznej strony konkursu" -#: contestlogo/models.py:33 contestlogo/models.py:34 +#: contestlogo/models.py:35 contestlogo/models.py:36 msgid "contest logo" msgstr "logo konkursu" -#: contestlogo/models.py:45 +#: contestlogo/models.py:47 msgid "icon image" msgstr "obrazek z ikonką" -#: contestlogo/models.py:57 +#: contestlogo/models.py:59 msgid "contest icon" msgstr "ikonka konkursu" -#: contestlogo/models.py:58 +#: contestlogo/models.py:60 msgid "contest icons" msgstr "ikonki konkursu" @@ -1662,99 +1666,99 @@ msgstr "Ikona konkursu" msgid "Contest logo" msgstr "Logo konkursu" -#: contests/admin.py:131 problems/admin.py:73 problems/admin.py:97 +#: contests/admin.py:133 problems/admin.py:72 problems/admin.py:96 msgid "Content file" msgstr "Plik z zawartością" -#: contests/admin.py:242 simpleui/templates/simpleui/contest/contest.html:40 +#: contests/admin.py:244 simpleui/templates/simpleui/contest/contest.html:40 #: simpleui/templates/simpleui/contest/ingredients/round.html:20 #: simpleui/templates/simpleui/main_dashboard/contest.html:7 msgid "Settings" msgstr "Ustawienia" -#: contests/admin.py:271 problems/admin.py:320 +#: contests/admin.py:273 problems/admin.py:319 #: problems/templates/problems/problemset/problem-site.html:47 msgid "Edit problem" msgstr "Edytuj" -#: contests/admin.py:303 quizzes/admin.py:73 +#: contests/admin.py:305 quizzes/admin.py:73 msgid "Edit quiz questions" msgstr "Edytuj pytania" -#: contests/admin.py:317 programs/admin.py:232 +#: contests/admin.py:319 programs/admin.py:232 #: programs/templates/programs/admin/model_solutions.html:4 #: programs/templates/programs/admin/model_solutions.html:17 msgid "Model solutions" msgstr "Rozwiązania wzorcowe" -#: contests/admin.py:318 +#: contests/admin.py:320 msgid "Problem site" msgstr "Strona zadania" -#: contests/admin.py:319 +#: contests/admin.py:321 msgid "Reset tests limits" msgstr "Przywróć limity testów" -#: contests/admin.py:320 +#: contests/admin.py:322 msgid "Attach to another contest" msgstr "Dodaj do innego konkursu" -#: contests/admin.py:328 +#: contests/admin.py:330 msgid "Reupload package" msgstr "Wgraj ponownie paczkę" -#: contests/admin.py:333 +#: contests/admin.py:335 msgid "Rejudge all submissions for problem" msgstr "Oceń ponownie wszystkie zgłoszenia zadania" -#: contests/admin.py:339 contests/templates/contests/submission.html:46 -#: problems/admin.py:333 +#: contests/admin.py:341 contests/templates/contests/submission.html:46 +#: problems/admin.py:332 #: problems/templates/problems/problemset/problem-site.html:43 #: programs/templates/programs/my_submissions_table_diff.html:5 #: similarsubmits/templates/similarsubmits/programming_similar_submissions_admin.html:29 msgid "Actions" msgstr "Czynności" -#: contests/admin.py:345 contests/admin.py:581 contests/forms.py:108 +#: contests/admin.py:347 contests/admin.py:583 contests/forms.py:108 #: contests/templates/contests/my_submissions_table.html:24 #: evalmgr/admin.py:154 mailsubmit/forms.py:14 #: programs/templates/programs/submission_header.html:110 -#: publicsolutions/forms.py:8 +#: publicsolutions/forms.py:9 #: publicsolutions/templates/publicsolutions/publish-table.html:7 #: publicsolutions/templates/publicsolutions/solutions-table.html:7 #: similarsubmits/admin.py:85 #: simpleui/templates/simpleui/contest/ingredients/submissions.html:9 -#: statistics/controllers.py:19 +#: statistics/controllers.py:22 #: testrun/templates/testrun/submission-header.html:11 msgid "Problem" msgstr "Zadanie" -#: contests/admin.py:352 +#: contests/admin.py:354 msgid "Symbol" msgstr "Skrót" -#: contests/admin.py:364 problems/admin.py:306 problems/forms.py:38 +#: contests/admin.py:366 problems/admin.py:305 problems/forms.py:38 #: testspackages/admin.py:51 msgid "Package file" msgstr "Paczka" -#: contests/admin.py:388 contests/templates/contests/problems_list.html:5 -#: contests/templates/contests/problems_list.html:8 contests/views.py:64 +#: contests/admin.py:390 contests/templates/contests/problems_list.html:5 +#: contests/templates/contests/problems_list.html:8 contests/views.py:69 #: dashboard/views.py:28 msgid "Problems" msgstr "Zadania" -#: contests/admin.py:420 contests/models.py:335 programs/models.py:45 -#: programs/models.py:129 questions/models.py:34 +#: contests/admin.py:422 contests/models.py:336 programs/models.py:47 +#: programs/models.py:131 questions/models.py:34 msgid "kind" msgstr "rodzaj" -#: contests/admin.py:434 contests/admin.py:692 contests/models.py:131 -#: contests/models.py:200 contests/models.py:250 +#: contests/admin.py:436 contests/admin.py:694 contests/models.py:132 +#: contests/models.py:201 contests/models.py:251 msgid "round" msgstr "runda" -#: contests/admin.py:524 +#: contests/admin.py:526 #, python-format msgid "Queued one submission for rejudge." msgid_plural "Queued %(counter)d submissions for rejudge." @@ -1763,7 +1767,7 @@ msgstr[1] "Zakolejkowano %(counter)d zgłoszenia do ponownej oceny." msgstr[2] "Zakolejkowano %(counter)d zgłoszeń do ponownej oceny." msgstr[3] "Zakolejkowano %(counter)d zgłoszeń do ponownej oceny." -#: contests/admin.py:530 +#: contests/admin.py:532 msgid "" "Cannot rejudge submissions due to lack of active reports for one or more " "submissions" @@ -1771,54 +1775,55 @@ msgstr "" "Nie można ponownie ocenić zgłoszeń z powodu braku aktywnych raportów w " "niektórych z nich. Pewnie jeszcze nie zostały ocenione." -#: contests/admin.py:572 contests/admin.py:738 contests/admin.py:772 -#: disqualification/admin.py:70 mailsubmit/admin.py:81 participants/admin.py:57 +#: contests/admin.py:574 contests/admin.py:740 contests/admin.py:774 +#: disqualification/admin.py:71 mailsubmit/admin.py:81 participants/admin.py:58 #: programs/templates/programs/submission_header.html:108 #: similarsubmits/admin.py:75 msgid "User name" msgstr "Nazwa użytkownika" -#: contests/admin.py:590 +#: contests/admin.py:592 #: contests/templates/contests/my_submissions_table.html:27 #: contests/templates/contests/submission.html:50 evalmgr/admin.py:175 #: participants/templates/participants/participant_info.html:19 -#: problems/admin.py:296 programs/templates/programs/submission_header.html:112 +#: problems/admin.py:295 programs/templates/programs/submission_header.html:112 +#: quizzes/models.py:74 #: simpleui/templates/simpleui/contest/ingredients/submissions.html:10 #: testrun/templates/testrun/submission-header.html:13 msgid "Status" msgstr "Status" -#: contests/admin.py:613 +#: contests/admin.py:615 #, python-format msgid "" "You have selected %(sub_count)d submission(s) from %(pis_count)d problem(s)" msgstr "Zaznaczono zgłoszeń: %(sub_count)d, zadań: %(pis_count)d" -#: contests/admin.py:637 +#: contests/admin.py:639 msgid "Rejudge selected submissions" msgstr "Oceń ponownie wybrane zgłoszenia" -#: contests/admin.py:686 +#: contests/admin.py:688 msgid "All submissions" msgstr "Wszystkie zgłoszenia" -#: contests/admin.py:758 +#: contests/admin.py:760 msgid "Round extensions" msgstr "Przedłużenia rund" -#: contests/admin.py:793 +#: contests/admin.py:795 msgid "Contest rights" msgstr "Uprawnienia" -#: contests/auth.py:6 +#: contests/auth.py:7 msgid "Contests permissions" msgstr "Uprawnienia do konkursów" -#: contests/controllers.py:192 +#: contests/controllers.py:193 msgid "Public contest" msgstr "Konkurs publiczny" -#: contests/controllers.py:871 +#: contests/controllers.py:873 msgid "Your submission was judged." msgstr "Twoje zgłoszenie zostało ocenione." @@ -1842,7 +1847,7 @@ msgstr "Runda 1" msgid "User does not exist or you do not have enough privileges" msgstr "Użytkownik nie istnieje lub nie masz odpowiednich uprawnień" -#: contests/forms.py:185 contests/models.py:313 +#: contests/forms.py:185 contests/models.py:314 msgid "Normal" msgstr "Normalne" @@ -1908,7 +1913,7 @@ msgstr "Menu obserwatora" msgid "Personal Data Menu" msgstr "Menu danych osobowych" -#: contests/models.py:41 contests/templates/contests/select_contest.html:15 +#: contests/models.py:42 contests/templates/contests/select_contest.html:15 #: contests/templates/contests/submission.html:47 mailsubmit/forms.py:76 #: problems/templates/problems/problemset/problem-list.html:13 #: problems/templates/problems/problemset/select-contest.html:14 @@ -1916,27 +1921,27 @@ msgstr "Menu danych osobowych" msgid "ID" msgstr "ID" -#: contests/models.py:42 portals/models.py:12 problems/models.py:53 +#: contests/models.py:43 portals/models.py:13 problems/models.py:53 msgid "full name" msgstr "pełna nazwa" -#: contests/models.py:49 problems/models.py:58 +#: contests/models.py:50 problems/models.py:58 msgid "type" msgstr "rodzaj" -#: contests/models.py:51 +#: contests/models.py:52 msgid "creation date" msgstr "data utworzenia" -#: contests/models.py:53 +#: contests/models.py:54 msgid "default submissions limit" msgstr "domyślny limit zgłoszeń" -#: contests/models.py:56 +#: contests/models.py:57 msgid "contact email" msgstr "email kontaktowy" -#: contests/models.py:57 +#: contests/models.py:58 msgid "" "Address of contest owners. Sent emails related to this contest (i.e. " "submission confirmations) will have the return address set to this value. " @@ -1946,11 +1951,11 @@ msgstr "" "potwierdzenia wysyłek) będą miały ustawiony adres zwrotny na ten adres.\n" "Domyślnie (jeśli pozostawiono pusty) jest to adres administratorów systemu." -#: contests/models.py:62 +#: contests/models.py:63 msgid "judging priority" msgstr "priorytet sprawdzania" -#: contests/models.py:65 +#: contests/models.py:66 msgid "" "Contest with higher judging priority is always judged before contest with " "lower judging priority." @@ -1958,11 +1963,11 @@ msgstr "" "Konkurs o wyższym priorytecie oceniania jest zawsze oceniany przed inym " "konkursem, z niższym priorytetem." -#: contests/models.py:68 +#: contests/models.py:69 msgid "judging weight" msgstr "waga sprawdzania" -#: contests/models.py:72 +#: contests/models.py:73 msgid "" "If some contests have the same judging priority, the judging resources are " "allocated proportionally to their weights." @@ -1970,49 +1975,49 @@ msgstr "" "Jeśli jakieś konkursy mają takie same priorytety, zasoby potrzebne do " "oceniania są rozdzielane między nie proporcjonalnie do ich wag." -#: contests/models.py:85 +#: contests/models.py:86 msgid "contests" msgstr "konkursy" -#: contests/models.py:88 +#: contests/models.py:89 msgid "Can administer the contest" msgstr "Może administrować konkursem" -#: contests/models.py:89 +#: contests/models.py:90 msgid "Can observe the contest" msgstr "Może obserwować konkurs" -#: contests/models.py:90 +#: contests/models.py:91 msgid "Can enter the contest" msgstr "Może uczestniczyć w konkursie" -#: contests/models.py:91 +#: contests/models.py:92 msgid "Has access to the private data of users" msgstr "Ma dostęp do prywatnych danych użytkowników" -#: contests/models.py:127 contests/models.py:527 problems/models.py:176 +#: contests/models.py:128 contests/models.py:528 problems/models.py:176 msgid "description" msgstr "opis" -#: contests/models.py:129 disqualification/models.py:19 newsfeed/models.py:15 +#: contests/models.py:130 disqualification/models.py:20 newsfeed/models.py:14 #: problems/models.py:145 problems/models.py:178 questions/models.py:37 #: questions/models.py:100 msgid "content" msgstr "treść" -#: contests/models.py:133 questions/models.py:41 +#: contests/models.py:134 questions/models.py:41 msgid "publication date" msgstr "data publikacji" -#: contests/models.py:147 problems/models.py:189 +#: contests/models.py:148 problems/models.py:189 msgid "attachment" msgstr "załącznik" -#: contests/models.py:148 problems/models.py:190 +#: contests/models.py:149 problems/models.py:190 msgid "attachments" msgstr "załączniki" -#: contests/models.py:155 +#: contests/models.py:156 #, python-format msgid "End of %(name)s (+ %(ext)d min)" msgid_plural "End of %(name)s (+ %(ext)d mins)" @@ -2021,41 +2026,41 @@ msgstr[1] "Koniec %(name)s (+ %(ext)d min)" msgstr[2] "Koniec %(name)s (+ %(ext)d min)" msgstr[3] "Koniec %(name)s (+ %(ext)d min)" -#: contests/models.py:160 +#: contests/models.py:161 #, python-format msgid "End of %s" msgstr "%s – koniec" -#: contests/models.py:165 +#: contests/models.py:166 #, python-format msgid "Start of %s" msgstr "%s – początek" -#: contests/models.py:174 +#: contests/models.py:175 #, python-format msgid "Results of %s" msgstr "%s – wyniki" -#: contests/models.py:179 +#: contests/models.py:180 #, python-format msgid "Public results of %s" msgstr "%s – ogłoszenie wyników" -#: contests/models.py:184 oi/models.py:61 prizes/models.py:121 -#: prizes/models.py:273 problems/models.py:328 programs/models.py:40 -#: programs/models.py:126 sinolpack/models.py:31 +#: contests/models.py:185 oi/models.py:60 prizes/models.py:122 +#: prizes/models.py:274 problems/models.py:328 programs/models.py:42 +#: programs/models.py:128 sinolpack/models.py:30 msgid "name" msgstr "nazwa" -#: contests/models.py:191 +#: contests/models.py:192 msgid "results date" msgstr "data ogłoszenia wyników" -#: contests/models.py:193 +#: contests/models.py:194 msgid "public results date" msgstr "data publikacji wyników" -#: contests/models.py:194 +#: contests/models.py:195 msgid "" "Participants may learn about others' results, what exactly happens depends " "on the type of the contest (eg. rankings, contestants' solutions are " @@ -2064,51 +2069,51 @@ msgstr "" "Uczestnicy mogą dowiedzieć się o wynikach innych; to co dokładnie zostanie " "ogłoszone, zależy od typu konkursu (np. rankingi, rozwiązania zawodników)." -#: contests/models.py:197 +#: contests/models.py:198 msgid "is trial" msgstr "próbna" -#: contests/models.py:201 +#: contests/models.py:202 msgid "rounds" msgstr "rundy" -#: contests/models.py:211 +#: contests/models.py:212 msgid "Start date should be before end date." msgstr "Data początkowa powinna poprzedzać datę końcową." -#: contests/models.py:214 +#: contests/models.py:215 msgid "" "If you specify a public results date, you should enter a results date too." msgstr "" "Przy ustawianiu daty publikacji wyników, należy ustawić również datę " "ogłoszenia wyników samym uczestnikom." -#: contests/models.py:217 +#: contests/models.py:218 msgid "Results cannot appear later than public results." msgstr "Ogłoszenie wyników nie może nastąpić później niż ich publikacja." -#: contests/models.py:227 +#: contests/models.py:228 #, python-format msgid "Round %d" msgstr "Runda %d" -#: contests/models.py:230 +#: contests/models.py:231 msgid "Visible" msgstr "Widoczne" -#: contests/models.py:231 teams/models.py:55 +#: contests/models.py:232 teams/models.py:55 msgid "Not visible" msgstr "Niewidoczne" -#: contests/models.py:232 +#: contests/models.py:233 msgid "Auto" msgstr "Automatycznie" -#: contests/models.py:238 +#: contests/models.py:239 msgid "statements visibility" msgstr "widoczność treści zadań" -#: contests/models.py:239 +#: contests/models.py:240 msgid "" "If set to Auto, the visibility is determined according to the type of the " "contest." @@ -2116,157 +2121,157 @@ msgstr "" "W przypadku ustawienia na „Domyślne”, o widoczności treści zdecyduje typ " "konkursu." -#: contests/models.py:243 +#: contests/models.py:244 msgid "problem statement config" msgstr "konfiguracja treści zadania" -#: contests/models.py:244 +#: contests/models.py:245 msgid "problem statement configs" msgstr "konfiguracja treści zadania" -#: contests/models.py:253 portals/models.py:15 problems/models.py:55 +#: contests/models.py:254 portals/models.py:16 problems/models.py:55 msgid "short name" msgstr "skrót" -#: contests/models.py:257 +#: contests/models.py:258 msgid "submissions limit" msgstr "limit zgłoszeń" -#: contests/models.py:262 +#: contests/models.py:263 msgid "needs rejudge" msgstr "wymaga ponownej oceny" -#: contests/models.py:265 programs/models.py:263 testrun/models.py:65 +#: contests/models.py:266 programs/models.py:265 testrun/models.py:67 msgid "problem instance" msgstr "zadanie" -#: contests/models.py:266 +#: contests/models.py:267 msgid "problem instances" msgstr "zadania" -#: contests/models.py:317 oisubmit/templates/oisubmit/submission-footer.html:6 +#: contests/models.py:318 oisubmit/templates/oisubmit/submission-footer.html:6 msgid "Suspected" msgstr "Podejrzane" -#: contests/models.py:319 +#: contests/models.py:320 msgid "Ignored-Hidden" msgstr "Zignorowane i ukryte" -#: contests/models.py:322 +#: contests/models.py:323 msgid "Pending" msgstr "Oczekuje" -#: contests/models.py:323 +#: contests/models.py:324 msgid "OK" msgstr "OK" -#: contests/models.py:333 mailsubmit/models.py:30 newsfeed/models.py:13 +#: contests/models.py:334 mailsubmit/models.py:29 newsfeed/models.py:12 #: questions/models.py:39 msgid "date" msgstr "data" -#: contests/models.py:337 programs/models.py:52 +#: contests/models.py:338 programs/models.py:54 msgid "score" msgstr "punkty" -#: contests/models.py:339 problems/models.py:233 +#: contests/models.py:340 problems/models.py:233 msgid "status" msgstr "stan" -#: contests/models.py:341 +#: contests/models.py:342 msgid "comment" msgstr "komentarz" -#: contests/models.py:348 disqualification/models.py:15 -#: publicsolutions/models.py:9 scoresreveal/models.py:9 +#: contests/models.py:349 disqualification/models.py:16 +#: publicsolutions/models.py:10 scoresreveal/models.py:10 #: similarsubmits/models.py:22 msgid "submission" msgstr "zgłoszenie" -#: contests/models.py:349 +#: contests/models.py:350 msgid "submissions" msgstr "zgłoszenia" -#: contests/models.py:374 +#: contests/models.py:375 msgid "Final report" msgstr "Raport końcowy" -#: contests/models.py:375 contests/templates/contests/failure_report.html:3 +#: contests/models.py:376 contests/templates/contests/failure_report.html:3 msgid "Evaluation failure report" msgstr "Raport awarii sprawdzaczki" -#: contests/models.py:378 +#: contests/models.py:379 msgid "Inactive" msgstr "Nieaktywny" -#: contests/models.py:379 participants/models.py:19 +#: contests/models.py:380 participants/models.py:18 msgid "Active" msgstr "Aktywny" -#: contests/models.py:380 +#: contests/models.py:381 msgid "Superseded" msgstr "Przestarzały" -#: contests/models.py:477 participants/forms.py:51 +#: contests/models.py:478 participants/forms.py:52 msgid "Extra time (in minutes)" msgstr "Dodatkowy czas (w minutach)" -#: contests/models.py:481 +#: contests/models.py:482 msgid "round time extension" msgstr "przedłużenie trwania rundy" -#: contests/models.py:482 +#: contests/models.py:483 msgid "round time extensions" msgstr "przedłużenia trwania rundy" -#: contests/models.py:488 +#: contests/models.py:489 msgid "Admin" msgstr "Administrator" -#: contests/models.py:489 +#: contests/models.py:490 msgid "Observer" msgstr "Obserwator" -#: contests/models.py:490 +#: contests/models.py:491 msgid "Personal Data" msgstr "Dane osobowe" -#: contests/models.py:497 +#: contests/models.py:498 msgid "permission" msgstr "Uprawnienie" -#: contests/models.py:501 +#: contests/models.py:502 msgid "contest permission" msgstr "Uprawnienia" -#: contests/models.py:502 +#: contests/models.py:503 msgid "contest permissions" msgstr "Uprawnienia" -#: contests/models.py:512 +#: contests/models.py:513 msgid "last view" msgstr "ostatnio odwiedzony" -#: contests/models.py:528 +#: contests/models.py:529 msgid "url" msgstr "odnośnik" -#: contests/models.py:532 +#: contests/models.py:533 msgid "contest menu link" msgstr "Odnośnik w menu konkursu" -#: contests/models.py:533 +#: contests/models.py:534 msgid "contest menu links" msgstr "Odnośniki w menu konkursu" -#: contests/scores.py:69 +#: contests/scores.py:70 #, python-format msgid "" "Score must look like this: ':', for example 'int:100', not '%s'." msgstr "" "Pole punktów musi mieć postać „:”, np. \"int:100\", a nie „%s”." -#: contests/scores.py:76 +#: contests/scores.py:77 #, python-format msgid "Unrecognized score type '%s'" msgstr "Nieznany typ wyniku „%s”" @@ -2365,8 +2370,8 @@ msgstr "" "error_handlers pominięte dla czytelności):" #: contests/templates/contests/files.html:6 -#: contests/templates/contests/files.html:20 contests/views.py:275 -#: problems/problem_site.py:80 +#: contests/templates/contests/files.html:20 contests/views.py:280 +#: problems/problem_site.py:79 msgid "Files" msgstr "Pliki" @@ -2376,7 +2381,7 @@ msgstr "Dodaj plik" #: contests/templates/contests/html_statement.html:5 #: contests/templates/contests/no_problem_statement.html:4 -#: problems/problem_site.py:58 +#: problems/problem_site.py:57 msgid "Problem statement" msgstr "Treść zadania" @@ -2422,7 +2427,7 @@ msgstr "" #: contests/templates/contests/my_submissions.html:5 #: contests/templates/contests/my_submissions.html:17 -#: contests/templates/contests/tests_choice.html:5 contests/views.py:176 +#: contests/templates/contests/tests_choice.html:5 contests/views.py:181 msgid "My submissions" msgstr "Moje zgłoszenia" @@ -2523,7 +2528,7 @@ msgid "User's round time extensions" msgstr "Przedłużenia trwania rundy dla użytkownika" #: contests/templates/contests/roundtimeextension_info.html:8 -#: oireports/forms.py:102 problems/forms.py:25 +#: oireports/forms.py:104 problems/forms.py:25 msgid "Round" msgstr "Runda" @@ -2571,26 +2576,26 @@ msgstr "Informacje o użytkowniku" msgid "User's submissions" msgstr "Zgłoszenia użytkownika" -#: contests/views.py:253 +#: contests/views.py:258 msgid "Rejudge request received." msgstr "Zapisano zlecenie ponownej oceny." -#: contests/views.py:267 +#: contests/views.py:272 msgid "Submission kind has been changed." msgstr "Rodzaj zgłoszenia został zmieniony." -#: contests/views.py:270 +#: contests/views.py:275 #, python-format msgid "%(kind)s is not valid kind for submission %(submission_id)d." msgstr "" "%(kind)s nie jest poprawnym rodzajem, jaki może przyjąć zgłoszenie " "%(submission_id)d." -#: contests/views.py:377 +#: contests/views.py:382 msgid "See user info page" msgstr "Zobacz informacje o użytkowniku" -#: contests/views.py:396 +#: contests/views.py:401 #, python-format msgid "%(count)d rejudge request received." msgid_plural "%(count)d rejudge requests reveived." @@ -2599,11 +2604,11 @@ msgstr[1] "Zapisano %(count)d zlecenia ponownej oceny." msgstr[2] "Zapisano %(count)d zleceń ponownej oceny." msgstr[3] "Zapisano %(count)d zleceń ponownej oceny." -#: contests/views.py:414 +#: contests/views.py:419 msgid "Tests limits resetted successfully" msgstr "Zresetowanie limitów powiodło się" -#: contests/views.py:451 +#: contests/views.py:456 msgid "Problem {} added successfully." msgstr "Dodano zadanie {}." @@ -2611,19 +2616,19 @@ msgstr "Dodano zadanie {}." msgid "You can use the following tags and attributes: {}." msgstr "Możesz używać następujących tagów i atrybutów: {}." -#: dashboard/menu.py:6 +#: dashboard/menu.py:7 msgid "Top Links Menu" msgstr "Menu górnych linków" -#: dashboard/models.py:8 globalmessage/models.py:8 +#: dashboard/models.py:9 globalmessage/models.py:8 msgid "message" msgstr "wiadomość" -#: dashboard/models.py:11 +#: dashboard/models.py:12 msgid "dashboard message" msgstr "wiadomość na stronie startowej" -#: dashboard/models.py:12 +#: dashboard/models.py:13 msgid "dashboard messages" msgstr "wiadomość na stronie startowej" @@ -2703,40 +2708,40 @@ msgstr "Pokaż wszystkie" msgid "Ranking" msgstr "Ranking" -#: disqualification/admin.py:66 +#: disqualification/admin.py:67 #: programs/templates/programs/submission_header.html:98 #: similarsubmits/admin.py:71 msgid "Submission" msgstr "Zgłoszenie" -#: disqualification/admin.py:74 disqualification/controllers.py:278 +#: disqualification/admin.py:75 disqualification/controllers.py:278 #: oisubmit/templates/oisubmit/submission-footer.html:18 #: oisubmit/templates/received-suspected.html:6 #: portals/templates/portals/create-global-portal.html:10 #: portals/templates/portals/create-user-portal.html:10 #: portals/templates/portals/delete-node.html:11 -#: portals/templates/portals/delete-portal.html:10 scoresreveal/admin.py:15 +#: portals/templates/portals/delete-portal.html:10 scoresreveal/admin.py:16 #: scoresreveal/templates/scoresreveal/submission-footer.html:46 msgid "Yes" msgstr "Tak" -#: disqualification/admin.py:74 disqualification/controllers.py:278 +#: disqualification/admin.py:75 disqualification/controllers.py:278 #: oisubmit/templates/oisubmit/submission-footer.html:20 #: oisubmit/templates/received-suspected.html:9 #: portals/templates/portals/create-global-portal.html:11 #: portals/templates/portals/create-user-portal.html:11 #: portals/templates/portals/delete-node.html:12 -#: portals/templates/portals/delete-portal.html:11 scoresreveal/admin.py:16 +#: portals/templates/portals/delete-portal.html:11 scoresreveal/admin.py:17 #: scoresreveal/templates/scoresreveal/submission-footer.html:45 msgid "No" msgstr "Nie" -#: disqualification/admin.py:75 +#: disqualification/admin.py:76 #: similarsubmits/templates/similarsubmits/programming_similar_submissions_admin.html:28 msgid "Guilty" msgstr "Winny" -#: disqualification/admin.py:91 +#: disqualification/admin.py:92 msgid "Custom disqualification" msgstr "Dyskwalifikacje" @@ -2744,19 +2749,19 @@ msgstr "Dyskwalifikacje" msgid "Disqualified" msgstr "Zdyskwalifikowany" -#: disqualification/models.py:18 newsfeed/models.py:14 +#: disqualification/models.py:19 newsfeed/models.py:13 msgid "title" msgstr "tytuł" -#: disqualification/models.py:23 +#: disqualification/models.py:24 msgid "disqualification" msgstr "dyskwalifikacja" -#: disqualification/models.py:24 +#: disqualification/models.py:25 msgid "disqualifications" msgstr "dyskwalifikacje" -#: disqualification/models.py:28 +#: disqualification/models.py:29 msgid "The submission does not match the user." msgstr "To nie jest zgłoszenie wybranego użytkownika." @@ -2801,7 +2806,7 @@ msgid "(not guilty)" msgstr "(niewinny)" #: disqualification/templates/disqualification/reason.html:11 -#: newsfeed/templates/newsfeed/widgets/news.html:17 +#: newsfeed/templates/newsfeed/news.html:17 #: similarsubmits/templates/similarsubmits/programming_similar_submissions_admin.html:16 msgid "Edit" msgstr "Edytuj" @@ -2894,35 +2899,35 @@ msgstr "Kolejka sprawdzania" msgid "Contest Queued Jobs" msgstr "Zadania zakolejkowane w ramach konkursu" -#: evalmgr/models.py:12 +#: evalmgr/models.py:11 msgid "Queued" msgstr "W kolejce" -#: evalmgr/models.py:13 +#: evalmgr/models.py:12 msgid "In progress" msgstr "Przetwarzane" -#: evalmgr/models.py:14 +#: evalmgr/models.py:13 msgid "Cancelled" msgstr "Anulowane" -#: evalmgr/models.py:15 +#: evalmgr/models.py:14 msgid "Waiting" msgstr "Oczekujące" -#: evalmgr/models.py:29 +#: evalmgr/models.py:28 msgid "Queued job" msgstr "Zakolejkowane zadanie" -#: evalmgr/models.py:30 +#: evalmgr/models.py:29 msgid "Queued jobs" msgstr "Zakolejkowane zadania" -#: evalmgr/models.py:39 +#: evalmgr/models.py:38 msgid "JSON-encoded evaluation environ" msgstr "Środowisko oceniania w formacie JSON" -#: evalmgr/models.py:41 +#: evalmgr/models.py:40 msgid "Time and date when the environ was saved" msgstr "Czas ostatniego zapisu środowiska oceniania" @@ -2944,31 +2949,31 @@ msgstr "Wybierz rundę" msgid "Only final submissions" msgstr "Tylko ostatnie zgłoszenia" -#: filetracker/management/commands/collectgarbage.py:14 +#: filetracker/management/commands/collectgarbage.py:15 msgid "Delete all orphaned files older than specified number of days." msgstr "Usuwa osierocone pliki starsze niż podana liczba dni." -#: filetracker/management/commands/collectgarbage.py:18 +#: filetracker/management/commands/collectgarbage.py:19 msgid "" "Orphaned files older than DAYS days will be deleted. Default value is 30." msgstr "" "Osierocone pliki starsze niż DNI dni zostaną usunięte. Domyślna wartość to " "30." -#: filetracker/management/commands/collectgarbage.py:20 +#: filetracker/management/commands/collectgarbage.py:21 msgid "DAYS" msgstr "DNI" -#: filetracker/management/commands/collectgarbage.py:23 +#: filetracker/management/commands/collectgarbage.py:24 msgid "If set, the orphaned files will only be displayed, not deleted." msgstr "" "Jeśli ustawione, osierocone pliki będą jedynie wyświetlone, a nie usuwane." -#: filetracker/management/commands/collectgarbage.py:54 +#: filetracker/management/commands/collectgarbage.py:55 msgid "No files to delete." msgstr "Brak plików do usunięcia." -#: filetracker/management/commands/collectgarbage.py:57 +#: filetracker/management/commands/collectgarbage.py:58 #, python-format msgid "The following %d file is scheduled for deletion:" msgid_plural "The following %d files are scheduled for deletion:" @@ -2977,7 +2982,7 @@ msgstr[1] "Następujące %d pliki zostaną usunięte:" msgstr[2] "Następujące %d plików zostanie usuniętych:" msgstr[3] "Następujące %d plików zostanie usuniętych:" -#: filetracker/management/commands/collectgarbage.py:65 +#: filetracker/management/commands/collectgarbage.py:66 #, python-format msgid "%d file scheduled for deletion." msgid_plural "%d files scheduled for deletion." @@ -2986,7 +2991,7 @@ msgstr[1] "%d pliki zostaną usunięte." msgstr[2] "%d plików zostanie usuniętych." msgstr[3] "%d plików zostanie usuniętych." -#: filetracker/management/commands/collectgarbage.py:70 +#: filetracker/management/commands/collectgarbage.py:71 #, python-format msgid "Deleting the following %d file:" msgid_plural "Deleting the following %d files:" @@ -2995,7 +3000,7 @@ msgstr[1] "Usuwanie następujących %d plików:" msgstr[2] "Usuwanie następujących %d plików:" msgstr[3] "Usuwanie następujących %d plików:" -#: filetracker/management/commands/collectgarbage.py:74 +#: filetracker/management/commands/collectgarbage.py:75 #, python-format msgid "Deleting %d file" msgid_plural "Deleting %d files" @@ -3070,96 +3075,96 @@ msgstr[3] "Usunięto stan „zgłoszony” z %(counter)d wiadomości." msgid "Dismiss reports for selected posts" msgstr "Ukryj raporty dla zaznaczonych wiadomości" -#: forum/forms.py:26 questions/templates/questions/list_table.html:15 +#: forum/forms.py:27 questions/templates/questions/list_table.html:15 #: simpleui/templates/simpleui/contest/ingredients/questions.html:12 msgid "Topic" msgstr "Temat" -#: forum/models.py:15 +#: forum/models.py:16 msgid "Lock the forum" msgstr "Zablokuj forum" -#: forum/models.py:17 +#: forum/models.py:18 msgid "Unlock the forum" msgstr "Odblokuj forum" -#: forum/models.py:24 +#: forum/models.py:25 msgid "forum is visible after lock" msgstr "forum jest widoczne po zablokowaniu" -#: forum/models.py:27 +#: forum/models.py:28 msgid "autolock date" msgstr "data automatycznego zablokowania" -#: forum/models.py:29 +#: forum/models.py:30 msgid "autounlock date" msgstr "data automatycznego odblokowania" -#: forum/models.py:32 forum/models.py:58 +#: forum/models.py:33 forum/models.py:59 msgid "forum" msgstr "forum" -#: forum/models.py:33 +#: forum/models.py:34 msgid "forums" msgstr "fora" -#: forum/models.py:59 forum/models.py:62 forum/models.py:93 +#: forum/models.py:60 forum/models.py:63 forum/models.py:94 msgid "category" msgstr "kategoria" -#: forum/models.py:63 +#: forum/models.py:64 msgid "categories" msgstr "kategorie" -#: forum/models.py:70 +#: forum/models.py:71 msgid "Threads count" msgstr "Liczba tematów" -#: forum/models.py:77 forum/models.py:108 +#: forum/models.py:78 forum/models.py:109 msgid "Posts count" msgstr "Liczba wiadomości" -#: forum/models.py:84 forum/models.py:117 +#: forum/models.py:85 forum/models.py:118 msgid "Reported posts count" msgstr "Liczba zgłoszonych wiadomości" -#: forum/models.py:94 forum/models.py:100 forum/models.py:126 +#: forum/models.py:95 forum/models.py:101 forum/models.py:127 msgid "thread" msgstr "temat" -#: forum/models.py:96 +#: forum/models.py:97 msgid "last post" msgstr "ostatnia wiadomość" -#: forum/models.py:101 +#: forum/models.py:102 msgid "threads" msgstr "tematy" -#: forum/models.py:127 forum/models.py:145 +#: forum/models.py:128 forum/models.py:146 msgid "post" msgstr "wiadomość" -#: forum/models.py:128 +#: forum/models.py:129 msgid "add date" msgstr "data dodania" -#: forum/models.py:130 +#: forum/models.py:131 msgid "last edit" msgstr "ostatnia edycja" -#: forum/models.py:132 problems/models.py:62 +#: forum/models.py:133 problems/models.py:62 msgid "author" msgstr "autor" -#: forum/models.py:133 +#: forum/models.py:134 msgid "reported" msgstr "zgłoszony" -#: forum/models.py:134 +#: forum/models.py:135 msgid "hidden" msgstr "ukryty" -#: forum/models.py:146 +#: forum/models.py:147 msgid "posts" msgstr "wiadomości" @@ -3210,7 +3215,7 @@ msgstr "Potwierdzenie usunięcia" #: forum/templates/forum/confirm_delete.html:4 #: forum/templates/forum/forum.html:5 forum/templates/forum/forum.html:30 -#: forum/templates/forum/forum.html:87 forum/views.py:20 forum/views.py:23 +#: forum/templates/forum/forum.html:87 forum/views.py:22 forum/views.py:25 msgid "Forum" msgstr "Forum" @@ -3242,7 +3247,7 @@ msgid "There is no category in the forum, sorry." msgstr "To forum nie zawiera żadnej kategorii." #: forum/templates/forum/thread-element-footer.html:12 -#: newsfeed/templates/newsfeed/widgets/news.html:8 +#: newsfeed/templates/newsfeed/news.html:8 msgid "Added" msgstr "Dodany" @@ -3297,27 +3302,27 @@ msgstr "Dodaj wiadomość" msgid "Add thread" msgstr "Dodaj temat" -#: forum/utils.py:81 +#: forum/utils.py:82 msgid "This forum is locked, it is not possible to add or edit posts right now" msgstr "" "Forum jest zablokowane. Podczas blokady nie można dodawać ani edytować " "wiadomości." -#: forum/utils.py:86 +#: forum/utils.py:87 #, python-format msgid "Forum is going to be locked at %s" msgstr "Forum zostanie zablokowane o %s" -#: forum/utils.py:91 +#: forum/utils.py:92 #, python-format msgid "Forum is going to be unlocked at %s" msgstr "Forum zostanie odblokowane o %s" -#: globalmessage/admin.py:14 +#: globalmessage/admin.py:13 msgid "Auto show and hide" msgstr "Automatyczne pokazywanie i ukrywanie" -#: globalmessage/admin.py:46 +#: globalmessage/admin.py:45 msgid "Global message" msgstr "Wiadomość globalna" @@ -3329,47 +3334,47 @@ msgstr "początek" msgid "end" msgstr "koniec" -#: ipauthsync/models.py:25 +#: ipauthsync/models.py:24 msgid "Enable IP authentication sync" msgstr "Włącz synchronizację uwierzytelniania wg IP" -#: ipauthsync/models.py:28 +#: ipauthsync/models.py:27 msgid "Disable IP authentication sync" msgstr "Wyłącz synchronizację uwierzytelniania wg IP" -#: ipauthsync/models.py:37 +#: ipauthsync/models.py:36 msgid "MySQL username" msgstr "Użytkownik MySQL" -#: ipauthsync/models.py:39 +#: ipauthsync/models.py:38 msgid "MySQL password" msgstr "Hasło MySQL" -#: ipauthsync/models.py:41 +#: ipauthsync/models.py:40 msgid "MySQL database name" msgstr "Baza danych MySQL" -#: ipauthsync/models.py:46 +#: ipauthsync/models.py:45 msgid "IP authentication sync config" msgstr "Konfiguracja synchronizacji uwierzytelniania wg IP" -#: ipauthsync/models.py:47 +#: ipauthsync/models.py:46 msgid "IP authentication sync configs" msgstr "Konfiguracje synchronizacji uwierzytelniania wg IP" -#: ipauthsync/models.py:67 +#: ipauthsync/models.py:66 msgid "Warnings" msgstr "Ostrzeżenia" -#: ipauthsync/models.py:68 +#: ipauthsync/models.py:67 msgid "Mapping" msgstr "Odwzorowanie" -#: ipauthsync/models.py:71 ipauthsync/models.py:72 +#: ipauthsync/models.py:70 ipauthsync/models.py:71 msgid "IP authentication sync messages" msgstr "Komunikaty synchronizacji uwierzytelniania wg IP" -#: ipdnsauth/backends.py:20 +#: ipdnsauth/backends.py:19 msgid "IP/DNS based authentication" msgstr "Uwierzytelnianie wg IP/DNS" @@ -3407,6 +3412,7 @@ msgstr "" " " #: jotform/templates/jotform/jotform-head.html:8 +#: szkopul/templates/main-page.html:32 msgid "Send Feedback" msgstr "Kontakt" @@ -3448,27 +3454,27 @@ msgstr "Zgłoszenie pocztowe nr %s jest do innego konkursu" msgid "Invalid confirmation code" msgstr "Niepoprawny kod potwierdzenia" -#: mailsubmit/models.py:33 +#: mailsubmit/models.py:32 msgid "related submission" msgstr "powiązane zgłoszenie" -#: mailsubmit/models.py:35 +#: mailsubmit/models.py:34 msgid "accepted by" msgstr "zaakceptowane przez" -#: mailsubmit/models.py:40 +#: mailsubmit/models.py:39 msgid "Mail submissions start" msgstr "Rozpoczęcie zgłoszeń pocztowych" -#: mailsubmit/models.py:44 +#: mailsubmit/models.py:43 msgid "Mail submissions end" msgstr "Zakończenie zgłoszeń pocztowych" -#: mailsubmit/models.py:54 +#: mailsubmit/models.py:53 msgid "printout text" msgstr "tekst drukowany" -#: mailsubmit/models.py:55 +#: mailsubmit/models.py:54 msgid "" "LaTeX-formatted text to show on the printed document sent by regular post; " "usually contains the instruction on how, where and when to send it." @@ -3476,7 +3482,7 @@ msgstr "" "Tekst sformatowany LaTeXa pokazywany na drukowanym dokumencie do wysłania " "zwykłą pocztą; zwykle zawiera instrukcje o tym jak, gdzie i kiedy go wysłać." -#: mailsubmit/models.py:58 +#: mailsubmit/models.py:57 msgid "" "This document confirms that you have uploaded a file for postal submission " "on our server. To have this file judged, send this document by mail to us." @@ -3484,11 +3490,11 @@ msgstr "" "Ten dokument potwierdza wysyłkę pliku na nasz serwer przy zgłoszeniu " "pocztowym. Wyślij go do nas pocztą, by ten plik został oceniony." -#: mailsubmit/models.py:63 +#: mailsubmit/models.py:62 msgid "postal submission configuration" msgstr "konfiguracja zgłoszeń pocztowych" -#: mailsubmit/models.py:64 +#: mailsubmit/models.py:63 msgid "postal submission configurations" msgstr "konfiguracje zgłoszeń pocztowych" @@ -3500,7 +3506,7 @@ msgstr "Wprowadź kod potwierdzenia zgłoszenia pocztowego, by je zaakceptować" msgid "Upload solution for postal submission" msgstr "Wyślij rozwiązanie do zgłoszenia pocztowego" -#: mailsubmit/templates/mailsubmit/submit.html:7 mailsubmit/views.py:25 +#: mailsubmit/templates/mailsubmit/submit.html:7 mailsubmit/views.py:27 msgid "Postal submission" msgstr "Zgłoszenie pocztowe" @@ -3547,15 +3553,15 @@ msgstr "" " lub pamięci USB, nadal możesz to zrobić.

    \n" " " -#: mailsubmit/views.py:62 +#: mailsubmit/views.py:64 msgid "Postal submission was already accepted" msgstr "Zgłoszenie pocztowe zostało już zaakceptowane" -#: mailsubmit/views.py:66 +#: mailsubmit/views.py:68 msgid "Postal submission accepted" msgstr "Zaakceptowano zgłoszenie pocztowe" -#: mailsubmit/views.py:100 +#: mailsubmit/views.py:102 msgid "confirmation" msgstr "potwierdzenie" @@ -3564,19 +3570,19 @@ msgstr "potwierdzenie" msgid "Maintenance mode" msgstr "Tryb serwisowy" -#: maintenancemode/management/commands/maintenance_mode.py:9 +#: maintenancemode/management/commands/maintenance_mode.py:10 msgid " \"\"" msgstr "‹ on|off › „‹ komunikat ›”" -#: maintenancemode/management/commands/maintenance_mode.py:10 +#: maintenancemode/management/commands/maintenance_mode.py:11 msgid "Sets maintenance mode state" msgstr "Ustawia stan trybu serwisowego" -#: maintenancemode/management/commands/maintenance_mode.py:14 +#: maintenancemode/management/commands/maintenance_mode.py:15 msgid "Expected one or two arguments" msgstr "Oczekiwano jednego lub dwóch argumentów" -#: maintenancemode/management/commands/maintenance_mode.py:25 +#: maintenancemode/management/commands/maintenance_mode.py:26 msgid "Unrecognized first argument" msgstr "Nie rozpoznano pierwszego argumentu" @@ -3610,8 +3616,7 @@ msgstr "Treść" #: newsfeed/templates/newsfeed/news-add.html:4 #: newsfeed/templates/newsfeed/news-add.html:7 -#: newsfeed/templates/newsfeed/newsfeed.html:9 -#: newsfeed/templates/newsfeed/widgets/newsfeed.html:4 +#: newsfeed/templates/newsfeed/newsfeed.html:4 #: questions/templates/questions/list.html:94 questions/views.py:300 msgid "Add news" msgstr "Dodaj wiadomość" @@ -3621,17 +3626,12 @@ msgstr "Dodaj wiadomość" msgid "Edit news" msgstr "Edytuj wiadomość" -#: newsfeed/templates/newsfeed/newsfeed.html:4 -#: newsfeed/templates/newsfeed/newsfeed.html:7 -msgid "Newsfeed" -msgstr "Aktualności" - -#: newsfeed/templates/newsfeed/widgets/news.html:19 +#: newsfeed/templates/newsfeed/news.html:19 #, python-format msgid "Are you sure you want to delete %(news.title)s?" msgstr "Na pewno chcesz usunąć %(news.title)s?" -#: newsfeed/templates/newsfeed/widgets/news.html:20 +#: newsfeed/templates/newsfeed/news.html:20 #: questions/templates/admin/questions/change_message.html:50 #: simpleui/templates/simpleui/problem_settings/ingredients/attachments.html:40 #: simpleui/templates/simpleui/problem_settings/ingredients/tags.html:28 @@ -3640,11 +3640,16 @@ msgstr "Na pewno chcesz usunąć %(news.title)s?" msgid "Delete" msgstr "Usuń" +#: newsfeed/templates/newsfeed/newsfeed-view.html:4 +#: newsfeed/templates/newsfeed/newsfeed-view.html:7 +msgid "Newsfeed" +msgstr "Aktualności" + #: notifications/templates/notifications/notifications.html:16 msgid "You have no new notifications." msgstr "Brak nowych powiadomień." -#: oi/admin.py:29 oi/admin.py:31 participants/admin.py:189 +#: oi/admin.py:29 oi/admin.py:31 participants/admin.py:190 msgid "Participants" msgstr "Uczestnicy" @@ -3694,7 +3699,7 @@ msgid "-- school deleted --" msgstr "-- szkoła usunięta --" #: oi/admin.py:129 oi/templates/oi/sensitive_participant_info.html:15 -#: teachers/forms.py:19 +#: teachers/forms.py:20 msgid "School" msgstr "Szkola" @@ -3734,19 +3739,19 @@ msgstr "— Wybierz województwo —" msgid "This school is no longer active." msgstr "Szkoła nie jest już aktywna." -#: oi/forms.py:91 pa/forms.py:20 participants/forms.py:44 +#: oi/forms.py:91 pa/forms.py:20 participants/forms.py:45 msgid "Terms not accepted" msgstr "Nie zaakceptowano regulaminu" -#: oi/management/commands/export_schools.py:9 +#: oi/management/commands/export_schools.py:11 msgid "Exports schools list to a CSV file" msgstr "Eksportuje szkoły do pliku CSV" -#: oi/management/commands/import_schools.py:22 +#: oi/management/commands/import_schools.py:21 msgid "filename_or_url" msgstr "plik_lub_URL" -#: oi/management/commands/import_schools.py:23 +#: oi/management/commands/import_schools.py:22 #, python-format msgid "" "Updates the list of schools from the given CSV file , with " @@ -3762,49 +3767,49 @@ msgstr "" "(odpowiednio %(columns)s) oddzielonymi przecinkami. W kolejnych wierszach " "należy umieścić dane szkół." -#: oi/management/commands/import_schools.py:33 +#: oi/management/commands/import_schools.py:32 msgid "Expected one argument - filename or url" msgstr "Oczekiwano tylko jednego argumentu – nazwy pliku lub adresu URL" -#: oi/management/commands/import_schools.py:49 +#: oi/management/commands/import_schools.py:48 #, python-format msgid "Missing header or invalid columns: %(h)s. Expected: %(col)s" msgstr "" "Brakuje nagłówka albo nieprawidłowe kolumny: %(h)s. Oczekiwano: %(col)s" -#: oi/management/commands/import_schools.py:101 +#: oi/management/commands/import_schools.py:100 #, python-format msgid "Line %(lineNum)s: %(msg)s\n" msgstr "Wiersz %(lineNum)s: %(msg)s\n" -#: oi/management/commands/import_schools.py:105 +#: oi/management/commands/import_schools.py:104 #, python-format msgid "Line %(lineNum)s, field %(field)s: %(msg)s\n" msgstr "Wiersz %(lineNum)s, pola %(field)s: %(msg)s\n" -#: oi/management/commands/import_schools.py:113 +#: oi/management/commands/import_schools.py:112 #, python-format msgid "Processed %(all_count)d entries (%(new_count)d new)\n" msgstr "" "Liczba przetworzonych wpisów: %(all_count)d (stworzono %(new_count)d)\n" -#: oi/management/commands/import_schools.py:116 +#: oi/management/commands/import_schools.py:115 msgid "There were some errors. Database not changed\n" msgstr "Wystąpiły pewne błędy. Baza danych nie została zmieniona.\n" -#: oi/management/commands/oi_export_personal_data.py:21 +#: oi/management/commands/oi_export_personal_data.py:20 msgid " " msgstr "‹ id_konkursu › ‹ wyjście_csv ›" -#: oi/management/commands/oi_export_personal_data.py:22 +#: oi/management/commands/oi_export_personal_data.py:21 msgid "Export personal data." msgstr "Eksportuj dane osobowe." -#: oi/management/commands/oi_export_personal_data.py:53 +#: oi/management/commands/oi_export_personal_data.py:52 msgid "Exactly two arguments are required." msgstr "Wymagane są dokładnie dwa argumenty." -#: oi/management/commands/oi_export_personal_data.py:67 +#: oi/management/commands/oi_export_personal_data.py:66 #: oi/management/commands/oi_timepres_data.py:50 #, python-format msgid "Ok, written %d rows" @@ -3822,8 +3827,8 @@ msgstr "" "Aktualizuje wpisy modułu „ipdnsauth” uczestnikami określonego konkursu." #: oi/management/commands/oi_generate_dnsauth.py:38 -#: participants/management/commands/import_onsite_participants.py:41 -#: participants/management/commands/import_participants.py:33 +#: participants/management/commands/import_onsite_participants.py:43 +#: participants/management/commands/import_participants.py:35 msgid "Wrong type of contest" msgstr "Niepoprawny rodzaj konkursu" @@ -3846,68 +3851,68 @@ msgstr "" "Oczekiwano id konkursu, pliku wyjściowego i niepustej listy identyfikatorów " "użytkowników" -#: oi/models.py:62 oi/models.py:98 pa/models.py:28 +#: oi/models.py:61 oi/models.py:97 pa/models.py:29 msgid "address" msgstr "adres" -#: oi/models.py:63 oi/models.py:99 pa/models.py:29 +#: oi/models.py:62 oi/models.py:98 pa/models.py:30 msgid "postal code" msgstr "kod pocztowy" -#: oi/models.py:67 oi/models.py:103 pa/models.py:30 +#: oi/models.py:66 oi/models.py:102 pa/models.py:31 msgid "city" msgstr "miasto" -#: oi/models.py:69 +#: oi/models.py:68 msgid "province" msgstr "województwo" -#: oi/models.py:72 oi/models.py:106 +#: oi/models.py:71 oi/models.py:105 msgid "phone number" msgstr "numer telefonu" -#: oi/models.py:73 +#: oi/models.py:72 msgid "email" msgstr "e-mail" -#: oi/models.py:75 teachers/models.py:20 +#: oi/models.py:74 teachers/models.py:21 msgid "active" msgstr "aktywny" -#: oi/models.py:76 +#: oi/models.py:75 msgid "approved" msgstr "zatwierdzona" -#: oi/models.py:84 +#: oi/models.py:83 #, python-format msgid "%(name)s, %(city)s" msgstr "%(name)s, %(city)s" -#: oi/models.py:107 +#: oi/models.py:106 msgid "birth date" msgstr "data urodzenia" -#: oi/models.py:108 +#: oi/models.py:107 msgid "birthplace" msgstr "miejsce urodzenia" -#: oi/models.py:110 pa/models.py:36 +#: oi/models.py:109 pa/models.py:37 msgid "t-shirt size" msgstr "rozmiar koszulki" -#: oi/models.py:111 teachers/models.py:21 +#: oi/models.py:110 teachers/models.py:22 msgid "school" msgstr "szkoła" -#: oi/models.py:113 +#: oi/models.py:112 msgid "class" msgstr "klasa" -#: oi/models.py:114 pa/models.py:40 participants/models.py:94 +#: oi/models.py:113 pa/models.py:41 participants/models.py:93 msgid "terms accepted" msgstr "Znam i akceptuję regulamin" -#: oi/models.py:117 +#: oi/models.py:116 #, python-format msgid "%(class_type)s of %(school)s" msgstr "%(class_type)s, %(school)s" @@ -3959,7 +3964,7 @@ msgstr "Dane z OI" msgid "Number" msgstr "Numer" -#: oi/templates/oi/participant_info.html:5 oireports/forms.py:104 +#: oi/templates/oi/participant_info.html:5 oireports/forms.py:106 msgid "Region" msgstr "Region" @@ -4051,28 +4056,28 @@ msgstr "Jest aktywny" msgid "Is approved" msgstr "Jest zatwierdzony" -#: oireports/forms.py:19 oireports/forms.py:40 publicsolutions/forms.py:16 +#: oireports/forms.py:21 oireports/forms.py:42 publicsolutions/forms.py:17 #: questions/forms.py:121 msgid "All" msgstr "Wszystkie" -#: oireports/forms.py:70 +#: oireports/forms.py:72 msgid "PDF" msgstr "PDF" -#: oireports/forms.py:71 +#: oireports/forms.py:73 msgid "XML" msgstr "XML" -#: oireports/forms.py:87 +#: oireports/forms.py:89 msgid "Single report" msgstr "Pojedynczy raport" -#: oireports/forms.py:93 +#: oireports/forms.py:95 msgid "Report type" msgstr "Typ raportu" -#: oireports/forms.py:147 +#: oireports/forms.py:149 msgid "No user specified." msgstr "Nie wybrano użytkownika." @@ -4098,11 +4103,11 @@ msgstr "Tylko jeden zawodnik" msgid "Generate report" msgstr "Generuj raport" -#: oireports/views.py:38 +#: oireports/views.py:36 msgid "Printing reports" msgstr "Drukowanie raportów" -#: oisubmit/admin.py:35 +#: oisubmit/admin.py:36 msgid "Received suspected" msgstr "Odebrane jako podejrzane" @@ -4186,11 +4191,11 @@ msgstr "Czas SIO" msgid "Server time" msgstr "Czas serwera" -#: ontak/controllers.py:8 +#: ontak/controllers.py:9 msgid "ONTAK" msgstr "ONTAK" -#: ontak/controllers.py:22 +#: ontak/controllers.py:23 msgid "ONTAK-eternal" msgstr "ONTAK – konkurs stały" @@ -4198,7 +4203,7 @@ msgstr "ONTAK – konkurs stały" msgid "Algorithmic Engagements" msgstr "Potyczki Algorytmiczne" -#: pa/controllers.py:139 pa/models.py:66 pa/models.py:69 +#: pa/controllers.py:139 pa/models.py:67 pa/models.py:70 msgid "Division" msgstr "Liga" @@ -4210,7 +4215,7 @@ msgstr "A" msgid "B" msgstr "B" -#: pa/controllers.py:140 pa/models.py:61 +#: pa/controllers.py:140 pa/models.py:62 msgid "None" msgstr "Brak" @@ -4222,7 +4227,7 @@ msgstr "Ranking w stylu PA" msgid "Division A + B" msgstr "Liga A + B" -#: pa/controllers.py:202 pa/models.py:60 +#: pa/controllers.py:202 pa/models.py:61 msgid "Division B" msgstr "Liga B" @@ -4230,24 +4235,24 @@ msgstr "Liga B" msgid "Algorithmic Engagements finals" msgstr "Finały Potyczek Algorytmicznych" -#: pa/models.py:32 +#: pa/models.py:33 msgid "job or school kind" msgstr "rodzaj szkoły lub miejsca pracy" -#: pa/models.py:34 +#: pa/models.py:35 msgid "job or school name" msgstr "nazwa szkoły lub miejsca pracy" -#: pa/models.py:37 +#: pa/models.py:38 msgid "newsletter" msgstr "komunikat" -#: pa/models.py:37 +#: pa/models.py:38 msgid "" "I want to receive the information about further editions of the contest." msgstr "Chcę otrzymywać informacje o kolejnych edycjach konkursu." -#: pa/models.py:41 participants/models.py:95 +#: pa/models.py:42 participants/models.py:94 msgid "" "I declare that I have read the contest rules and the technical arrangements. " "I fully understand them and accept them unconditionally." @@ -4255,11 +4260,11 @@ msgstr "" "Oświadczam, że zapoznałem się z Regulaminem konkursu i Ustaleniami " "technicznymi, w pełni je rozumiem oraz bezwarunkowo akceptuję." -#: pa/models.py:59 +#: pa/models.py:60 msgid "Division A" msgstr "Liga A" -#: pa/models.py:70 +#: pa/models.py:71 msgid "Divisions" msgstr "Ligi" @@ -4277,15 +4282,15 @@ msgstr "" " formularz rejestracyjny.\n" " " -#: participants/admin.py:97 +#: participants/admin.py:98 msgid "Mark selected participants as active" msgstr "Oznacz wybranych uczestników jako aktywnych" -#: participants/admin.py:101 +#: participants/admin.py:102 msgid "Mark selected participants as banned" msgstr "Oznacz wybranych uczestników jako wykluczonych" -#: participants/admin.py:133 +#: participants/admin.py:134 #, python-format msgid "Updated one %(name)s." msgid_plural "%(name)s updated: %(existing_count)d." @@ -4294,7 +4299,7 @@ msgstr[1] "Zaktualizowano %(existing_count)d obiekty %(name)s." msgstr[2] "Zaktualizowano %(existing_count)d obiektów %(name)s." msgstr[3] "Zaktualizowano %(existing_count)d obiektów %(name)s." -#: participants/admin.py:144 +#: participants/admin.py:145 #, python-format msgid "Created one %(name)s." msgid_plural "%(name)s created: %(new_count)d." @@ -4303,15 +4308,15 @@ msgstr[1] "Utworzono %(new_count)d obiekty %(name)s." msgstr[2] "Utworzono %(new_count)d obiektów %(name)s." msgstr[3] "Utworzono %(new_count)d obiektów %(name)s." -#: participants/admin.py:158 +#: participants/admin.py:159 msgid "Extend round" msgstr "Przedłuż rundę" -#: participants/admin.py:243 +#: participants/admin.py:244 msgid "Regions" msgstr "Regiony" -#: participants/admin.py:305 participants/models.py:107 +#: participants/admin.py:306 participants/models.py:106 msgid "region" msgstr "region" @@ -4328,16 +4333,16 @@ msgstr "" "W przypadku uczestnika anonimowego w rankingu używany jest jego " "identyfikator, a nie jego prawdziwe personalia." -#: participants/forms.py:18 +#: participants/forms.py:19 #, python-format msgid "%s is already a participant of this contest." msgstr "%s jest już uczestnikiem tego konkursu." -#: participants/forms.py:33 +#: participants/forms.py:34 msgid "Region with this name already exists." msgstr "Region z tą nazwą już istnieje." -#: participants/management/commands/import_onsite_participants.py:19 +#: participants/management/commands/import_onsite_participants.py:21 #, python-format msgid "" "Updates the list of participants of from the given CSV file " @@ -4355,12 +4360,12 @@ msgstr "" "(odpowiednio %(columns)s) oddzielonymi przecinkami. W kolejnych wierszach " "należy umieścić dane uczestników." -#: participants/management/commands/import_onsite_participants.py:89 +#: participants/management/commands/import_onsite_participants.py:91 #, python-format msgid "Error for user=%(user)s: region %(region)s does not exist\n" msgstr "Błąd użytkownika %(user)s: region %(region)s nie istnieje\n" -#: participants/management/commands/import_participants.py:15 +#: participants/management/commands/import_participants.py:17 msgid "" "Updates the list of participants of from the given text file " "(one login per line).\n" @@ -4370,31 +4375,31 @@ msgstr "" "login na linię).\n" "Wiersze zaczynające się znakiem „#” zostaną zignorowane." -#: participants/models.py:20 +#: participants/models.py:19 msgid "Banned" msgstr "Wykluczony" -#: participants/models.py:21 +#: participants/models.py:20 msgid "Account deleted" msgstr "Konto usunięte" -#: participants/models.py:72 +#: participants/models.py:71 msgid "Region server" msgstr "Serwer regionalny" -#: participants/models.py:73 +#: participants/models.py:72 msgid "IP address or hostname of the regional server" msgstr "Adres IP lub nazwa hosta serwera regionalnego" -#: participants/models.py:105 +#: participants/models.py:104 msgid "number" msgstr "numer" -#: participants/models.py:108 +#: participants/models.py:107 msgid "local number" msgstr "numer lokalny" -#: participants/models.py:114 +#: participants/models.py:113 #, python-format msgid "%(number)s/%(region)s/%(local_number)s" msgstr "%(number)s/%(region)s/%(local_number)s" @@ -4409,8 +4414,8 @@ msgid "Extend" msgstr "Przedłuż" #: participants/templates/participants/data.html:4 -#: participants/templates/participants/data.html:17 participants/views.py:49 -#: participants/views.py:54 +#: participants/templates/participants/data.html:17 participants/views.py:52 +#: participants/views.py:57 msgid "Participants' data" msgstr "Dane uczestników" @@ -4441,7 +4446,7 @@ msgstr "Dane o uczestnikach" #: participants/templates/participants/registration.html:14 #: participants/templates/participants/registration.html:17 -#: participants/views.py:17 +#: participants/views.py:20 msgid "Register to the contest" msgstr "Rejestracja na konkurs" @@ -4458,11 +4463,11 @@ msgstr "Potwierdzenie wyrejestrowania" msgid "Are you sure you want to deregister from the current contest?" msgstr "Czy na pewno chcesz się wyrejestrować z bieżącego konkursu?" -#: participants/views.py:24 +#: participants/views.py:27 msgid "Edit contest registration" msgstr "Zmiana danych rejestracji" -#: portals/forms.py:26 +#: portals/forms.py:27 #, python-format msgid "Node %(parent)s already has a child with this short name." msgstr "Węzeł %(parent)s ma już węzeł podrzędny o tej krótkiej nazwie." @@ -4520,24 +4525,24 @@ msgstr "" msgid "Some lines of the input are not JSON" msgstr "Niektóre wiersze wejścia nie są w formacie JSON" -#: portals/models.py:13 +#: portals/models.py:14 msgid "Shown in the navigation menu." msgstr "Wyświetlone w menu nawigacyjnym." -#: portals/models.py:16 +#: portals/models.py:17 msgid "Shown in the URL." msgstr "Wyświetlone w adresie." -#: portals/models.py:19 +#: portals/models.py:20 msgid "parent" msgstr "nadrzędny" -#: portals/models.py:21 +#: portals/models.py:22 msgid "panel code" msgstr "kod panelu" -#: portals/templates/portals/add-node.html:4 portals/tests.py:153 -#: portals/views.py:132 +#: portals/templates/portals/add-node.html:4 portals/tests.py:152 +#: portals/views.py:135 msgid "Add child node" msgstr "Dodaj węzeł podrzędny" @@ -4580,8 +4585,8 @@ msgstr "" "Na pewno chcesz usunąć swój portal? Usunięte zostaną wszystkie węzły. Tej " "czynności nie można cofnąć." -#: portals/templates/portals/edit-node.html:4 portals/tests.py:152 -#: portals/views.py:118 +#: portals/templates/portals/edit-node.html:4 portals/tests.py:151 +#: portals/views.py:121 msgid "Edit node" msgstr "Edytuj węzeł" @@ -4594,8 +4599,8 @@ msgstr "" "ją zmodyfikować." #: portals/templates/portals/manage-portal.html:4 -#: portals/templates/portals/manage-portal.html:61 portals/tests.py:155 -#: portals/views.py:162 +#: portals/templates/portals/manage-portal.html:61 portals/tests.py:154 +#: portals/views.py:165 msgid "Manage portal" msgstr "Zarządzaj portalem" @@ -4603,10 +4608,6 @@ msgstr "Zarządzaj portalem" msgid "Drag and drop nodes to reorganize the portal structure." msgstr "Przeciągaj i upuszczaj węzły, by reorganizować strukturę portalu." -#: portals/templates/portals/menu.html:4 -msgid "Navigation" -msgstr "Nawigacja" - #: portals/templates/portals/user-portal-initial-main-page-body.txt:1 msgid "" "This is the main page of your portal. Click \"Edit node\" on the right to " @@ -4615,38 +4616,47 @@ msgstr "" "Oto strona główna twojego portalu. Naciśnij „Edytuj węzeł” po prawej, by ją " "zmodyfikować." -#: portals/tests.py:151 portals/views.py:109 +#: portals/templates/portals/widgets/redirect.html:9 +#, python-format +msgid "" +"Users who do not have permission to edit this portal would now get " +"redirected to: \"%(redirect_url)s\"." +msgstr "" +"Użytkownicy, którzy nie mają uprawnień do edycji tego portalu, zostaliby " +"teraz przekierowani do: \"%(redirect_url)s\"." + +#: portals/tests.py:150 portals/views.py:112 msgid "Show node" msgstr "Pokaż węzeł" -#: portals/tests.py:154 portals/views.py:148 +#: portals/tests.py:153 portals/views.py:151 msgid "Delete node" msgstr "Usuń węzeł" -#: portals/views.py:240 +#: portals/views.py:243 msgid "My portal" msgstr "Mój portal" -#: portals/widgets.py:195 +#: portals/widgets.py:196 msgid "Problem Name" msgstr "Nazwa zadania" -#: printing/forms.py:11 +#: printing/forms.py:12 msgid "The file should be a text file." msgstr "Plik powinien być tekstowy." -#: printing/forms.py:16 +#: printing/forms.py:17 msgid "The file size limit exceeded." msgstr "Plik jest zbyt duży." -#: printing/forms.py:20 problems/templates/problems/files.html:14 -#: programs/controllers.py:430 +#: printing/forms.py:21 problems/templates/problems/files.html:14 +#: programs/controllers.py:431 #: simpleui/templates/simpleui/problem_settings/ingredients/attachments.html:6 #: testspackages/templates/testspackages/tests.html:17 msgid "File" msgstr "Plik" -#: printing/forms.py:37 +#: printing/forms.py:38 msgid "The page limit exceeded." msgstr "Przekroczono limit stron." @@ -4678,95 +4688,95 @@ msgstr "Podczas drukowania wystąpił błąd." msgid "Print" msgstr "Wydrukuj" -#: printing/views.py:18 +#: printing/views.py:19 msgid "Print file" msgstr "Drukowanie" -#: printing/views.py:38 +#: printing/views.py:39 msgid "File has been printed." msgstr "Plik został wydrukowany." -#: prizes/admin.py:30 +#: prizes/admin.py:31 msgid "state" msgstr "stan" -#: prizes/controllers.py:36 +#: prizes/controllers.py:37 msgid "total score" msgstr "wynik końcowy" -#: prizes/forms.py:13 +#: prizes/forms.py:14 msgid "redo" msgstr "ponów" -#: prizes/models.py:73 +#: prizes/models.py:74 msgid "NOT SCHEDULED" msgstr "NIEZAPLANOWANE" -#: prizes/models.py:74 +#: prizes/models.py:75 msgid "SCHEDULED" msgstr "ZAPLANOWANE" -#: prizes/models.py:75 +#: prizes/models.py:76 msgid "FAILURE" msgstr "BŁĄD" -#: prizes/models.py:76 +#: prizes/models.py:77 msgid "SUCCESS" msgstr "SUKCES" -#: prizes/models.py:118 prizes/templates/prizes/email_footer.txt:5 +#: prizes/models.py:119 prizes/templates/prizes/email_footer.txt:5 msgid "Distribution date" msgstr "Data rozdania" -#: prizes/models.py:119 +#: prizes/models.py:120 msgid "Leave blank for 'later'." msgstr "Pozostaw to pole puste, jeśli chcesz je uzupełnić później" -#: prizes/models.py:122 +#: prizes/models.py:123 msgid "Prize-givings with the same name are listed together." msgstr "Rozdania nagród o tej samej nazwie są wyświetlone razem" -#: prizes/models.py:125 +#: prizes/models.py:126 msgid "awarding rules" msgstr "zasady nagradzania" -#: prizes/models.py:138 prizes/models.py:272 +#: prizes/models.py:139 prizes/models.py:273 msgid "prize-giving" msgstr "rozdanie nagród" -#: prizes/models.py:139 +#: prizes/models.py:140 msgid "prize-givings" msgstr "rozdania nagród" -#: prizes/models.py:261 +#: prizes/models.py:262 msgid "Invalid value for position in distribution order." msgstr "Niepoprawna pozycja w kolejności rozdawania." -#: prizes/models.py:274 +#: prizes/models.py:275 msgid "quantity" msgstr "liczba" -#: prizes/models.py:276 +#: prizes/models.py:277 msgid "position in non-strict distribution order" msgstr "pozycja w nieliniowym porządku rozdań" -#: prizes/models.py:280 +#: prizes/models.py:281 msgid "prize" msgstr "nagroda" -#: prizes/models.py:281 +#: prizes/models.py:282 msgid "prizes" msgstr "nagrody" -#: prizes/reports.py:16 prizes/reports.py:37 +#: prizes/reports.py:17 prizes/reports.py:38 msgid "Prize" msgstr "Nagroda" -#: prizes/reports.py:30 +#: prizes/reports.py:31 msgid "Nothing" msgstr "Nic" -#: prizes/reports.py:37 +#: prizes/reports.py:38 msgid "Place" msgstr "Miejsce" @@ -4796,51 +4806,51 @@ msgstr "" "zapisz)." #: prizes/templates/prizes/prizes.html:4 prizes/templates/prizes/prizes.html:7 -#: prizes/views.py:28 +#: prizes/views.py:30 msgid "Prizes" msgstr "Nagrody" -#: prizes/utils.py:18 +#: prizes/utils.py:20 msgid "prizes_conflict.csv" msgstr "konflikt_nagród.csv" -#: problems/admin.py:134 +#: problems/admin.py:133 msgid "Tag" msgstr "Znacznik" -#: problems/admin.py:135 +#: problems/admin.py:134 #: problems/templates/problems/problemset/problem-list.html:16 #: simpleui/templates/simpleui/problem_settings/settings.html:48 msgid "Tags" msgstr "Znaczniki" -#: problems/admin.py:192 +#: problems/admin.py:191 #, python-format msgid "Package not available for problem %s." msgstr "Paczka nie jest dostępna dla zadania %s." -#: problems/admin.py:284 +#: problems/admin.py:283 msgid "Cannot delete a processed Problem Package" msgstr "Nie można usunąć przetwarzanej paczki zadań." -#: problems/admin.py:287 +#: problems/admin.py:286 #, python-format msgid "Delete selected %s" msgstr "Usuń zaznaczone %s" -#: problems/admin.py:325 +#: problems/admin.py:324 msgid "Error details" msgstr "Szczegóły błędu" -#: problems/admin.py:348 problems/admin.py:396 +#: problems/admin.py:347 problems/admin.py:395 msgid "Problem packages" msgstr "Paczki do zadania" -#: problems/admin.py:358 +#: problems/admin.py:357 msgid "Contest Problem Package" msgstr "Paczka zadania konkursu" -#: problems/controllers.py:306 +#: problems/controllers.py:305 msgid "Visible only for admins" msgstr "Widoczny tylko dla adminów" @@ -4848,23 +4858,23 @@ msgstr "Widoczny tylko dla adminów" msgid "Enter problem's secret key" msgstr "Wprowadź tajny klucz zadania" -#: problems/management/commands/addproblem.py:10 +#: problems/management/commands/addproblem.py:12 msgid "" msgstr "‹ plik ›" -#: problems/management/commands/addproblem.py:11 +#: problems/management/commands/addproblem.py:13 msgid "Adds the problem from the given package to the database." msgstr "Dodaje zadanie z paczki do bazy zadań." -#: problems/management/commands/addproblem.py:16 +#: problems/management/commands/addproblem.py:18 msgid "Missing argument (filename)" msgstr "Brak argumentu (nazwy pliku)" -#: problems/management/commands/addproblem.py:18 +#: problems/management/commands/addproblem.py:20 msgid "Expected at most two arguments" msgstr "Oczekiwano co najwyżej dwóch argumentów" -#: problems/management/commands/addproblem.py:30 +#: problems/management/commands/addproblem.py:32 msgid "" "The second argument (if provided) can only have value 'nothrow' - to be used " "in testing" @@ -4872,16 +4882,16 @@ msgstr "" "Drugi argument (o ile zostanie podany) może przyjąć wyłącznie wartość " "„nothrow” — używane w testach" -#: problems/management/commands/addproblem.py:41 -#: problems/management/commands/updateproblem.py:39 +#: problems/management/commands/addproblem.py:43 +#: problems/management/commands/updateproblem.py:41 msgid "Package format not recognized" msgstr "Nieznany format paczki" -#: problems/management/commands/addproblem.py:47 +#: problems/management/commands/addproblem.py:49 msgid "There was an error adding the problem" msgstr "Podczas dodawania zadania wystąpił błąd" -#: problems/management/commands/showbrokensolutions.py:9 +#: problems/management/commands/showbrokensolutions.py:10 msgid "" "Prints problems without 100-scored model solution. If username is provided " "it shows only problems added by that user." @@ -4889,27 +4899,27 @@ msgstr "" "Wyświetla zadania bez 100-punktowego rozwiązania wzorcowego. Jeśli podany " "jest login, wyświetla tylko zadania dodane przez użytkownika o tym loginie." -#: problems/management/commands/updateproblem.py:11 +#: problems/management/commands/updateproblem.py:13 msgid " " msgstr "‹ ID zadania › ‹ plik ›" -#: problems/management/commands/updateproblem.py:12 +#: problems/management/commands/updateproblem.py:14 msgid "Updates an existing problem using the given package file." msgstr "Aktualizuje istniejące zadanie według podanej paczki." -#: problems/management/commands/updateproblem.py:17 +#: problems/management/commands/updateproblem.py:19 msgid "Not enough arguments" msgstr "Za mało argumentów" -#: problems/management/commands/updateproblem.py:19 +#: problems/management/commands/updateproblem.py:21 msgid "Too many arguments" msgstr "Za dużo argumentów" -#: problems/management/commands/updateproblem.py:24 +#: problems/management/commands/updateproblem.py:26 msgid "Invalid problem id: " msgstr "Niepoprawny identyfikator zadania:" -#: problems/management/commands/updateproblem.py:33 +#: problems/management/commands/updateproblem.py:35 #, python-format msgid "Problem #%d does not exist" msgstr "Zadanie %d nie istnieje" @@ -5003,7 +5013,7 @@ msgstr "znacznik" msgid "tags" msgstr "znaczniki" -#: problems/problem_site.py:137 problems/templates/problems/secret-key.html:12 +#: problems/problem_site.py:136 problems/templates/problems/secret-key.html:12 msgid "Secret key" msgstr "Tajny klucz" @@ -5142,11 +5152,11 @@ msgstr "Zestaw zadań – dodaj lub zaktualizuj zadanie" msgid "Public problems" msgstr "Zadania publiczne" -#: problems/templates/problems/problemset/base.html:39 problems/views.py:190 +#: problems/templates/problems/problemset/base.html:39 problems/views.py:187 msgid "My problems" msgstr "Moje zadania" -#: problems/templates/problems/problemset/base.html:46 problems/views.py:201 +#: problems/templates/problems/problemset/base.html:46 problems/views.py:198 msgid "All problems" msgstr "Wszystkie zadania" @@ -5218,20 +5228,20 @@ msgstr "" msgid "You have not submitted anything yet." msgstr "Brak nadesłanych rozwiązań." -#: problems/views.py:181 +#: problems/views.py:178 msgid "Welcome to problemset, the place where all the problems are." msgstr "" "Witaj w zestawie zadań, miejscu gdzie przechowywane są wszystkie zadania." -#: problems/views.py:280 +#: problems/views.py:277 msgid "Reports are not available now (ಥ ﹏ ಥ)" msgstr "Raporty są teraz niedostępne (ಥ ﹏ ಥ)" -#: problems/views.py:411 +#: problems/views.py:408 msgid "Model solutions sent for evaluation." msgstr "Wysłano rozwiązania wzorcowe do sprawdzenia." -#: programs/admin.py:47 sinolpack/package.py:608 +#: programs/admin.py:47 sinolpack/package.py:607 #, python-format msgid "" "Sum of time limits for all tests is too big. It's %(sum)ds, but it shouldn't " @@ -5273,27 +5283,27 @@ msgstr "Porównaj zgłoszenia" msgid "language" msgstr "język" -#: programs/controllers.py:38 +#: programs/controllers.py:39 msgid "Simple programming problem" msgstr "Proste zadanie programistyczne" -#: programs/controllers.py:318 +#: programs/controllers.py:319 msgid "You have to either choose file or paste code." msgstr "Wyślij plik albo wklej kod źródłowy." -#: programs/controllers.py:332 +#: programs/controllers.py:333 msgid "You have to choose programming language." msgstr "Wybierz język programowania." -#: programs/controllers.py:334 +#: programs/controllers.py:335 msgid "Unrecognized file extension." msgstr "Nierozpoznane rozszerzenie pliku." -#: programs/controllers.py:338 +#: programs/controllers.py:339 msgid "This language is not allowed for selected problem." msgstr "Ten język nie jest dostępny dla tego zadania." -#: programs/controllers.py:360 +#: programs/controllers.py:361 msgid "" "You have submitted the same file for this problem again. Please resubmit if " "you really want to submit the same file" @@ -5301,19 +5311,19 @@ msgstr "" "Wysłano ponownie ten sam plik dla tego zadania. Wyślij go jeszcze raz, jeśli " "na pewno chcesz to zrobić." -#: programs/controllers.py:403 +#: programs/controllers.py:404 msgid "File size limit exceeded." msgstr "Plik jest zbyt duży." -#: programs/controllers.py:407 +#: programs/controllers.py:408 msgid "Code length limit exceeded." msgstr "Przekroczono maksymalną długość kodu." -#: programs/controllers.py:413 +#: programs/controllers.py:414 msgid "Unknown or not supported file extension." msgstr "Plik ma nieznane lub nieobsługiwane rozszerzenie." -#: programs/controllers.py:432 +#: programs/controllers.py:433 #, python-format msgid "" "Language is determined by the file extension. It has to be one of: %s. You " @@ -5324,180 +5334,180 @@ msgstr "" "Możesz również wkleić kod poniżej lub po prostu przeciągnąć plik." -#: programs/controllers.py:441 +#: programs/controllers.py:442 msgid "Code" msgstr "Kod" -#: programs/controllers.py:451 +#: programs/controllers.py:452 msgid "Programming language" msgstr "Język programowania" -#: programs/controllers.py:595 +#: programs/controllers.py:596 msgid "Simple programming contest" msgstr "Prosty konkurs programistyczny" -#: programs/handlers.py:614 +#: programs/handlers.py:613 msgid "submission report" msgstr "raport zgłoszenia" -#: programs/models.py:20 +#: programs/models.py:22 msgid "Normal test" msgstr "Test zwykły" -#: programs/models.py:21 +#: programs/models.py:23 msgid "Example test" msgstr "Test przykładowy" -#: programs/models.py:26 +#: programs/models.py:28 msgid "Time limit must be a positive number." msgstr "Limit czasu musi być liczbą dodatnią." -#: programs/models.py:31 +#: programs/models.py:33 msgid "Memory limit must be a positive number." msgstr "Limit pamięci musi być liczbą dodatnią." -#: programs/models.py:33 +#: programs/models.py:35 #, python-format msgid "Memory limit mustn't be greater than %dKiB." msgstr "Limit pamięci nie może być większy niż %dKiB." -#: programs/models.py:42 +#: programs/models.py:44 msgid "input" msgstr "wejście" -#: programs/models.py:44 +#: programs/models.py:46 msgid "output/hint" msgstr "wyjście" -#: programs/models.py:46 similarsubmits/models.py:24 +#: programs/models.py:48 similarsubmits/models.py:24 msgid "group" msgstr "grupa" -#: programs/models.py:47 testrun/models.py:27 +#: programs/models.py:49 testrun/models.py:29 msgid "time limit (ms)" msgstr "limit czasu (ms)" -#: programs/models.py:49 testrun/models.py:29 +#: programs/models.py:51 testrun/models.py:31 msgid "memory limit (KiB)" msgstr "limit pamięci (KiB)" -#: programs/models.py:66 +#: programs/models.py:68 msgid "test" msgstr "test" -#: programs/models.py:67 +#: programs/models.py:69 msgid "tests" msgstr "testy" -#: programs/models.py:74 +#: programs/models.py:76 msgid "checker executable file" msgstr "wykonywalny plik weryfikatora" -#: programs/models.py:77 +#: programs/models.py:79 msgid "output checker" msgstr "weryfikator wyjścia" -#: programs/models.py:78 +#: programs/models.py:80 msgid "output checkers" msgstr "weryfikatory wyjścia" -#: programs/models.py:83 +#: programs/models.py:85 msgid "libname" msgstr "nazwa biblioteki" -#: programs/models.py:84 +#: programs/models.py:86 msgid "Filename that the library should be given during compilation" msgstr "Nazwa pliku, która będzie nadana bibliotece w czasie kompilacji" -#: programs/models.py:87 programs/models.py:88 +#: programs/models.py:89 programs/models.py:90 msgid "library problem data" msgstr "dane biblioteki do zadania" -#: programs/models.py:97 +#: programs/models.py:99 msgid "Model solution" msgstr "Rozwiązanie wzorcowe" -#: programs/models.py:98 +#: programs/models.py:100 msgid "Slow solution" msgstr "Rozwiązanie powolne" -#: programs/models.py:99 +#: programs/models.py:101 msgid "Incorrect solution" msgstr "Rozwiązanie niepoprawne" -#: programs/models.py:128 +#: programs/models.py:130 msgid "source" msgstr "kod" -#: programs/models.py:180 +#: programs/models.py:182 msgid "Source code length" msgstr "Długość kodu źródłowego" -#: programs/models.py:199 +#: programs/models.py:201 msgid "Compilation failed" msgstr "Błąd kompilacji" -#: programs/models.py:200 +#: programs/models.py:202 msgid "Runtime error" msgstr "Błąd wykonania" -#: programs/models.py:201 +#: programs/models.py:203 msgid "Wrong answer" msgstr "Zła odpowiedź" -#: programs/models.py:202 +#: programs/models.py:204 msgid "Time limit exceeded" msgstr "Przekroczenie limitu czasu" -#: programs/models.py:203 +#: programs/models.py:205 msgid "Memory limit exceeded" msgstr "Przekroczenie limitu pamięci" -#: programs/models.py:204 +#: programs/models.py:206 msgid "Output limit exceeded" msgstr "Przekroczenie limitu wyjścia" -#: programs/models.py:205 +#: programs/models.py:207 msgid "System error" msgstr "Błąd systemowy" -#: programs/models.py:206 +#: programs/models.py:208 msgid "Rule violation" msgstr "Naruszenie reguł" -#: programs/models.py:208 +#: programs/models.py:210 msgid "Initial tests: OK" msgstr "Wstępne sprawdzanie: OK" -#: programs/models.py:209 +#: programs/models.py:211 msgid "Initial tests: failed" msgstr "Wstępne sprawdzanie: błąd" -#: programs/models.py:211 +#: programs/models.py:213 msgid "Generate user out" msgstr "Generowanie wyjścia" -#: programs/models.py:213 +#: programs/models.py:215 msgid "Initial report" msgstr "Raport wstępnego sprawdzania" -#: programs/models.py:214 +#: programs/models.py:216 msgid "Normal report" msgstr "Zwykły raport" -#: programs/models.py:215 +#: programs/models.py:217 msgid "Full report" msgstr "Pełny raport" -#: programs/models.py:217 +#: programs/models.py:219 msgid "Hidden report (for admins only)" msgstr "Raport ukryty (widoczny dla adminów)" -#: programs/models.py:218 +#: programs/models.py:220 msgid "Report with user out" msgstr "Raport z wyjściem użytkownika" -#: programs/models.py:268 +#: programs/models.py:270 msgid "Allow users to generate their outs on tests from visible reports." msgstr "" "Pozwól użytkownikom generować wyjścia ich programów tam, gdzie widoczny jest " @@ -5552,6 +5562,7 @@ msgid "Test" msgstr "Test" #: programs/templates/programs/report-body.html:11 +#: quizzes/templates/quizzes/report-body.html:11 #: testrun/templates/testrun/report.html:19 #: zeus/templates/zeus/program-report.html:12 msgid "Result" @@ -5712,11 +5723,11 @@ msgstr "%(minutes)dm %(seconds).2fs" msgid "Not enough information given" msgstr "Podano za mało informacji" -#: publicsolutions/models.py:12 +#: publicsolutions/models.py:13 msgid "voluntary solution publication" msgstr "dobrowolna publikacja rozwiązania" -#: publicsolutions/models.py:13 +#: publicsolutions/models.py:14 msgid "voluntary solution publications" msgstr "dobrowolna publikacja rozwiązań" @@ -5724,7 +5735,7 @@ msgstr "dobrowolna publikacja rozwiązań" #: publicsolutions/templates/publicsolutions/list-solutions.html:16 #: publicsolutions/templates/publicsolutions/list_solutions.html:5 #: publicsolutions/templates/publicsolutions/list_solutions.html:16 -#: publicsolutions/views.py:18 +#: publicsolutions/views.py:20 msgid "Solutions" msgstr "Rozwiązania" @@ -5822,7 +5833,8 @@ msgstr "" "Nie możemy zrobić tego łatwo, nie korzystając z daemona, ponieważ musimy " "wspierać opóźnione publikowanie ogłoszeń." -#: questions/models.py:20 quizzes/models.py:16 quizzes/models.py:30 +#: questions/models.py:20 quizzes/models.py:19 quizzes/models.py:33 +#: quizzes/models.py:72 quizzes/templates/quizzes/report-body.html:10 msgid "Question" msgstr "Pytanie" @@ -5866,7 +5878,7 @@ msgstr "Odpowiedź na Twoje pytanie jest dostępna." msgid "New public message." msgstr "Nowe ogłoszenie." -#: questions/processors.py:43 +#: questions/processors.py:44 #, python-format msgid "%(count)d NEW MESSAGE" msgid_plural "%(count)d NEW MESSAGES" @@ -6053,11 +6065,11 @@ msgstr "Zadaj pytanie" msgid "A question needs at least one answer." msgstr "Odpowiedź na Twoje pytanie jest dostępna." -#: quizzes/controllers.py:47 +#: quizzes/controllers.py:39 msgid "Answer is required here." msgstr "Odpowiedź jest wymagana" -#: quizzes/controllers.py:145 +#: quizzes/controllers.py:133 #, fuzzy #| msgid "Quiz questions" msgid "Edit questions" @@ -6072,72 +6084,72 @@ msgstr "Odpowiedź" #: quizzes/forms.py:7 #, fuzzy #| msgid "short name" -msgid "Shortname" +msgid "Short name" msgstr "skrót" -#: quizzes/models.py:11 quizzes/models.py:20 +#: quizzes/models.py:14 quizzes/models.py:23 msgid "Quiz" msgstr "Quiz" -#: quizzes/models.py:12 +#: quizzes/models.py:15 msgid "Quizzes" msgstr "Quizy" -#: quizzes/models.py:18 +#: quizzes/models.py:21 msgid "Is multiple choice" msgstr "Czy jest wielokrotnego wyboru" -#: quizzes/models.py:19 +#: quizzes/models.py:22 #: simpleui/templates/simpleui/problem_settings/ingredients/tests.html:10 #: statistics/plotfunctions.py:175 msgid "Points" msgstr "Punkty" -#: quizzes/models.py:21 quizzes/models.py:34 +#: quizzes/models.py:24 quizzes/models.py:37 msgid "Order" msgstr "Kolejność" -#: quizzes/models.py:25 +#: quizzes/models.py:28 msgid "Quiz question" msgstr "Pytanie" -#: quizzes/models.py:26 +#: quizzes/models.py:29 msgid "Quiz questions" msgstr "Pytania" -#: quizzes/models.py:31 quizzes/models.py:52 +#: quizzes/models.py:34 quizzes/models.py:55 msgid "Answer" msgstr "Odpowiedź" -#: quizzes/models.py:33 +#: quizzes/models.py:36 msgid "Is answer correct" msgstr "Czy odpowiedź jest poprawna" -#: quizzes/models.py:38 +#: quizzes/models.py:41 msgid "Quiz answer" msgstr "Odpowiedź" -#: quizzes/models.py:39 +#: quizzes/models.py:42 msgid "Quiz answers" msgstr "Odpowiedzi" -#: quizzes/models.py:45 quizzes/models.py:51 +#: quizzes/models.py:48 quizzes/models.py:54 msgid "Quiz submission" msgstr "Zgłoszenie" -#: quizzes/models.py:46 +#: quizzes/models.py:49 msgid "Quiz submissions" msgstr "Zgłoszenia" -#: quizzes/models.py:55 +#: quizzes/models.py:58 msgid "Is answer selected" msgstr "Czy odpowiedź jest zaznaczona" -#: quizzes/models.py:58 +#: quizzes/models.py:61 msgid "Quiz submission answer" msgstr "Zgłoszenie odpowiedzi" -#: quizzes/models.py:59 +#: quizzes/models.py:62 msgid "Quiz submission answers" msgstr "Zgłoszenie odpowiedzi" @@ -6165,19 +6177,19 @@ msgstr "" msgid "Default ranking" msgstr "Domyślny ranking" -#: rankings/controllers.py:265 +#: rankings/controllers.py:263 msgid "No." msgstr "Nr" -#: rankings/controllers.py:286 +#: rankings/controllers.py:284 msgid "ranking" msgstr "ranking" -#: rankings/forms.py:15 +#: rankings/forms.py:16 msgid "Search for user..." msgstr "Szukaj użytkownika…" -#: rankings/management/commands/rankingsd.py:11 +#: rankings/management/commands/rankingsd.py:12 msgid "" "Daemon that rebuilds rankings. Ranking generation is quite a slow process, " "so it is done independently from request, in this daemon. This allows " @@ -6245,27 +6257,27 @@ msgstr "" msgid "User is not in the ranking." msgstr "Użytkownik nie jest w rankingu." -#: scoresreveal/admin.py:10 +#: scoresreveal/admin.py:11 msgid "revealed" msgstr "ujawnione" -#: scoresreveal/admin.py:70 +#: scoresreveal/admin.py:71 msgid "Revealed" msgstr "Ujawnione" -#: scoresreveal/controllers.py:68 +#: scoresreveal/controllers.py:71 msgid "The round is not active." msgstr "Runda nie jest aktywna." -#: scoresreveal/controllers.py:70 +#: scoresreveal/controllers.py:73 msgid "Only author can reveal the submission score." msgstr "Tylko autor może ujawnić wynik zgłoszenia." -#: scoresreveal/controllers.py:72 +#: scoresreveal/controllers.py:75 msgid "You have already reached the reveals limit." msgstr "Osiągnąłeś już limit ujawnień." -#: scoresreveal/controllers.py:79 +#: scoresreveal/controllers.py:82 #, python-format msgid "" "Scores revealing is disabled during the last minute of the " @@ -6284,17 +6296,17 @@ msgstr[3] "" "Ujawnianie wyników jest niedostępne w ciągu ostatnich " "%(scores_reveals_disable_time)d minut rundy." -#: scoresreveal/controllers.py:87 +#: scoresreveal/controllers.py:90 msgid "" "You cannot reveal the score of the submission with status \"Compilation Error" "\"." msgstr "Nie możesz ujawniać wyników w zgłoszeniach z błędem kompilacji." -#: scoresreveal/controllers.py:90 +#: scoresreveal/controllers.py:93 msgid "The submission author is not set." msgstr "To zgłoszenie nie ma autora." -#: scoresreveal/controllers.py:92 +#: scoresreveal/controllers.py:95 msgid "" "Unfortunately, this submission has not been scored yet, so you can't see " "your score. Please come back later." @@ -6302,31 +6314,31 @@ msgstr "" "Niestety to zgłoszenie nie zostało jeszcze ocenione, więc nie możesz " "zobaczyć swojego wyniku. Spróbuj później." -#: scoresreveal/controllers.py:97 +#: scoresreveal/controllers.py:100 msgid "You already have access to the submission score." msgstr "Masz już dostęp do wyniku punktowego swojego zgłoszenia." -#: scoresreveal/models.py:12 +#: scoresreveal/models.py:13 msgid "score reveal" msgstr "ujawnienie wyników" -#: scoresreveal/models.py:13 +#: scoresreveal/models.py:14 msgid "score reveals" msgstr "ujawnienia wyników" -#: scoresreveal/models.py:20 +#: scoresreveal/models.py:21 msgid "reveal limit" msgstr "limit ujawniania" -#: scoresreveal/models.py:22 +#: scoresreveal/models.py:23 msgid "disable for last minutes of the round" msgstr "wyłącz w trakcie ostatnich minut rundy" -#: scoresreveal/models.py:25 +#: scoresreveal/models.py:26 msgid "score reveal config" msgstr "konfiguracja ujawniania wyników" -#: scoresreveal/models.py:26 +#: scoresreveal/models.py:27 msgid "score reveal configs" msgstr "konfiguracje ujawniania wyników" @@ -6397,7 +6409,7 @@ msgstr "Ujawnij wynik" msgid "You are going to reveal your score.
    Would you like to proceed?" msgstr "Zamierzasz ujawnić swój wynik.
    Chcesz kontynuować?" -#: scoresreveal/views.py:24 +#: scoresreveal/views.py:25 msgid "Submission score has been revealed." msgstr "Wynik zgłoszenia został ujawniony." @@ -6423,7 +6435,7 @@ msgstr "Nie można połączyć się ze stroną: %s" msgid "Invalid server response: %s" msgstr "Niepoprawna odpowiedź serwera: %s" -#: sharingcli/problem_sources.py:47 +#: sharingcli/problem_sources.py:46 msgid "Add from external site" msgstr "Dodaj z zewnętrznej strony" @@ -6635,7 +6647,7 @@ msgstr "Oznacz jako winny" msgid "Change kind: %(description)s (and mark not guilty)" msgstr "Zmień typ: %(description)s (i oznacz jako niewinne)" -#: similarsubmits/views.py:47 +#: similarsubmits/views.py:46 #, python-format msgid "Created one group" msgid_plural "Created %(groups_count)d groups" @@ -6644,7 +6656,7 @@ msgstr[1] "Utworzono %(groups_count)d grupy" msgstr[2] "Utworzono %(groups_count)d grup" msgstr[3] "Utworzono %(groups_count)d grup" -#: similarsubmits/views.py:67 +#: similarsubmits/views.py:66 msgid "" "You can't mark a removed submission as guilty because the author will not be " "able to see it." @@ -6664,12 +6676,12 @@ msgstr "wejście" msgid "out" msgstr "wyjście" -#: simpleui/templates/simpleui/contest/contest.html:34 teachers/views.py:126 +#: simpleui/templates/simpleui/contest/contest.html:34 teachers/views.py:121 msgid "Pupils" msgstr "Uczniowie" -#: simpleui/templates/simpleui/contest/contest.html:36 teachers/admin.py:42 -#: teachers/views.py:129 +#: simpleui/templates/simpleui/contest/contest.html:36 teachers/admin.py:43 +#: teachers/views.py:124 msgid "Teachers" msgstr "Nauczyciele" @@ -7002,7 +7014,7 @@ msgstr "" " " #: simpleui/templates/simpleui/main_dashboard/dashboard.html:62 -#: teachers/templates/teachers/widgets/contest-selection.html:28 +#: teachers/templates/teachers/contest-selection.html:28 msgid "Show all contests" msgstr "Pokaż wszystkie konkursy" @@ -7050,46 +7062,46 @@ msgstr "Testy" msgid "Extra file" msgstr "Dodatkowy plik" -#: sinolpack/controllers.py:8 +#: sinolpack/controllers.py:9 msgid "Sinol package problem" msgstr "Zadanie z paczki Sinola" -#: sinolpack/models.py:14 +#: sinolpack/models.py:13 msgid "config" msgstr "konfiguracja" -#: sinolpack/models.py:23 +#: sinolpack/models.py:22 msgid "sinolpack's configuration" msgstr "konfiguracja paczki Sinola" -#: sinolpack/models.py:24 +#: sinolpack/models.py:23 msgid "sinolpack's configurations" msgstr "konfiguracje paczki Sinola" -#: sinolpack/models.py:35 +#: sinolpack/models.py:34 msgid "sinolpack's extra file" msgstr "dodatkowy plik z paczki Sinola" -#: sinolpack/models.py:36 +#: sinolpack/models.py:35 msgid "sinolpack's extra files" msgstr "dodatkowe pliki z paczki Sinola" -#: sinolpack/models.py:45 +#: sinolpack/models.py:44 msgid "original problem package" msgstr "oryginalna paczka z zadaniem" -#: sinolpack/models.py:46 +#: sinolpack/models.py:45 msgid "original problem packages" msgstr "oryginalne paczki z zadaniami" -#: sinolpack/package.py:248 +#: sinolpack/package.py:247 #, python-format msgid "Compilation of file %(filename)s failed. Compiler output: %(output)s" msgstr "" "Kompilacja pliku %(filename)s zakończyła się porażką. Wyjście kompilatora: " "%(output)s" -#: sinolpack/package.py:296 +#: sinolpack/package.py:295 #, python-format msgid "" "Tried to replace problem '%(oldname)s' with '%(newname)s'. For safety, " @@ -7098,33 +7110,33 @@ msgstr "" "Próba zastąpienia zadania „%(oldname)s” zadaniem '%(newname)s'. Ze względów " "bezpieczeństwa zmiana skrótu zadania jest niemożliwa." -#: sinolpack/package.py:405 +#: sinolpack/package.py:404 #, python-format msgid "Expected extra files %r not found in prog/" msgstr "Nie znaleziono dodatkowych plików %r w prog/" -#: sinolpack/package.py:499 +#: sinolpack/package.py:498 msgid "index.html has to be utf8 or iso8859-2 encoded" msgstr "index.html musi być kodowany za pomocą utf-8 lub iso-8859-2" -#: sinolpack/package.py:635 +#: sinolpack/package.py:634 #, python-format msgid "Inwer failed on test %(test)s. Inwer output %(output)s" msgstr "" "Weryfikacja wejścia testu %(test)s zakończyła się porażką. Wyjście programu " "weryfikującego: %(output)s" -#: sinolpack/package.py:660 +#: sinolpack/package.py:659 #, python-format msgid "Missing out file for test %s" msgstr "Brak pliku wyjściowego do testu %s" -#: sinolpack/package.py:695 +#: sinolpack/package.py:694 #, python-format msgid "Unrecognized test: %s" msgstr "Nieznany test: %s" -#: sinolpack/package.py:797 +#: sinolpack/package.py:796 #, python-format msgid "" "Score for group '%(group_name)s' not found. You must either provide scores " @@ -7137,7 +7149,7 @@ msgstr "" "automatycznie). (Grupy z wynikiem: %(scored_groups)s, grupy z configu: " "%(config_groups)s)" -#: sinolpack/package.py:810 +#: sinolpack/package.py:809 #, python-format msgid "" "Score for group '%(group_name)s' found in config, but no such test group " @@ -7151,27 +7163,27 @@ msgstr "" "automatycznie). (Grupy z punktacją: %(scored_groups)s, grupy z configu: " "%(config_groups)s)" -#: sinolpack/package.py:1066 +#: sinolpack/package.py:1065 msgid "Sinol Package" msgstr "Paczka Sinola" -#: statistics/models.py:8 +#: statistics/models.py:9 msgid "Show statistics" msgstr "Udostępnienie statystyk" -#: statistics/models.py:12 +#: statistics/models.py:13 msgid "visible to users" msgstr "widoczne dla użytkowników" -#: statistics/models.py:14 +#: statistics/models.py:15 msgid "visibility date" msgstr "data uwidocznienia" -#: statistics/models.py:17 +#: statistics/models.py:18 msgid "statistics configuration" msgstr "konfiguracja statystyk" -#: statistics/models.py:18 +#: statistics/models.py:19 msgid "statistics configurations" msgstr "konfiguracje statystyk" @@ -7258,12 +7270,12 @@ msgstr "" msgid "Refresh" msgstr "Odśwież" -#: su/forms.py:18 +#: su/forms.py:19 msgid "Switching to a superuser is not allowed for security reasons." msgstr "" "Przełączanie na administratora jest niedozwolone z powodów bezpieczeństwa." -#: su/forms.py:25 +#: su/forms.py:26 msgid "Authentication backend" msgstr "Tryb uwierzytelniania" @@ -7412,15 +7424,56 @@ msgstr "Oceń wstępne" msgid "Judge final" msgstr "Oceń końcowe" -#: suspendjudge/models.py:9 +#: suspendjudge/models.py:8 msgid "Suspended" msgstr "Wstrzymane" -#: teachers/admin.py:94 +#: szkopul/menu.py:4 +msgid "Navigation Bar Menu" +msgstr "Menu Paska Nawigacji" + +#: szkopul/templates/main-page.html:18 +msgid "Welcome!" +msgstr "Witaj!" + +#: szkopul/templates/main-page.html:20 +msgid "" +"Choose the contest you want to enter. To enter a new contest, ask a teacher " +"for a registration link." +msgstr "" +"Wybierz konkurs, do którego chcesz teraz wejść. Żeby dostać się " +"do nowego konkursu, poproś nauczyciela o link rejestracyjny." + +#: szkopul/templates/main-page.html:27 +msgid "News" +msgstr "Aktualności" + +#: szkopul/templates/main-page.html:30 +msgid "Contact us" +msgstr "Kontakt" + +#: szkopul/templates/main-page.html:33 +#, python-format +msgid "" +"Do you have any questions or feedback? Is something wrong? Use the " +"%(send_feedback)s button in the corner of the page." +msgstr "" +"Masz pytania lub uwagi? Coś jest nie tak? Skorzystaj z przycisku " +"%(send_feedback)s w rogu strony." + +#: szkopul/templates/main-page.html:39 +msgid "We are supported by" +msgstr "Wspiera nas" + +#: szkopul/views.py:16 +msgid "Task archive" +msgstr "Archiwum zadań" + +#: teachers/admin.py:95 msgid "Contest added successfully." msgstr "Dodano konkurs." -#: teachers/admin.py:104 +#: teachers/admin.py:105 msgid "New contest" msgstr "Nowy konkurs" @@ -7428,11 +7481,11 @@ msgstr "Nowy konkurs" msgid "Teachers permissions" msgstr "Uprawnienia nauczycieli" -#: teachers/controllers.py:36 +#: teachers/controllers.py:37 msgid "Contest for teachers" msgstr "Konkurs dla nauczycieli" -#: teachers/forms.py:20 +#: teachers/forms.py:21 msgid "" "Please provide the full name. If the school is a part of a larger " "organization of schools,
    enter the name of this organization." @@ -7440,28 +7493,28 @@ msgstr "" "Wpisz pełną nazwę szkoły. Jeśli szkoła należy do zespołu,
    wpisz nazwę " "zespołu szkół." -#: teachers/forms.py:26 +#: teachers/forms.py:27 msgid "Message" msgstr "Wiadomość" -#: teachers/forms.py:27 +#: teachers/forms.py:28 msgid "Optional. If provided, this message will be sent to the managers." msgstr "" "Opcjonalnie. Jeśli tu coś wpiszesz, informacja zostanie przesłana do " "administratorów." -#: teachers/menu.py:4 +#: teachers/menu.py:5 msgid "Teacher Menu" msgstr "Menu nauczyciela" -#: teachers/models.py:25 +#: teachers/models.py:26 msgid "Is a teacher" msgstr "Jest nauczycielem" #: teachers/templates/registration/activation_complete.html:14 #: teachers/templates/teachers/request.html:4 #: teachers/templates/teachers/request.html:7 -#: teachers/templates/teachers/request_sent.html:4 teachers/views.py:82 +#: teachers/templates/teachers/request_sent.html:4 teachers/views.py:77 msgid "Request teacher account" msgstr "Poproś o konto nauczycielskie" @@ -7700,32 +7753,32 @@ msgid "You will receive an email once your teacher account is activated." msgstr "" "Otrzymasz wiadomość e-mail, gdy konto nauczycielskie zostanie aktywowane." -#: teachers/templates/teachers/widgets/contest-selection.html:7 +#: teachers/templates/teachers/contest-selection.html:7 msgid "Proceed to the default contest:" msgstr "Przejdź do konkursu domyślnego:" -#: teachers/templates/teachers/widgets/contest-selection.html:12 +#: teachers/templates/teachers/contest-selection.html:12 msgid "Or select one of the following:" msgstr "lub wybierz jeden z następujących:" -#: teachers/templates/teachers/widgets/contest-selection.html:34 +#: teachers/templates/teachers/contest-selection.html:34 msgid "You have teacher's access." msgstr "Masz dostęp nauczycielski." -#: teachers/templates/teachers/widgets/contest-selection.html:41 +#: teachers/templates/teachers/contest-selection.html:41 msgid "There are no contests you could take part in." msgstr "Brak konkursów, w których mógłbyś wziąć udział." -#: teachers/templates/teachers/widgets/contest-selection.html:43 +#: teachers/templates/teachers/contest-selection.html:43 msgid "Your request for teacher's access awaits administrators approval." msgstr "" "Twoja prośba o dostęp nauczycielski czeka na akceptację administratorów." -#: teachers/templates/teachers/widgets/contest-selection.html:45 +#: teachers/templates/teachers/contest-selection.html:45 msgid "Ask your teacher for a registration link" msgstr "Poproś nauczyciela o odnośnik rejestracyjny" -#: teachers/templates/teachers/widgets/contest-selection.html:47 +#: teachers/templates/teachers/contest-selection.html:47 #, python-format msgid "" "\n" @@ -7740,27 +7793,27 @@ msgstr "" "dostęp nauczycielski.\n" " " -#: teachers/views.py:111 +#: teachers/views.py:106 msgid "User already accepted." msgstr "Użytkownik już zaakceptowany." -#: teachers/views.py:121 +#: teachers/views.py:116 msgid "Successfully accepted and emailed the new teacher." msgstr "Zaakeptowano i powiadomiono mailem nowego nauczyciela." -#: teachers/views.py:214 +#: teachers/views.py:209 msgid "You are already registered." msgstr "Jesteś już zarejestrowany." -#: teachers/views.py:216 +#: teachers/views.py:211 msgid "Activation successful." msgstr "Aktywacja zakończona." -#: teachers/views.py:288 +#: teachers/views.py:283 msgid "Import members completed successfully." msgstr "Pomyślnie zakończono importowanie członków." -#: teams/admin.py:45 teams/templates/teams/confirm-join-team.html:4 +#: teams/admin.py:46 teams/templates/teams/confirm-join-team.html:4 #: teams/templates/teams/team.html:4 teams/templates/teams/teams.html:4 #: teams/templates/teams/teams.html:7 teams/views.py:29 msgid "Teams" @@ -7952,7 +8005,7 @@ msgstr "" "Dostępność języków może zależeć od zadania. Możesz również wkleić kod " "poniżej." -#: testrun/controllers.py:178 testrun/models.py:13 +#: testrun/controllers.py:178 testrun/models.py:15 #: testrun/templates/testrun/no-testrun-problems.html:4 #: testrun/templates/testrun/no-testrun-problems.html:7 #: testrun/templates/testrun/submit.html:4 @@ -7960,31 +8013,31 @@ msgstr "" msgid "Test run" msgstr "Uruchomienie próbne" -#: testrun/models.py:12 +#: testrun/models.py:14 msgid "No error" msgstr "Brak błędu" -#: testrun/models.py:14 testrun/templates/testrun/report.html:4 +#: testrun/models.py:16 testrun/templates/testrun/report.html:4 msgid "Test run report" msgstr "Raport uruchomienia próbnego" -#: testrun/models.py:33 +#: testrun/models.py:35 msgid "test run config" msgstr "konfiguracja uruchomienia próbnego" -#: testrun/models.py:34 +#: testrun/models.py:36 msgid "test run configs" msgstr "konfiguracje uruchomienia próbnego" -#: testrun/models.py:70 +#: testrun/models.py:72 msgid "test runs limit" msgstr "limit wykonań testów" -#: testrun/models.py:73 +#: testrun/models.py:75 msgid "test run configuration for instance" msgstr "konfiguracja wykonań testów dla instancji" -#: testrun/models.py:74 +#: testrun/models.py:76 msgid "test run configuration for instances" msgstr "konfiguracja wykonań testów dla instancji" @@ -8150,15 +8203,15 @@ msgstr "ID systemu Zeus" msgid "Zeus Problem ID" msgstr "ID zadania typu Zeus" -#: zeus/models.py:15 +#: zeus/models.py:14 msgid "Outgoing message size limit exceeded" msgstr "Przekroczono limit wielkości wiadomości" -#: zeus/models.py:16 +#: zeus/models.py:15 msgid "Outgoing message count limit exceeded" msgstr "Przekroczono limit wychodzących wiadomości" -#: zeus/package.py:54 +#: zeus/package.py:53 msgid "Zeus Package" msgstr "Paczka typu Zeus " diff --git a/oioioi/locale/pl/LC_MESSAGES/djangojs.mo b/oioioi/locale/pl/LC_MESSAGES/djangojs.mo index 3274de5a1b08ccc028f638fcce28c6ad5b6a3dd8..e3561452fa3e7cb976b5094d88f352f528ad96ac 100644 GIT binary patch delta 440 zcmXZYJxc>Y5Qp)96klR|NlY|?B0(gL9_$@LE?3wX5Jd|ml?WO!g-rr-jg2X6ECdM= z1q(lcMIfDEVQFEfm7Q2=VZh2pd=>-8{cd(=cV_OxG~DJzq?YTFc4E?xq^lw64eP_w z7ltGM?#HEoxR{Uz@Elk08ab+WT*o$Yg%(Gp4O~MT-(Wl<-J;FEPfDxQeN3t*YA7`> z-;R@MiP_|%-Cs`Eq&y#+ zEcD_TX0d^`;2qito-l>4IDzesQGzJ(46>wow2c(d4zh(j+T~^Qj?fNtg8UGvmFPb0 p&la7f!*VG+s8*apDJ%yW&$zy0795k$xPIW7IpZ1Ax{N&!{sHC{HZ=eM delta 401 zcmXZYEl5LA6u|NS9DYvs;hYnc6+sY-!!V}Vpdx6nSPX&;gJ3YfV9+Wq7!5{)xM*7$ z*bH_tY7lJ0;{WglkNe}^bI!fzyxaQM>Qg(Dp-Tg`l zCiFzN^jt0FMR&EQUO{CV_H|KXf1$+;Tx#UE%dqXc_hk}%gYOD7^iPL%Z8lA8YQ#6y zS`M_PEwv}E)VsJ-OL^2$?P@gostfu)@K>FULN$%ostGhbSoUBb(kbl# diff --git a/oioioi/newsfeed/templates/newsfeed/widgets/news.html b/oioioi/newsfeed/templates/newsfeed/news.html similarity index 88% rename from oioioi/newsfeed/templates/newsfeed/widgets/news.html rename to oioioi/newsfeed/templates/newsfeed/news.html index c2e5a06b8..47b664f83 100644 --- a/oioioi/newsfeed/templates/newsfeed/widgets/news.html +++ b/oioioi/newsfeed/templates/newsfeed/news.html @@ -15,7 +15,7 @@

    {{ news.title }}