Update problem admin
This commit is contained in:
parent
0bc355132e
commit
b0cbd4aecc
4 changed files with 98 additions and 67 deletions
|
@ -5,7 +5,7 @@ from django.contrib import admin
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import Q, Avg, Count
|
from django.db.models import Q, Avg, Count
|
||||||
from django.db.models.aggregates import StdDev
|
from django.db.models.aggregates import StdDev
|
||||||
from django.forms import ModelForm
|
from django.forms import ModelForm, TextInput
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
from django.utils.translation import gettext, gettext_lazy as _, ungettext
|
from django.utils.translation import gettext, gettext_lazy as _, ungettext
|
||||||
|
@ -70,6 +70,7 @@ class ProblemForm(ModelForm):
|
||||||
),
|
),
|
||||||
"types": AdminSelect2MultipleWidget,
|
"types": AdminSelect2MultipleWidget,
|
||||||
"group": AdminSelect2Widget,
|
"group": AdminSelect2Widget,
|
||||||
|
"memory_limit": TextInput(attrs={'size':'20'}),
|
||||||
}
|
}
|
||||||
if HeavyPreviewAdminPageDownWidget is not None:
|
if HeavyPreviewAdminPageDownWidget is not None:
|
||||||
widgets["description"] = HeavyPreviewAdminPageDownWidget(
|
widgets["description"] = HeavyPreviewAdminPageDownWidget(
|
||||||
|
|
19
judge/migrations/0128_auto_20220620_2210.py
Normal file
19
judge/migrations/0128_auto_20220620_2210.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Generated by Django 2.2.25 on 2022-06-20 15:10
|
||||||
|
|
||||||
|
import django.core.validators
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('judge', '0127_auto_20220616_1442'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='problem',
|
||||||
|
name='memory_limit',
|
||||||
|
field=models.PositiveIntegerField(help_text='The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes).', validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(1048576)], verbose_name='memory limit'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -215,7 +215,7 @@ class Problem(models.Model):
|
||||||
verbose_name=_("memory limit"),
|
verbose_name=_("memory limit"),
|
||||||
help_text=_(
|
help_text=_(
|
||||||
"The memory limit for this problem, in kilobytes "
|
"The memory limit for this problem, in kilobytes "
|
||||||
"(e.g. 64mb = 65536 kilobytes)."
|
"(e.g. 256mb = 262144 kilobytes)."
|
||||||
),
|
),
|
||||||
validators=[
|
validators=[
|
||||||
MinValueValidator(settings.DMOJ_PROBLEM_MIN_MEMORY_LIMIT),
|
MinValueValidator(settings.DMOJ_PROBLEM_MIN_MEMORY_LIMIT),
|
||||||
|
@ -425,7 +425,7 @@ class Problem(models.Model):
|
||||||
)
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return "%s (%s)" % (self.name, self.code)
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return reverse("problem_detail", args=(self.code,))
|
return reverse("problem_detail", args=(self.code,))
|
||||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: lqdoj2\n"
|
"Project-Id-Version: lqdoj2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-06-18 14:29+0700\n"
|
"POT-Creation-Date: 2022-06-20 22:11+0700\n"
|
||||||
"PO-Revision-Date: 2021-07-20 03:44\n"
|
"PO-Revision-Date: 2021-07-20 03:44\n"
|
||||||
"Last-Translator: Icyene\n"
|
"Last-Translator: Icyene\n"
|
||||||
"Language-Team: Vietnamese\n"
|
"Language-Team: Vietnamese\n"
|
||||||
|
@ -520,7 +520,7 @@ msgstr "Đăng ký để nhận thông báo về các kỳ thi"
|
||||||
msgid "Enable experimental features"
|
msgid "Enable experimental features"
|
||||||
msgstr "Sử dụng các tính năng thử nghiệm"
|
msgstr "Sử dụng các tính năng thử nghiệm"
|
||||||
|
|
||||||
#: judge/forms.py:86 judge/views/organization.py:454 judge/views/register.py:68
|
#: judge/forms.py:86 judge/views/organization.py:458 judge/views/register.py:68
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "You may not be part of more than {count} public groups."
|
msgid "You may not be part of more than {count} public groups."
|
||||||
msgstr "Bạn không thể tham gia nhiều hơn {count} nhóm công khai."
|
msgstr "Bạn không thể tham gia nhiều hơn {count} nhóm công khai."
|
||||||
|
@ -1394,7 +1394,9 @@ msgstr ""
|
||||||
|
|
||||||
#: judge/models/problem.py:170
|
#: judge/models/problem.py:170
|
||||||
msgid "These users will be able to edit the problem, and be listed as authors."
|
msgid "These users will be able to edit the problem, and be listed as authors."
|
||||||
msgstr "Những người dùng này sẽ có thể chỉnh sửa bài tập, và nằm trong danh sách các tác giả"
|
msgstr ""
|
||||||
|
"Những người dùng này sẽ có thể chỉnh sửa bài tập, và nằm trong danh sách các "
|
||||||
|
"tác giả"
|
||||||
|
|
||||||
#: judge/models/problem.py:175
|
#: judge/models/problem.py:175
|
||||||
msgid "curators"
|
msgid "curators"
|
||||||
|
@ -1403,7 +1405,9 @@ msgstr ""
|
||||||
#: judge/models/problem.py:179
|
#: judge/models/problem.py:179
|
||||||
msgid ""
|
msgid ""
|
||||||
"These users will be able to edit the problem, but not be listed as authors."
|
"These users will be able to edit the problem, but not be listed as authors."
|
||||||
msgstr "Những người dùng này sẽ có thể chỉnh sửa bài tập, nhưng không nằm trong danh sách các tác giả"
|
msgstr ""
|
||||||
|
"Những người dùng này sẽ có thể chỉnh sửa bài tập, nhưng không nằm trong danh "
|
||||||
|
"sách các tác giả"
|
||||||
|
|
||||||
#: judge/models/problem.py:185
|
#: judge/models/problem.py:185
|
||||||
msgid "testers"
|
msgid "testers"
|
||||||
|
@ -1411,7 +1415,9 @@ msgstr ""
|
||||||
|
|
||||||
#: judge/models/problem.py:189
|
#: judge/models/problem.py:189
|
||||||
msgid "These users will be able to view the private problem, but not edit it."
|
msgid "These users will be able to view the private problem, but not edit it."
|
||||||
msgstr "Những người dùng này sẽ thấy được bài tập này (dù riêng tư), nhưng không chỉnh sửa được"
|
msgstr ""
|
||||||
|
"Những người dùng này sẽ thấy được bài tập này (dù riêng tư), nhưng không "
|
||||||
|
"chỉnh sửa được"
|
||||||
|
|
||||||
#: judge/models/problem.py:195 judge/models/volunteer.py:29
|
#: judge/models/problem.py:195 judge/models/volunteer.py:29
|
||||||
msgid "The type of problem, as shown on the problem's page."
|
msgid "The type of problem, as shown on the problem's page."
|
||||||
|
@ -1425,23 +1431,30 @@ msgstr "Nhóm bài, hiện ở mục Nhóm bài trong danh sách bài tập"
|
||||||
msgid ""
|
msgid ""
|
||||||
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
|
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
|
||||||
"are supported."
|
"are supported."
|
||||||
msgstr "Giới hạn thời gian cho bài tập này, theo đơn vị giây. Có thể nhập số thực (ví dụ 1.5)"
|
msgstr ""
|
||||||
|
"Giới hạn thời gian cho bài tập này, theo đơn vị giây. Có thể nhập số thực "
|
||||||
|
"(ví dụ 1.5)"
|
||||||
|
|
||||||
#: judge/models/problem.py:215 judge/models/problem.py:629
|
#: judge/models/problem.py:215 judge/models/problem.py:629
|
||||||
msgid "memory limit"
|
msgid "memory limit"
|
||||||
msgstr "Giới hạn bộ nhớ"
|
msgstr "Giới hạn bộ nhớ"
|
||||||
|
|
||||||
#: judge/models/problem.py:217
|
#: judge/models/problem.py:217
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
|
"The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 "
|
||||||
"kilobytes)."
|
"kilobytes)."
|
||||||
msgstr "Giới hạn bộ nhớ cho bài này, theo đơn vị kilobytes (ví dụ 64mb = 65536 kilobytes)"
|
msgstr ""
|
||||||
|
"Giới hạn bộ nhớ cho bài này, theo đơn vị kilobytes (ví dụ 256mb = 262144 "
|
||||||
|
"kilobytes)"
|
||||||
|
|
||||||
#: judge/models/problem.py:229
|
#: judge/models/problem.py:229
|
||||||
msgid ""
|
msgid ""
|
||||||
"Points awarded for problem completion. Points are displayed with a 'p' "
|
"Points awarded for problem completion. Points are displayed with a 'p' "
|
||||||
"suffix if partial."
|
"suffix if partial."
|
||||||
msgstr "Điểm thưởng khi hoàn thành bài tập. Điểm có thêm chữ 'p' ở sau cùng nếu như chấp nhận cho điểm thành phần (có điểm ngay khi không đúng toàn bộ test)"
|
msgstr ""
|
||||||
|
"Điểm thưởng khi hoàn thành bài tập. Điểm có thêm chữ 'p' ở sau cùng nếu như "
|
||||||
|
"chấp nhận cho điểm thành phần (có điểm ngay khi không đúng toàn bộ test)"
|
||||||
|
|
||||||
#: judge/models/problem.py:235
|
#: judge/models/problem.py:235
|
||||||
msgid "allows partial points"
|
msgid "allows partial points"
|
||||||
|
@ -2501,8 +2514,8 @@ msgstr "Bạn phải giải ít nhất 1 bài trước khi được vote."
|
||||||
msgid "You already voted."
|
msgid "You already voted."
|
||||||
msgstr "Bạn đã vote."
|
msgstr "Bạn đã vote."
|
||||||
|
|
||||||
#: judge/views/comment.py:153 judge/views/organization.py:754
|
#: judge/views/comment.py:153 judge/views/organization.py:758
|
||||||
#: judge/views/organization.py:846
|
#: judge/views/organization.py:850
|
||||||
msgid "Edited from site"
|
msgid "Edited from site"
|
||||||
msgstr "Chỉnh sửa từ web"
|
msgstr "Chỉnh sửa từ web"
|
||||||
|
|
||||||
|
@ -2716,53 +2729,53 @@ msgstr "Bạn không được phép chỉnh sửa tổ chức này."
|
||||||
msgid "Groups"
|
msgid "Groups"
|
||||||
msgstr "Nhóm"
|
msgstr "Nhóm"
|
||||||
|
|
||||||
#: judge/views/organization.py:307
|
#: judge/views/organization.py:311
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s Members"
|
msgid "%s Members"
|
||||||
msgstr "%s Thành viên"
|
msgstr "%s Thành viên"
|
||||||
|
|
||||||
#: judge/views/organization.py:410
|
#: judge/views/organization.py:414
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "All submissions in <a href=\"{1}\">{0}</a>"
|
msgid "All submissions in <a href=\"{1}\">{0}</a>"
|
||||||
msgstr "Bài nộp trong <a href=\"{1}\">{0}</a>"
|
msgstr "Bài nộp trong <a href=\"{1}\">{0}</a>"
|
||||||
|
|
||||||
#: judge/views/organization.py:440 judge/views/organization.py:446
|
#: judge/views/organization.py:444 judge/views/organization.py:450
|
||||||
#: judge/views/organization.py:453
|
#: judge/views/organization.py:457
|
||||||
msgid "Joining group"
|
msgid "Joining group"
|
||||||
msgstr "Tham gia nhóm"
|
msgstr "Tham gia nhóm"
|
||||||
|
|
||||||
#: judge/views/organization.py:441
|
#: judge/views/organization.py:445
|
||||||
msgid "You are already in the group."
|
msgid "You are already in the group."
|
||||||
msgstr "Bạn đã ở trong nhóm."
|
msgstr "Bạn đã ở trong nhóm."
|
||||||
|
|
||||||
#: judge/views/organization.py:446
|
#: judge/views/organization.py:450
|
||||||
msgid "This group is not open."
|
msgid "This group is not open."
|
||||||
msgstr "Nhóm này là nhóm kín."
|
msgstr "Nhóm này là nhóm kín."
|
||||||
|
|
||||||
#: judge/views/organization.py:469
|
#: judge/views/organization.py:473
|
||||||
msgid "Leaving group"
|
msgid "Leaving group"
|
||||||
msgstr "Rời nhóm"
|
msgstr "Rời nhóm"
|
||||||
|
|
||||||
#: judge/views/organization.py:470
|
#: judge/views/organization.py:474
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You are not in \"%s\"."
|
msgid "You are not in \"%s\"."
|
||||||
msgstr "Bạn không ở trong \"%s\"."
|
msgstr "Bạn không ở trong \"%s\"."
|
||||||
|
|
||||||
#: judge/views/organization.py:495
|
#: judge/views/organization.py:499
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Request to join %s"
|
msgid "Request to join %s"
|
||||||
msgstr "Đăng ký tham gia %s"
|
msgstr "Đăng ký tham gia %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:526
|
#: judge/views/organization.py:530
|
||||||
msgid "Join request detail"
|
msgid "Join request detail"
|
||||||
msgstr "Chi tiết đơn đăng ký"
|
msgstr "Chi tiết đơn đăng ký"
|
||||||
|
|
||||||
#: judge/views/organization.py:574
|
#: judge/views/organization.py:578
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Managing join requests for %s"
|
msgid "Managing join requests for %s"
|
||||||
msgstr "Quản lý đơn đăng ký cho %s"
|
msgstr "Quản lý đơn đăng ký cho %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:614
|
#: judge/views/organization.py:618
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your organization can only receive %d more members. You cannot approve %d "
|
"Your organization can only receive %d more members. You cannot approve %d "
|
||||||
|
@ -2771,71 +2784,71 @@ msgstr ""
|
||||||
"Tổ chức chỉ có thể chứa %d thành viên. Bạn không thể chấp thuận nhiều hơn %d "
|
"Tổ chức chỉ có thể chứa %d thành viên. Bạn không thể chấp thuận nhiều hơn %d "
|
||||||
"người."
|
"người."
|
||||||
|
|
||||||
#: judge/views/organization.py:632
|
#: judge/views/organization.py:636
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Approved %d user."
|
msgid "Approved %d user."
|
||||||
msgid_plural "Approved %d users."
|
msgid_plural "Approved %d users."
|
||||||
msgstr[0] "Đã chấp thuận %d người."
|
msgstr[0] "Đã chấp thuận %d người."
|
||||||
|
|
||||||
#: judge/views/organization.py:635
|
#: judge/views/organization.py:639
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rejected %d user."
|
msgid "Rejected %d user."
|
||||||
msgid_plural "Rejected %d users."
|
msgid_plural "Rejected %d users."
|
||||||
msgstr[0] "Đã từ chối %d người."
|
msgstr[0] "Đã từ chối %d người."
|
||||||
|
|
||||||
#: judge/views/organization.py:675
|
#: judge/views/organization.py:679
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Add member for %s"
|
msgid "Add member for %s"
|
||||||
msgstr "Thêm thành viên cho %s"
|
msgstr "Thêm thành viên cho %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:687
|
#: judge/views/organization.py:691
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Edited from site"
|
#| msgid "Edited from site"
|
||||||
msgid "Added members from site"
|
msgid "Added members from site"
|
||||||
msgstr "Chỉnh sửa từ web"
|
msgstr "Chỉnh sửa từ web"
|
||||||
|
|
||||||
#: judge/views/organization.py:707 judge/views/organization.py:715
|
#: judge/views/organization.py:711 judge/views/organization.py:719
|
||||||
msgid "Can't kick user"
|
msgid "Can't kick user"
|
||||||
msgstr "Không thể đuổi"
|
msgstr "Không thể đuổi"
|
||||||
|
|
||||||
#: judge/views/organization.py:708
|
#: judge/views/organization.py:712
|
||||||
msgid "The user you are trying to kick does not exist!"
|
msgid "The user you are trying to kick does not exist!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/views/organization.py:716
|
#: judge/views/organization.py:720
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The user you are trying to kick is not in organization: %s."
|
msgid "The user you are trying to kick is not in organization: %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/views/organization.py:737
|
#: judge/views/organization.py:741
|
||||||
#, fuzzy, python-format
|
#, fuzzy, python-format
|
||||||
#| msgid "Editing %s"
|
#| msgid "Editing %s"
|
||||||
msgid "Edit %s"
|
msgid "Edit %s"
|
||||||
msgstr "Đang chỉnh sửa %s"
|
msgstr "Đang chỉnh sửa %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:776
|
#: judge/views/organization.py:780
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Add blog for %s"
|
msgid "Add blog for %s"
|
||||||
msgstr "Thêm bài đăng cho %s"
|
msgstr "Thêm bài đăng cho %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:787
|
#: judge/views/organization.py:791
|
||||||
msgid "Added from site"
|
msgid "Added from site"
|
||||||
msgstr "Thêm từ web"
|
msgstr "Thêm từ web"
|
||||||
|
|
||||||
#: judge/views/organization.py:821
|
#: judge/views/organization.py:825
|
||||||
msgid "Permission denied"
|
msgid "Permission denied"
|
||||||
msgstr "Truy cập bị từ chối"
|
msgstr "Truy cập bị từ chối"
|
||||||
|
|
||||||
#: judge/views/organization.py:822
|
#: judge/views/organization.py:826
|
||||||
msgid "Not allowed to edit this blog"
|
msgid "Not allowed to edit this blog"
|
||||||
msgstr "Bạn không được phép chỉnh sửa bài đăng này."
|
msgstr "Bạn không được phép chỉnh sửa bài đăng này."
|
||||||
|
|
||||||
#: judge/views/organization.py:841
|
#: judge/views/organization.py:845
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Edit blog %s"
|
msgid "Edit blog %s"
|
||||||
msgstr "Chỉnh sửa %s"
|
msgstr "Chỉnh sửa %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:871
|
#: judge/views/organization.py:875
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Pending blogs in %s"
|
msgid "Pending blogs in %s"
|
||||||
msgstr "Bài đang đợi duyệt trong %s"
|
msgstr "Bài đang đợi duyệt trong %s"
|
||||||
|
@ -3035,49 +3048,49 @@ msgstr "Kết quả chấm"
|
||||||
msgid "Version matrix"
|
msgid "Version matrix"
|
||||||
msgstr "Ma trận phiên bản"
|
msgstr "Ma trận phiên bản"
|
||||||
|
|
||||||
#: judge/views/submission.py:116 judge/views/submission.py:124
|
#: judge/views/submission.py:118 judge/views/submission.py:126
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Submission of %(problem)s by %(user)s"
|
msgid "Submission of %(problem)s by %(user)s"
|
||||||
msgstr "Bài nộp của %(user)s cho bài %(problem)s"
|
msgstr "Bài nộp của %(user)s cho bài %(problem)s"
|
||||||
|
|
||||||
#: judge/views/submission.py:289 judge/views/submission.py:290
|
#: judge/views/submission.py:291 judge/views/submission.py:292
|
||||||
#: templates/problem/problem.html:194
|
#: templates/problem/problem.html:194
|
||||||
msgid "All submissions"
|
msgid "All submissions"
|
||||||
msgstr "Tất cả bài nộp"
|
msgstr "Tất cả bài nộp"
|
||||||
|
|
||||||
#: judge/views/submission.py:482
|
#: judge/views/submission.py:484
|
||||||
msgid "All my submissions"
|
msgid "All my submissions"
|
||||||
msgstr "Tất cả bài nộp của tôi"
|
msgstr "Tất cả bài nộp của tôi"
|
||||||
|
|
||||||
#: judge/views/submission.py:483
|
#: judge/views/submission.py:485
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "All submissions by %s"
|
msgid "All submissions by %s"
|
||||||
msgstr "Tất cả bài nộp của %s"
|
msgstr "Tất cả bài nộp của %s"
|
||||||
|
|
||||||
#: judge/views/submission.py:528
|
#: judge/views/submission.py:530
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "All submissions for %s"
|
msgid "All submissions for %s"
|
||||||
msgstr "Tất cả bài nộp cho %s"
|
msgstr "Tất cả bài nộp cho %s"
|
||||||
|
|
||||||
#: judge/views/submission.py:556
|
#: judge/views/submission.py:558
|
||||||
msgid "Must pass a problem"
|
msgid "Must pass a problem"
|
||||||
msgstr "Phải làm được một bài"
|
msgstr "Phải làm được một bài"
|
||||||
|
|
||||||
#: judge/views/submission.py:614
|
#: judge/views/submission.py:616
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "My submissions for %(problem)s"
|
msgid "My submissions for %(problem)s"
|
||||||
msgstr "Bài nộp của tôi cho %(problem)s"
|
msgstr "Bài nộp của tôi cho %(problem)s"
|
||||||
|
|
||||||
#: judge/views/submission.py:615
|
#: judge/views/submission.py:617
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(user)s's submissions for %(problem)s"
|
msgid "%(user)s's submissions for %(problem)s"
|
||||||
msgstr "Các bài nộp của %(user)s cho %(problem)s"
|
msgstr "Các bài nộp của %(user)s cho %(problem)s"
|
||||||
|
|
||||||
#: judge/views/submission.py:745
|
#: judge/views/submission.py:747
|
||||||
msgid "Must pass a contest"
|
msgid "Must pass a contest"
|
||||||
msgstr "Phải qua một kỳ thi"
|
msgstr "Phải qua một kỳ thi"
|
||||||
|
|
||||||
#: judge/views/submission.py:775
|
#: judge/views/submission.py:777
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a href=\"{1}\">{0}</a>'s submissions for <a href=\"{3}\">{2}</a> in <a href="
|
"<a href=\"{1}\">{0}</a>'s submissions for <a href=\"{3}\">{2}</a> in <a href="
|
||||||
|
@ -3086,7 +3099,7 @@ msgstr ""
|
||||||
"Các bài nộp của <a href=\"{1}\">{0}</a> cho <a href=\"{3}\">{2}</a> trong <a "
|
"Các bài nộp của <a href=\"{1}\">{0}</a> cho <a href=\"{3}\">{2}</a> trong <a "
|
||||||
"href=\"{5}\">{4}</a>"
|
"href=\"{5}\">{4}</a>"
|
||||||
|
|
||||||
#: judge/views/submission.py:787
|
#: judge/views/submission.py:789
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a href=\"{1}\">{0}</a>'s submissions for problem {2} in <a href=\"{4}\">{3}"
|
"<a href=\"{1}\">{0}</a>'s submissions for problem {2} in <a href=\"{4}\">{3}"
|
||||||
|
@ -3095,7 +3108,7 @@ msgstr ""
|
||||||
"Các bài nộp của <a href=\"{1}\">{0}</a> cho bài {2} trong <a href=\"{4}\">{3}"
|
"Các bài nộp của <a href=\"{1}\">{0}</a> cho bài {2} trong <a href=\"{4}\">{3}"
|
||||||
"</a>"
|
"</a>"
|
||||||
|
|
||||||
#: judge/views/submission.py:833
|
#: judge/views/submission.py:835
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "You do not have the permission to rejudge submissions."
|
#| msgid "You do not have the permission to rejudge submissions."
|
||||||
msgid "You don't have permission to access."
|
msgid "You don't have permission to access."
|
||||||
|
@ -3412,7 +3425,7 @@ msgstr "Xin chào, <b>%(username)s</b>."
|
||||||
|
|
||||||
#: templates/base.html:259 templates/chat/chat.html:20
|
#: templates/base.html:259 templates/chat/chat.html:20
|
||||||
#: templates/comments/list.html:89 templates/contest/contest-list-tabs.html:24
|
#: templates/comments/list.html:89 templates/contest/contest-list-tabs.html:24
|
||||||
#: templates/contest/list.html:130 templates/contest/ranking-table.html:53
|
#: templates/contest/list.html:130 templates/contest/ranking-table.html:49
|
||||||
#: templates/internal/base.html:59
|
#: templates/internal/base.html:59
|
||||||
#: templates/organization/org-left-sidebar.html:10
|
#: templates/organization/org-left-sidebar.html:10
|
||||||
#: templates/problem/left-sidebar.html:5 templates/problem/list-base.html:249
|
#: templates/problem/left-sidebar.html:5 templates/problem/list-base.html:249
|
||||||
|
@ -3865,7 +3878,7 @@ msgstr "Số lượng"
|
||||||
msgid "Editorial"
|
msgid "Editorial"
|
||||||
msgstr "Hướng dẫn"
|
msgstr "Hướng dẫn"
|
||||||
|
|
||||||
#: templates/contest/list.html:90 templates/contest/media-js.html:147
|
#: templates/contest/list.html:90 templates/contest/media-js.html:150
|
||||||
msgid "Are you sure you want to join?"
|
msgid "Are you sure you want to join?"
|
||||||
msgstr "Bạn có chắc tham gia?"
|
msgstr "Bạn có chắc tham gia?"
|
||||||
|
|
||||||
|
@ -3954,11 +3967,11 @@ msgstr "Không có kỳ thi nào được lên lịch hiện tại."
|
||||||
msgid "Past Contests"
|
msgid "Past Contests"
|
||||||
msgstr "Kỳ thi trong quá khứ"
|
msgstr "Kỳ thi trong quá khứ"
|
||||||
|
|
||||||
#: templates/contest/media-js.html:142
|
#: templates/contest/media-js.html:145
|
||||||
msgid "Are you sure you want to leave?"
|
msgid "Are you sure you want to leave?"
|
||||||
msgstr "Bạn có chắc muốn rời?"
|
msgstr "Bạn có chắc muốn rời?"
|
||||||
|
|
||||||
#: templates/contest/media-js.html:143
|
#: templates/contest/media-js.html:146
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot come back to a virtual participation. You will have to start a "
|
"You cannot come back to a virtual participation. You will have to start a "
|
||||||
"new one."
|
"new one."
|
||||||
|
@ -3966,7 +3979,7 @@ msgstr ""
|
||||||
"Bạn không thể quay lại lần tham gia ảo này. Bạn sẽ phải tham gia ảo lại từ "
|
"Bạn không thể quay lại lần tham gia ảo này. Bạn sẽ phải tham gia ảo lại từ "
|
||||||
"đầu."
|
"đầu."
|
||||||
|
|
||||||
#: templates/contest/media-js.html:148
|
#: templates/contest/media-js.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"Joining a contest starts your timer, after which it becomes unstoppable."
|
"Joining a contest starts your timer, after which it becomes unstoppable."
|
||||||
msgstr "Tham gia kỳ thi sẽ khởi động đồng hồ đếm ngược, và không thể dừng lại."
|
msgstr "Tham gia kỳ thi sẽ khởi động đồng hồ đếm ngược, và không thể dừng lại."
|
||||||
|
@ -4003,19 +4016,11 @@ msgstr "Thêm vào đó, chỉ những tổ chức này mới được tham gia
|
||||||
msgid "Only the following organizations may access this contest:"
|
msgid "Only the following organizations may access this contest:"
|
||||||
msgstr "Chỉ những tổ chức sau được tham gia kỳ thi:"
|
msgstr "Chỉ những tổ chức sau được tham gia kỳ thi:"
|
||||||
|
|
||||||
#: templates/contest/ranking-table.html:9
|
#: templates/contest/ranking-table.html:40
|
||||||
msgid "Organization"
|
|
||||||
msgstr "Tổ chức"
|
|
||||||
|
|
||||||
#: templates/contest/ranking-table.html:10
|
|
||||||
msgid "Full Name"
|
|
||||||
msgstr "Họ tên"
|
|
||||||
|
|
||||||
#: templates/contest/ranking-table.html:44
|
|
||||||
msgid "Un-Disqualify"
|
msgid "Un-Disqualify"
|
||||||
msgstr "Khôi phục kết quả"
|
msgstr "Khôi phục kết quả"
|
||||||
|
|
||||||
#: templates/contest/ranking-table.html:47
|
#: templates/contest/ranking-table.html:43
|
||||||
msgid "Disqualify"
|
msgid "Disqualify"
|
||||||
msgstr "Hủy kết quả"
|
msgstr "Hủy kết quả"
|
||||||
|
|
||||||
|
@ -5637,6 +5642,12 @@ msgstr "Thông tin"
|
||||||
msgid "Check all"
|
msgid "Check all"
|
||||||
msgstr "Chọn tất cả"
|
msgstr "Chọn tất cả"
|
||||||
|
|
||||||
|
#~ msgid "Organization"
|
||||||
|
#~ msgstr "Tổ chức"
|
||||||
|
|
||||||
|
#~ msgid "Full Name"
|
||||||
|
#~ msgstr "Họ tên"
|
||||||
|
|
||||||
#~ msgid "Show my groups only"
|
#~ msgid "Show my groups only"
|
||||||
#~ msgstr "Chỉ hiển thị nhóm đang tham gia"
|
#~ msgstr "Chỉ hiển thị nhóm đang tham gia"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue