From ce306db85809a030d50e5f625826fbe5bd468507 Mon Sep 17 00:00:00 2001 From: houcha Date: Sat, 6 Mar 2021 00:06:55 +0300 Subject: [PATCH 01/16] Adjust index: add schools' archive --- .../templates/archived_schools_page.html | 63 +++++++++++++++++++ anytask/index/templates/schools_page.html | 58 +++++++++++++++++ anytask/index/views.py | 15 ++++- .../migrations/0003_school_is_active.py | 20 ++++++ anytask/schools/models.py | 1 + anytask/urls.py | 3 +- 6 files changed, 157 insertions(+), 3 deletions(-) create mode 100644 anytask/index/templates/archived_schools_page.html create mode 100644 anytask/index/templates/schools_page.html create mode 100644 anytask/schools/migrations/0003_school_is_active.py diff --git a/anytask/index/templates/archived_schools_page.html b/anytask/index/templates/archived_schools_page.html new file mode 100644 index 000000000..9361dd44e --- /dev/null +++ b/anytask/index/templates/archived_schools_page.html @@ -0,0 +1,63 @@ +{% extends "base.html" %} +{% load i18n %} +{% load django_bootstrap_breadcrumbs %} + +{% block title %}Anytask{% endblock %} + +{% block scripts %} + + +{% endblock %} + +{% block navbar %} + +{% endblock navbar %} + +{% block breadcrumbs %} + {{ block.super }} + {% breadcrumb_for "" %} + {% trans "arhiv" %} + {% endbreadcrumb_for %} +{% endblock breadcrumbs %} + +{% block content %} + + {#
#} + {#

Anytask

#} + {#

β-{% trans "версия" %}

#} + {#

#} + {# {% trans "Платформа для взаимодействия преподавателей и студентов в процессе обучения." %}#} + {##} + {# {% trans "AnyTask — сервис для учета выполнения студентами программы по учебным курсам." %}#} + {# >> #} + {#

#} + {# #} + {#
#} + +
+ {% for school in schools %} + + {% endfor %} +
+ +{% endblock %} diff --git a/anytask/index/templates/schools_page.html b/anytask/index/templates/schools_page.html new file mode 100644 index 000000000..85b8ec98b --- /dev/null +++ b/anytask/index/templates/schools_page.html @@ -0,0 +1,58 @@ +{% extends "base.html" %} +{% load i18n %} +{% load index_messages %} + +{% block title %}Anytask{% endblock %} + +{% block scripts %} + + +{% endblock %} + +{% block navbar %} + +{% endblock navbar %} + +{% block content %} + + {% index_message %} + + {#
#} + {#

Anytask

#} + {#

β-{% trans "версия" %}

#} + {#

#} + {# {% trans "Платформа для взаимодействия преподавателей и студентов в процессе обучения." %}#} + {##} + {# {% trans "AnyTask — сервис для учета выполнения студентами программы по учебным курсам." %}#} + {# >> #} + {#

#} + {# #} + {#
#} + +
+ {% for school in schools %} + + {% endfor %} +
+ +{% endblock %} diff --git a/anytask/index/views.py b/anytask/index/views.py index 194fea630..2958c1a9c 100644 --- a/anytask/index/views.py +++ b/anytask/index/views.py @@ -3,7 +3,7 @@ def index(request): - schools = School.objects.all().order_by('name') + schools = School.objects.all().filter(is_active=True).order_by('name') # current_year = get_current_year() # courses = Course.objects.filter(is_active=True).order_by('name') @@ -13,4 +13,15 @@ def index(request): 'schools': schools, } - return render(request, 'index.html', context) + return render(request, 'schools_page.html', context) + + +def archive_index(request): + schools = School.objects.all().filter(is_active=False).order_by('name') + + context = { + 'schools': schools, + } + + return render(request, 'archived_schools_page.html', context) + diff --git a/anytask/schools/migrations/0003_school_is_active.py b/anytask/schools/migrations/0003_school_is_active.py new file mode 100644 index 000000000..3d86be096 --- /dev/null +++ b/anytask/schools/migrations/0003_school_is_active.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.29 on 2021-03-04 16:41 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('schools', '0002_auto_20210228_1721'), + ] + + operations = [ + migrations.AddField( + model_name='school', + name='is_active', + field=models.BooleanField(db_index=True, default=False), + ), + ] diff --git a/anytask/schools/models.py b/anytask/schools/models.py index a733a21c9..4bb2c0a77 100644 --- a/anytask/schools/models.py +++ b/anytask/schools/models.py @@ -8,6 +8,7 @@ class School(models.Model): name = models.CharField(max_length=191, db_index=True, null=False, blank=False) link = models.CharField(max_length=191, db_index=False, null=False, blank=False) + is_active = models.BooleanField(db_index=True, null=False, blank=False, default=False) courses = models.ManyToManyField(Course, blank=True) def __unicode__(self): diff --git a/anytask/urls.py b/anytask/urls.py index a8a05e5e8..ee5f027ce 100644 --- a/anytask/urls.py +++ b/anytask/urls.py @@ -30,7 +30,8 @@ url(r'^static/(?P.*)$', django.views.static.serve, {'document_root': settings.STATIC_ROOT}), url(r'^media/(?P.*)$', django.views.static.serve, {'document_root': settings.MEDIA_ROOT}), url(r'^about$', TemplateView.as_view(template_name='about.html')), - url(r'^$', index.views.index), + url(r'^$', index.views.index, name="index.views.index"), + url(r'^archive/', index.views.archive_index, name="index.views.archive_index"), url(r'^search/', include('search.urls')), url(r'^staff', include('staff.urls')), url(r'^blog/', include('blog.urls')), From e89a5eaaa49c6f39f424006fcf6f6560b2bcdf49 Mon Sep 17 00:00:00 2001 From: houcha Date: Sat, 6 Mar 2021 00:08:06 +0300 Subject: [PATCH 02/16] Delete old files --- anytask/index/templates/index.html | 47 ------------------------------ 1 file changed, 47 deletions(-) delete mode 100644 anytask/index/templates/index.html diff --git a/anytask/index/templates/index.html b/anytask/index/templates/index.html deleted file mode 100644 index 2b4820c64..000000000 --- a/anytask/index/templates/index.html +++ /dev/null @@ -1,47 +0,0 @@ -{% extends "base.html" %} -{% load i18n %} -{% load index_messages %} - -{% block title %}Anytask{% endblock %} - -{% block scripts %} - - -{% endblock %} - -{% block content %} - - {% index_message %} - - {#
#} - {#

Anytask

#} - {#

β-{% trans "версия" %}

#} - {#

#} - {# {% trans "Платформа для взаимодействия преподавателей и студентов в процессе обучения." %}#} - {##} - {# {% trans "AnyTask — сервис для учета выполнения студентами программы по учебным курсам." %}#} - {# >> #} - {#

#} - {# #} - {#
#} - -
- {% for school in schools %} - - {% endfor %} -
- -{% endblock %} From 84254935bc78e86dadcde7ad3a09e8f1036c4051 Mon Sep 17 00:00:00 2001 From: houcha Date: Sat, 6 Mar 2021 19:35:42 +0300 Subject: [PATCH 03/16] Delete blank line at end of file --- anytask/index/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/anytask/index/views.py b/anytask/index/views.py index 2958c1a9c..e392c8cd6 100644 --- a/anytask/index/views.py +++ b/anytask/index/views.py @@ -24,4 +24,3 @@ def archive_index(request): } return render(request, 'archived_schools_page.html', context) - From ebcdd97d6c0701bb4457f205e23d23542c47afea Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sat, 6 Mar 2021 19:45:27 +0300 Subject: [PATCH 04/16] Add some dirs to exclude from flake8 check --- .flake8 | 1 + 1 file changed, 1 insertion(+) diff --git a/.flake8 b/.flake8 index e0ee97b7a..b905156b1 100644 --- a/.flake8 +++ b/.flake8 @@ -1,5 +1,6 @@ [flake8] count = True +exclude = .git,__pycache__,build,dist,anytask/media ignore = W503 # W503 is deprecated, see https://www.python.org/dev/peps/pep-0008/#id20 From 6424890f20bc6a04d819df3cf09558cf51cc8de1 Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sat, 6 Mar 2021 19:54:40 +0300 Subject: [PATCH 05/16] + migrations --- .flake8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.flake8 b/.flake8 index b905156b1..02be368e4 100644 --- a/.flake8 +++ b/.flake8 @@ -1,6 +1,6 @@ [flake8] count = True -exclude = .git,__pycache__,build,dist,anytask/media +exclude = .git,__pycache__,build,dist,anytask/media,debian,migrations ignore = W503 # W503 is deprecated, see https://www.python.org/dev/peps/pep-0008/#id20 From fc8ab81048c8161700012b6c084a5bdad403242d Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sat, 6 Mar 2021 20:02:04 +0300 Subject: [PATCH 06/16] Goodbye travis :( --- .travis.yml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0ba23913a..000000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -sudo: required -language: python -python: - - "2.7" -install: - - pip install pip>=9.0.1 - - pip install --upgrade flake8 - - pip install -r requirements_local.txt - - sudo apt-get install p7zip-full tar xz-utils bzip2 gzip - - sudo apt-get install python3 -script: - - sudo mkdir -m 777 /var/lib/anytask/ - - cd /var/lib/anytask/ - - git clone https://github.com/gebetix/repos - - cd ~/build/znick/anytask/anytask - - flake8 --version - - flake8 - - python manage.py test From 8271c4797df4ee0cf3805380c5efe07fcf240454 Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sat, 6 Mar 2021 22:12:52 +0300 Subject: [PATCH 07/16] Update l18n strings --- anytask/locale/en/LC_MESSAGES/django.po | 2310 ++++++++++++++++------- anytask/locale/ru/LC_MESSAGES/django.po | 629 +++--- 2 files changed, 1928 insertions(+), 1011 deletions(-) diff --git a/anytask/locale/en/LC_MESSAGES/django.po b/anytask/locale/en/LC_MESSAGES/django.po index 5de8faf6c..933093f56 100644 --- a/anytask/locale/en/LC_MESSAGES/django.po +++ b/anytask/locale/en/LC_MESSAGES/django.po @@ -2,243 +2,343 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-02-21 13:16+0500\n" +"POT-Creation-Date: 2021-03-06 21:56+0300\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: anycontest/models.py:171 anycontest/models.py:177 anycontest/models.py:182 +#: admission/views.py:170 courses/templates/courses/course_forbidden.html:30 +#: issues/templates/file_uploader.html:198 +msgid "oshibka" +msgstr "Error" + +#: admission/views.py:180 +#, fuzzy +#| msgid "oshibka_otpravki_v_kontest" +msgid "oshibka_registracii_v_contest" +msgstr "Error sending to the contest" + +#: admission/views.py:182 +msgid "nevernyy_kod_aktivatsii" +msgstr "" + +#: admission/views.py:202 +msgid "spasibo" +msgstr "" + +#: admission/views.py:203 +msgid "informatsiya_o_vas_byla_udalena" +msgstr "" + +#: anycontest/management/commands/check_contest.py:49 issues/models.py:348 +#: issues/views.py:117 +msgid "oshibka_otpravki_v_rb" +msgstr "Sending to RB failed" + +#: anycontest/management/commands/check_contest.py:57 +msgid "bally_ne_uchityvautsia" +msgstr "" + +#: anycontest/models.py:206 anycontest/models.py:212 anycontest/models.py:217 +#: anycontest/tests.py:259 anycontest/tests.py:276 anycontest/tests.py:297 msgid "verdikt_jakontest" msgstr "Ya.contest verdict" -#: anycontest/models.py:189 +#: anycontest/models.py:224 msgid "resursy" msgstr "Resources" -#: anycontest/models.py:192 +#: anycontest/models.py:227 msgid "vvod" msgstr "Input" -#: anycontest/models.py:198 +#: anycontest/models.py:233 msgid "vyvod_programmy" msgstr "Program output" -#: anycontest/models.py:204 +#: anycontest/models.py:239 msgid "pravilnyj_otvet" msgstr "Correct answer" -#: anycontest/models.py:218 +#: anycontest/models.py:253 msgid "soobshenie_chekera" msgstr "Checker message" -#: anycontest/models.py:224 +#: anycontest/models.py:259 msgid "test" msgstr "Test" -#: anycontest/management/commands/check_contest.py:41 issues/models.py:298 -#: issues/views.py:104 -msgid "oshibka_otpravki_v_rb" -msgstr "Sending to RB failed" - -#: anyrb/common.py:83 courses/templates/courses/queue.html:74 -#: issues/models.py:471 users/templates/my_tasks.html:136 +#: anyrb/common.py:87 courses/templates/courses/queue.html:77 +#: issues/issueFilter.py:23 issues/management/commands/send_notifications.py:94 +#: issues/views.py:49 users/templates/my_tasks.html:139 msgid "zadacha" msgstr "Problem" -#: anyrb/common.py:84 users/models.py:183 users/templates/my_tasks.html:137 -#: users/templates/user_courses.html:105 +#: anyrb/common.py:88 issues/management/commands/send_notifications.py:94 +#: issues/model_issue_student_filter.py:20 issues/views.py:48 +#: mail/templates/mail.html:174 users/model_user_profile_filter.py:27 +#: users/templates/my_tasks.html:140 users/templates/user_courses.html:91 msgid "kurs" msgstr "Year of study" -#: anyrb/common.py:85 courses/templates/courses/queue.html:73 +#: anyrb/common.py:89 courses/templates/courses/attendance_list.html:38 +#: courses/templates/courses/queue.html:76 #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:35 -#: courses/templates/courses/tasklist/shad_cpp.html:150 +#: courses/templates/courses/tasklist/shad_cpp.html:47 +#: issues/management/commands/send_notifications.py:94 issues/views.py:50 #: staff/templates/gradebook.html:43 msgid "student" msgstr "Student" -#: anyrb/common.py:86 +#: anyrb/common.py:90 issues/templates/issues/history.html:60 msgid "obsuzhdenie_zadachi" msgstr "Problem discussion" -#: anyrb/views.py:28 +#: anyrb/views.py:24 msgid "novyj_kommentarij" msgstr "New comment" -#: blog/templates/blog.html:4 blog/templates/blog.html.py:9 +#: blog/templates/blog.html:4 blog/templates/blog.html:9 msgid "blog_anytask" msgstr "Anytask blog" -#: courses/forms.py:18 -msgid "rasshirenia_fajla" -msgstr "File extension" - -#: courses/forms.py:22 issues/models.py:77 +#: courses/forms.py:25 issues/models.py:74 msgid "na_dorabotke" msgstr "Refinement stage" -#: courses/forms.py:23 issues/models.py:78 +#: courses/forms.py:26 issues/models.py:75 msgid "na_proverke" msgstr "Check up stage" -#: courses/forms.py:24 courses/templates/courses/gradebook.html:131 -#: issues/models.py:81 +#: courses/forms.py:27 courses/templates/courses/gradebook.html:73 +#: issues/models.py:78 msgid "trebuetsja_informacija" msgstr "Need info" -#: courses/forms.py:25 users/templates/my_tasks.html:96 -#: users/templates/my_tasks.html.py:131 users/templates/my_tasks.html:173 -#: users/templates/status_history.html:32 users/templates/user_courses.html:30 -#: users/templates/user_profile.html:20 users/templates/user_settings.html:46 +#: courses/forms.py:28 users/templates/my_tasks.html:99 +#: users/templates/my_tasks.html:134 users/templates/my_tasks.html:176 +#: users/templates/status_history.html:21 users/templates/user_courses.html:31 +#: users/templates/user_profile.html:22 users/templates/user_settings.html:19 msgid "moi_zadachi" msgstr "My assignments" -#: courses/forms.py:26 +#: courses/forms.py:29 msgid "nabludaemye_mnoj" msgstr "Followed by me" -#: courses/views.py:104 staff/views.py:44 users/views.py:453 -msgid "primenit" -msgstr "Apply" - -#: courses/views.py:739 courses/views.py:751 tasks/views.py:318 -msgid "kontesta_ne_sushestvuet" -msgstr "The contest does not exist" - -#: courses/views.py:741 courses/views.py:753 tasks/views.py:320 -msgid "oshibka_kontesta" -msgstr "Contest error" +#: courses/pythontask.py:175 +msgid "zapisalsya_na_task" +msgstr "" -#: courses/views.py:749 tasks/views.py:308 tasks/views.py:435 -msgid "net_prav_na_kontest" -msgstr "Contest: Permission denied" +#: courses/pythontask.py:195 +msgid "otkazalsya_ot_taska" +msgstr "" -#: courses/templates/courses/course.html:33 -#: courses/templates/courses/gradebook.html:28 -#: courses/templates/courses/queue.html:25 -#: courses/templates/courses/settings.html:31 +#: courses/templates/course_tasks_potok.html:51 +#: courses/templates/courses/attendance.html:27 +#: courses/templates/courses/course.html:36 +#: courses/templates/courses/gradebook.html:34 +#: courses/templates/courses/queue.html:27 +#: courses/templates/courses/settings.html:33 +#: courses/templates/statistics.html:51 msgid "stranica_kursa" msgstr "Course page" -#: courses/templates/courses/course.html:34 -#: courses/templates/courses/gradebook.html:28 +#: courses/templates/course_tasks_potok.html:52 +#: courses/templates/courses/course.html:37 +#: courses/templates/courses/gradebook.html:34 +#: courses/templates/statistics.html:52 msgid "stranica_seminara" msgstr "Seminar/workshop page" -#: courses/templates/courses/course.html:38 -#: courses/templates/courses/gradebook.html:32 -#: courses/templates/courses/queue.html:29 -#: courses/templates/courses/settings.html:35 +#: courses/templates/course_tasks_potok.html:61 +#: courses/templates/courses/attendance.html:37 +#: courses/templates/courses/course.html:52 +#: courses/templates/courses/gradebook.html:50 +#: courses/templates/courses/queue.html:20 +#: courses/templates/courses/queue.html:40 +#: courses/templates/courses/queue.html:63 +#: courses/templates/courses/settings.html:47 +#: issues/templates/issues/issue.html:35 +msgid "ochered_na_proverku" +msgstr "Check up queue" + +#: courses/templates/course_tasks_potok.html:64 +#: courses/templates/courses/attendance.html:40 +#: courses/templates/courses/course.html:55 +#: courses/templates/courses/gradebook.html:56 +#: courses/templates/courses/queue.html:44 +#: courses/templates/courses/settings.html:21 +#: courses/templates/courses/settings.html:52 templates/base.html:706 +#: users/templates/my_tasks.html:105 users/templates/status_history.html:27 +#: users/templates/user_courses.html:37 users/templates/user_profile.html:29 +#: users/templates/user_settings.html:25 users/templates/user_settings.html:35 +msgid "nastrojki" +msgstr "Settings" + +#: courses/templates/course_tasks_potok.html:148 +#: courses/templates/course_tasks_potok.html:177 +#: courses/templates/courses/course.html:217 +#: courses/templates/courses/course.html:221 +#: courses/templates/courses/course.html:345 +#: courses/templates/courses/course.html:350 +#: courses/templates/courses/course.html:546 +#: courses/templates/courses/course.html:551 +msgid "sdat" +msgstr "Submit" + +#: courses/templates/courses/attendance.html:20 +#: courses/templates/courses/attendance.html:34 +#: courses/templates/courses/course.html:45 +#: courses/templates/courses/gradebook.html:43 +#: courses/templates/courses/queue.html:35 +#: courses/templates/courses/settings.html:41 +msgid "zhurnal_poseshaemosti" +msgstr "" + +#: courses/templates/courses/attendance.html:30 +#: courses/templates/courses/course.html:41 +#: courses/templates/courses/gradebook.html:25 +#: courses/templates/courses/gradebook.html:39 +#: courses/templates/courses/queue.html:31 +#: courses/templates/courses/settings.html:37 #: staff/templates/get_gradebook.html:20 staff/templates/gradebook.html:21 -#: staff/templates/gradebook.html.py:38 staff/templates/staff.html:26 +#: staff/templates/gradebook.html:38 msgid "obshaja_vedomost" msgstr "General marks list" -#: courses/templates/courses/course.html:43 -#: courses/templates/courses/gradebook.html:37 -#: courses/templates/courses/queue.html:18 -#: courses/templates/courses/queue.html:32 -#: courses/templates/courses/settings.html:39 -#: issues/templates/issues/issue.html:30 -msgid "ochered_na_proverku" -msgstr "Check up queue" +#: courses/templates/courses/attendance.html:52 +#, fuzzy +#| msgid "dobavit_zadachu" +msgid "dobavit_zaniatie" +msgstr "Add assignment" + +#: courses/templates/courses/attendance.html:56 +#: courses/templates/courses/gradebook.html:94 +#, fuzzy +#| msgid "ne_pokazyvat_skrytye_zadachi" +msgid "ne_pokazyvat_otchislennyh" +msgstr "Do not show hidden assignments" + +#: courses/templates/courses/attendance.html:58 +#: courses/templates/courses/gradebook.html:96 +#, fuzzy +#| msgid "pokazyvat_moj_e-mail" +msgid "pokazyvat_otchislennyh" +msgstr "Show my email" + +#: courses/templates/courses/attendance_list.html:49 +msgid "poseshennye_uroki" +msgstr "" #: courses/templates/courses/course.html:46 -#: courses/templates/courses/gradebook.html:42 +#: courses/templates/courses/course.html:263 +#: courses/templates/courses/gradebook.html:44 #: courses/templates/courses/queue.html:36 -#: courses/templates/courses/settings.html:19 -#: courses/templates/courses/settings.html:44 templates/base.html:665 -#: users/templates/my_tasks.html:102 users/templates/status_history.html:38 -#: users/templates/user_courses.html:36 users/templates/user_profile.html:26 -#: users/templates/user_settings.html:52 users/templates/user_settings.html:129 -msgid "nastrojki" -msgstr "Settings" +#: courses/templates/courses/settings.html:42 +#, fuzzy +#| msgid "obshaja_vedomost" +msgid "poseshaemost" +msgstr "General marks list" -#: courses/templates/courses/course.html:82 -#: courses/templates/courses/gradebook.html:70 -#: courses/templates/courses/settings.html:133 users/models.py:184 +#: courses/templates/courses/course.html:87 +#: courses/templates/courses/settings.html:145 +#: issues/model_issue_student_filter.py:21 msgid "prepodavateli" msgstr "Teachers" -#: courses/templates/courses/course.html:89 +#: courses/templates/courses/course.html:95 msgid "redaktirovat_seminar" msgstr "Change seminar/workshop" -#: courses/templates/courses/course.html:96 -#: courses/templates/courses/gradebook.html:102 +#: courses/templates/courses/course.html:102 +#: courses/templates/courses/gradebook.html:85 msgid "ne_pokazyvat_skrytye_zadachi" msgstr "Do not show hidden assignments" -#: courses/templates/courses/course.html:98 -#: courses/templates/courses/gradebook.html:104 +#: courses/templates/courses/course.html:104 +#: courses/templates/courses/gradebook.html:87 msgid "pokazat_skrytye_zadachi" msgstr "Show hidden assignments" -#: courses/templates/courses/course.html:106 -#: courses/templates/courses/course.html:119 -#: courses/templates/courses/task.html:25 +#: courses/templates/courses/course.html:113 +#: courses/templates/courses/course.html:129 +#: courses/templates/courses/task.html:26 msgid "opisanie_kursa" msgstr "Course description" -#: courses/templates/courses/course.html:107 -#: courses/templates/courses/course.html:119 +#: courses/templates/courses/course.html:114 +#: courses/templates/courses/course.html:129 msgid "opisanie_zanjatija" msgstr "Class description" -#: courses/templates/courses/course.html:110 +#: courses/templates/courses/course.html:117 +#: courses/templates/courses/course.html:157 msgid "zadachi" msgstr "Problems/Assignments" -#: courses/templates/courses/course.html:110 -#: courses/templates/courses/course.html:147 +#: courses/templates/courses/course.html:117 +#: courses/templates/courses/course.html:157 msgid "spisok_grupp_i_zadach" msgstr "Assignments and groups list" -#: courses/templates/courses/course.html:151 -#: courses/templates/courses/gradebook.html:81 +#: courses/templates/courses/course.html:120 +#: courses/templates/courses/course.html:425 +msgid "materials" +msgstr "" + +#: courses/templates/courses/course.html:161 #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:27 #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:119 msgid "dobavit_zadachu" msgstr "Add assignment" -#: courses/templates/courses/course.html:162 -#: courses/templates/courses/gradebook.html:92 -#: tasks/templates/task_import.html:22 tasks/templates/task_import.html:39 +#: courses/templates/courses/course.html:171 +#: tasks/templates/task_import.html:25 tasks/templates/task_import.html:41 msgid "import_zadachi_iz_kontesta" msgstr "Import assignment from contest" -#: courses/templates/courses/course.html:164 -#: courses/templates/courses/gradebook.html:94 -#: tasks/templates/contest_import.html:20 -#: tasks/templates/contest_import.html:37 +#: courses/templates/courses/course.html:173 +#: tasks/templates/contest_import.html:23 +#: tasks/templates/contest_import.html:58 msgid "import_sorevnovanija" msgstr "Import competition from contest" -#: courses/templates/courses/course.html:194 -#: courses/templates/courses/course.html:262 -#: courses/templates/courses/course.html:302 -#: courses/templates/courses/course.html:361 +#: courses/templates/courses/course.html:209 +#: courses/templates/courses/course.html:289 +#: courses/templates/courses/course.html:337 +#: courses/templates/courses/course.html:401 +#: courses/templates/courses/course.html:455 +#: courses/templates/courses/course.html:538 msgid "sdat_do" msgstr "Send due" -#: courses/templates/courses/course.html:202 -#: courses/templates/courses/course.html:310 -msgid "sdat" -msgstr "Submit" - -#: courses/templates/courses/course.html:208 -#: courses/templates/courses/course.html:272 -#: courses/templates/courses/course.html:371 +#: courses/templates/courses/course.html:227 +#: courses/templates/courses/course.html:299 +#: courses/templates/courses/course.html:305 +#: courses/templates/courses/course.html:411 +#: courses/templates/courses/course.html:514 +#: courses/templates/courses/course.html:605 +#: courses/templates/courses/queue_js.html:143 +#: issues/templates/email_issue_notification.html:250 +#: issues/templates/email_issue_notification.txt:6 +#: staff/templates/staff.html:196 msgid "perejti" msgstr "Proceed" -#: courses/templates/courses/course.html:241 -#: courses/templates/courses/course.html:341 +#: courses/templates/courses/course.html:268 +#: courses/templates/courses/course.html:381 +#: courses/templates/courses/course.html:491 +#: courses/templates/courses/course.html:582 msgid "vedomost" msgstr "General list" -#: courses/templates/courses/course_forbidden.html:30 -msgid "oshibka" -msgstr "Error" +#: courses/templates/courses/course.html:429 mail/templates/mail.html:208 +msgid "dobavit" +msgstr "Add" + +#: courses/templates/courses/course.html:429 tasks/models.py:69 +msgid "material" +msgstr "" #: courses/templates/courses/course_forbidden.html:53 msgid "ukazat_invajt" @@ -253,255 +353,343 @@ msgstr "Restricted access" msgid "vvedite_invajt" msgstr "Insert invite" -#: courses/templates/courses/course_js.html:62 +#: courses/templates/courses/course_js.html:69 msgid "razvernut" msgstr "Expand" -#: courses/templates/courses/course_js.html:63 +#: courses/templates/courses/course_js.html:70 msgid "svernut" msgstr "Collapse" -#: courses/templates/courses/course_js.html:146 -msgid "sohranit_izmenenija?" -msgstr "Save changes?" +#: courses/templates/courses/course_js.html:162 +#: courses/templates/courses/course_js.html:840 +#: users/templates/user_profile_js.html:141 +msgid "sohranit_izmenenija" +msgstr "Save changes" -#: courses/templates/courses/course_js.html:168 -#: courses/templates/courses/task.html:35 -#: courses/templates/courses/tasklist/shad_cpp.html:318 -#: issues/templates/issues/issue_js.html:142 -#: users/templates/status_history.html:160 -#: users/templates/user_profile.html:419 users/templates/user_profile.html:443 -#: users/templates/user_profile_js.html:151 +#: courses/templates/courses/course_js.html:184 +#: courses/templates/courses/task.html:36 +#: courses/templates/courses/tasklist/shad_cpp.html:219 +#: issues/templates/issues/issue_js.html:166 staff/templates/staff.html:173 +#: staff/templates/staff.html:196 users/templates/status_history.html:141 +#: users/templates/user_profile.html:645 users/templates/user_profile.html:674 +#: users/templates/user_profile_js.html:163 msgid "sohranenie" msgstr "Saving" -#: courses/templates/courses/course_js.html:227 -#: staff/templates/staff_js.html:107 +#: courses/templates/courses/course_js.html:284 +#: staff/templates/gradebook_js.html:110 msgid "skopirovat" msgstr "Copy" -#: courses/templates/courses/course_js.html:244 -#: staff/templates/staff_js.html:124 +#: courses/templates/courses/course_js.html:301 +#: courses/templates/courses/queue_js.html:164 +#: staff/templates/gradebook_js.html:133 users/templates/status_history.html:95 msgid "pustaja_tablica" msgstr "Empty table" -#: courses/templates/courses/course_js.html:245 -#: staff/templates/staff_js.html:125 -msgid "_total__studentov" -msgstr "_total_ number of students" - -#: courses/templates/courses/course_js.html:246 -#: staff/templates/staff_js.html:126 -msgid "0_studentov" +#: courses/templates/courses/course_js.html:302 +#: courses/templates/courses/course_js.html:303 +#: courses/templates/courses/course_js.html:307 +#: staff/templates/gradebook_js.html:134 staff/templates/gradebook_js.html:135 +#: staff/templates/gradebook_js.html:139 +#, fuzzy +#| msgid "0_studentov" +msgid "studentov" msgstr "No students" -#: courses/templates/courses/course_js.html:247 -#: staff/templates/staff_js.html:127 -msgid "(iz__max_)" -msgstr "(iz__max_)" - -#: courses/templates/courses/course_js.html:250 -#: staff/templates/staff_js.html:130 -msgid "pokazat__menu__studentov" -msgstr "Show students menu" - -#: courses/templates/courses/course_js.html:251 mail/templates/mail.html:5 -#: mail/templates/mail.html.py:42 mail/templates/mail.html:60 -#: mail/templates/mail.html.py:78 mail/templates/mail.html:157 -#: mail/templates/mail_js.html:73 mail/templates/mail_js.html.py:74 -#: staff/templates/staff_js.html:131 +#: courses/templates/courses/course_js.html:304 +#: courses/templates/courses/queue_js.html:165 +#: courses/templates/courses/queue_js.html:167 +#: issues/templates/issues/info.html:73 mail/templates/mail_js.html:67 +#: mail/templates/mail_js.html:69 staff/templates/gradebook_js.html:136 +#: staff/templates/staff_js.html:168 staff/templates/staff_js.html:170 +msgid "iz" +msgstr "" + +#: courses/templates/courses/course_js.html:307 +#: courses/templates/courses/queue_js.html:170 mail/templates/mail_js.html:72 +#: staff/templates/gradebook_js.html:139 staff/templates/staff_js.html:173 +#, fuzzy +#| msgid "pokazat__menu_" +msgid "pokazat" +msgstr "Show _menu_" + +#: courses/templates/courses/course_js.html:308 +#: courses/templates/courses/queue_js.html:171 +#: courses/templates/courses/queue_js.html:172 mail/templates/mail.html:5 +#: mail/templates/mail_js.html:73 mail/templates/mail_js.html:74 +#: staff/templates/gradebook_js.html:140 staff/templates/staff_js.html:174 +#: staff/templates/staff_js.html:175 msgid "zagruzka" msgstr "Loading" -#: courses/templates/courses/course_js.html:252 -#: staff/templates/staff_js.html:132 +#: courses/templates/courses/course_js.html:309 +#: staff/templates/gradebook_js.html:141 msgid "vychislenie" msgstr "Computing" -#: courses/templates/courses/course_js.html:253 +#: courses/templates/courses/course_js.html:310 #: courses/templates/courses/settings_js.html:16 -#: staff/templates/staff_js.html:133 +#: courses/templates/courses/settings_js.html:17 +#: staff/templates/gradebook_js.html:142 msgid "poisk" msgstr "Searching" -#: courses/templates/courses/course_js.html:254 mail/templates/mail_js.html:77 -#: search/templates/search.html:76 staff/templates/staff_js.html:134 +#: courses/templates/courses/course_js.html:311 +#: courses/templates/courses/queue_js.html:175 mail/templates/mail_js.html:77 +#: search/templates/search.html:76 staff/templates/gradebook_js.html:143 +#: staff/templates/staff_js.html:167 staff/templates/staff_js.html:178 msgid "nichego_ne_najdeno" msgstr "No search results" -#: courses/templates/courses/course_js.html:256 -#: staff/templates/staff_js.html:136 +#: courses/templates/courses/course_js.html:313 +#: staff/templates/gradebook_js.html:145 msgid "pervaja" msgstr "First" -#: courses/templates/courses/course_js.html:257 -#: staff/templates/staff_js.html:137 +#: courses/templates/courses/course_js.html:314 +#: staff/templates/gradebook_js.html:146 msgid "poslednjaja" msgstr "Last" -#: courses/templates/courses/course_js.html:258 -#: staff/templates/staff_js.html:138 +#: courses/templates/courses/course_js.html:315 +#: staff/templates/gradebook_js.html:147 msgid "vpered" msgstr "Next" -#: courses/templates/courses/course_js.html:259 -#: staff/templates/staff_js.html:139 +#: courses/templates/courses/course_js.html:316 +#: staff/templates/gradebook_js.html:148 msgid "nazad" msgstr "Back" -#: courses/templates/courses/course_js.html:266 -#: staff/templates/staff_js.html:146 +#: courses/templates/courses/course_js.html:323 +#: staff/templates/gradebook_js.html:155 msgid "dannye_skopirovany" msgstr "Data is copied" -#: courses/templates/courses/course_js.html:268 -#: staff/templates/staff_js.html:148 +#: courses/templates/courses/course_js.html:325 +#: staff/templates/gradebook_js.html:157 msgid "zapisej_iz_tablicy" msgstr "Entries from table" -#: courses/templates/courses/course_js.html:269 -#: staff/templates/staff_js.html:149 +#: courses/templates/courses/course_js.html:326 +#: staff/templates/gradebook_js.html:158 msgid "1_zapis_iz_tablicy" msgstr "First entry from the table" -#: courses/templates/courses/course_js.html:582 +#: courses/templates/courses/course_js.html:686 msgid "udalit_zadachu_iz_grupp" msgstr "Remove problem from the groups" -#: courses/templates/courses/course_js.html:623 +#: courses/templates/courses/course_js.html:701 +msgid "udalit_odin" +msgstr "" + +#: courses/templates/courses/course_js.html:702 +msgid "udalit_posleduushie" +msgstr "" + +#: courses/templates/courses/course_js.html:741 msgid "uvereny_cho_hotite_udalit?" msgstr "Are you sure you want to delete it?" -#: courses/templates/courses/course_js.html:672 -#: users/templates/user_profile_js.html:129 -msgid "sohranit_izmenenija" -msgstr "Save changes" - -#: courses/templates/courses/course_js.html:765 -#: issues/templates/issues/info.html:131 issues/templates/issues/info.html:151 -#: tasks/templates/contest_import.html:110 tasks/templates/task_create.html:129 -#: tasks/templates/task_create_or_edit_js.html:366 -#: tasks/templates/task_edit.html:167 tasks/templates/task_edit.html.py:357 -#: tasks/templates/task_import.html:108 tasks/templates/task_import_js.html:358 +#: courses/templates/courses/course_js.html:938 +#: issues/templates/issues/info.html:136 issues/templates/issues/info.html:156 +#: tasks/management/commands/send_task_notifications.py:82 +#: tasks/templates/contest_import.html:129 tasks/templates/task_create.html:137 +#: tasks/templates/task_create_or_edit_js.html:468 +#: tasks/templates/task_edit.html:211 tasks/templates/task_edit.html:430 +#: tasks/templates/task_import.html:118 tasks/templates/task_import_js.html:418 msgid "data_sdachi" msgstr "Submit due" -#: courses/templates/courses/gradebook.html:130 -#: courses/templatetags/course_func.py:33 issues/models.py:76 +#: courses/templates/courses/course_js.html:956 +#: lessons/templates/lesson_create.html:47 +#: lessons/templates/lesson_create_or_edit_js.html:503 +#: lessons/templates/lesson_edit.html:77 +msgid "data_zaniatia" +msgstr "" + +#: courses/templates/courses/course_js.html:1039 +msgid "udalit_poseshennoe_vse" +msgstr "" + +#: courses/templates/courses/course_js.html:1041 +msgid "udalit_poseshennoe" +msgstr "" + +#: courses/templates/courses/gradebook.html:39 +#, fuzzy +#| msgid "obshaja_vedomost" +msgid "obshaja_vedomost_seminara" +msgstr "General marks list" + +#: courses/templates/courses/gradebook.html:72 +#: courses/templatetags/course_func.py:32 issues/model_issue_status.py:12 +#: issues/models.py:73 msgid "novyj" msgstr "New" -#: courses/templates/courses/gradebook.html:135 +#: courses/templates/courses/gradebook.html:77 #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:53 #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:146 -#: courses/templates/courses/tasklist/shad_cpp.html:168 +#: courses/templates/courses/tasklist/shad_cpp.html:65 +#: users/templates/user_courses.html:92 msgid "summarnyj_ball" msgstr "Total score" -#: courses/templates/courses/queue.html:75 users/templates/my_tasks.html:139 +#: courses/templates/courses/gradebook.html:78 mail/templates/mail.html:177 +#: users/templates/status_history.html:48 +msgid "statusy" +msgstr "Statuses" + +#: courses/templates/courses/queue.html:64 +#: courses/templates/courses/queue.html:95 +msgid "filtr" +msgstr "" + +#: courses/templates/courses/queue.html:78 users/templates/my_tasks.html:142 msgid "obnovlena" msgstr "Updates" -#: courses/templates/courses/queue.html:76 users/templates/my_tasks.html:141 +#: courses/templates/courses/queue.html:79 issues/views.py:54 +#: users/templates/my_tasks.html:144 msgid "ocenka" msgstr "Mark" -#: courses/templates/courses/queue.html:77 issues/models.py:469 +#: courses/templates/courses/queue.html:80 issues/issueFilter.py:17 +#: issues/views.py:51 msgid "proverjaushij" msgstr "TA" -#: courses/templates/courses/queue_js.html:22 -#: issues/templates/issues/issue_js.html:41 mail/templates/mail_js.html:76 -#: mail/templates/mail_js.html.py:580 search/templates/search.html:62 -#: tasks/templates/task_create_or_edit_js.html:34 templates/base.html:634 -#: users/templates/my_tasks.html:42 +#: courses/templates/courses/queue_js.html:21 +#: courses/templates/courses/queue_js.html:174 +#: issues/templates/issues/issue_js.html:65 mail/templates/mail_js.html:76 +#: mail/templates/mail_js.html:604 search/templates/search.html:62 +#: staff/templates/staff_js.html:49 staff/templates/staff_js.html:177 +#: tasks/templates/task_create_or_edit_js.html:70 templates/base.html:675 +#: users/templates/my_tasks.html:45 msgid "najti" msgstr "Find" +#: courses/templates/courses/queue_js.html:22 #: courses/templates/courses/queue_js.html:23 -#: courses/templates/courses/queue_js.html:24 -#: courses/templates/courses/queue_js.html:35 -#: courses/templates/courses/queue_js.html:49 +#: courses/templates/courses/queue_js.html:34 +#: courses/templates/courses/queue_js.html:48 msgid "vse" msgstr "All" -#: courses/templates/courses/settings.html:134 +#: courses/templates/courses/settings.html:146 msgid "prepodavateli_po_umolchaniu" msgstr "Default teacher" -#: courses/templates/courses/settings.html:155 +#: courses/templates/courses/settings.html:167 +#, fuzzy +#| msgid "nastrojka_zadach" +msgid "nastrojka_kursa" +msgstr "Assignments settings" + +#: courses/templates/courses/settings.html:173 +msgid "dobavit_zhurnal_poseshaemosti" +msgstr "" + +#: courses/templates/courses/settings.html:178 msgid "nastrojka_zadach" msgstr "Assignments settings" -#: courses/templates/courses/settings.html:156 +#: courses/templates/courses/settings.html:179 msgid "skrytie_polej_ustanovka_znachenij" msgstr "Hide settings fields" -#: courses/templates/courses/settings.html:160 -#: tasks/templates/contest_import.html:142 tasks/templates/task_create.html:69 -#: tasks/templates/task_edit.html:233 tasks/templates/task_import.html:132 +#: courses/templates/courses/settings.html:183 +#, fuzzy +#| msgid "izmenenie_udalenie_zadach" +msgid "izmenenie_v_zadache" +msgstr "Change or delete the assignment" + +#: courses/templates/courses/settings.html:186 +#: courses/templates/courses/settings.html:200 +#: courses/templates/courses/settings.html:214 +msgid "po_umolchaniu" +msgstr "Default" + +#: courses/templates/courses/settings.html:193 +#: tasks/templates/contest_import.html:159 tasks/templates/task_create.html:164 +#: tasks/templates/task_edit.html:281 tasks/templates/task_import.html:143 msgid "otpravljat_tolko_odin_fajl" msgstr "Send single file" -#: courses/templates/courses/settings.html:163 -#: courses/templates/courses/settings.html:176 +#: courses/templates/courses/settings.html:196 +#: courses/templates/courses/settings.html:210 msgid "otobrazhat_nastrojku" msgstr "Show settings" -#: courses/templates/courses/settings.html:167 -#: courses/templates/courses/settings.html:180 -msgid "po_umolchaniu" -msgstr "Default" - -#: courses/templates/courses/settings.html:173 -#: tasks/templates/contest_import.html:152 tasks/templates/task_edit.html:248 -#: tasks/templates/task_import.html:142 +#: courses/templates/courses/settings.html:207 +#: tasks/templates/contest_import.html:169 tasks/templates/task_edit.html:296 +#: tasks/templates/task_import.html:153 msgid "perevodit_v_zachteno" msgstr "Move to \"counted\"" -#: courses/templates/courses/settings.html:193 -#: issues/templates/issues/issue.html:41 mail/templates/mail_js.html:537 +#: courses/templates/courses/settings.html:228 +#: issues/templates/issues/issue.html:46 mail/templates/mail_js.html:561 #: search/templates/search.html:138 templates/base.html:115 -#: users/templates/user_settings.html:181 +#: users/templates/user_profile.html:181 users/templates/user_settings.html:96 msgid "jakontest" msgstr "Ya.Contest" -#: courses/templates/courses/settings.html:195 +#: courses/templates/courses/settings.html:230 issues/views.py:57 +#, fuzzy +#| msgid "ukazat_nomer_kontesta" +msgid "nomer_posylki_kontest" +msgstr "Enter contest id" + +#: courses/templates/courses/settings.html:234 +#, fuzzy +#| msgid "studentom" +msgid "student_vidit_nomer" +msgstr "By student" + +#: courses/templates/courses/settings.html:239 msgid "peresudit_reshenija_studentov" msgstr "Run scoring on students submissions again" -#: courses/templates/courses/settings.html:209 -#: issues/templates/issues/info.html:64 +#: courses/templates/courses/settings.html:253 +#: issues/templates/issues/info.html:67 msgid "peresudit" msgstr "Run scoring again" -#: courses/templates/courses/settings.html:216 +#: courses/templates/courses/settings.html:260 msgid "obnovit_dannie_zadach" msgstr "Update assignments info" -#: courses/templates/courses/settings.html:230 -#: tasks/templates/task_edit.html:369 +#: courses/templates/courses/settings.html:274 +#: tasks/templates/task_edit.html:442 msgid "obnovit" msgstr "Update" -#: courses/templates/courses/settings.html:247 +#: courses/templates/courses/settings.html:291 msgid "rasshirenija_fajlov" msgstr "File extensions" -#: courses/templates/courses/settings.html:261 -#: tasks/templates/contest_import.html:167 tasks/templates/task_create.html:162 -#: tasks/templates/task_edit.html:299 tasks/templates/task_import.html:167 +#: courses/templates/courses/settings.html:305 +#: lessons/templates/lesson_create.html:135 +#: lessons/templates/lesson_edit.html:166 +#: tasks/templates/contest_import.html:202 tasks/templates/task_create.html:210 +#: tasks/templates/task_edit.html:367 tasks/templates/task_import.html:196 msgid "otmenit_i_vyjti" msgstr "Discard and exit" -#: courses/templates/courses/settings.html:262 -#: tasks/templates/task_create.html:163 tasks/templates/task_edit.html:300 +#: courses/templates/courses/settings.html:306 +#: tasks/templates/task_create.html:211 tasks/templates/task_edit.html:368 msgid "sohranit_i_prodolzhit" msgstr "Save and continue" -#: courses/templates/courses/settings.html:263 -#: tasks/templates/contest_import.html:168 tasks/templates/task_create.html:164 -#: tasks/templates/task_edit.html:301 tasks/templates/task_import.html:168 +#: courses/templates/courses/settings.html:307 +#: lessons/templates/lesson_create.html:136 +#: lessons/templates/lesson_edit.html:167 +#: tasks/templates/contest_import.html:203 tasks/templates/task_create.html:212 +#: tasks/templates/task_edit.html:369 tasks/templates/task_import.html:197 msgid "sohranit_i_vyjti" msgstr "Save and exit" @@ -509,20 +697,20 @@ msgstr "Save and exit" #: courses/templates/courses/settings_js.html:83 #: courses/templates/courses/settings_js.html:95 #: courses/templates/courses/settings_js.html:109 -#: tasks/templates/task_create_or_edit_js.html:37 -#: tasks/templates/task_create_or_edit_js.html:38 -#: tasks/templates/task_create_or_edit_js.html:50 +#: tasks/templates/task_create_or_edit_js.html:73 +#: tasks/templates/task_create_or_edit_js.html:74 +#: tasks/templates/task_create_or_edit_js.html:86 msgid "vse_zadachi" msgstr "All assignments" #: courses/templates/courses/settings_js.html:92 #: courses/templates/courses/settings_js.html:106 -#: tasks/templates/task_create_or_edit_js.html:47 +#: tasks/templates/task_create_or_edit_js.html:83 msgid "ne_vybrano_zadach" msgstr "No assignments are selected" #: courses/templates/courses/settings_js.html:112 -#: tasks/templates/task_create_or_edit_js.html:53 +#: tasks/templates/task_create_or_edit_js.html:89 msgid "vybrano_neskolko_zadach" msgstr "Several assignments selected" @@ -539,22 +727,28 @@ msgid "zadachi_obnovleny" msgstr "Assignments are updated" #: courses/templates/courses/settings_js.html:186 -#: tasks/templates/task_edit.html:70 tasks/templates/task_edit.html.py:84 +#: tasks/templates/task_edit.html:78 tasks/templates/task_edit.html:92 msgid "oshibka_pri_poluchenii" msgstr "Error during loading" #: courses/templates/courses/settings_js.html:226 #: courses/templates/courses/settings_js.html:234 -#: courses/templates/courses/task.html:34 -#: courses/templates/courses/tasklist/shad_cpp.html:317 -#: mail/templates/mail.html:147 tasks/templates/task_create_or_edit_js.html:167 -#: tasks/templates/task_create_or_edit_js.html:182 -#: tasks/templates/task_create_or_edit_js.html:193 -#: tasks/templates/task_edit.html:72 tasks/templates/task_edit.html.py:81 -#: users/templates/status_history.html:158 -#: users/templates/user_profile.html:418 users/templates/user_profile.html:442 -#: users/templates/user_profile.html:467 users/templates/user_settings.html:13 -#: users/templates/user_settings.html:21 +#: courses/templates/courses/task.html:35 +#: courses/templates/courses/tasklist/shad_cpp.html:218 +#: lessons/templates/lesson_create_or_edit_js.html:94 +#: lessons/templates/lesson_create_or_edit_js.html:110 +#: lessons/templates/lesson_create_or_edit_js.html:120 +#: mail/templates/mail.html:207 staff/templates/staff.html:172 +#: staff/templates/staff.html:195 staff/templates/staff.html:218 +#: tasks/templates/task_create_or_edit_js.html:239 +#: tasks/templates/task_create_or_edit_js.html:257 +#: tasks/templates/task_create_or_edit_js.html:268 +#: tasks/templates/task_edit.html:80 tasks/templates/task_edit.html:89 +#: users/templates/status_history.html:139 +#: users/templates/user_profile.html:642 users/templates/user_profile.html:672 +#: users/templates/user_profile.html:699 +#: users/templates/user_settings_js.html:53 +#: users/templates/user_settings_js.html:61 msgid "zakryt" msgstr "Close" @@ -567,54 +761,77 @@ msgid "oshibka_otpravki" msgstr "Sending error" #: courses/templates/courses/settings_js.html:262 -#: users/templates/user_settings.html:16 +#: staff/templates/staff_js.html:287 users/templates/user_settings_js.html:56 msgid "sohraneno_uspeshno" msgstr "Saved successfully" -#: courses/templates/courses/settings_js.html:272 -#: tasks/templates/task_create_or_edit_js.html:185 -#: users/templates/user_settings.html:24 +#: courses/templates/courses/settings_js.html:276 +#: lessons/templates/lesson_create_or_edit_js.html:111 +#: staff/templates/staff_js.html:304 staff/templates/staff_js.html:350 +#: tasks/templates/task_create_or_edit_js.html:260 +#: users/templates/user_settings_js.html:64 msgid "oshibka_pri_sohranenii" msgstr "Saving error" -#: courses/templates/courses/task.html:30 users/templates/user_profile.html:438 +#: courses/templates/courses/task.html:31 users/templates/user_profile.html:667 msgid "oshibka_poprobujte_eshe" msgstr "Error. Try once again" -#: courses/templates/courses/task.html:35 -#: courses/templates/courses/tasklist/shad_cpp.html:318 -#: users/templates/status_history.html:160 -#: users/templates/user_profile.html:419 users/templates/user_profile.html:443 -#: users/templates/user_settings.html:145 +#: courses/templates/courses/task.html:36 +#: courses/templates/courses/tasklist/shad_cpp.html:219 +#: issues/templates/issues/info.html:105 staff/templates/staff.html:173 +#: users/templates/status_history.html:141 +#: users/templates/user_profile.html:645 users/templates/user_profile.html:674 +#: users/templates/user_settings.html:60 msgid "sohranit" msgstr "Save" -#: courses/templates/courses/tasks_description.html:20 -msgid "zadachi_kursa" -msgstr "Course assignments" - #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:116 msgid "slushateli_kursa" msgstr "Course students" -#: courses/templates/courses/tasklist/shad_cpp.html:172 -#: users/templates/user_courses.html:110 +#: courses/templates/courses/tasklist/shad_cpp.html:69 +#: users/templates/user_courses.html:93 msgid "itogovaja_ocenka" msgstr "Final mark" -#: courses/templates/courses/tasklist/shad_cpp.html:294 +#: courses/templates/courses/tasklist/shad_cpp.html:192 msgid "itogovaja_tablica" msgstr "Final table" -#: courses/templates/courses/tasklist/shad_cpp.html:297 +#: courses/templates/courses/tasklist/shad_cpp.html:195 msgid "izmenenie_udalenie_zadach" msgstr "Change or delete the assignment" -#: courses/templates/courses/tasklist/shad_cpp.html:308 +#: courses/templates/courses/tasklist/shad_cpp.html:207 msgid "snachala_udalit_podzadchi" msgstr "Delete the sub-assignment first" -#: invites/templates/generate.html:4 invites/templates/generate.html.py:62 +#: courses/templates/courses/tasks_description.html:20 +msgid "zadachi_kursa" +msgstr "Course assignments" + +#: courses/views.py:85 +msgid "ochistit" +msgstr "" + +#: courses/views.py:85 staff/views.py:88 users/views.py:495 +msgid "primenit" +msgstr "Apply" + +#: courses/views.py:831 courses/views.py:843 tasks/views.py:367 +msgid "kontesta_ne_sushestvuet" +msgstr "The contest does not exist" + +#: courses/views.py:833 courses/views.py:845 tasks/views.py:369 +msgid "oshibka_kontesta" +msgstr "Contest error" + +#: courses/views.py:841 tasks/views.py:357 tasks/views.py:442 +msgid "net_prav_na_kontest" +msgstr "Contest: Permission denied" + +#: invites/templates/generate.html:4 invites/templates/generate.html:62 msgid "sozdanie_invajtov" msgstr "Create the invite code" @@ -631,8 +848,9 @@ msgid "kolichestvo_invajtov_celoe" msgstr "Invites number must be integer" #: invites/templates/generate.html:46 -#: tasks/templates/task_create_or_edit_js.html:256 -#: tasks/templates/task_import_js.html:197 +#: lessons/templates/lesson_create_or_edit_js.html:171 +#: tasks/templates/task_create_or_edit_js.html:344 +#: tasks/templates/task_import_js.html:246 msgid "neobhodimo_vybrat_gruppu" msgstr "Please select group" @@ -653,8 +871,8 @@ msgid "gruppy_net_v_spiske" msgstr "Group is not on the list" #: invites/templates/generate.html:91 users/templates/oauth_error.html:37 -#: users/templates/user_profile.html:128 users/templates/user_profile.html:140 -#: users/templates/user_profile.html:476 +#: users/templates/user_profile.html:99 users/templates/user_profile.html:113 +#: users/templates/user_profile.html:708 msgid "administratoru" msgstr "Administrators" @@ -674,250 +892,567 @@ msgstr "For" msgid "dejstvitelen_do" msgstr "Valid till" -#: issues/admin.py:23 issues/models.py:467 -#: issues/templates/issues/info.html:108 staff/templates/staff.html:59 -#: users/admin.py:20 users/models.py:185 users/templates/my_tasks.html:140 +#: issues/admin.py:25 issues/issueFilter.py:15 +#: issues/model_issue_student_filter.py:22 +#: issues/templates/issues/info.html:113 issues/views.py:53 +#: staff/templates/staff.html:90 users/admin.py:27 +#: users/templates/my_tasks.html:143 msgid "status" msgstr "Status" -#: issues/forms.py:145 +#: issues/forms.py:152 msgid "format14" msgstr "Format 14" -#: issues/models.py:79 +#: issues/issueFilter.py:16 issues/model_issue_student_filter.py:23 +msgid "data_poslednego_izmenenija" +msgstr "Last change data" + +#: issues/issueFilter.py:18 issues/views.py:52 +msgid "nabludateli" +msgstr "Viewers" + +#: issues/issueFilter.py:19 +#, fuzzy +#| msgid "student" +msgid "studenty" +msgstr "Student" + +#: issues/issueFilter.py:21 +msgid "uroki" +msgstr "" + +#: issues/model_issue_status.py:50 +#, fuzzy +#| msgid "vse_statusy" +msgid "issue status" +msgstr "All statuses" + +#: issues/model_issue_status.py:51 +#, fuzzy +#| msgid "vse_statusy" +msgid "issue statuses" +msgstr "All statuses" + +#: issues/model_issue_student_filter.py:14 +msgid "tip_kursa" +msgstr "Course type" + +#: issues/model_issue_student_filter.py:16 +msgid "god_kursa" +msgstr "Course year" + +#: issues/model_issue_student_filter.py:45 +msgid "luboj" +msgstr "Any" + +#: issues/model_issue_student_filter.py:46 +msgid "aktivnyj" +msgstr "Active" + +#: issues/model_issue_student_filter.py:47 +#: schools/templates/archive_page.html:23 +#: schools/templates/archive_page.html:32 schools/templates/school_page.html:22 +#: search/templates/search.html:170 templates/base.html:135 +#: users/templates/user_courses.html:65 users/templates/user_courses.html:72 +#: users/templates/user_profile.html:398 users/templates/user_profile.html:487 +#: users/templates/user_profile.html:529 +msgid "arhiv" +msgstr "Archive" + +#: issues/models.py:76 msgid "zachteno" msgstr "Accepted" -#: issues/models.py:80 +#: issues/models.py:77 msgid "na_avtomaticheskoj_proverke" msgstr "Automatic scoring" -#: issues/models.py:279 issues/views.py:86 +#: issues/models.py:328 issues/views.py:99 msgid "otpravleno_v_kontest" msgstr "Sent to the contest" -#: issues/models.py:283 issues/views.py:91 +#: issues/models.py:332 issues/views.py:104 msgid "oshibka_otpravki_v_kontest" msgstr "Error sending to the contest" -#: issues/models.py:468 users/models.py:186 -msgid "data_poslednego_izmenenija" -msgstr "Last change data" +#: issues/models.py:499 +#, fuzzy +#| msgid "na_proverke" +msgid "zadachu_proveriaet" +msgstr "Check up stage" -#: issues/models.py:470 -msgid "nabludateli" +#: issues/models.py:500 +#, fuzzy +#| msgid "istorija_izmenenij" +msgid "status_izmenen" +msgstr "Change history" + +#: issues/models.py:501 +#, fuzzy +#| msgid "sohranit_izmenenija" +msgid "ocenka_izmenena" +msgstr "Save changes" + +#: issues/models.py:502 +#, fuzzy +#| msgid "zagruzka" +msgid "zagruzhen_faij" +msgstr "Loading" + +#: issues/models.py:508 issues/models.py:511 +#, fuzzy +#| msgid "nabludateli" +msgid "nabludaiut" msgstr "Viewers" -#: issues/models.py:475 users/models.py:169 users/models.py:206 -msgid "luboj" -msgstr "Any" +#: issues/models.py:508 +#, fuzzy +#| msgid "nabludaemye_mnoj" +msgid "nabludaet_nikto" +msgstr "Followed by me" -#: issues/models.py:482 -msgid "lubaja" -msgstr "Any" +#: issues/models.py:513 +#, fuzzy +#| msgid "nabludateli" +msgid "ne_nabludaiut" +msgstr "Viewers" -#: issues/management/commands/send_notifications.py:29 -#: mail/management/commands/send_mail_notifications.py:34 -#: tasks/management/commands/send_deadline_notifications.py:28 +#: issues/templates/email_issue_notification.html:76 +#: issues/templates/email_issue_notification.txt:3 +#: mail/templates/email_notification_mail.html:9 +#: mail/templates/email_notification_mail.txt:2 +#: tasks/templates/email_notification_task.html:12 +#: tasks/templates/email_notification_task.txt:2 +#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.txt:2 msgid "zdravstvujte" msgstr "Hello" -#: issues/management/commands/send_notifications.py:30 -msgid "v_zadache_vy_javljaetes" +#: issues/templates/email_issue_notification.html:79 +#: issues/templates/email_issue_notification.txt:5 +#: tasks/templates/email_notification_task.html:38 +#: tasks/templates/email_notification_task.txt:5 +#, fuzzy +#| msgid "vse_zadachi" +msgid "v_zadache" +msgstr "All assignments" + +#: issues/templates/email_issue_notification.html:79 +#: issues/templates/email_issue_notification.txt:5 +#, fuzzy +#| msgid "v_zadache_vy_javljaetes" +msgid "vy_javljaetes" msgstr "In this assignment you are" -#: issues/management/commands/send_notifications.py:31 +#: issues/templates/email_issue_notification.html:79 +#: issues/templates/email_issue_notification.txt:5 msgid "pojavilis_novye_kommentarii" msgstr "New comments available" -#: issues/management/commands/send_notifications.py:53 -#: mail/management/commands/send_mail_notifications.py:39 -#: tasks/management/commands/send_deadline_notifications.py:50 +#: issues/templates/email_issue_notification.txt:11 +#: mail/templates/email_notification_mail.txt:10 +#: tasks/templates/email_notification_task.txt:10 #: templates/registration/activation_email.txt:10 +#: templates/registration/password_reset_email.txt:11 msgid "s_uvazheniem" msgstr "Sincerely" -#: issues/management/commands/send_notifications.py:54 -#: mail/management/commands/send_mail_notifications.py:40 -#: tasks/management/commands/send_deadline_notifications.py:51 +#: issues/templates/email_issue_notification.txt:12 +#: mail/templates/email_notification_mail.txt:11 +#: tasks/templates/email_notification_task.txt:11 #: templates/registration/activation_email.txt:11 +#: templates/registration/password_reset_email.txt:12 msgid "komanda_anytask" msgstr "Anytask team" -#: issues/management/commands/send_notifications.py:57 -#: tasks/management/commands/send_deadline_notifications.py:58 -msgid "kurs_zadacha_student" -msgstr "Course assignment student" - -#: issues/management/commands/send_notifications.py:76 -msgid "studentom" -msgstr "By student" - -#: issues/management/commands/send_notifications.py:89 -msgid "proverjaushim" -msgstr "TA" - -#: issues/management/commands/send_notifications.py:102 -msgid "nabludatelem" -msgstr "Vievew" - -#: issues/templates/file_uploader.html:104 +#: issues/templates/file_uploader.html:105 msgid "otpravljat_odin_fajl" msgstr "Send only one file" -#: issues/templates/file_uploader.html:113 +#: issues/templates/file_uploader.html:114 msgid "vyberite_fajl" msgstr "Select file" -#: issues/templates/file_uploader.html:113 +#: issues/templates/file_uploader.html:114 msgid "vyberite_fajly" msgstr "Select files" -#: issues/templates/file_uploader.html:133 +#: issues/templates/file_uploader.html:134 msgid "ili_peretashite_suda" msgstr "Or drag and drop" -#: issues/templates/file_uploader.html:141 +#: issues/templates/file_uploader.html:142 msgid "zadat_vopros" msgstr "Ask a question" -#: issues/templates/file_uploader.html:145 -#: issues/templates/issues/info.html:100 mail/templates/mail.html:123 +#: issues/templates/file_uploader.html:146 mail/templates/mail.html:158 msgid "otpravit" msgstr "Send" -#: issues/templates/file_uploader.html:234 +#: issues/templates/file_uploader.html:185 +msgid "prevysheno_kolvo_fajlov" +msgstr "" + +#: issues/templates/file_uploader.html:186 +msgid "nedopustimyj_tip_fajla" +msgstr "" + +#: issues/templates/file_uploader.html:187 +msgid "fajl_slishkom_bolshoj" +msgstr "" + +#: issues/templates/file_uploader.html:188 +msgid "fajl_slishkom_mal" +msgstr "" + +#: issues/templates/file_uploader.html:241 msgid "vyberite_kompiljator" msgstr "Select compilator" -#: issues/templates/issues/history.html:31 +#: issues/templates/issues/history.html:44 +#, python-format +msgid "" +"\n" +"

For solving the task you need to go to JupyterHub.

\n" +"

Open Assignments tab and fetch the '%(assignment_name_t)s'

\n" +msgstr "" + +#: issues/templates/issues/history.html:51 +#, python-format +msgid "" +"\n" +"

Before solving this task you need to add your Yandex.Passport account.\n" +"

In User Menu go to Settings and " +"authorize via Yandex

\n" +msgstr "" + +#: issues/templates/issues/history.html:65 msgid "predydushie_soobshenija" msgstr "Previous messages" -#: issues/templates/issues/history.html:37 -#: issues/templates/issues/history.html:47 +#: issues/templates/issues/history.html:71 +#: issues/templates/issues/history.html:81 msgid "srok_sdachi_istek" msgstr "Deadline has passed" -#: issues/templates/issues/history.html:37 -#: issues/templates/issues/history.html:47 +#: issues/templates/issues/history.html:71 +#: issues/templates/issues/history.html:81 msgid "soobshenija_budut_vydeljatsja" msgstr "The messages will be highlighted" -#: issues/templates/issues/info.html:96 +#: issues/templates/issues/history.html:120 +#, fuzzy +#| msgid "zakryt" +msgid "otkryt" +msgstr "Close" + +#: issues/templates/issues/history.html:121 +msgid "skachat" +msgstr "" + +#: issues/templates/issues/history.html:149 +#: users/templates/user_profile.html:379 +msgid "zdes_nichego_net" +msgstr "Nothing here" + +#: issues/templates/issues/info.html:101 issues/views.py:47 msgid "kommentarij" msgstr "Comments" -#: issues/templates/issues/info.html:102 +#: issues/templates/issues/info.html:107 msgid "ja" msgstr "Me" -#: issues/templates/issues/issue.html:26 tasks/templates/contest_import.html:26 -#: tasks/templates/task_create.html:32 tasks/templates/task_edit.html:117 -#: tasks/templates/task_import.html:28 +#: issues/templates/issues/issue.html:31 tasks/templates/contest_import.html:29 +#: tasks/templates/task_create.html:34 tasks/templates/task_edit.html:125 +#: tasks/templates/task_import.html:31 msgid "spisok_zadach" msgstr "Assignments list" -#: issues/templates/issues/issue.html:40 +#: issues/templates/issues/issue.html:45 msgid "otpravljajte_ot_svoego_akkaunta" msgstr "Send from your account" -#: issues/templates/issues/issue.html:41 -msgid "nuzhno_privjazat_k_profilu_kontest" -msgstr "Contest profile must be linked" +#: issues/templates/issues/issue.html:46 +#, fuzzy +#| msgid "privjazat_profil_kontesta" +msgid "privjazat_k_profilu_kontest" +msgstr "Link contest profile" -#: issues/templates/issues/issue.html:41 +#: issues/templates/issues/issue.html:46 msgid "profilu" msgstr "Profile" -#: issues/templates/issues/issue_js.html:182 +#: issues/templates/issues/issue_js.html:206 msgid "neobhodimo_ukazat_ocenku" msgstr "Please enter mark" -#: issues/templates/issues/issue_js.html:183 +#: issues/templates/issues/issue_js.html:207 msgid "naturalnoe_chislo" msgstr "Natural number" -#: issues/templates/issues/issue_js.html:184 +#: issues/templates/issues/issue_js.html:208 msgid "ocenka_bolshe_ili_ravna_0" msgstr "Mark should be greater or equal to 0" -#: issues/templates/issues/issue_js.html:185 +#: issues/templates/issues/issue_js.html:209 msgid "ocenka_ne_bolshe" msgstr "Mark should not be greater" -#: mail/views.py:18 -msgid "january" -msgstr "January" +#: issues/views.py:55 +msgid "fajl" +msgstr "" -#: mail/views.py:19 -msgid "february" -msgstr "February" +#: issues/views.py:56 +msgid "nomer_revju" +msgstr "" -#: mail/views.py:20 mail/views.py:22 -msgid "may" -msgstr "May" +#: lessons/models.py:28 +msgid "odin_raz" +msgstr "" -#: mail/views.py:21 -msgid "april" -msgstr "April" +#: lessons/models.py:29 +msgid "ezhenedelno" +msgstr "" -#: mail/views.py:23 -msgid "june" -msgstr "June" +#: lessons/templates/lesson_create.html:8 +#: lessons/templates/lesson_create.html:24 +#: lessons/templates/lesson_create.html:36 +#: lessons/templates/lesson_edit.html:32 +#, fuzzy +#| msgid "sozdanie_zadachi" +msgid "sozdanie_zaniatia" +msgstr "Create assignment" -#: mail/views.py:24 -msgid "july" -msgstr "July" +#: lessons/templates/lesson_create.html:26 +#: lessons/templates/lesson_edit.html:36 lessons/templates/lesson_edit.html:65 +#, fuzzy +#| msgid "redaktirovanie_zadachi" +msgid "redaktirovanie_zaniatia" +msgstr "Change assignment" -#: mail/views.py:25 -msgid "august" -msgstr "August" +#: lessons/templates/lesson_create.html:40 +#: lessons/templates/lesson_edit.html:70 +#: tasks/management/commands/send_task_notifications.py:79 +#: tasks/templates/task_create.html:61 tasks/templates/task_edit.html:154 +#: tasks/templates/task_edit.html:412 +msgid "nazvanie" +msgstr "Name" -#: mail/views.py:26 -msgid "september" -msgstr "September" +#: lessons/templates/lesson_create.html:65 +#: lessons/templates/lesson_edit.html:95 +#: tasks/templates/contest_import.html:145 tasks/templates/task_create.html:148 +#: tasks/templates/task_edit.html:222 tasks/templates/task_import.html:129 +msgid "time_zone" +msgstr "" -#: mail/views.py:27 -msgid "october" -msgstr "October" +#: lessons/templates/lesson_create.html:73 +#: lessons/templates/lesson_edit.html:103 mail/templates/mail.html:174 +#: tasks/templates/contest_import.html:104 tasks/templates/task_create.html:101 +#: tasks/templates/task_edit.html:195 tasks/templates/task_import.html:92 +#: users/model_user_profile_filter.py:31 +msgid "gruppa" +msgstr "Group" -#: mail/views.py:28 -msgid "november" -msgstr "November" +#: lessons/templates/lesson_create.html:84 +#: lessons/templates/lesson_edit.html:114 +msgid "povtoriat" +msgstr "" -#: mail/views.py:29 -msgid "december" -msgstr "December" +#: lessons/templates/lesson_create.html:95 +#: lessons/templates/lesson_edit.html:126 +msgid "dni_nedeli" +msgstr "" -#: mail/management/commands/send_mail_notifications.py:28 -#: templates/base.html:649 -msgid "est_novye_soobshenija" -msgstr "New messages available" +#: lessons/templates/lesson_create.html:98 +#: lessons/templates/lesson_edit.html:129 +msgid "mon" +msgstr "" -#: mail/management/commands/send_mail_notifications.py:35 -msgid "u_vas_soobshenij" -msgstr "Your messages" +#: lessons/templates/lesson_create.html:99 +#: lessons/templates/lesson_edit.html:130 +#, fuzzy +#| msgid "student" +msgid "tue" +msgstr "Student" -#: mail/management/commands/send_mail_notifications.py:36 -msgid "posmotret_soobshenija" -msgstr "Check the messages" +#: lessons/templates/lesson_create.html:100 +#: lessons/templates/lesson_edit.html:131 +msgid "wed" +msgstr "" + +#: lessons/templates/lesson_create.html:101 +#: lessons/templates/lesson_edit.html:132 +msgid "thu" +msgstr "" + +#: lessons/templates/lesson_create.html:102 +#: lessons/templates/lesson_edit.html:133 +msgid "fri" +msgstr "" + +#: lessons/templates/lesson_create.html:103 +#: lessons/templates/lesson_edit.html:134 +#, fuzzy +#| msgid "sdat" +msgid "sat" +msgstr "Submit" + +#: lessons/templates/lesson_create.html:104 +#: lessons/templates/lesson_edit.html:135 +#, fuzzy +#| msgid "student" +msgid "sun" +msgstr "Student" + +#: lessons/templates/lesson_create.html:111 +#: lessons/templates/lesson_edit.html:142 +#, fuzzy +#| msgid "data_sdachi" +msgid "data_okonchania" +msgstr "Submit due" + +#: lessons/templates/lesson_create.html:122 +#: lessons/templates/lesson_edit.html:153 +#, fuzzy +#| msgid "opisanie_kursa" +msgid "opisanie" +msgstr "Course description" + +#: lessons/templates/lesson_create.html:131 +#: lessons/templates/lesson_edit.html:162 tasks/templates/task_create.html:206 +#: tasks/templates/task_edit.html:363 tasks/templates/task_import.html:192 +msgid "predprosmotr" +msgstr "Preview" + +#: lessons/templates/lesson_create_or_edit_js.html:96 +#: lessons/templates/lesson_create_or_edit_js.html:122 +#, fuzzy +#| msgid "sohraneno_uspeshno" +msgid "raspisanie_sohraneno_uspeshno" +msgstr "Saved successfully" + +#: lessons/templates/lesson_create_or_edit_js.html:168 +#: tasks/templates/task_create_or_edit_js.html:331 +#: tasks/templates/task_create_or_edit_js.html:334 +#: tasks/templates/task_import_js.html:229 +msgid "ne_tak_mnogo" +msgstr "Too much" + +#: lessons/templates/lesson_create_or_edit_js.html:174 +#, fuzzy +#| msgid "neobhodimo_vybrat_zadachu" +msgid "neobhodimo_vybrat_den_nedeli" +msgstr "Assignment must be chosen" + +#: lessons/templates/lesson_create_or_edit_js.html:177 +msgid "vybrat_datu_zaniatia" +msgstr "" + +#: lessons/templates/lesson_create_or_edit_js.html:180 +msgid "vybrat_vremia_okonchania" +msgstr "" + +#: lessons/templates/lesson_create_or_edit_js.html:183 +msgid "vybrat_poslednuu_datu" +msgstr "" + +#: lessons/templates/lesson_create_or_edit_js.html:268 +#: lessons/templates/lesson_create_or_edit_js.html:269 +#: lessons/templates/lesson_create_or_edit_js.html:282 +#: lessons/templates/lesson_create_or_edit_js.html:296 +#, fuzzy +#| msgid "vse_zadachi" +msgid "vse_dni" +msgstr "All assignments" + +#: lessons/templates/lesson_create_or_edit_js.html:279 +#: lessons/templates/lesson_create_or_edit_js.html:293 +#, fuzzy +#| msgid "ne_vybrano_ni_odnoj_gruppy" +msgid "ne_vybrano_ni_odnogo_dnia" +msgstr "No groups selected" + +#: lessons/templates/lesson_create_or_edit_js.html:299 +#, fuzzy +#| msgid "vybrano_neskolko_zadach" +msgid "vybrano_neskolko_dnej" +msgstr "Several assignments selected" + +#: lessons/templates/lesson_create_or_edit_js.html:340 +#: lessons/templates/lesson_create_or_edit_js.html:341 +#: lessons/templates/lesson_create_or_edit_js.html:354 +#: lessons/templates/lesson_create_or_edit_js.html:368 +#: tasks/templates/task_create_or_edit_js.html:365 +#: tasks/templates/task_create_or_edit_js.html:366 +#: tasks/templates/task_create_or_edit_js.html:379 +#: tasks/templates/task_create_or_edit_js.html:393 +#: tasks/templates/task_import_js.html:328 +#: tasks/templates/task_import_js.html:329 +#: tasks/templates/task_import_js.html:342 +#: tasks/templates/task_import_js.html:356 +msgid "dlja_vseh_grupp" +msgstr "For all groups" + +#: lessons/templates/lesson_create_or_edit_js.html:351 +#: lessons/templates/lesson_create_or_edit_js.html:365 +#: tasks/templates/task_create_or_edit_js.html:376 +#: tasks/templates/task_create_or_edit_js.html:390 +#: tasks/templates/task_import_js.html:339 +#: tasks/templates/task_import_js.html:353 +msgid "ne_vybrano_ni_odnoj_gruppy" +msgstr "No groups selected" + +#: lessons/templates/lesson_create_or_edit_js.html:371 +#: tasks/templates/task_create_or_edit_js.html:396 +#: tasks/templates/task_import_js.html:359 +msgid "vybrano_neskolko_grupp" +msgstr "Several groups selected" + +#: lessons/templates/lesson_create_or_edit_js.html:432 +#, fuzzy +#| msgid "sohranit_izmenenija" +msgid "podtverdit_izmenenia" +msgstr "Save changes" + +#: lessons/templates/lesson_edit.html:195 mail/templates/mail.html:159 +msgid "otmena" +msgstr "Cancel" + +#: lessons/templates/lesson_edit.html:196 +#, fuzzy +#| msgid "primenit" +msgid "primenit_ko_vsem" +msgstr "Apply" + +#: lessons/templates/lesson_edit.html:197 +#, fuzzy +#| msgid "primenit" +msgid "primenit_k_sobitiu" +msgstr "Apply" + +#: mail/management/commands/send_mail_notifications.py:67 +msgid "est_novye_soobshenija" +msgstr "New messages available" -#: mail/management/commands/send_mail_notifications.py:62 -#: mail/management/commands/send_mail_notifications.py:68 +#: mail/management/commands/send_mail_notifications.py:130 +#: mail/management/commands/send_mail_notifications.py:136 msgid "novyh_soobshenij" msgstr "New messages" -#: mail/management/commands/send_mail_notifications.py:64 -#: mail/templates/mail.html:95 +#: mail/management/commands/send_mail_notifications.py:132 +#: mail/templates/mail.html:95 mail/templates/mail_js.html:443 msgid "novoe_soobshenie" msgstr "New message" -#: mail/management/commands/send_mail_notifications.py:66 +#: mail/management/commands/send_mail_notifications.py:134 msgid "novyh_soobshenija" msgstr "New messages" -#: mail/templates/email_notification_mail.html:40 +#: mail/templates/email_notification_mail.html:12 msgid "u_vas" msgstr "You" @@ -925,73 +1460,97 @@ msgstr "You" msgid "perejti_k_soobshenijam" msgstr "Go to the messages" +#: mail/templates/email_notification_mail.txt:4 +msgid "u_vas_soobshenij" +msgstr "Your messages" + +#: mail/templates/email_notification_mail.txt:5 +msgid "posmotret_soobshenija" +msgstr "Check the messages" + #: mail/templates/mail.html:16 msgid "napisat" msgstr "Write" -#: mail/templates/mail.html:21 mail/templates/mail.html.py:40 -#: mail/templates/mail_js.html:196 mail/templates/mail_js.html.py:201 -#: mail/templates/mail_js.html:395 mail/templates/mail_js.html.py:404 +#: mail/templates/mail.html:21 mail/templates/mail.html:40 +#: mail/templates/mail_js.html:204 mail/templates/mail_js.html:209 +#: mail/templates/mail_js.html:411 mail/templates/mail_js.html:420 msgid "vhodjashie" msgstr "Inbox" -#: mail/templates/mail.html:25 mail/templates/mail.html.py:58 -#: mail/templates/mail_js.html:411 +#: mail/templates/mail.html:25 mail/templates/mail.html:58 +#: mail/templates/mail_js.html:427 msgid "otpravlennye" msgstr "Sent" -#: mail/templates/mail.html:29 mail/templates/mail.html.py:76 -#: mail/templates/mail_js.html:414 +#: mail/templates/mail.html:29 mail/templates/mail.html:76 +#: mail/templates/mail_js.html:430 msgid "udalennye" msgstr "Deleted" -#: mail/templates/mail.html:99 mail/templates/mail.html.py:193 +#: mail/templates/mail.html:108 mail/templates/mail.html:253 msgid "komu" msgstr "To" -#: mail/templates/mail.html:101 +#: mail/templates/mail.html:110 msgid "nachnite_vvodit_imja" msgstr "Start entering the name" -#: mail/templates/mail.html:103 -msgid "dobavit_kurs_ili_gruppu" +#: mail/templates/mail.html:112 +#, fuzzy +#| msgid "dobavit_kurs_ili_gruppu" +msgid "dobavit_kurs_gruppu_ili_status" msgstr "Add course or group" -#: mail/templates/mail.html:111 +#: mail/templates/mail.html:122 +msgid "skrytyye_kopii" +msgstr "" + +#: mail/templates/mail.html:125 +msgid "poluchateli_ne_budut_videt_drugikh" +msgstr "" + +#: mail/templates/mail.html:133 +#, fuzzy +#| msgid "otpravlennye" +msgid "peremennyye" +msgstr "Sent" + +#: mail/templates/mail.html:136 +msgid "mozhno_ispolzovat_peremennyye_v_tekste" +msgstr "" + +#: mail/templates/mail.html:146 msgid "tema" msgstr "Subject" -#: mail/templates/mail.html:118 +#: mail/templates/mail.html:153 msgid "tekst" msgstr "Text" -#: mail/templates/mail.html:124 -msgid "otmena" -msgstr "Cancel" - -#: mail/templates/mail.html:133 +#: mail/templates/mail.html:169 msgid "dobavit_gruppu_polzovatelej" msgstr "Add users group" -#: mail/templates/mail.html:148 -msgid "dobavit" -msgstr "Add" +#: mail/templates/mail.html:196 staff/templates/staff.html:143 +msgid "bez_tipa" +msgstr "" -#: mail/templates/mail.html:166 +#: mail/templates/mail.html:226 msgid "otvetit" msgstr "Answer" -#: mail/templates/mail.html:170 +#: mail/templates/mail.html:230 msgid "otvetit_vsem" msgstr "Answer all" -#: mail/templates/mail.html:178 mail/templates/mail.html.py:235 +#: mail/templates/mail.html:238 mail/templates/mail.html:295 msgid "vosstanovit" msgstr "Restore" -#: mail/templates/mail.html:227 mail/templates/mail_js.html:152 -#: mail/templates/mail_js.html.py:324 mail/templates/mail_js.html:361 -#: mail/templates/mail_js.html.py:377 +#: mail/templates/mail.html:287 mail/templates/mail_js.html:160 +#: mail/templates/mail_js.html:340 mail/templates/mail_js.html:377 +#: mail/templates/mail_js.html:393 msgid "otmetit_vse_kak_prochitannoe" msgstr "Mark as read" @@ -999,71 +1558,133 @@ msgstr "Mark as read" msgid "soobshenij_net" msgstr "No messages" -#: mail/templates/mail_js.html:67 -msgid "_start_-_end__iz__total_" -msgstr "_start_ - _end_ is _total_" - -#: mail/templates/mail_js.html:72 -msgid "pokazat__menu_" -msgstr "Show _menu_" - -#: mail/templates/mail_js.html:157 mail/templates/mail_js.html.py:382 +#: mail/templates/mail_js.html:165 mail/templates/mail_js.html:398 msgid "kak_neprochitannoe" msgstr "As unread" -#: mail/templates/mail_js.html:159 mail/templates/mail_js.html.py:365 -#: mail/templates/mail_js.html:384 +#: mail/templates/mail_js.html:167 mail/templates/mail_js.html:381 +#: mail/templates/mail_js.html:400 msgid "otmetit_kak_prochitannoe" msgstr "Mark as read" -#: mail/templates/mail_js.html:262 mail/templates/mail_js.html.py:275 +#: mail/templates/mail_js.html:278 mail/templates/mail_js.html:291 msgid "pokazat_citirovanie" msgstr "Show citing" -#: mail/templates/mail_js.html:279 +#: mail/templates/mail_js.html:295 msgid "skryt_citirovanie" msgstr "Hide citing" -#: mail/templates/mail_js.html:508 search/templates/search.html:124 +#: mail/templates/mail_js.html:532 search/templates/search.html:124 #: templates/base.html:86 msgid "loginy" msgstr "Logins" -#: mail/templates/mail_js.html:539 search/templates/search.html:146 +#: mail/templates/mail_js.html:548 templates/base.html:102 +msgid "yeshcho" +msgstr "" + +#: mail/templates/mail_js.html:563 search/templates/search.html:146 #: templates/base.html:117 msgid "ja.pochta" msgstr "Yandex mail" -#: mail/templates/mail_js.html:581 +#: mail/templates/mail_js.html:605 msgid "vydelit_vse" msgstr "Select all" -#: mail/templates/mail_js.html:650 +#: mail/templates/mail_js.html:679 +msgid "familiya" +msgstr "" + +#: mail/templates/mail_js.html:680 +#, fuzzy +#| msgid "ukazat_poluchatelja" +msgid "familiya_poluchatelya" +msgstr "Enter recipient" + +#: mail/templates/mail_js.html:684 staff/templates/staff.html:88 +msgid "imja" +msgstr "Name" + +#: mail/templates/mail_js.html:685 +#, fuzzy +#| msgid "ukazat_poluchatelja" +msgid "imja_poluchatelya" +msgstr "Enter recipient" + +#: mail/templates/mail_js.html:697 msgid "otpravka" msgstr "Sending" -#: mail/templates/mail_js.html:689 +#: mail/templates/mail_js.html:740 msgid "ukazat_poluchatelja" msgstr "Enter recipient" -#: mail/templates/mail_js.html:692 +#: mail/templates/mail_js.html:743 msgid "neobhodimo_ukazat_temu" msgstr "Subject must be specified" +#: mail/templates/mail_js.html:851 staff/templates/staff.html:134 +#: staff/templates/staff.html:188 staff/templates/staff.html:211 +#, fuzzy +#| msgid "net_polzovatelej" +msgid "vybrano_polzovateley" +msgstr "No users" + +#: mail/views.py:22 +msgid "january" +msgstr "January" + +#: mail/views.py:23 +msgid "february" +msgstr "February" + +#: mail/views.py:24 +msgid "march" +msgstr "" + +#: mail/views.py:25 +msgid "april" +msgstr "April" + +#: mail/views.py:26 +msgid "may" +msgstr "May" + +#: mail/views.py:27 +msgid "june" +msgstr "June" + +#: mail/views.py:28 +msgid "july" +msgstr "July" + +#: mail/views.py:29 +msgid "august" +msgstr "August" + +#: mail/views.py:30 +msgid "september" +msgstr "September" + +#: mail/views.py:31 +msgid "october" +msgstr "October" + +#: mail/views.py:32 +msgid "november" +msgstr "November" + +#: mail/views.py:33 +msgid "december" +msgstr "December" + #: schools/templates/archive_page.html:20 schools/templates/school_page.html:19 msgid "aktivnye_kursy" msgstr "Active courses" -#: schools/templates/archive_page.html:23 -#: schools/templates/archive_page.html:32 schools/templates/school_page.html:22 -#: search/templates/search.html:170 templates/base.html:135 users/models.py:208 -#: users/templates/user_courses.html:80 users/templates/user_courses.html:87 -#: users/templates/user_profile.html:210 users/templates/user_profile.html:283 -#: users/templates/user_profile.html:317 -msgid "arhiv" -msgstr "Archive" - -#: search/templates/search.html:4 search/templates/search.html.py:58 +#: search/templates/search.html:4 search/templates/search.html:58 msgid "rezultaty_poiska" msgstr "Search results" @@ -1071,7 +1692,7 @@ msgstr "Search results" msgid "min_dlina_zaprosa" msgstr "Minimal query length" -#: search/templates/search.html:74 search/templates/search.html.py:76 +#: search/templates/search.html:74 search/templates/search.html:76 msgid "po_zaprosu" msgstr "By request" @@ -1087,8 +1708,8 @@ msgstr "Users" msgid "kursov" msgstr "Courses" -#: search/templates/search.html:88 staff/templates/staff.html:52 -#: staff/templates/staff.html.py:88 templates/base.html:80 +#: search/templates/search.html:88 staff/templates/staff.html:78 +#: templates/base.html:80 msgid "polzovateli" msgstr "Users" @@ -1097,15 +1718,16 @@ msgid "kursy" msgstr "Courses" #: staff/templates/get_gradebook.html:17 staff/templates/gradebook.html:18 -#: staff/templates/staff.html:23 +#: staff/templates/staff.html:20 msgid "filtry_po_statusam" msgstr "Filter by status" -#: staff/templates/get_gradebook.html:42 +#: staff/templates/get_gradebook.html:42 staff/templates/staff.html:207 +#: staff/templates/staff.html:234 msgid "sgenerirovat_obshuu_vedomost" msgstr "Generate general list" -#: staff/templates/get_gradebook.html:49 +#: staff/templates/get_gradebook.html:49 staff/templates/staff.html:219 msgid "sgenerirovat" msgstr "Generate" @@ -1113,236 +1735,392 @@ msgstr "Generate" msgid "ne_najdeno_kursov" msgstr "No courses found" -#: staff/templates/gradebook.html:61 staff/templates/staff.html:79 +#: staff/templates/gradebook.html:62 staff/templates/staff.html:117 msgid "ne_najdeno_polzovatelej" msgstr "No users found" -#: staff/templates/staff.html:57 -msgid "imja" -msgstr "Name" +#: staff/templates/gradebook_js.html:42 staff/templates/gradebook_js.html:43 +#: staff/templates/gradebook_js.html:55 +msgid "vse_statusy" +msgstr "All statuses" + +#: staff/templates/gradebook_js.html:52 +msgid "ne_vybrano_statusov" +msgstr "No statuses selected" + +#: staff/templates/staff.html:33 +msgid "prostoy_filtr" +msgstr "" + +#: staff/templates/staff.html:36 +#, fuzzy +#| msgid "peresudit_reshenija_studentov" +msgid "zagruzit_spisok_studentov" +msgstr "Run scoring on students submissions again" + +#: staff/templates/staff.html:49 +msgid "fayl_formata_CSV_poisk" +msgstr "" + +#: staff/templates/staff.html:61 +#, fuzzy +#| msgid "ne_najdeno_polzovatelej" +msgid "naydeno_polzovateley" +msgstr "No users found" -#: staff/templates/staff.html:58 +#: staff/templates/staff.html:89 msgid "pochta" msgstr "Email" -#: staff/templates/staff.html:89 -msgid "net_polzovatelej" -msgstr "No users" +#: staff/templates/staff.html:115 +msgid "vyberite_znacheniya_dlya_filtratsii" +msgstr "" -#: staff/templates/staff_js.html:39 staff/templates/staff_js.html.py:40 -#: staff/templates/staff_js.html:52 -msgid "vse_statusy" -msgstr "All statuses" +#: staff/templates/staff.html:130 users/templates/status_history.html:37 +#: users/templates/user_courses.html:48 users/templates/user_profile.html:44 +msgid "redaktirovanie_statusov" +msgstr "Update statuses" -#: staff/templates/staff_js.html:49 -msgid "ne_vybrano_statusov" +#: staff/templates/staff.html:133 +#, fuzzy +#| msgid "ne_vybrano_statusov" +msgid "vyberite_novyye_statusy" msgstr "No statuses selected" -#: tasks/models.py:41 tasks/models.py:199 +#: staff/templates/staff.html:150 +msgid "ne_menyat" +msgstr "" + +#: staff/templates/staff.html:169 +msgid "sozdat_soobshcheniye_vopros" +msgstr "" + +#: staff/templates/staff.html:184 +#, fuzzy +#| msgid "novyh_soobshenija" +msgid "otpravka_soobshcheniya" +msgstr "New messages" + +#: staff/templates/staff.html:187 +#, fuzzy +#| msgid "perejti_k_soobshenijam" +msgid "pereyti_k_sozdaniyu_soobshcheniya_vopros" +msgstr "Go to the messages" + +#: staff/templates/staff.html:210 +#, fuzzy +#| msgid "sgenerirovat_obshuu_vedomost" +msgid "sgenerirovat_obshuu_vedomost_vopros" +msgstr "Generate general list" + +#: staff/templates/staff.html:219 +#, fuzzy +#| msgid "sgenerirovat" +msgid "generacia" +msgstr "Generate" + +#: staff/templates/staff.html:227 staff/templates/staff.html:241 +#: staff/templates/staff.html:242 staff/templates/staff_js.html:409 +#, fuzzy +#| msgid "statusy_polzovatelja" +msgid "izmenit_status_dlya_vsekh_polzovateley" +msgstr "User statuses" + +#: staff/templates/staff.html:230 staff/templates/staff_js.html:410 +msgid "otpravit_soobshcheniye_vsem_polzovatelyam" +msgstr "" + +#: staff/templates/staff_js.html:50 users/templates/my_tasks.html:46 +msgid "vybrat_vse" +msgstr "Select all" + +#: staff/templates/staff_js.html:51 staff/templates/staff_js.html:62 +#: staff/templates/staff_js.html:76 users/templates/my_tasks.html:47 +#: users/templates/my_tasks.html:58 users/templates/my_tasks.html:72 +msgid "vse_vybrano" +msgstr "Everything is selected" + +#: staff/templates/staff_js.html:185 +#, fuzzy +#| msgid "vse_vybrano" +msgid "vybrano" +msgstr "Everything is selected" + +#: staff/templates/staff_js.html:379 +#, fuzzy +#| msgid "oshibka_pri_poluchenii" +msgid "oshibka_pri_generacii" +msgstr "Error during loading" + +#: staff/templates/staff_js.html:413 +msgid "izmenit_status_dlya_vybrannykh_polzovateley" +msgstr "" + +#: staff/templates/staff_js.html:414 +msgid "otpravit_soobshcheniye_vybrannym_polzovatelyam" +msgstr "" + +#: staff/views.py:68 +#, fuzzy +#| msgid "net_polzovatelej" +msgid "dannyye_polzovateli_ne_naydeny" +msgstr "No users" + +#: staff/views.py:71 +msgid "nevernyy_format_fayla" +msgstr "" + +#: tasks/management/commands/send_task_notifications.py:80 +#: tasks/templates/task_create.html:197 tasks/templates/task_edit.html:354 +#: tasks/templates/task_edit.html:436 tasks/templates/task_import.html:183 +msgid "formulirovka" +msgstr "Description" + +#: tasks/management/commands/send_task_notifications.py:81 +#: tasks/templates/contest_import.html:91 tasks/templates/task_create.html:85 +#: tasks/templates/task_edit.html:178 tasks/templates/task_edit.html:424 +#: tasks/templates/task_import.html:82 +msgid "max_ball" +msgstr "Max score" + +#: tasks/management/commands/send_task_notifications.py:124 +msgid "proizoshli_izmeneniya_v_kursah" +msgstr "" + +#: tasks/models.py:67 tasks/models.py:266 msgid "s_obsuzhdeniem" msgstr "With discussion" -#: tasks/models.py:42 tasks/models.py:200 +#: tasks/models.py:68 tasks/models.py:267 msgid "tolko_ocenka" msgstr "Mark only" -#: tasks/models.py:43 +#: tasks/models.py:70 msgid "seminar" msgstr "Seminar/workshop" -#: tasks/management/commands/send_deadline_notifications.py:29 -msgid "v_zadache_kursa" -msgstr "In course assignment" - -#: tasks/management/commands/send_deadline_notifications.py:30 -msgid "novaja_data_sdachi" -msgstr "New submission deadline" +#: tasks/models.py:71 +msgid "jupyter notebook" +msgstr "" #: tasks/templates/contest_import.html:8 tasks/templates/task_import.html:9 msgid "import" msgstr "Import" -#: tasks/templates/contest_import.html:43 tasks/templates/task_edit.html:203 -#: tasks/templates/task_import.html:45 +#: tasks/templates/contest_import.html:64 tasks/templates/task_edit.html:252 +#: tasks/templates/task_import.html:47 msgid "id_kontesta" msgstr "Contest id" -#: tasks/templates/contest_import.html:55 tasks/templates/task_import.html:57 +#: tasks/templates/contest_import.html:76 tasks/templates/task_import.html:59 msgid "poluchit_spisok_zadach" msgstr "Get assignments list" -#: tasks/templates/contest_import.html:70 tasks/templates/task_create.html:86 -#: tasks/templates/task_edit.html:143 tasks/templates/task_edit.html.py:351 -#: tasks/templates/task_import.html:72 -msgid "max_ball" -msgstr "Max score" - -#: tasks/templates/contest_import.html:78 -#: tasks/templates/contest_import.html:123 +#: tasks/templates/contest_import.html:97 +#: tasks/templates/contest_import.html:140 msgid "brat_iz_kontesta" msgstr "Load from contest" -#: tasks/templates/contest_import.html:85 tasks/templates/task_create.html:93 -#: tasks/templates/task_edit.html:151 tasks/templates/task_import.html:82 -msgid "gruppa" -msgstr "Group" - -#: tasks/templates/contest_import.html:97 tasks/templates/task_create.html:105 -#: tasks/templates/task_edit.html:259 tasks/templates/task_import.html:95 +#: tasks/templates/contest_import.html:116 tasks/templates/task_create.html:113 +#: tasks/templates/task_edit.html:318 tasks/templates/task_import.html:105 msgid "roditelskaja_zadacha" msgstr "Parent assignment" -#: tasks/templates/contest_import.html:129 tasks/templates/task_create.html:140 -#: tasks/templates/task_edit.html:178 tasks/templates/task_import.html:119 -msgid "izmenenie_sroka_sdachi" -msgstr "Change submission deadline" - -#: tasks/templates/contest_import.html:135 tasks/templates/task_create.html:61 -#: tasks/templates/task_edit.html:225 tasks/templates/task_import.html:125 +#: tasks/templates/contest_import.html:152 tasks/templates/task_create.html:156 +#: tasks/templates/task_edit.html:274 tasks/templates/task_import.html:136 msgid "integracija_s_rb" msgstr "Integrate with RB" -#: tasks/templates/contest_import.html:143 tasks/templates/task_create.html:70 -#: tasks/templates/task_edit.html:235 tasks/templates/task_import.html:133 +#: tasks/templates/contest_import.html:160 tasks/templates/task_create.html:165 +#: tasks/templates/task_edit.html:283 tasks/templates/task_import.html:144 msgid "imja_fajla_budet_izmeneno" msgstr "Name and surname will be changes" -#: tasks/templates/contest_import.html:159 +#: tasks/templates/contest_import.html:178 tasks/templates/task_create.html:182 +#: tasks/templates/task_edit.html:308 tasks/templates/task_import.html:162 +msgid "uchityvat_bally_dedlajn" +msgstr "" + +#: tasks/templates/contest_import.html:187 +#, fuzzy +#| msgid "sozdanie_zadachi" +msgid "uvedomit_o_sozdanii_zadach" +msgstr "Create assignment" + +#: tasks/templates/contest_import.html:193 msgid "skryt_zadachi" msgstr "Hide assignments" -#: tasks/templates/task_create.html:9 tasks/templates/task_create.html.py:23 -#: tasks/templates/task_create.html:45 tasks/templates/task_edit.html:8 -#: tasks/templates/task_edit.html.py:105 +#: tasks/templates/email_notification_task.html:22 +#: tasks/templates/email_notification_task.txt:4 +#, fuzzy +#| msgid "kurs" +msgid "v_kurse" +msgstr "Year of study" + +#: tasks/templates/email_notification_task.html:27 +#: tasks/templates/email_notification_task.txt:4 +#, fuzzy +#| msgid "sohranit_izmenenija" +msgid "proizoshli_izmeneniya" +msgstr "Save changes" + +#: tasks/templates/email_notification_task.html:33 +#: tasks/templates/email_notification_task.txt:5 +#, fuzzy +#| msgid "obnovlenie_zadach" +msgid "dobavlena_zadacha" +msgstr "Update the assignments" + +#: tasks/templates/email_notification_task.html:42 +#: tasks/templates/email_notification_task.txt:5 +msgid "izmenilis" +msgstr "" + +#: tasks/templates/email_notification_task.txt:6 +#, fuzzy +#| msgid "prepodavatel_v_kursah" +msgid "pereyti_v_kurs" +msgstr "Teaching the courses:" + +#: tasks/templates/task_create.html:9 tasks/templates/task_create.html:25 +#: tasks/templates/task_create.html:46 tasks/templates/task_edit.html:11 +#: tasks/templates/task_edit.html:113 msgid "sozdanie_zadachi" msgstr "Create assignment" -#: tasks/templates/task_create.html:25 tasks/templates/task_edit.html:109 -#: tasks/templates/task_edit.html.py:130 +#: tasks/templates/task_create.html:27 tasks/templates/task_edit.html:117 +#: tasks/templates/task_edit.html:149 msgid "redaktirovanie_zadachi" msgstr "Change assignment" -#: tasks/templates/task_create.html:50 tasks/templates/task_edit.html:185 +#: tasks/templates/task_create.html:51 tasks/templates/task_edit.html:230 msgid "tip_zadachi" msgstr "Assignment type" -#: tasks/templates/task_create.html:79 tasks/templates/task_edit.html:135 -#: tasks/templates/task_edit.html.py:345 -msgid "nazvanie" +#: tasks/templates/task_create.html:68 tasks/templates/task_edit.html:161 +#: tasks/templates/task_edit.html:418 tasks/templates/task_import.html:74 +#, fuzzy +#| msgid "nazvanie" +msgid "kratkoe_nazvanie" msgstr "Name" -#: tasks/templates/task_create.html:118 tasks/templates/task_edit.html:272 +#: tasks/templates/task_create.html:69 tasks/templates/task_edit.html:162 +#: tasks/templates/task_import.html:75 +msgid "kratkoe_nazvanie_help_text" +msgstr "" + +#: tasks/templates/task_create.html:76 tasks/templates/task_edit.html:170 +msgid "nb_assignment_name" +msgstr "" + +#: tasks/templates/task_create.html:80 +msgid "must be unique for all tasks in jupyter" +msgstr "" + +#: tasks/templates/task_create.html:93 tasks/templates/task_edit.html:186 +#, fuzzy +#| msgid "student" +msgid "max_students" +msgstr "Student" + +#: tasks/templates/task_create.html:126 tasks/templates/task_edit.html:331 msgid "podzadachi" msgstr "Sub-assignments" -#: tasks/templates/task_create.html:146 tasks/templates/task_edit.html:283 -#: tasks/templates/task_import.html:149 +#: tasks/templates/task_create.html:174 tasks/templates/task_import.html:171 +#, fuzzy +#| msgid "sozdanie_zadachi" +msgid "uvedomit_o_sozdanii_zadachi" +msgstr "Create assignment" + +#: tasks/templates/task_create.html:191 tasks/templates/task_edit.html:348 +#: tasks/templates/task_import.html:177 msgid "skryt_zadachu" msgstr "Hide assignments" -#: tasks/templates/task_create.html:152 tasks/templates/task_edit.html:289 -#: tasks/templates/task_edit.html.py:363 tasks/templates/task_import.html:155 -msgid "formulirovka" -msgstr "Description" - -#: tasks/templates/task_create.html:160 tasks/templates/task_edit.html:297 -#: tasks/templates/task_import.html:164 -msgid "predprosmotr" -msgstr "Preview" - -#: tasks/templates/task_create_or_edit_js.html:170 -#: tasks/templates/task_create_or_edit_js.html:196 +#: tasks/templates/task_create_or_edit_js.html:242 +#: tasks/templates/task_create_or_edit_js.html:271 msgid "zadacha_sohranena_uspeshno" msgstr "Assignment saved successfully" -#: tasks/templates/task_create_or_edit_js.html:239 -#: tasks/templates/task_import_js.html:183 +#: tasks/templates/task_create_or_edit_js.html:324 +#: tasks/templates/task_import_js.html:232 msgid "ukazat_maxball" msgstr "Enter max score" -#: tasks/templates/task_create_or_edit_js.html:240 -#: tasks/templates/task_create_or_edit_js.html:242 -#: tasks/templates/task_import_js.html:184 -#: tasks/templates/task_import_js.html:186 +#: tasks/templates/task_create_or_edit_js.html:325 +#: tasks/templates/task_create_or_edit_js.html:327 +#: tasks/templates/task_import_js.html:233 +#: tasks/templates/task_import_js.html:235 msgid "maxball_naturalnoe_chislo" msgstr "Max score should be natural number" -#: tasks/templates/task_create_or_edit_js.html:241 -#: tasks/templates/task_import_js.html:185 +#: tasks/templates/task_create_or_edit_js.html:326 +#: tasks/templates/task_import_js.html:234 msgid "maxball_bolshe_0" msgstr "Max score should be greater than 0" -#: tasks/templates/task_create_or_edit_js.html:245 +#: tasks/templates/task_create_or_edit_js.html:330 msgid "nazvanie_neobhodimo" msgstr "Name is required" -#: tasks/templates/task_create_or_edit_js.html:246 -msgid "ne_tak_mnogo" -msgstr "Too much" - -#: tasks/templates/task_create_or_edit_js.html:249 -#: tasks/templates/task_import_js.html:189 +#: tasks/templates/task_create_or_edit_js.html:337 +#: tasks/templates/task_import_js.html:238 msgid "ukazat_nomer_kontesta" msgstr "Enter contest id" -#: tasks/templates/task_create_or_edit_js.html:250 -#: tasks/templates/task_import_js.html:190 -#: tasks/templates/task_import_js.html:191 +#: tasks/templates/task_create_or_edit_js.html:338 +#: tasks/templates/task_import_js.html:239 +#: tasks/templates/task_import_js.html:240 msgid "nomer_kontesta_naturalnoe_chislo" msgstr "Contest id must be a natural number" -#: tasks/templates/task_create_or_edit_js.html:253 +#: tasks/templates/task_create_or_edit_js.html:341 msgid "ukazat_literu_zadachi" msgstr "Enter assignment litera" -#: tasks/templates/task_create_or_edit_js.html:272 -#: tasks/templates/task_create_or_edit_js.html:273 -#: tasks/templates/task_create_or_edit_js.html:286 -#: tasks/templates/task_create_or_edit_js.html:300 -#: tasks/templates/task_import_js.html:279 -#: tasks/templates/task_import_js.html:280 -#: tasks/templates/task_import_js.html:293 -#: tasks/templates/task_import_js.html:307 -msgid "dlja_vseh_grupp" -msgstr "For all groups" +#: tasks/templates/task_create_or_edit_js.html:347 +msgid "assignment name is required" +msgstr "" -#: tasks/templates/task_create_or_edit_js.html:283 -#: tasks/templates/task_create_or_edit_js.html:297 -#: tasks/templates/task_import_js.html:290 -#: tasks/templates/task_import_js.html:304 -msgid "ne_vybrano_ni_odnoj_gruppy" -msgstr "No groups selected" +#: tasks/templates/task_create_or_edit_js.html:348 +msgid "assignment name cannot contains spaces" +msgstr "" -#: tasks/templates/task_create_or_edit_js.html:303 -#: tasks/templates/task_import_js.html:310 -msgid "vybrano_neskolko_grupp" -msgstr "Several groups selected" +#: tasks/templates/task_create_or_edit_js.html:349 +msgid "assignment name already in use" +msgstr "" -#: tasks/templates/task_edit.html:153 +#: tasks/templates/task_edit.html:197 msgid "vybor_grupp_zavisit_ot_zadach" msgstr "Group selection depends on the problem" -#: tasks/templates/task_edit.html:196 +#: tasks/templates/task_edit.html:245 msgid "integracija_s_kontestom" msgstr "Contest integration" -#: tasks/templates/task_edit.html:210 +#: tasks/templates/task_edit.html:259 msgid "litera_zadachi" msgstr "Assignment integration" -#: tasks/templates/task_edit.html:218 tasks/templates/task_edit.html.py:219 +#: tasks/templates/task_edit.html:267 tasks/templates/task_edit.html:268 msgid "obnovit_iz_kontesta" msgstr "Update from the contest" -#: tasks/templates/task_edit.html:329 +#: tasks/templates/task_edit.html:342 +msgid "uvedomit_ob_izmenenii_v_zadache" +msgstr "" + +#: tasks/templates/task_edit.html:398 msgid "obnovlenie_dannyh_iz_kontesta" msgstr "Updating data from the contest" -#: tasks/templates/task_edit.html:333 +#: tasks/templates/task_edit.html:402 msgid "importirovat_polja_iz_kontesta" msgstr "Import fields from the contest" -#: tasks/templates/task_import_js.html:194 +#: tasks/templates/task_import_js.html:243 msgid "neobhodimo_vybrat_zadachu" msgstr "Assignment must be chosen" @@ -1354,49 +2132,62 @@ msgstr "403 error" msgid "oshibka_404" msgstr "404 error" -#: templates/500.html:13 +#: templates/500.html:14 msgid "oshibka_500" msgstr "500 error" -#: templates/500.html:13 +#: templates/500.html:14 msgid "nam" msgstr "Us" -#: templates/base.html:652 +#: templates/base.html:155 +#, fuzzy +#| msgid "vse_statusy" +msgid "vse_resultaty" +msgstr "All statuses" + +#: templates/base.html:690 +#, fuzzy +#| msgid "est_novye_soobshenija" +msgid "base_est_novye_soobshenija" +msgstr "New messages available" + +#: templates/base.html:693 msgid "net_novyh_soobshenij" msgstr "No new messages" -#: templates/base.html:664 users/templates/my_tasks.html:93 -#: users/templates/status_history.html:29 users/templates/user_courses.html:27 -#: users/templates/user_profile.html:17 users/templates/user_settings.html:43 +#: templates/base.html:705 users/templates/my_tasks.html:96 +#: users/templates/status_history.html:18 users/templates/user_courses.html:28 +#: users/templates/user_profile.html:19 users/templates/user_settings.html:16 +#: users/views.py:426 msgid "profil" msgstr "Profile" -#: templates/base.html:668 +#: templates/base.html:709 msgid "adminka" msgstr "Admin panel" -#: templates/base.html:671 +#: templates/base.html:712 templates/registration/password_reset_email.html:42 msgid "smenit_parol" msgstr "Change password" -#: templates/base.html:673 +#: templates/base.html:714 msgid "vyjti" msgstr "Logout" -#: templates/base.html:680 templates/registration/registration_form.html:85 +#: templates/base.html:721 templates/registration/registration_form.html:85 msgid "vojdite" msgstr "Sing In" -#: templates/base.html:683 +#: templates/base.html:724 msgid "zaregistrirujtes" msgstr "Sign up" -#: templates/base.html:712 +#: templates/base.html:755 msgid "blog" msgstr "Blog" -#: templates/base.html:727 +#: templates/base.html:774 msgid "pishite_nam" msgstr "Contact us" @@ -1473,11 +2264,34 @@ msgstr "Enter new password twice" msgid "vosstanovlenie_parolja" msgstr "Restore password" +#: templates/registration/password_reset_email.html:19 +#: templates/registration/password_reset_email.txt:4 +#, python-format +msgid "" +"You're receiving this e-mail because you requested a password reset for your " +"user account at %(site_name)s." +msgstr "" + +#: templates/registration/password_reset_email.html:28 +#: templates/registration/password_reset_email.txt:5 +msgid "Please go to the following page and choose a new password:" +msgstr "" + +#: templates/registration/password_reset_email.html:53 +#: templates/registration/password_reset_email.txt:8 +msgid "Your username, in case you've forgotten:" +msgstr "" + #: templates/registration/password_reset_form.html:5 #: templates/registration/password_reset_form.html:14 msgid "sbros_parolja" msgstr "Reset password" +#: templates/registration/password_reset_subject.txt:2 +#, python-format +msgid "Password reset on %(site_name)s" +msgstr "" + #: templates/registration/registration_complete.html:4 #: templates/registration/registration_form.html:5 #: templates/registration/registration_form.html:119 @@ -1526,76 +2340,44 @@ msgstr "Passwords do not match" msgid "zaregistrirovatsja" msgstr "Register" -#: users/forms.py:23 +#: users/forms.py:25 msgid "invajta_ne_sushestvuet" msgstr "Invite does not exist" -#: users/forms.py:26 +#: users/forms.py:28 msgid "srok_dejstvija_invajta_istek" msgstr "Invite is outdated" -#: users/models.py:53 users/models.py:165 +#: users/model_user_profile_filter.py:35 users/model_user_status.py:36 msgid "status_studenta" msgstr "Student status" -#: users/models.py:181 -msgid "tip_kursa" -msgstr "Course type" - -#: users/models.py:182 -msgid "god_kursa" -msgstr "Course year" - -#: users/models.py:207 -msgid "aktivnyj" -msgstr "Active" - -#: users/views.py:389 -msgid "profil_uzhe_privjazan" -msgstr "Profile is already linked" - -#: users/views.py:392 users/views.py:406 users/templates/user_profile.html:126 -#: users/templates/user_profile.html:138 -msgid "privjazat_profil_kontesta" -msgstr "Link contest profile" - -#: users/views.py:394 -msgid "privjazat_profil_ja" -msgstr "Link yandex profile" - -#: users/views.py:407 -msgid "pereprivjazat_tolko_svoj_profil" -msgstr "Link only my profile" - -#: users/views.py:557 -msgid "invajt_drugogo_kursa" -msgstr "Different course invite code" - -#: users/templates/my_tasks.html:43 -msgid "vybrat_vse" -msgstr "Select all" +#: users/model_user_profile_filter.py:39 users/model_user_status.py:37 +msgid "filial" +msgstr "" -#: users/templates/my_tasks.html:44 users/templates/my_tasks.html.py:55 -#: users/templates/my_tasks.html:69 -msgid "vse_vybrano" -msgstr "Everything is selected" +#: users/model_user_profile_filter.py:43 users/model_user_status.py:38 +#, fuzzy +#| msgid "status_studenta" +msgid "status_postupleniya" +msgstr "Student status" -#: users/templates/my_tasks.html:99 users/templates/status_history.html:35 -#: users/templates/user_courses.html:33 users/templates/user_courses.html:86 -#: users/templates/user_courses.html:142 users/templates/user_profile.html:23 -#: users/templates/user_settings.html:49 +#: users/templates/my_tasks.html:102 users/templates/status_history.html:24 +#: users/templates/user_courses.html:34 users/templates/user_courses.html:71 +#: users/templates/user_courses.html:131 users/templates/user_profile.html:26 +#: users/templates/user_settings.html:22 msgid "moi_kursy" msgstr "My courses" -#: users/templates/my_tasks.html:138 +#: users/templates/my_tasks.html:141 msgid "prepodavatel" msgstr "Teacher" -#: users/templates/my_tasks.html:164 +#: users/templates/my_tasks.html:167 msgid "ne_najdeno_zadach" msgstr "No assignments found" -#: users/templates/my_tasks.html:174 +#: users/templates/my_tasks.html:177 msgid "ne_sdaval_zadach" msgstr "No assignments submitted" @@ -1603,148 +2385,198 @@ msgstr "No assignments submitted" msgid "chtoby_otvjazat_profil" msgstr "To unlink profile" -#: users/templates/status_history.html:42 users/templates/user_courses.html:40 -#: users/templates/user_profile.html:30 +#: users/templates/status_history.html:31 users/templates/user_courses.html:41 +#: users/templates/user_profile.html:33 msgid "profil_studenta" msgstr "Student profile" -#: users/templates/status_history.html:45 users/templates/user_courses.html:43 -#: users/templates/user_profile.html:34 +#: users/templates/status_history.html:34 users/templates/user_courses.html:44 +#: users/templates/user_profile.html:38 msgid "kursy_studenta" msgstr "Student courses" -#: users/templates/status_history.html:48 users/templates/user_courses.html:47 -#: users/templates/user_profile.html:39 -msgid "redaktirovanie_statusov" -msgstr "Update statuses" - -#: users/templates/status_history.html:70 -msgid "statusy" -msgstr "Statuses" - -#: users/templates/status_history.html:79 -#: users/templates/user_profile_js.html:190 +#: users/templates/status_history.html:58 +#: users/templates/status_history_js.html:49 msgid "net_statusov" msgstr "No statuses" -#: users/templates/status_history.html:84 +#: users/templates/status_history.html:64 msgid "redaktirovat" msgstr "Edit" -#: users/templates/status_history.html:92 +#: users/templates/status_history.html:72 msgid "istorija_izmenenij" msgstr "Change history" -#: users/templates/status_history.html:97 +#: users/templates/status_history.html:76 msgid "kogda_byl_izmenen" msgstr "Last change" -#: users/templates/status_history.html:98 +#: users/templates/status_history.html:77 msgid "kem" msgstr "By" -#: users/templates/status_history.html:99 -#: users/templates/status_history.html:130 +#: users/templates/status_history.html:78 +#: users/templates/status_history.html:112 msgid "statusy_polzovatelja" msgstr "User statuses" -#: users/templates/status_history.html:133 +#: users/templates/status_history.html:115 msgid "dobavlenie_udalenie_statusov_polzovatelja" msgstr "Add user status" -#: users/templates/user_courses.html:80 users/templates/user_profile.html:244 +#: users/templates/user_courses.html:65 users/templates/user_profile.html:440 msgid "aktivnye" msgstr "Active" -#: users/templates/user_courses.html:85 users/templates/user_courses.html:141 +#: users/templates/user_courses.html:70 users/templates/user_courses.html:130 msgid "tekushaja_uspevaemost" msgstr "Current academic performance" -#: users/templates/user_courses.html:109 +#: users/templates/user_courses.html:97 msgid "vsego_zadach" msgstr "Total number of assignments" -#: users/templates/user_courses.html:143 +#: users/templates/user_courses.html:132 msgid "net_kursov" msgstr "No courses" -#: users/templates/user_profile.html:103 +#: users/templates/user_profile.html:72 msgid "japochta" msgstr "Yandex mail" -#: users/templates/user_profile.html:116 +#: users/templates/user_profile.html:86 msgid "sgenerirovat_invajty" msgstr "Generate invite codes" -#: users/templates/user_profile.html:128 +#: users/templates/user_profile.html:96 users/templates/user_profile.html:110 +#: users/views.py:429 users/views.py:443 +msgid "privjazat_profil_kontesta" +msgstr "Link contest profile" + +#: users/templates/user_profile.html:98 msgid "privjazat_odin_profil" msgstr "Link one profile" -#: users/templates/user_profile.html:128 +#: users/templates/user_profile.html:98 msgid "otvjazat_svoj_profil" msgstr "Unlink my profile" -#: users/templates/user_profile.html:131 +#: users/templates/user_profile.html:103 msgid "priviazat" msgstr "Link" -#: users/templates/user_profile.html:140 +#: users/templates/user_profile.html:112 msgid "privjazali_profil" msgstr "Link profile" -#: users/templates/user_profile.html:140 +#: users/templates/user_profile.html:112 msgid "profil_kontesta_priviazan" msgstr "Contest profile is linked" -#: users/templates/user_profile.html:143 +#: users/templates/user_profile.html:117 msgid "obnovit_privjazku_profilja" msgstr "Update linked profile" -#: users/templates/user_profile.html:155 +#: users/templates/user_profile.html:129 msgid "aktivacija_invajtov" msgstr "Activate invite code" -#: users/templates/user_profile.html:156 +#: users/templates/user_profile.html:131 msgid "vvesti_invajt" msgstr "Enter invite code" -#: users/templates/user_profile.html:185 users/templates/user_profile.html:430 +#: users/templates/user_profile.html:156 users/templates/user_settings.html:68 +msgid "privjazka_akkauntov" +msgstr "Link accounts" + +#: users/templates/user_profile.html:162 users/templates/user_settings.html:73 +msgid "jandeks" +msgstr "Yandex" + +#: users/templates/user_profile.html:218 +msgid "data_rozhdeniya" +msgstr "" + +#: users/templates/user_profile.html:225 +msgid "vozrast" +msgstr "" + +#: users/templates/user_profile.html:237 +msgid "telefon" +msgstr "" + +#: users/templates/user_profile.html:253 +msgid "gorod_prozhivaniya" +msgstr "" + +#: users/templates/user_profile.html:275 +msgid "vuz" +msgstr "" + +#: users/templates/user_profile.html:290 +msgid "uchitsya_seychas" +msgstr "" + +#: users/templates/user_profile.html:296 +#, fuzzy +#| msgid "sdat" +msgid "da" +msgstr "Submit" + +#: users/templates/user_profile.html:298 +#, fuzzy +#| msgid "kontest" +msgid "net" +msgstr "Contest" + +#: users/templates/user_profile.html:309 +#, fuzzy +#| msgid "kursov" +msgid "kurs_vuza" +msgstr "Courses" + +#: users/templates/user_profile.html:325 +msgid "fakultet_kafedra" +msgstr "" + +#: users/templates/user_profile.html:341 +msgid "god_okonchaniya_vuza" +msgstr "" + +#: users/templates/user_profile.html:368 users/templates/user_profile.html:658 msgid "o_sebe" msgstr "About" -#: users/templates/user_profile.html:194 -msgid "zdes_nichego_net" -msgstr "Nothing here" - -#: users/templates/user_profile.html:212 +#: users/templates/user_profile.html:401 msgid "prepodavatel_v_kursah" msgstr "Teaching the courses:" -#: users/templates/user_profile.html:246 +#: users/templates/user_profile.html:443 msgid "prepodavatel_v_kursah_arhiv" msgstr "Teaching courses (archive)" -#: users/templates/user_profile.html:285 +#: users/templates/user_profile.html:490 msgid "sostoit_v_kursah" msgstr "Member of the courses" -#: users/templates/user_profile.html:319 +#: users/templates/user_profile.html:532 msgid "sostoit_v_kursah_arhiv" msgstr "Member of the courses (archive)" -#: users/templates/user_profile.html:352 +#: users/templates/user_profile.html:570 msgid "sostoit_v_gruppah" msgstr "Groups member" -#: users/templates/user_profile.html:385 +#: users/templates/user_profile.html:607 msgid "vybor_avatara" msgstr "Select avatar" -#: users/templates/user_profile.html:454 +#: users/templates/user_profile.html:687 msgid "prosmotr_avatara" msgstr "View avatar" -#: users/templates/user_profile.html:476 +#: users/templates/user_profile.html:708 msgid "esli_dannye_neverny" msgstr "If data is incorrect" @@ -1752,22 +2584,84 @@ msgstr "If data is incorrect" msgid "nastrojki_profilja" msgstr "Profile settings" -#: users/templates/user_settings.html:135 +#: users/templates/user_settings.html:41 msgid "pokazyvat_moj_e-mail" msgstr "Show my email" -#: users/templates/user_settings.html:141 +#: users/templates/user_settings.html:47 msgid "otpravljat_mne_kommentarii" msgstr "Send comments to me" -#: users/templates/user_settings.html:153 -msgid "privjazka_akkauntov" -msgstr "Link accounts" +#: users/templates/user_settings.html:51 +#, fuzzy +#| msgid "novoe_soobshenie" +msgid "moe_mestopozhenie" +msgstr "New message" -#: users/templates/user_settings.html:158 -msgid "jandeks" -msgstr "Yandex" +#: users/templates/user_settings.html:52 +msgid "dlja_vremeni" +msgstr "" -#: users/templates/user_settings.html:193 +#: users/templates/user_settings.html:108 msgid "title_otvjazat_svoj_profil" msgstr "Title unlink my account" + +#: users/views.py:426 +#, fuzzy +#| msgid "profil_uzhe_privjazan" +msgid "uzhe_privjazan" +msgstr "Profile is already linked" + +#: users/views.py:431 +msgid "privjazat_profil_ja" +msgstr "Link yandex profile" + +#: users/views.py:444 +msgid "pereprivjazat_tolko_svoj_profil" +msgstr "Link only my profile" + +#: users/views.py:616 +msgid "invajt_drugogo_kursa" +msgstr "Different course invite code" + +#~ msgid "rasshirenia_fajla" +#~ msgstr "File extension" + +#~ msgid "sohranit_izmenenija?" +#~ msgstr "Save changes?" + +#~ msgid "_total__studentov" +#~ msgstr "_total_ number of students" + +#~ msgid "(iz__max_)" +#~ msgstr "(iz__max_)" + +#~ msgid "pokazat__menu__studentov" +#~ msgstr "Show students menu" + +#~ msgid "lubaja" +#~ msgstr "Any" + +#~ msgid "kurs_zadacha_student" +#~ msgstr "Course assignment student" + +#~ msgid "proverjaushim" +#~ msgstr "TA" + +#~ msgid "nabludatelem" +#~ msgstr "Vievew" + +#~ msgid "nuzhno_privjazat_k_profilu_kontest" +#~ msgstr "Contest profile must be linked" + +#~ msgid "_start_-_end__iz__total_" +#~ msgstr "_start_ - _end_ is _total_" + +#~ msgid "v_zadache_kursa" +#~ msgstr "In course assignment" + +#~ msgid "novaja_data_sdachi" +#~ msgstr "New submission deadline" + +#~ msgid "izmenenie_sroka_sdachi" +#~ msgstr "Change submission deadline" diff --git a/anytask/locale/ru/LC_MESSAGES/django.po b/anytask/locale/ru/LC_MESSAGES/django.po index 573517139..34711d614 100644 --- a/anytask/locale/ru/LC_MESSAGES/django.po +++ b/anytask/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-13 18:27+0300\n" +"POT-Creation-Date: 2021-03-06 21:56+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -19,74 +19,73 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -#: admission/views.py:171 courses/templates/courses/course_forbidden.html:30 -#: issues/templates/file_uploader.html:191 +#: admission/views.py:170 courses/templates/courses/course_forbidden.html:30 +#: issues/templates/file_uploader.html:198 msgid "oshibka" msgstr "Ошибка" -#: admission/views.py:181 +#: admission/views.py:180 msgid "oshibka_registracii_v_contest" msgstr "Ошибка регистрации в Яндекс.Контесте" -#: admission/views.py:183 +#: admission/views.py:182 msgid "nevernyy_kod_aktivatsii" msgstr "Неверный код активации." -#: admission/views.py:203 +#: admission/views.py:202 msgid "spasibo" msgstr "Спасибо" -#: admission/views.py:204 +#: admission/views.py:203 msgid "informatsiya_o_vas_byla_udalena" msgstr "Информация о вас была удалена." -#: anycontest/models.py:209 anycontest/models.py:215 anycontest/models.py:220 -#: anycontest/tests.py:250 anycontest/tests.py:267 anycontest/tests.py:288 +#: anycontest/management/commands/check_contest.py:49 issues/models.py:348 +#: issues/views.py:117 +msgid "oshibka_otpravki_v_rb" +msgstr "Ошибка отправки в Review Board" + +#: anycontest/management/commands/check_contest.py:57 +msgid "bally_ne_uchityvautsia" +msgstr "Баллы за задачу, зачтенную после дедлайна, не учитываются" + +#: anycontest/models.py:206 anycontest/models.py:212 anycontest/models.py:217 +#: anycontest/tests.py:259 anycontest/tests.py:276 anycontest/tests.py:297 msgid "verdikt_jakontest" msgstr "Вердикт Я.Контест" -#: anycontest/models.py:227 +#: anycontest/models.py:224 msgid "resursy" msgstr "Ресурсы" -#: anycontest/models.py:230 +#: anycontest/models.py:227 msgid "vvod" msgstr "Ввод" -#: anycontest/models.py:236 +#: anycontest/models.py:233 msgid "vyvod_programmy" msgstr "Вывод программы" -#: anycontest/models.py:242 +#: anycontest/models.py:239 msgid "pravilnyj_otvet" msgstr "Правильный ответ" -#: anycontest/models.py:256 +#: anycontest/models.py:253 msgid "soobshenie_chekera" msgstr "Сообщение чекера" -#: anycontest/models.py:262 +#: anycontest/models.py:259 msgid "test" msgstr "Тест" -#: anycontest/management/commands/check_contest.py:49 issues/models.py:352 -#: issues/views.py:118 -msgid "oshibka_otpravki_v_rb" -msgstr "Ошибка отправки в Review Board" - -#: anycontest/management/commands/check_contest.py:57 -msgid "bally_ne_uchityvautsia" -msgstr "Баллы за задачу, зачтенную после дедлайна, не учитываются" - #: anyrb/common.py:87 courses/templates/courses/queue.html:77 -#: issues/models.py:571 issues/views.py:50 -#: issues/management/commands/send_notifications.py:94 -#: users/templates/my_tasks.html:139 +#: issues/issueFilter.py:23 issues/management/commands/send_notifications.py:94 +#: issues/views.py:49 users/templates/my_tasks.html:139 msgid "zadacha" msgstr "Задача" -#: anyrb/common.py:88 issues/model_issue_student_filter.py:20 -#: issues/views.py:49 issues/management/commands/send_notifications.py:94 +#: anyrb/common.py:88 issues/management/commands/send_notifications.py:94 +#: issues/model_issue_student_filter.py:20 issues/views.py:48 #: mail/templates/mail.html:174 users/model_user_profile_filter.py:27 #: users/templates/my_tasks.html:140 users/templates/user_courses.html:91 msgid "kurs" @@ -95,8 +94,8 @@ msgstr "Курс" #: anyrb/common.py:89 courses/templates/courses/attendance_list.html:38 #: courses/templates/courses/queue.html:76 #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:35 -#: courses/templates/courses/tasklist/shad_cpp.html:47 issues/views.py:51 -#: issues/management/commands/send_notifications.py:94 +#: courses/templates/courses/tasklist/shad_cpp.html:47 +#: issues/management/commands/send_notifications.py:94 issues/views.py:50 #: staff/templates/gradebook.html:43 msgid "student" msgstr "Студент" @@ -109,25 +108,25 @@ msgstr "Обсуждение задачи" msgid "novyj_kommentarij" msgstr "Добавлен новый комментарий в" -#: blog/templates/blog.html:4 blog/templates/blog.html.py:9 +#: blog/templates/blog.html:4 blog/templates/blog.html:9 msgid "blog_anytask" msgstr "Блог Anytask" -#: courses/forms.py:25 issues/models.py:78 +#: courses/forms.py:25 issues/models.py:74 msgid "na_dorabotke" msgstr "На доработке" -#: courses/forms.py:26 issues/models.py:79 +#: courses/forms.py:26 issues/models.py:75 msgid "na_proverke" msgstr "На проверке" #: courses/forms.py:27 courses/templates/courses/gradebook.html:73 -#: issues/models.py:82 +#: issues/models.py:78 msgid "trebuetsja_informacija" msgstr "Требуется информация" #: courses/forms.py:28 users/templates/my_tasks.html:99 -#: users/templates/my_tasks.html.py:134 users/templates/my_tasks.html:176 +#: users/templates/my_tasks.html:134 users/templates/my_tasks.html:176 #: users/templates/status_history.html:21 users/templates/user_courses.html:31 #: users/templates/user_profile.html:22 users/templates/user_settings.html:19 msgid "moi_zadachi" @@ -137,48 +136,28 @@ msgstr "Мои задачи" msgid "nabludaemye_mnoj" msgstr "Наблюдаемые мной" -#: courses/pythontask.py:176 +#: courses/pythontask.py:175 msgid "zapisalsya_na_task" msgstr "записался на задачу" -#: courses/pythontask.py:196 +#: courses/pythontask.py:195 msgid "otkazalsya_ot_taska" msgstr "отказался от задачи" -#: courses/views.py:86 -msgid "ochistit" -msgstr "Очистить" - -#: courses/views.py:86 staff/views.py:89 users/views.py:496 -msgid "primenit" -msgstr "Применить" - -#: courses/views.py:841 courses/views.py:853 tasks/views.py:365 -msgid "kontesta_ne_sushestvuet" -msgstr "Такого соревнования не существует" - -#: courses/views.py:843 courses/views.py:855 tasks/views.py:367 -msgid "oshibka_kontesta" -msgstr "Ошибка Я.Контеста:" - -#: courses/views.py:851 tasks/views.py:355 tasks/views.py:440 -msgid "net_prav_na_kontest" -msgstr "У Anytask нет прав на данное соревнование" - #: courses/templates/course_tasks_potok.html:51 -#: courses/templates/statistics.html:51 #: courses/templates/courses/attendance.html:27 #: courses/templates/courses/course.html:36 #: courses/templates/courses/gradebook.html:34 #: courses/templates/courses/queue.html:27 #: courses/templates/courses/settings.html:33 +#: courses/templates/statistics.html:51 msgid "stranica_kursa" msgstr "Страница курса" #: courses/templates/course_tasks_potok.html:52 -#: courses/templates/statistics.html:52 #: courses/templates/courses/course.html:37 #: courses/templates/courses/gradebook.html:34 +#: courses/templates/statistics.html:52 msgid "stranica_seminara" msgstr "Страница семинара" @@ -207,8 +186,8 @@ msgstr "Очередь на проверку" msgid "nastrojki" msgstr "Настройки" -#: courses/templates/course_tasks_potok.html:143 -#: courses/templates/course_tasks_potok.html:167 +#: courses/templates/course_tasks_potok.html:148 +#: courses/templates/course_tasks_potok.html:177 #: courses/templates/courses/course.html:217 #: courses/templates/courses/course.html:221 #: courses/templates/courses/course.html:345 @@ -234,7 +213,7 @@ msgstr "Журнал посещаемости" #: courses/templates/courses/queue.html:31 #: courses/templates/courses/settings.html:37 #: staff/templates/get_gradebook.html:20 staff/templates/gradebook.html:21 -#: staff/templates/gradebook.html.py:38 +#: staff/templates/gradebook.html:38 msgid "obshaja_vedomost" msgstr "Общая ведомость" @@ -360,7 +339,7 @@ msgstr "Ведомость" msgid "dobavit" msgstr "Добавить" -#: courses/templates/courses/course.html:429 tasks/models.py:67 +#: courses/templates/courses/course.html:429 tasks/models.py:69 msgid "material" msgstr "материал" @@ -397,7 +376,7 @@ msgstr "Сохранить изменения" #: courses/templates/courses/task.html:36 #: courses/templates/courses/tasklist/shad_cpp.html:219 #: issues/templates/issues/issue_js.html:166 staff/templates/staff.html:173 -#: staff/templates/staff.html.py:196 users/templates/status_history.html:141 +#: staff/templates/staff.html:196 users/templates/status_history.html:141 #: users/templates/user_profile.html:645 users/templates/user_profile.html:674 #: users/templates/user_profile_js.html:163 msgid "sohranenie" @@ -426,8 +405,8 @@ msgstr "студентов" #: courses/templates/courses/queue_js.html:165 #: courses/templates/courses/queue_js.html:167 #: issues/templates/issues/info.html:73 mail/templates/mail_js.html:67 -#: mail/templates/mail_js.html.py:69 staff/templates/gradebook_js.html:136 -#: staff/templates/staff_js.html:168 staff/templates/staff_js.html.py:170 +#: mail/templates/mail_js.html:69 staff/templates/gradebook_js.html:136 +#: staff/templates/staff_js.html:168 staff/templates/staff_js.html:170 msgid "iz" msgstr "из" @@ -440,9 +419,9 @@ msgstr "Показать" #: courses/templates/courses/course_js.html:308 #: courses/templates/courses/queue_js.html:171 #: courses/templates/courses/queue_js.html:172 mail/templates/mail.html:5 -#: mail/templates/mail_js.html:73 mail/templates/mail_js.html.py:74 +#: mail/templates/mail_js.html:73 mail/templates/mail_js.html:74 #: staff/templates/gradebook_js.html:140 staff/templates/staff_js.html:174 -#: staff/templates/staff_js.html.py:175 +#: staff/templates/staff_js.html:175 msgid "zagruzka" msgstr "Загрузка..." @@ -461,7 +440,7 @@ msgstr "Поиск" #: courses/templates/courses/course_js.html:311 #: courses/templates/courses/queue_js.html:175 mail/templates/mail_js.html:77 #: search/templates/search.html:76 staff/templates/gradebook_js.html:143 -#: staff/templates/staff_js.html:167 staff/templates/staff_js.html.py:178 +#: staff/templates/staff_js.html:167 staff/templates/staff_js.html:178 msgid "nichego_ne_najdeno" msgstr "Нет результатов по вашему запросу." @@ -521,9 +500,9 @@ msgstr "Удалённую задачу нельзя восстановить. #: courses/templates/courses/course_js.html:938 #: issues/templates/issues/info.html:136 issues/templates/issues/info.html:156 #: tasks/management/commands/send_task_notifications.py:82 -#: tasks/templates/contest_import.html:129 tasks/templates/task_create.html:128 +#: tasks/templates/contest_import.html:129 tasks/templates/task_create.html:137 #: tasks/templates/task_create_or_edit_js.html:468 -#: tasks/templates/task_edit.html:202 tasks/templates/task_edit.html.py:421 +#: tasks/templates/task_edit.html:211 tasks/templates/task_edit.html:430 #: tasks/templates/task_import.html:118 tasks/templates/task_import_js.html:418 msgid "data_sdachi" msgstr "Дата сдачи" @@ -552,7 +531,7 @@ msgstr "Общая ведомость семинара" #: courses/templates/courses/gradebook.html:72 #: courses/templatetags/course_func.py:32 issues/model_issue_status.py:12 -#: issues/models.py:77 +#: issues/models.py:73 msgid "novyj" msgstr "Новый" @@ -578,21 +557,21 @@ msgstr "Фильтр" msgid "obnovlena" msgstr "Обновлена" -#: courses/templates/courses/queue.html:79 issues/views.py:55 +#: courses/templates/courses/queue.html:79 issues/views.py:54 #: users/templates/my_tasks.html:144 msgid "ocenka" msgstr "Оценка" -#: courses/templates/courses/queue.html:80 issues/models.py:565 -#: issues/views.py:52 +#: courses/templates/courses/queue.html:80 issues/issueFilter.py:17 +#: issues/views.py:51 msgid "proverjaushij" msgstr "Проверяющий" #: courses/templates/courses/queue_js.html:21 #: courses/templates/courses/queue_js.html:174 #: issues/templates/issues/issue_js.html:65 mail/templates/mail_js.html:76 -#: mail/templates/mail_js.html.py:604 search/templates/search.html:62 -#: staff/templates/staff_js.html:49 staff/templates/staff_js.html.py:177 +#: mail/templates/mail_js.html:604 search/templates/search.html:62 +#: staff/templates/staff_js.html:49 staff/templates/staff_js.html:177 #: tasks/templates/task_create_or_edit_js.html:70 templates/base.html:675 #: users/templates/my_tasks.html:45 msgid "najti" @@ -638,8 +617,8 @@ msgid "po_umolchaniu" msgstr "Значение по умолчанию" #: courses/templates/courses/settings.html:193 -#: tasks/templates/contest_import.html:159 tasks/templates/task_create.html:155 -#: tasks/templates/task_edit.html:272 tasks/templates/task_import.html:143 +#: tasks/templates/contest_import.html:159 tasks/templates/task_create.html:164 +#: tasks/templates/task_edit.html:281 tasks/templates/task_import.html:143 msgid "otpravljat_tolko_odin_fajl" msgstr "Отправлять только один файл" @@ -649,7 +628,7 @@ msgid "otobrazhat_nastrojku" msgstr "Отображать настройку" #: courses/templates/courses/settings.html:207 -#: tasks/templates/contest_import.html:169 tasks/templates/task_edit.html:287 +#: tasks/templates/contest_import.html:169 tasks/templates/task_edit.html:296 #: tasks/templates/task_import.html:153 msgid "perevodit_v_zachteno" msgstr "Переводить в статус «Зачтено» после положительного вердикта Я.Контеста" @@ -661,7 +640,7 @@ msgstr "Переводить в статус «Зачтено» после по msgid "jakontest" msgstr "Я.Контест" -#: courses/templates/courses/settings.html:230 issues/views.py:58 +#: courses/templates/courses/settings.html:230 issues/views.py:57 msgid "nomer_posylki_kontest" msgstr "Номер отправки в соревнование" @@ -683,7 +662,7 @@ msgid "obnovit_dannie_zadach" msgstr "Обновить название, максимальный балл, дату сдачи и условия задач" #: courses/templates/courses/settings.html:274 -#: tasks/templates/task_edit.html:433 +#: tasks/templates/task_edit.html:442 msgid "obnovit" msgstr "Обновить" @@ -694,21 +673,21 @@ msgstr "Расширения файлов" #: courses/templates/courses/settings.html:305 #: lessons/templates/lesson_create.html:135 #: lessons/templates/lesson_edit.html:166 -#: tasks/templates/contest_import.html:202 tasks/templates/task_create.html:201 -#: tasks/templates/task_edit.html:358 tasks/templates/task_import.html:196 +#: tasks/templates/contest_import.html:202 tasks/templates/task_create.html:210 +#: tasks/templates/task_edit.html:367 tasks/templates/task_import.html:196 msgid "otmenit_i_vyjti" msgstr "Отменить и выйти" #: courses/templates/courses/settings.html:306 -#: tasks/templates/task_create.html:202 tasks/templates/task_edit.html:359 +#: tasks/templates/task_create.html:211 tasks/templates/task_edit.html:368 msgid "sohranit_i_prodolzhit" msgstr "Сохранить и продолжить редактирование" #: courses/templates/courses/settings.html:307 #: lessons/templates/lesson_create.html:136 #: lessons/templates/lesson_edit.html:167 -#: tasks/templates/contest_import.html:203 tasks/templates/task_create.html:203 -#: tasks/templates/task_edit.html:360 tasks/templates/task_import.html:197 +#: tasks/templates/contest_import.html:203 tasks/templates/task_create.html:212 +#: tasks/templates/task_edit.html:369 tasks/templates/task_import.html:197 msgid "sohranit_i_vyjti" msgstr "Сохранить и выйти" @@ -746,7 +725,7 @@ msgid "zadachi_obnovleny" msgstr "Задачи обновлены." #: courses/templates/courses/settings_js.html:186 -#: tasks/templates/task_edit.html:78 tasks/templates/task_edit.html.py:92 +#: tasks/templates/task_edit.html:78 tasks/templates/task_edit.html:92 msgid "oshibka_pri_poluchenii" msgstr "При получении данных произошла ошибка." @@ -758,11 +737,11 @@ msgstr "При получении данных произошла ошибка." #: lessons/templates/lesson_create_or_edit_js.html:110 #: lessons/templates/lesson_create_or_edit_js.html:120 #: mail/templates/mail.html:207 staff/templates/staff.html:172 -#: staff/templates/staff.html.py:195 staff/templates/staff.html:218 +#: staff/templates/staff.html:195 staff/templates/staff.html:218 #: tasks/templates/task_create_or_edit_js.html:239 #: tasks/templates/task_create_or_edit_js.html:257 #: tasks/templates/task_create_or_edit_js.html:268 -#: tasks/templates/task_edit.html:80 tasks/templates/task_edit.html.py:89 +#: tasks/templates/task_edit.html:80 tasks/templates/task_edit.html:89 #: users/templates/status_history.html:139 #: users/templates/user_profile.html:642 users/templates/user_profile.html:672 #: users/templates/user_profile.html:699 @@ -786,7 +765,7 @@ msgstr "Данные сохранены." #: courses/templates/courses/settings_js.html:276 #: lessons/templates/lesson_create_or_edit_js.html:111 -#: staff/templates/staff_js.html:304 staff/templates/staff_js.html.py:350 +#: staff/templates/staff_js.html:304 staff/templates/staff_js.html:350 #: tasks/templates/task_create_or_edit_js.html:260 #: users/templates/user_settings_js.html:64 msgid "oshibka_pri_sohranenii" @@ -805,10 +784,6 @@ msgstr "Произошла ошибка. Попробуйте выполнить msgid "sohranit" msgstr "Сохранить" -#: courses/templates/courses/tasks_description.html:20 -msgid "zadachi_kursa" -msgstr "Задачи курса" - #: courses/templates/courses/tasklist/many_tasksets_many_groups.html:116 msgid "slushateli_kursa" msgstr "Слушатели курса" @@ -832,7 +807,31 @@ msgstr "" msgid "snachala_udalit_podzadchi" msgstr "Перед удалением семинара необходимо удалить из него все подзадачи." -#: invites/templates/generate.html:4 invites/templates/generate.html.py:62 +#: courses/templates/courses/tasks_description.html:20 +msgid "zadachi_kursa" +msgstr "Задачи курса" + +#: courses/views.py:85 +msgid "ochistit" +msgstr "Очистить" + +#: courses/views.py:85 staff/views.py:88 users/views.py:495 +msgid "primenit" +msgstr "Применить" + +#: courses/views.py:831 courses/views.py:843 tasks/views.py:367 +msgid "kontesta_ne_sushestvuet" +msgstr "Такого соревнования не существует" + +#: courses/views.py:833 courses/views.py:845 tasks/views.py:369 +msgid "oshibka_kontesta" +msgstr "Ошибка Я.Контеста:" + +#: courses/views.py:841 tasks/views.py:357 tasks/views.py:442 +msgid "net_prav_na_kontest" +msgstr "У Anytask нет прав на данное соревнование" + +#: invites/templates/generate.html:4 invites/templates/generate.html:62 msgid "sozdanie_invajtov" msgstr "Создание инвайтов" @@ -893,10 +892,11 @@ msgstr "для" msgid "dejstvitelen_do" msgstr "Действителен до" -#: issues/admin.py:25 issues/model_issue_student_filter.py:22 -#: issues/models.py:563 issues/views.py:54 -#: issues/templates/issues/info.html:113 staff/templates/staff.html:90 -#: users/admin.py:27 users/templates/my_tasks.html:143 +#: issues/admin.py:25 issues/issueFilter.py:15 +#: issues/model_issue_student_filter.py:22 +#: issues/templates/issues/info.html:113 issues/views.py:53 +#: staff/templates/staff.html:90 users/admin.py:27 +#: users/templates/my_tasks.html:143 msgid "status" msgstr "Статус" @@ -904,6 +904,22 @@ msgstr "Статус" msgid "format14" msgstr "Формат: 5.31, 14" +#: issues/issueFilter.py:16 issues/model_issue_student_filter.py:23 +msgid "data_poslednego_izmenenija" +msgstr "Дата последнего изменения" + +#: issues/issueFilter.py:18 issues/views.py:52 +msgid "nabludateli" +msgstr "Наблюдатели" + +#: issues/issueFilter.py:19 +msgid "studenty" +msgstr "Студенты" + +#: issues/issueFilter.py:21 +msgid "uroki" +msgstr "Уроки" + #: issues/model_issue_status.py:50 msgid "issue status" msgstr "" @@ -920,10 +936,6 @@ msgstr "Тип курса" msgid "god_kursa" msgstr "Учебный год" -#: issues/model_issue_student_filter.py:23 issues/models.py:564 -msgid "data_poslednego_izmenenija" -msgstr "Дата последнего изменения" - #: issues/model_issue_student_filter.py:45 msgid "luboj" msgstr "Любой" @@ -942,74 +954,50 @@ msgstr "Активный" msgid "arhiv" msgstr "Архив" -#: issues/models.py:80 +#: issues/models.py:76 msgid "zachteno" msgstr "Зачтено" -#: issues/models.py:81 +#: issues/models.py:77 msgid "na_avtomaticheskoj_proverke" msgstr "На автоматической проверке" -#: issues/models.py:332 issues/views.py:100 +#: issues/models.py:328 issues/views.py:99 msgid "otpravleno_v_kontest" msgstr "Отправлено на проверку в Я.Контест." -#: issues/models.py:336 issues/views.py:105 +#: issues/models.py:332 issues/views.py:104 msgid "oshibka_otpravki_v_kontest" msgstr "Ошибка отправки в Я.Контест." -#: issues/models.py:503 +#: issues/models.py:499 msgid "zadachu_proveriaet" msgstr "Теперь задачу проверяет" -#: issues/models.py:504 +#: issues/models.py:500 msgid "status_izmenen" msgstr "Статус изменен:" -#: issues/models.py:505 +#: issues/models.py:501 msgid "ocenka_izmenena" msgstr "Оценка изменена на" -#: issues/models.py:506 +#: issues/models.py:502 msgid "zagruzhen_faij" msgstr "Загружен файл:" -#: issues/models.py:512 issues/models.py:515 +#: issues/models.py:508 issues/models.py:511 msgid "nabludaiut" msgstr "За задачей наблюдают:" -#: issues/models.py:512 +#: issues/models.py:508 msgid "nabludaet_nikto" msgstr "За задачей никто не наблюдает." -#: issues/models.py:517 +#: issues/models.py:513 msgid "ne_nabludaiut" msgstr "Удалены из наблюдателей:" -#: issues/models.py:566 issues/views.py:53 -msgid "nabludateli" -msgstr "Наблюдатели" - -#: issues/models.py:567 -msgid "studenty" -msgstr "Студенты" - -#: issues/models.py:569 -msgid "uroki" -msgstr "Уроки" - -#: issues/views.py:48 issues/templates/issues/info.html:101 -msgid "kommentarij" -msgstr "Комментарий" - -#: issues/views.py:56 -msgid "fajl" -msgstr "Файл" - -#: issues/views.py:57 -msgid "nomer_revju" -msgstr "Номер ревью" - #: issues/templates/email_issue_notification.html:76 #: issues/templates/email_issue_notification.txt:3 #: mail/templates/email_notification_mail.html:9 @@ -1054,31 +1042,47 @@ msgstr "С уважением" msgid "komanda_anytask" msgstr "команда Anytask" -#: issues/templates/file_uploader.html:104 +#: issues/templates/file_uploader.html:105 msgid "otpravljat_odin_fajl" msgstr "Имя файла было изменено." -#: issues/templates/file_uploader.html:113 +#: issues/templates/file_uploader.html:114 msgid "vyberite_fajl" msgstr "Выберите файл" -#: issues/templates/file_uploader.html:113 +#: issues/templates/file_uploader.html:114 msgid "vyberite_fajly" msgstr "Выберите файлы" -#: issues/templates/file_uploader.html:133 +#: issues/templates/file_uploader.html:134 msgid "ili_peretashite_suda" msgstr "или перетащите сюда" -#: issues/templates/file_uploader.html:141 +#: issues/templates/file_uploader.html:142 msgid "zadat_vopros" msgstr "Задать вопрос" -#: issues/templates/file_uploader.html:145 mail/templates/mail.html:158 +#: issues/templates/file_uploader.html:146 mail/templates/mail.html:158 msgid "otpravit" msgstr "Отправить" -#: issues/templates/file_uploader.html:234 +#: issues/templates/file_uploader.html:185 +msgid "prevysheno_kolvo_fajlov" +msgstr "" + +#: issues/templates/file_uploader.html:186 +msgid "nedopustimyj_tip_fajla" +msgstr "" + +#: issues/templates/file_uploader.html:187 +msgid "fajl_slishkom_bolshoj" +msgstr "" + +#: issues/templates/file_uploader.html:188 +msgid "fajl_slishkom_mal" +msgstr "" + +#: issues/templates/file_uploader.html:241 msgid "vyberite_kompiljator" msgstr "Выберите компилятор" @@ -1091,9 +1095,10 @@ msgid "" "

Open Assignments tab and fetch the '%(assignment_name_t)s'

\n" msgstr "" "\n" -"

Для решения этой задачи необходимо перейти в JupyterHub.

\n" -"

Открыть вкладку Assignments и выбрать операцию Fetch для задания '%(assignment_name_t)s'

\n" +"

Для решения этой задачи необходимо перейти в JupyterHub.

\n" +"

Открыть вкладку Assignments и выбрать операцию Fetch для задания " +"'%(assignment_name_t)s'

\n" #: issues/templates/issues/history.html:51 #, python-format @@ -1107,9 +1112,8 @@ msgstr "" "\n" "

Перед решением данной задачи необходимо привязать ваш Яндекс аккаунт.\n" -"

Перейдите в Настройки и " -"добавьте свой Яндекс аккаунт

\n" - +"

Перейдите в Настройки и добавьте свой " +"Яндекс аккаунт

\n" #: issues/templates/issues/history.html:65 msgid "predydushie_soobshenija" @@ -1139,6 +1143,10 @@ msgstr "Скачать" msgid "zdes_nichego_net" msgstr "Пока здесь ничего нет =(" +#: issues/templates/issues/info.html:101 issues/views.py:47 +msgid "kommentarij" +msgstr "Комментарий" + #: issues/templates/issues/info.html:107 msgid "ja" msgstr "Я" @@ -1177,6 +1185,14 @@ msgstr "Оценка должна быть больше или равна 0." msgid "ocenka_ne_bolshe" msgstr "Оценка не должна быть больше" +#: issues/views.py:55 +msgid "fajl" +msgstr "Файл" + +#: issues/views.py:56 +msgid "nomer_revju" +msgstr "Номер ревью" + #: lessons/models.py:28 msgid "odin_raz" msgstr "один раз" @@ -1201,21 +1217,21 @@ msgstr "Редактирование занятия" #: lessons/templates/lesson_edit.html:70 #: tasks/management/commands/send_task_notifications.py:79 #: tasks/templates/task_create.html:61 tasks/templates/task_edit.html:154 -#: tasks/templates/task_edit.html.py:403 +#: tasks/templates/task_edit.html:412 msgid "nazvanie" msgstr "Название" #: lessons/templates/lesson_create.html:65 #: lessons/templates/lesson_edit.html:95 -#: tasks/templates/contest_import.html:145 tasks/templates/task_create.html:139 -#: tasks/templates/task_edit.html:213 tasks/templates/task_import.html:129 +#: tasks/templates/contest_import.html:145 tasks/templates/task_create.html:148 +#: tasks/templates/task_edit.html:222 tasks/templates/task_import.html:129 msgid "time_zone" msgstr "Часовой пояс" #: lessons/templates/lesson_create.html:73 #: lessons/templates/lesson_edit.html:103 mail/templates/mail.html:174 -#: tasks/templates/contest_import.html:104 tasks/templates/task_create.html:92 -#: tasks/templates/task_edit.html:186 tasks/templates/task_import.html:92 +#: tasks/templates/contest_import.html:104 tasks/templates/task_create.html:101 +#: tasks/templates/task_edit.html:195 tasks/templates/task_import.html:92 #: users/model_user_profile_filter.py:31 msgid "gruppa" msgstr "Группа" @@ -1276,8 +1292,8 @@ msgid "opisanie" msgstr "Описание занятия" #: lessons/templates/lesson_create.html:131 -#: lessons/templates/lesson_edit.html:162 tasks/templates/task_create.html:197 -#: tasks/templates/task_edit.html:354 tasks/templates/task_import.html:192 +#: lessons/templates/lesson_edit.html:162 tasks/templates/task_create.html:206 +#: tasks/templates/task_edit.html:363 tasks/templates/task_import.html:192 msgid "predprosmotr" msgstr "Предпросмотр" @@ -1373,54 +1389,6 @@ msgstr "Применить ко всем последующим занятиям msgid "primenit_k_sobitiu" msgstr "Применить к занятию" -#: mail/views.py:24 -msgid "january" -msgstr "янв." - -#: mail/views.py:25 -msgid "february" -msgstr "февр." - -#: mail/views.py:26 -msgid "march" -msgstr "мар." - -#: mail/views.py:27 -msgid "april" -msgstr "апр." - -#: mail/views.py:28 -msgid "may" -msgstr "мая" - -#: mail/views.py:29 -msgid "june" -msgstr "июн." - -#: mail/views.py:30 -msgid "july" -msgstr "июл." - -#: mail/views.py:31 -msgid "august" -msgstr "авг." - -#: mail/views.py:32 -msgid "september" -msgstr "сент." - -#: mail/views.py:33 -msgid "october" -msgstr "окт." - -#: mail/views.py:34 -msgid "november" -msgstr "нояб." - -#: mail/views.py:35 -msgid "december" -msgstr "дек." - #: mail/management/commands/send_mail_notifications.py:67 msgid "est_novye_soobshenija" msgstr "у вас есть новые сообщения." @@ -1459,23 +1427,23 @@ msgstr "Посмотреть сообщения" msgid "napisat" msgstr "Написать" -#: mail/templates/mail.html:21 mail/templates/mail.html.py:40 -#: mail/templates/mail_js.html:204 mail/templates/mail_js.html.py:209 -#: mail/templates/mail_js.html:411 mail/templates/mail_js.html.py:420 +#: mail/templates/mail.html:21 mail/templates/mail.html:40 +#: mail/templates/mail_js.html:204 mail/templates/mail_js.html:209 +#: mail/templates/mail_js.html:411 mail/templates/mail_js.html:420 msgid "vhodjashie" msgstr "Входящие" -#: mail/templates/mail.html:25 mail/templates/mail.html.py:58 +#: mail/templates/mail.html:25 mail/templates/mail.html:58 #: mail/templates/mail_js.html:427 msgid "otpravlennye" msgstr "Отправленные" -#: mail/templates/mail.html:29 mail/templates/mail.html.py:76 +#: mail/templates/mail.html:29 mail/templates/mail.html:76 #: mail/templates/mail_js.html:430 msgid "udalennye" msgstr "Удалённые" -#: mail/templates/mail.html:108 mail/templates/mail.html.py:253 +#: mail/templates/mail.html:108 mail/templates/mail.html:253 msgid "komu" msgstr "Кому" @@ -1529,13 +1497,13 @@ msgstr "Ответить" msgid "otvetit_vsem" msgstr "Ответить всем" -#: mail/templates/mail.html:238 mail/templates/mail.html.py:295 +#: mail/templates/mail.html:238 mail/templates/mail.html:295 msgid "vosstanovit" msgstr "Восстановить" #: mail/templates/mail.html:287 mail/templates/mail_js.html:160 -#: mail/templates/mail_js.html.py:340 mail/templates/mail_js.html:377 -#: mail/templates/mail_js.html.py:393 +#: mail/templates/mail_js.html:340 mail/templates/mail_js.html:377 +#: mail/templates/mail_js.html:393 msgid "otmetit_vse_kak_prochitannoe" msgstr "Отметить всё как прочитанное" @@ -1543,16 +1511,16 @@ msgstr "Отметить всё как прочитанное" msgid "soobshenij_net" msgstr "Сообщений нет." -#: mail/templates/mail_js.html:165 mail/templates/mail_js.html.py:398 +#: mail/templates/mail_js.html:165 mail/templates/mail_js.html:398 msgid "kak_neprochitannoe" msgstr "Отметить как непрочитанное" -#: mail/templates/mail_js.html:167 mail/templates/mail_js.html.py:381 +#: mail/templates/mail_js.html:167 mail/templates/mail_js.html:381 #: mail/templates/mail_js.html:400 msgid "otmetit_kak_prochitannoe" msgstr "Отметить как прочитанное" -#: mail/templates/mail_js.html:278 mail/templates/mail_js.html.py:291 +#: mail/templates/mail_js.html:278 mail/templates/mail_js.html:291 msgid "pokazat_citirovanie" msgstr "Показать цитирование" @@ -1607,15 +1575,63 @@ msgid "neobhodimo_ukazat_temu" msgstr "Укажите тему." #: mail/templates/mail_js.html:851 staff/templates/staff.html:134 -#: staff/templates/staff.html.py:188 staff/templates/staff.html:211 +#: staff/templates/staff.html:188 staff/templates/staff.html:211 msgid "vybrano_polzovateley" msgstr "Выбрано пользователей:" +#: mail/views.py:22 +msgid "january" +msgstr "янв." + +#: mail/views.py:23 +msgid "february" +msgstr "февр." + +#: mail/views.py:24 +msgid "march" +msgstr "мар." + +#: mail/views.py:25 +msgid "april" +msgstr "апр." + +#: mail/views.py:26 +msgid "may" +msgstr "мая" + +#: mail/views.py:27 +msgid "june" +msgstr "июн." + +#: mail/views.py:28 +msgid "july" +msgstr "июл." + +#: mail/views.py:29 +msgid "august" +msgstr "авг." + +#: mail/views.py:30 +msgid "september" +msgstr "сент." + +#: mail/views.py:31 +msgid "october" +msgstr "окт." + +#: mail/views.py:32 +msgid "november" +msgstr "нояб." + +#: mail/views.py:33 +msgid "december" +msgstr "дек." + #: schools/templates/archive_page.html:20 schools/templates/school_page.html:19 msgid "aktivnye_kursy" msgstr "Активные курсы" -#: search/templates/search.html:4 search/templates/search.html.py:58 +#: search/templates/search.html:4 search/templates/search.html:58 msgid "rezultaty_poiska" msgstr "Результаты поиска" @@ -1623,7 +1639,7 @@ msgstr "Результаты поиска" msgid "min_dlina_zaprosa" msgstr "Минимальная длина запроса должна быть больше трёх символов." -#: search/templates/search.html:74 search/templates/search.html.py:76 +#: search/templates/search.html:74 search/templates/search.html:76 msgid "po_zaprosu" msgstr "По запросу" @@ -1648,21 +1664,13 @@ msgstr "Пользователи" msgid "kursy" msgstr "Курсы" -#: staff/views.py:69 -msgid "dannyye_polzovateli_ne_naydeny" -msgstr "Данные пользователи не найдены." - -#: staff/views.py:72 -msgid "nevernyy_format_fayla" -msgstr "Неверный формат файла. Выберите файл в формате CSV." - #: staff/templates/get_gradebook.html:17 staff/templates/gradebook.html:18 #: staff/templates/staff.html:20 msgid "filtry_po_statusam" msgstr "Фильтры по статусам" #: staff/templates/get_gradebook.html:42 staff/templates/staff.html:207 -#: staff/templates/staff.html.py:234 +#: staff/templates/staff.html:234 msgid "sgenerirovat_obshuu_vedomost" msgstr "Сгенерировать общую ведомость" @@ -1746,7 +1754,7 @@ msgstr "Сгенерировать общую ведомость?" msgid "generacia" msgstr "Генерация" -#: staff/templates/staff.html:227 staff/templates/staff.html.py:241 +#: staff/templates/staff.html:227 staff/templates/staff.html:241 #: staff/templates/staff.html:242 staff/templates/staff_js.html:409 msgid "izmenit_status_dlya_vsekh_polzovateley" msgstr "Изменить статус для всех пользователей" @@ -1759,9 +1767,9 @@ msgstr "Отправить сообщение всем пользователя msgid "vybrat_vse" msgstr "Выбрать все" -#: staff/templates/staff_js.html:51 staff/templates/staff_js.html.py:62 +#: staff/templates/staff_js.html:51 staff/templates/staff_js.html:62 #: staff/templates/staff_js.html:76 users/templates/my_tasks.html:47 -#: users/templates/my_tasks.html.py:58 users/templates/my_tasks.html:72 +#: users/templates/my_tasks.html:58 users/templates/my_tasks.html:72 msgid "vse_vybrano" msgstr "Выбрано всё" @@ -1781,31 +1789,23 @@ msgstr "Изменить статус для выбранных пользова msgid "otpravit_soobshcheniye_vybrannym_polzovatelyam" msgstr "Отправить сообщение выбранным пользователям" -#: tasks/models.py:65 tasks/models.py:258 -msgid "s_obsuzhdeniem" -msgstr "с обсуждением" - -#: tasks/models.py:66 tasks/models.py:259 -msgid "tolko_ocenka" -msgstr "только оценка" - -#: tasks/models.py:68 -msgid "seminar" -msgstr "семинар" +#: staff/views.py:68 +msgid "dannyye_polzovateli_ne_naydeny" +msgstr "Данные пользователи не найдены." -#: tasks/models.py:69 -msgid "jupyter notebook" -msgstr "" +#: staff/views.py:71 +msgid "nevernyy_format_fayla" +msgstr "Неверный формат файла. Выберите файл в формате CSV." #: tasks/management/commands/send_task_notifications.py:80 -#: tasks/templates/task_create.html:188 tasks/templates/task_edit.html:345 -#: tasks/templates/task_edit.html.py:427 tasks/templates/task_import.html:183 +#: tasks/templates/task_create.html:197 tasks/templates/task_edit.html:354 +#: tasks/templates/task_edit.html:436 tasks/templates/task_import.html:183 msgid "formulirovka" msgstr "Условие" #: tasks/management/commands/send_task_notifications.py:81 #: tasks/templates/contest_import.html:91 tasks/templates/task_create.html:85 -#: tasks/templates/task_edit.html:178 tasks/templates/task_edit.html.py:415 +#: tasks/templates/task_edit.html:178 tasks/templates/task_edit.html:424 #: tasks/templates/task_import.html:82 msgid "max_ball" msgstr "Максимальный балл" @@ -1814,11 +1814,27 @@ msgstr "Максимальный балл" msgid "proizoshli_izmeneniya_v_kursah" msgstr "произошли изменения в ваших курсах" +#: tasks/models.py:67 tasks/models.py:266 +msgid "s_obsuzhdeniem" +msgstr "с обсуждением" + +#: tasks/models.py:68 tasks/models.py:267 +msgid "tolko_ocenka" +msgstr "только оценка" + +#: tasks/models.py:70 +msgid "seminar" +msgstr "семинар" + +#: tasks/models.py:71 +msgid "jupyter notebook" +msgstr "" + #: tasks/templates/contest_import.html:8 tasks/templates/task_import.html:9 msgid "import" msgstr "Импорт" -#: tasks/templates/contest_import.html:64 tasks/templates/task_edit.html:243 +#: tasks/templates/contest_import.html:64 tasks/templates/task_edit.html:252 #: tasks/templates/task_import.html:47 msgid "id_kontesta" msgstr "ID соревнования" @@ -1832,23 +1848,23 @@ msgstr "Получить список задач" msgid "brat_iz_kontesta" msgstr "Брать из Я.Контеста" -#: tasks/templates/contest_import.html:116 tasks/templates/task_create.html:104 -#: tasks/templates/task_edit.html:309 tasks/templates/task_import.html:105 +#: tasks/templates/contest_import.html:116 tasks/templates/task_create.html:113 +#: tasks/templates/task_edit.html:318 tasks/templates/task_import.html:105 msgid "roditelskaja_zadacha" msgstr "Родительская задача" -#: tasks/templates/contest_import.html:152 tasks/templates/task_create.html:147 -#: tasks/templates/task_edit.html:265 tasks/templates/task_import.html:136 +#: tasks/templates/contest_import.html:152 tasks/templates/task_create.html:156 +#: tasks/templates/task_edit.html:274 tasks/templates/task_import.html:136 msgid "integracija_s_rb" msgstr "Интеграция с Review Board" -#: tasks/templates/contest_import.html:160 tasks/templates/task_create.html:156 -#: tasks/templates/task_edit.html:274 tasks/templates/task_import.html:144 +#: tasks/templates/contest_import.html:160 tasks/templates/task_create.html:165 +#: tasks/templates/task_edit.html:283 tasks/templates/task_import.html:144 msgid "imja_fajla_budet_izmeneno" msgstr "Имя файла будет изменено на upload. Расширение не изменится." -#: tasks/templates/contest_import.html:178 tasks/templates/task_create.html:173 -#: tasks/templates/task_edit.html:299 tasks/templates/task_import.html:162 +#: tasks/templates/contest_import.html:178 tasks/templates/task_create.html:182 +#: tasks/templates/task_edit.html:308 tasks/templates/task_import.html:162 msgid "uchityvat_bally_dedlajn" msgstr "Учитывать баллы для задач, зачтенных после дедлайна" @@ -1884,23 +1900,23 @@ msgstr "изменились" msgid "pereyti_v_kurs" msgstr "Перейти в курс" -#: tasks/templates/task_create.html:9 tasks/templates/task_create.html.py:25 +#: tasks/templates/task_create.html:9 tasks/templates/task_create.html:25 #: tasks/templates/task_create.html:46 tasks/templates/task_edit.html:11 -#: tasks/templates/task_edit.html.py:113 +#: tasks/templates/task_edit.html:113 msgid "sozdanie_zadachi" msgstr "Создание задачи" #: tasks/templates/task_create.html:27 tasks/templates/task_edit.html:117 -#: tasks/templates/task_edit.html.py:149 +#: tasks/templates/task_edit.html:149 msgid "redaktirovanie_zadachi" msgstr "Редактирование задачи" -#: tasks/templates/task_create.html:51 tasks/templates/task_edit.html:221 +#: tasks/templates/task_create.html:51 tasks/templates/task_edit.html:230 msgid "tip_zadachi" msgstr "Тип задачи" #: tasks/templates/task_create.html:68 tasks/templates/task_edit.html:161 -#: tasks/templates/task_edit.html.py:409 tasks/templates/task_import.html:74 +#: tasks/templates/task_edit.html:418 tasks/templates/task_import.html:74 msgid "kratkoe_nazvanie" msgstr "Краткое название" @@ -1917,15 +1933,21 @@ msgstr "Название задачи в jupyter" msgid "must be unique for all tasks in jupyter" msgstr "Название должно быть уникальным" -#: tasks/templates/task_create.html:117 tasks/templates/task_edit.html:322 +#: tasks/templates/task_create.html:93 tasks/templates/task_edit.html:186 +#, fuzzy +#| msgid "student" +msgid "max_students" +msgstr "Студент" + +#: tasks/templates/task_create.html:126 tasks/templates/task_edit.html:331 msgid "podzadachi" msgstr "Подзадачи" -#: tasks/templates/task_create.html:165 tasks/templates/task_import.html:171 +#: tasks/templates/task_create.html:174 tasks/templates/task_import.html:171 msgid "uvedomit_o_sozdanii_zadachi" msgstr "Уведомить студентов о создании задачи" -#: tasks/templates/task_create.html:182 tasks/templates/task_edit.html:339 +#: tasks/templates/task_create.html:191 tasks/templates/task_edit.html:348 #: tasks/templates/task_import.html:177 msgid "skryt_zadachu" msgstr "Скрыть задачу" @@ -1985,31 +2007,31 @@ msgstr "" msgid "assignment name already in use" msgstr "задание с таким названием уже существует" -#: tasks/templates/task_edit.html:188 +#: tasks/templates/task_edit.html:197 msgid "vybor_grupp_zavisit_ot_zadach" msgstr "Из группы можно убрать только задачи, которые еще никто не сдавал." -#: tasks/templates/task_edit.html:236 +#: tasks/templates/task_edit.html:245 msgid "integracija_s_kontestom" msgstr "Интеграция с Яндекс.Контестом" -#: tasks/templates/task_edit.html:250 +#: tasks/templates/task_edit.html:259 msgid "litera_zadachi" msgstr "Литера задачи в соревновании" -#: tasks/templates/task_edit.html:258 tasks/templates/task_edit.html.py:259 +#: tasks/templates/task_edit.html:267 tasks/templates/task_edit.html:268 msgid "obnovit_iz_kontesta" msgstr "Обновить данные из Я.Контеста" -#: tasks/templates/task_edit.html:333 +#: tasks/templates/task_edit.html:342 msgid "uvedomit_ob_izmenenii_v_zadache" msgstr "Уведомить студентов об изменении задачи" -#: tasks/templates/task_edit.html:389 +#: tasks/templates/task_edit.html:398 msgid "obnovlenie_dannyh_iz_kontesta" msgstr "Обновление данных из Яндекс.Контеста" -#: tasks/templates/task_edit.html:393 +#: tasks/templates/task_edit.html:402 msgid "importirovat_polja_iz_kontesta" msgstr "Импортировать из Яндекс.Контеста следующие поля" @@ -2045,9 +2067,10 @@ msgstr "Есть новые сообщения" msgid "net_novyh_soobshenij" msgstr "Новых сообщений нет." -#: templates/base.html:705 users/views.py:427 users/templates/my_tasks.html:96 +#: templates/base.html:705 users/templates/my_tasks.html:96 #: users/templates/status_history.html:18 users/templates/user_courses.html:28 #: users/templates/user_profile.html:19 users/templates/user_settings.html:16 +#: users/views.py:426 msgid "profil" msgstr "Профиль" @@ -2172,16 +2195,16 @@ msgstr "" msgid "Your username, in case you've forgotten:" msgstr "" -#: templates/registration/password_reset_email_subject.txt:2 -#, python-format -msgid "Password reset on %(site_name)s" -msgstr "" - #: templates/registration/password_reset_form.html:5 #: templates/registration/password_reset_form.html:14 msgid "sbros_parolja" msgstr "Сброс пароля" +#: templates/registration/password_reset_subject.txt:2 +#, python-format +msgid "Password reset on %(site_name)s" +msgstr "" + #: templates/registration/registration_complete.html:4 #: templates/registration/registration_form.html:5 #: templates/registration/registration_form.html:119 @@ -2250,27 +2273,6 @@ msgstr "Филиал" msgid "status_postupleniya" msgstr "Статус поступления" -#: users/views.py:427 -msgid "uzhe_privjazan" -msgstr "уже привязан к аккаунту другого пользователя на Anytask." - -#: users/views.py:430 users/views.py:444 users/templates/user_profile.html:96 -#: users/templates/user_profile.html:110 -msgid "privjazat_profil_kontesta" -msgstr "Привязать профиль Яндекс.Контеста" - -#: users/views.py:432 -msgid "privjazat_profil_ja" -msgstr "Привязать профиль Яндекса" - -#: users/views.py:445 -msgid "pereprivjazat_tolko_svoj_profil" -msgstr "Перепривязать можно только профиль, который сейчас привязан" - -#: users/views.py:617 -msgid "invajt_drugogo_kursa" -msgstr "Инвайт относится к другому курсу." - #: users/templates/my_tasks.html:102 users/templates/status_history.html:24 #: users/templates/user_courses.html:34 users/templates/user_courses.html:71 #: users/templates/user_courses.html:131 users/templates/user_profile.html:26 @@ -2358,6 +2360,11 @@ msgstr "Яндекс.Почта" msgid "sgenerirovat_invajty" msgstr "Сгенерировать инвайты" +#: users/templates/user_profile.html:96 users/templates/user_profile.html:110 +#: users/views.py:429 users/views.py:443 +msgid "privjazat_profil_kontesta" +msgstr "Привязать профиль Яндекс.Контеста" + #: users/templates/user_profile.html:98 msgid "privjazat_odin_profil" msgstr "Привязать можно только один профиль." @@ -2504,6 +2511,22 @@ msgstr "Используется для определения часового msgid "title_otvjazat_svoj_profil" msgstr "Чтобы отвязать свой профиль, обратитесь к администратору" +#: users/views.py:426 +msgid "uzhe_privjazan" +msgstr "уже привязан к аккаунту другого пользователя на Anytask." + +#: users/views.py:431 +msgid "privjazat_profil_ja" +msgstr "Привязать профиль Яндекса" + +#: users/views.py:444 +msgid "pereprivjazat_tolko_svoj_profil" +msgstr "Перепривязать можно только профиль, который сейчас привязан" + +#: users/views.py:616 +msgid "invajt_drugogo_kursa" +msgstr "Инвайт относится к другому курсу." + #~ msgid "studentom" #~ msgstr "студентом" From 21d3e80bcda754054c62a3f80fc5842a87c31bb4 Mon Sep 17 00:00:00 2001 From: houcha Date: Sun, 7 Mar 2021 16:16:39 +0300 Subject: [PATCH 08/16] CST-11 Add index tests --- anytask/index/tests.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/anytask/index/tests.py b/anytask/index/tests.py index 501deb776..bc8aeb1f0 100644 --- a/anytask/index/tests.py +++ b/anytask/index/tests.py @@ -6,11 +6,31 @@ """ from django.test import TestCase +from django.urls import reverse +from schools.models import School -class SimpleTest(TestCase): - def test_basic_addition(self): + +class IndexTest(TestCase): + def test_schools_presence(self): """ - Tests that 1 + 1 always equals 2. + Test that active/archieved schools are present in + active/archived indexes respectively and only there. """ - self.assertEqual(1 + 1, 2) + # Create data + School.objects.create( + name='active_school', link='active_school', is_active=True) + School.objects.create( + name='archived_school', link='archived_school', is_active=False) + # Active index + response = self.client.get(reverse('index.views.index')) + self.assertQuerysetEqual( + response.context['schools'], + [''] + ) + # Archive index + response = self.client.get(reverse('index.views.archive_index')) + self.assertQuerysetEqual( + response.context['schools'], + [''] + ) From 1d8381053151133f6aac94a6e42c4f3d6ddaeb5d Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sun, 7 Mar 2021 17:10:59 +0300 Subject: [PATCH 09/16] "Better" error handling in anycontest mark request --- anytask/anycontest/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anytask/anycontest/models.py b/anytask/anycontest/models.py index 69139e0ba..68a4ceb5d 100644 --- a/anytask/anycontest/models.py +++ b/anytask/anycontest/models.py @@ -156,7 +156,7 @@ def get_contest_mark(self): got_mark = True except Exception as e: logger.exception("Exception while request to Contest: '%s' : '%s', Exception: '%s'", - results_req.url, results_req.json(), e) + results_req.url, results_req.text, e) got_mark = False self.save() From 025777ee9a2d86a5cd99f798b907b30e6ad76ae0 Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sun, 7 Mar 2021 17:44:21 +0300 Subject: [PATCH 10/16] Fix default fields setting on course creation --- anytask/courses/models.py | 30 ++++++++++++++++-------------- anytask/courses/tests.py | 2 -- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/anytask/courses/models.py b/anytask/courses/models.py index 6b395cda5..79ba5e96f 100644 --- a/anytask/courses/models.py +++ b/anytask/courses/models.py @@ -221,9 +221,19 @@ def user_can_see_attendance_log(self, user): return self.has_attendance_log and self.user_is_teacher(user) def save(self, *args, **kwargs): + created = self.id is None super(Course, self).save(*args, **kwargs) self.add_group_with_extern() + # Hack hack hack + # We need to triger add_default_issue_fields (m2m_change) + # for new courses + if created: + fields = IssueField.objects.all() + if fields.exists(): + any_field = fields[0] + self.issue_fields.add(any_field) + def add_group_with_extern(self): if self.group_with_extern is None and self.can_be_chosen_by_extern: group, ok = Group.objects.get_or_create(year=self.year, name=u'%s - слушатели' % self.name) @@ -292,24 +302,16 @@ class Meta: def add_default_issue_fields(sender, instance, action, **kwargs): default_issue_fields = DefaultIssueFields() default_issue_fields.set_integrated(instance.rb_integrated, instance.contest_integrated) - pk_set = kwargs.get("pk_set", set()) - if action not in ("post_add", "post_remove", "post_clear"): - return + if action in ("post_add", "post_remove", "post_clear"): + current_fields = set(instance.issue_fields.all()) + default_fields = set(default_issue_fields.get_issue_fields()) - if action in ("post_remove", "post_clear"): - if pk_set and set(pk_set) == default_issue_fields.get_deleted_pks(): + fields_to_add = default_fields - current_fields + if not fields_to_add: return - instance.issue_fields.add(*default_issue_fields.get_issue_fields()) - return - - if action == "post_add": - if pk_set and set(pk_set) == default_issue_fields.get_pks(): - return - - instance.issue_fields.remove(*default_issue_fields.get_deleted_issue_fields()) - return + instance.issue_fields.add(*fields_to_add) def update_rb_review_group(sender, instance, created, **kwargs): diff --git a/anytask/courses/tests.py b/anytask/courses/tests.py index 836afb9e4..e4735c485 100644 --- a/anytask/courses/tests.py +++ b/anytask/courses/tests.py @@ -39,7 +39,6 @@ def test_course_create_filled(self): teachers = [User.objects.create(username='test_teachers', password='password')] groups = [Group.objects.create(name='name_groups', year=year)] group_with_extern = Group.objects.create(name='name_group_with_extern', year=year) - issue_fields = [IssueField.objects.create(name='name_issue_fields')] filename_extensions = [FilenameExtension.objects.create(name='name_filename_extensions')] mark_system = CourseMarkSystem.objects.create(name='name_mark_system') @@ -52,7 +51,6 @@ def test_course_create_filled(self): course.save() course.teachers = teachers course.groups = groups - course.issue_fields.set(issue_fields, clear=True) # course.contest_integrated = True # course.send_rb_and_contest_together = True # course.rb_integrated = True From 669b742ecd2934fe0c3403308f3718f014629ac8 Mon Sep 17 00:00:00 2001 From: houcha <47798290+houcha@users.noreply.github.com> Date: Sun, 7 Mar 2021 19:26:33 +0300 Subject: [PATCH 11/16] Adjust School.is_active default value Co-authored-by: Nikolay Zhuravlev --- anytask/schools/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anytask/schools/models.py b/anytask/schools/models.py index 4bb2c0a77..11ec09feb 100644 --- a/anytask/schools/models.py +++ b/anytask/schools/models.py @@ -8,7 +8,7 @@ class School(models.Model): name = models.CharField(max_length=191, db_index=True, null=False, blank=False) link = models.CharField(max_length=191, db_index=False, null=False, blank=False) - is_active = models.BooleanField(db_index=True, null=False, blank=False, default=False) + is_active = models.BooleanField(db_index=True, null=False, blank=False, default=True) courses = models.ManyToManyField(Course, blank=True) def __unicode__(self): From 1472669f40aaff633756b28378aa2ebee3b445ab Mon Sep 17 00:00:00 2001 From: houcha Date: Sun, 7 Mar 2021 19:29:32 +0300 Subject: [PATCH 12/16] Fix schools migrations --- anytask/schools/migrations/0003_school_is_active.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anytask/schools/migrations/0003_school_is_active.py b/anytask/schools/migrations/0003_school_is_active.py index 3d86be096..d4b25c890 100644 --- a/anytask/schools/migrations/0003_school_is_active.py +++ b/anytask/schools/migrations/0003_school_is_active.py @@ -15,6 +15,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='school', name='is_active', - field=models.BooleanField(db_index=True, default=False), + field=models.BooleanField(db_index=True, default=True), ), ] From 7f89a000d8fda1f3747ec584f4a90dd916e53b43 Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sun, 7 Mar 2021 22:23:17 +0300 Subject: [PATCH 13/16] fix password reset via 'forget password' --- anytask/users/tests.py | 39 ++++++++++++++++++- .../registration/auth_urls.py | 4 +- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/anytask/users/tests.py b/anytask/users/tests.py index 5dbd6d27a..1b4127c5b 100644 --- a/anytask/users/tests.py +++ b/anytask/users/tests.py @@ -1,23 +1,34 @@ # encoding: utf-8 -from django.test import TestCase +import re + from django.contrib.auth.models import User +from django.test import TestCase +from django.contrib.sites.models import Site from schools.models import School from years.models import Year from courses.models import Course from groups.models import Group +from django.core import mail from django.core.urlresolvers import reverse class UserLoginTest(TestCase): + RESET_LINK_RE = re.compile(r'http://localhost(.*)$', re.MULTILINE) + def setUp(self): self.user = User.objects.create_user(username="test_user0", email="test_user0@example.com", password="qwer0") self.user.is_active = True self.user.first_name = u"Иван" self.user.last_name = u"Кузнецов" + # for premailer in test_reset_password + site = Site.objects.all()[0] + site.domain = 'http://localhost' + site.save() + def test_login_form(self): client = self.client response = client.get('/accounts/login/') @@ -159,6 +170,32 @@ def test_register_user__wrong_passwords(self): self.assertEqual(response.status_code, 200) self.assertContains(response, u"Два поля с паролями не совпадают.") + def test_reset_password(self): + client = self.client + new_password = "qwer" + + # check reset page loads fine + response = client.get('/accounts/password/reset/') + self.assertEqual(response.status_code, 200) + + # start reseting password, enter email and itiate email with reset link + form_data = {"email": u"test_user0@example.com"} + response = client.post('/accounts/password/reset/', form_data, follow=True) + self.assertEqual(response.status_code, 200) + + # read the email and extract reset link + change_password_url_match = self.RESET_LINK_RE.search(mail.outbox[0].body) # Find link in email + self.assert_(change_password_url_match) + change_password_url = change_password_url_match.group(1) + + # finnaly set new password + form_data = {"new_password1": u"qwer", "new_password2": u"qwer"} + response = client.post(change_password_url, form_data, follow=True) + self.assertEqual(response.status_code, 200) # password changed! + + # check new password finally set + self.assertTrue(client.login(username="test_user0", password=new_password)) # check its really changed + class UserProfileAccess(TestCase): def setUp(self): diff --git a/dependencies/django-registration/registration/auth_urls.py b/dependencies/django-registration/registration/auth_urls.py index 4fddea10a..d48d06066 100644 --- a/dependencies/django-registration/registration/auth_urls.py +++ b/dependencies/django-registration/registration/auth_urls.py @@ -50,8 +50,8 @@ name='django.contrib.auth.views.password_reset_confirm'), url(r'^password/reset/complete/$', auth_views.password_reset_complete, - name='django.contrib.auth.views.password_reset_complete'), + name='password_reset_complete'), url(r'^password/reset/done/$', auth_views.password_reset_done, - name='django.contrib.auth.views.password_reset_done'), + name='password_reset_done'), ] From 653e952108426efda8351cf3ed567a9666c512e2 Mon Sep 17 00:00:00 2001 From: Nikolay Zhuravlev Date: Sun, 7 Mar 2021 23:47:46 +0300 Subject: [PATCH 14/16] Add language switch --- anytask/index/tests.py | 26 ++++++++++++++++++ anytask/middleware/lang_middleware.py | 39 +++++++++++++++++++++++++++ anytask/settings_common.py | 3 ++- anytask/templates/base.html | 27 +++++++++++++++++++ anytask/urls.py | 4 +++ 5 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 anytask/middleware/lang_middleware.py diff --git a/anytask/index/tests.py b/anytask/index/tests.py index bc8aeb1f0..f961538bc 100644 --- a/anytask/index/tests.py +++ b/anytask/index/tests.py @@ -34,3 +34,29 @@ def test_schools_presence(self): response.context['schools'], [''] ) + + def test_switch_lang(self): + for lang in ('en', 'ru'): + response = self.client.post(reverse('set_lang'), {'lang': lang}) + self.assertEqual(response.status_code, 200) + + response = self.client.get(reverse('get_lang')) + self.assertEqual(response.content, lang) + + def test_switch_wrong(self): + response = self.client.get(reverse('get_lang')) + current_lang = response.content + + # bad language + response = self.client.post(reverse('set_lang'), {'lang': 'no_such_lang'}) + self.assertEqual(response.status_code, 404) + + response = self.client.get(reverse('get_lang')) + self.assertEqual(response.content, current_lang) # language not changed + + # bad request + response = self.client.post(reverse('set_lang'), {'lang': ''}) + self.assertEqual(response.status_code, 400) + + response = self.client.get(reverse('get_lang')) + self.assertEqual(response.content, current_lang) # language not changed diff --git a/anytask/middleware/lang_middleware.py b/anytask/middleware/lang_middleware.py new file mode 100644 index 000000000..d70849801 --- /dev/null +++ b/anytask/middleware/lang_middleware.py @@ -0,0 +1,39 @@ +from django.http import HttpResponseBadRequest, Http404, HttpResponse +from django.utils import translation +from django.views.decorators.http import require_POST + +COOKIE_NAME = "anytask_lang" + +# Recipe from https://stackoverflow.com/questions/36859854/use-cookie-only-for-user-language-instead-of-opening-session + + +class LanguageCookieMiddleware(object): + def process_request(self, request): + lang = request.COOKIES.get(COOKIE_NAME) + if not lang: + return + + if not translation.check_for_language(lang): + return + + translation.activate(lang) + request.LANGUAGE_CODE = translation.get_language() + + +@require_POST +def set_lang_view(request): + lang = request.POST.get('lang') + if not lang: + return HttpResponseBadRequest() + + if not translation.check_for_language(lang): + raise Http404 + + response = HttpResponse('ok') + response.set_cookie(COOKIE_NAME, lang) + return response + + +def get_lang_view(request): + response = HttpResponse(translation.get_language()) + return response diff --git a/anytask/settings_common.py b/anytask/settings_common.py index 84485ac9c..1502476d6 100644 --- a/anytask/settings_common.py +++ b/anytask/settings_common.py @@ -121,7 +121,8 @@ # 'django.middleware.transaction.TransactionMiddleware', 'reversion.middleware.RevisionMiddleware', 'django.middleware.locale.LocaleMiddleware', - 'anytask.middleware.timezone_middleware.TimezoneMiddleware' + 'anytask.middleware.timezone_middleware.TimezoneMiddleware', + 'anytask.middleware.lang_middleware.LanguageCookieMiddleware', ) ROOT_URLCONF = 'anytask.urls' diff --git a/anytask/templates/base.html b/anytask/templates/base.html index 610ef85fe..293f09cb3 100644 --- a/anytask/templates/base.html +++ b/anytask/templates/base.html @@ -25,6 +25,14 @@ + +