From 4549d57ee1c55bec2e26d8f2ba9f78153ce7173f Mon Sep 17 00:00:00 2001 From: cuom1999 Date: Sun, 5 May 2024 22:47:57 -0500 Subject: [PATCH] Change layout of contest list --- judge/views/contests.py | 20 +- locale/vi/LC_MESSAGES/django.po | 615 +++++++++++++++-------------- resources/base.scss | 2 + resources/contest.scss | 8 +- resources/problem.scss | 5 - templates/contest/list.html | 155 +++----- templates/contest/search-form.html | 29 ++ templates/problem/list-base.html | 12 +- templates/problem/search-form.html | 2 +- 9 files changed, 414 insertions(+), 434 deletions(-) create mode 100644 templates/contest/search-form.html diff --git a/judge/views/contests.py b/judge/views/contests.py index b5e09cd..cf7f260 100644 --- a/judge/views/contests.py +++ b/judge/views/contests.py @@ -158,15 +158,6 @@ class ContestList( return request.session.get(key, False) return request.GET.get(key, None) == "1" - def update_session(self, request): - to_update = ("show_orgs",) - for key in to_update: - if key in request.GET: - val = request.GET.get(key) == "1" - request.session[key] = val - else: - request.session[key] = False - def get(self, request, *args, **kwargs): self.contest_query = None self.org_query = [] @@ -191,9 +182,18 @@ class ContestList( except ValueError: pass - self.update_session(request) return super(ContestList, self).get(request, *args, **kwargs) + def post(self, request, *args, **kwargs): + to_update = ("show_orgs",) + for key in to_update: + if key in request.GET: + val = request.GET.get(key) == "1" + request.session[key] = val + else: + request.session[key] = False + return HttpResponseRedirect(request.get_full_path()) + def _get_queryset(self): queryset = ( super(ContestList, self) diff --git a/locale/vi/LC_MESSAGES/django.po b/locale/vi/LC_MESSAGES/django.po index c81ddae..ef0eaab 100644 --- a/locale/vi/LC_MESSAGES/django.po +++ b/locale/vi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: lqdoj2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-30 09:07+0700\n" +"POT-Creation-Date: 2024-05-04 11:35+0700\n" "PO-Revision-Date: 2021-07-20 03:44\n" "Last-Translator: Icyene\n" "Language-Team: Vietnamese\n" @@ -23,8 +23,8 @@ msgid "last seen" msgstr "xem lần cuối" #: chat_box/models.py:54 chat_box/models.py:79 chat_box/models.py:95 -#: judge/admin/interface.py:150 judge/models/contest.py:673 -#: judge/models/contest.py:879 judge/models/course.py:129 +#: judge/admin/interface.py:150 judge/models/contest.py:690 +#: judge/models/contest.py:896 judge/models/course.py:129 #: judge/models/profile.py:462 judge/models/profile.py:536 msgid "user" msgstr "người dùng" @@ -46,7 +46,7 @@ msgstr "" msgid "Recent" msgstr "Gần đây" -#: chat_box/views.py:448 templates/base.html:192 +#: chat_box/views.py:448 templates/base.html:196 #: templates/comments/content-list.html:72 #: templates/contest/contest-list-tabs.html:4 #: templates/contest/ranking-table.html:52 templates/course/left_sidebar.html:8 @@ -87,7 +87,7 @@ msgstr "Đăng ký không thành công" msgid "Login" msgstr "Đăng nhập" -#: dmoj/urls.py:222 templates/base.html:114 +#: dmoj/urls.py:222 templates/base.html:118 #: templates/course/left_sidebar.html:2 #: templates/organization/org-left-sidebar.html:2 msgid "Home" @@ -138,9 +138,7 @@ msgstr "" msgid "Details" msgstr "Chi tiết" -#: judge/admin/contest.py:187 templates/contest/list.html:266 -#: templates/contest/list.html:306 templates/contest/list.html:350 -#: templates/contest/list.html:387 +#: judge/admin/contest.py:187 templates/contest/list.html:196 msgid "Format" msgstr "Thể thức" @@ -157,47 +155,47 @@ msgstr "Truy cập" msgid "Justice" msgstr "Xử phạt" -#: judge/admin/contest.py:345 +#: judge/admin/contest.py:341 #, python-format msgid "%d contest successfully marked as visible." msgid_plural "%d contests successfully marked as visible." msgstr[0] "%d kỳ thi đã được đánh dấu hiển thị." -#: judge/admin/contest.py:352 +#: judge/admin/contest.py:348 msgid "Mark contests as visible" msgstr "Đánh dấu hiển thị các kỳ thi" -#: judge/admin/contest.py:363 +#: judge/admin/contest.py:359 #, python-format msgid "%d contest successfully marked as hidden." msgid_plural "%d contests successfully marked as hidden." msgstr[0] "%d kỳ thi đã được đánh dấu ẩn." -#: judge/admin/contest.py:370 +#: judge/admin/contest.py:366 msgid "Mark contests as hidden" msgstr "Ẩn các kỳ thi" -#: judge/admin/contest.py:391 judge/admin/submission.py:241 +#: judge/admin/contest.py:387 judge/admin/submission.py:241 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d bài nộp đã được lên lịch thành công để chấm lại." -#: judge/admin/contest.py:499 +#: judge/admin/contest.py:495 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d thí sinh đã được tính điểm lại." -#: judge/admin/contest.py:506 +#: judge/admin/contest.py:502 msgid "Recalculate results" msgstr "Tính toán lại kết quả" -#: judge/admin/contest.py:511 judge/admin/organization.py:99 +#: judge/admin/contest.py:507 judge/admin/organization.py:99 msgid "username" msgstr "tên đăng nhập" -#: judge/admin/contest.py:517 templates/base.html:244 +#: judge/admin/contest.py:513 templates/base.html:248 msgid "virtual" msgstr "ảo" @@ -266,7 +264,7 @@ msgid "Limits" msgstr "Giới hạn" #: judge/admin/problem.py:232 judge/admin/submission.py:351 -#: templates/base.html:158 templates/stats/tab.html:4 +#: templates/base.html:162 templates/stats/tab.html:4 #: templates/submission/list.html:346 msgid "Language" msgstr "Ngôn ngữ" @@ -275,7 +273,7 @@ msgstr "Ngôn ngữ" msgid "History" msgstr "Lịch sử" -#: judge/admin/problem.py:286 templates/problem/list-base.html:95 +#: judge/admin/problem.py:286 templates/problem/list-base.html:93 msgid "Authors" msgstr "Các tác giả" @@ -426,9 +424,9 @@ msgstr[0] "%d bài nộp đã được tính điểm lại." msgid "Rescore the selected submissions" msgstr "Tính điểm lại cái bài nộp" -#: judge/admin/submission.py:332 templates/contest/list.html:251 -#: templates/contest/list.html:295 templates/contest/list.html:339 -#: templates/contest/list.html:381 templates/notification/list.html:12 +#: judge/admin/submission.py:332 templates/contest/list.html:220 +#: templates/contest/list.html:259 templates/contest/list.html:298 +#: templates/contest/list.html:339 templates/notification/list.html:12 #: templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:20 #: templates/problem/list.html:154 @@ -581,7 +579,7 @@ msgstr "Mã bài phải có dạng ^[a-z0-9]+$" msgid "Problem with code already exists." msgstr "Mã bài đã tồn tại." -#: judge/forms.py:491 judge/models/contest.py:96 +#: judge/forms.py:491 judge/models/contest.py:99 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Mã kỳ thi phải có dạng ^[a-z0-9]+$" @@ -635,7 +633,7 @@ msgid "associated page" msgstr "trang tương ứng" #: judge/models/bookmark.py:20 judge/models/comment.py:49 -#: judge/models/pagevote.py:19 judge/models/problem.py:727 +#: judge/models/pagevote.py:19 judge/models/problem.py:740 msgid "votes" msgstr "bình chọn" @@ -701,116 +699,116 @@ msgstr "" msgid "Override comment lock" msgstr "" -#: judge/models/contest.py:43 +#: judge/models/contest.py:46 msgid "Invalid colour." msgstr "" -#: judge/models/contest.py:47 +#: judge/models/contest.py:50 msgid "tag name" msgstr "" -#: judge/models/contest.py:51 +#: judge/models/contest.py:54 msgid "Lowercase letters and hyphens only." msgstr "" -#: judge/models/contest.py:56 +#: judge/models/contest.py:59 msgid "tag colour" msgstr "" -#: judge/models/contest.py:58 +#: judge/models/contest.py:61 msgid "tag description" msgstr "" -#: judge/models/contest.py:79 +#: judge/models/contest.py:82 msgid "contest tag" msgstr "" -#: judge/models/contest.py:80 judge/models/contest.py:256 +#: judge/models/contest.py:83 judge/models/contest.py:259 msgid "contest tags" msgstr "nhãn kỳ thi" -#: judge/models/contest.py:88 +#: judge/models/contest.py:91 msgid "Visible" msgstr "Hiển thị" -#: judge/models/contest.py:89 +#: judge/models/contest.py:92 msgid "Hidden for duration of contest" msgstr "Ẩn trong thời gian kỳ thi" -#: judge/models/contest.py:90 +#: judge/models/contest.py:93 msgid "Hidden for duration of participation" msgstr "Ẩn trong thời gian tham gia" -#: judge/models/contest.py:94 +#: judge/models/contest.py:97 msgid "contest id" msgstr "ID kỳ thi" -#: judge/models/contest.py:99 +#: judge/models/contest.py:102 msgid "contest name" msgstr "tên kỳ thi" -#: judge/models/contest.py:103 judge/models/interface.py:80 -#: judge/models/problem.py:681 +#: judge/models/contest.py:106 judge/models/interface.py:80 +#: judge/models/problem.py:694 msgid "authors" msgstr "tác giả" -#: judge/models/contest.py:104 +#: judge/models/contest.py:107 msgid "These users will be able to edit the contest." msgstr "Những người dùng này có quyền chỉnh sửa kỳ thi." -#: judge/models/contest.py:109 judge/models/problem.py:157 +#: judge/models/contest.py:112 judge/models/problem.py:157 msgid "curators" msgstr "quản lý" -#: judge/models/contest.py:111 +#: judge/models/contest.py:114 msgid "" "These users will be able to edit the contest, but will not be listed as " "authors." msgstr "Những người dùng này là tác giả và có quyền chỉnh sửa kỳ thi." -#: judge/models/contest.py:119 judge/models/problem.py:167 +#: judge/models/contest.py:122 judge/models/problem.py:167 msgid "testers" msgstr "" -#: judge/models/contest.py:121 +#: judge/models/contest.py:124 msgid "These users will be able to view the contest, but not edit it." msgstr "" "Những người dùng này có thể thấy kỳ thi nhưng không có quyền chỉnh sửa." -#: judge/models/contest.py:126 judge/models/runtime.py:217 +#: judge/models/contest.py:129 judge/models/runtime.py:217 msgid "description" msgstr "mô tả" -#: judge/models/contest.py:128 judge/models/problem.py:597 +#: judge/models/contest.py:131 judge/models/problem.py:610 #: judge/models/runtime.py:222 msgid "problems" msgstr "bài tập" -#: judge/models/contest.py:130 judge/models/contest.py:678 +#: judge/models/contest.py:133 judge/models/contest.py:695 msgid "start time" msgstr "thời gian bắt đầu" -#: judge/models/contest.py:131 +#: judge/models/contest.py:134 msgid "end time" msgstr "thời gian kết thúc" -#: judge/models/contest.py:133 judge/models/problem.py:186 -#: judge/models/problem.py:632 +#: judge/models/contest.py:136 judge/models/problem.py:186 +#: judge/models/problem.py:645 msgid "time limit" msgstr "giới hạn thời gian" -#: judge/models/contest.py:137 +#: judge/models/contest.py:140 msgid "" "Format hh:mm:ss. For example, if you want a 2-hour contest, enter 02:00:00" msgstr "" "Định dạng hh:mm:ss (giờ:phút:giây). Ví dụ, nếu muốn tạo kỳ thi dài 2h, hãy " "nhập 02:00:00" -#: judge/models/contest.py:141 +#: judge/models/contest.py:144 msgid "freeze after" msgstr "đóng băng sau" -#: judge/models/contest.py:145 +#: judge/models/contest.py:148 msgid "" "Format hh:mm:ss. For example, if you want to freeze contest after 2 hours, " "enter 02:00:00" @@ -818,12 +816,12 @@ msgstr "" "Định dạng hh:mm:ss (giờ:phút:giây). Ví dụ, nếu muốn đóng băng kỳ thi sau 2h, " "hãy nhập 02:00:00" -#: judge/models/contest.py:149 judge/models/course.py:27 +#: judge/models/contest.py:152 judge/models/course.py:27 #: judge/models/problem.py:225 msgid "publicly visible" msgstr "công khai" -#: judge/models/contest.py:152 +#: judge/models/contest.py:155 msgid "" "Should be set even for organization-private contests, where it determines " "whether the contest is visible to members of the specified organizations." @@ -831,92 +829,92 @@ msgstr "" "Đánh dấu ngay cả với các kỳ thi riêng tư của nhóm, quyết định việc kỳ thi có " "được hiển thị với các thành viên hay không." -#: judge/models/contest.py:158 +#: judge/models/contest.py:161 msgid "contest rated" msgstr "kỳ thi được xếp hạng" -#: judge/models/contest.py:159 +#: judge/models/contest.py:162 msgid "Whether this contest can be rated." msgstr "Quyết định kỳ thi có được xếp hạng không." -#: judge/models/contest.py:163 +#: judge/models/contest.py:166 msgid "scoreboard visibility" msgstr "khả năng hiển thị của bảng điểm" -#: judge/models/contest.py:166 +#: judge/models/contest.py:169 msgid "Scoreboard visibility through the duration of the contest" msgstr "Khả năng hiển thị của bảng điểm trong thời gian kỳ thi" -#: judge/models/contest.py:171 +#: judge/models/contest.py:174 msgid "view contest scoreboard" msgstr "xem bảng điểm kỳ thi" -#: judge/models/contest.py:174 +#: judge/models/contest.py:177 msgid "These users will be able to view the scoreboard." msgstr "Những người dùng này được phép xem bảng điểm." -#: judge/models/contest.py:177 +#: judge/models/contest.py:180 msgid "public scoreboard" msgstr "công khai bảng điểm" -#: judge/models/contest.py:178 +#: judge/models/contest.py:181 msgid "Ranking page is public even for private contests." msgstr "Trang xếp hạng được công khai, kể cả cho kỳ thi riêng tư." -#: judge/models/contest.py:182 +#: judge/models/contest.py:185 msgid "no comments" msgstr "không bình luận" -#: judge/models/contest.py:183 +#: judge/models/contest.py:186 msgid "Use clarification system instead of comments." msgstr "Dùng hệ thống thông báo thay vì bình luận." -#: judge/models/contest.py:188 +#: judge/models/contest.py:191 msgid "Rating floor for contest" msgstr "Cận dưới rating được xếp hạng trong kỳ thi" -#: judge/models/contest.py:194 +#: judge/models/contest.py:197 msgid "Rating ceiling for contest" msgstr "Cận trên rating được xếp hạng trong kỳ thi" -#: judge/models/contest.py:199 +#: judge/models/contest.py:202 msgid "rate all" msgstr "xếp hạng tất cả" -#: judge/models/contest.py:200 +#: judge/models/contest.py:203 msgid "Rate all users who joined." msgstr "Xếp hạng tất cả người dùng đã tham gia (kể cả không nộp)." -#: judge/models/contest.py:205 +#: judge/models/contest.py:208 msgid "exclude from ratings" msgstr "không xếp hạng" -#: judge/models/contest.py:210 +#: judge/models/contest.py:213 msgid "private to specific users" msgstr "riêng tư với các người dùng này" -#: judge/models/contest.py:215 +#: judge/models/contest.py:218 msgid "private contestants" msgstr "thí sinh riêng tư" -#: judge/models/contest.py:216 +#: judge/models/contest.py:219 msgid "If private, only these users may see the contest" msgstr "Nếu riêng tư, chỉ những người dùng này mới thấy kỳ thi" -#: judge/models/contest.py:220 +#: judge/models/contest.py:223 msgid "hide problem tags" msgstr "ẩn nhãn kỳ thi" -#: judge/models/contest.py:221 +#: judge/models/contest.py:224 msgid "Whether problem tags should be hidden by default." msgstr "" "Quyết định việc nhãn bài tập (DP, Tham lam, ...) được ẩn trong kỳ thi không." -#: judge/models/contest.py:225 +#: judge/models/contest.py:228 msgid "run pretests only" msgstr "chỉ chạy pretests" -#: judge/models/contest.py:227 +#: judge/models/contest.py:230 msgid "" "Whether judges should grade pretests only, versus all testcases. Commonly " "set during a contest, then unset prior to rejudging user submissions when " @@ -925,51 +923,51 @@ msgstr "" "Quyết định việc các máy chấm chỉ chấm pretests thay vì tất cả các test. Sau " "kỳ thi, hãy bỏ đánh dấu ô này và chấm lại tất cả các bài." -#: judge/models/contest.py:234 judge/models/interface.py:97 +#: judge/models/contest.py:237 judge/models/interface.py:97 #: judge/models/problem.py:285 msgid "private to organizations" msgstr "riêng tư với các tổ chức" -#: judge/models/contest.py:239 judge/models/course.py:33 +#: judge/models/contest.py:242 judge/models/course.py:33 #: judge/models/interface.py:93 judge/models/problem.py:281 #: judge/models/profile.py:168 msgid "organizations" msgstr "tổ chức" -#: judge/models/contest.py:240 +#: judge/models/contest.py:243 msgid "If private, only these organizations may see the contest" msgstr "Nếu riêng tư, chỉ những tổ chức này thấy được kỳ thi" -#: judge/models/contest.py:243 judge/models/problem.py:256 +#: judge/models/contest.py:246 judge/models/problem.py:256 msgid "OpenGraph image" msgstr "Hình ảnh OpenGraph" -#: judge/models/contest.py:246 judge/models/profile.py:108 +#: judge/models/contest.py:249 judge/models/profile.py:108 msgid "Logo override image" msgstr "Hình ảnh ghi đè logo" -#: judge/models/contest.py:251 +#: judge/models/contest.py:254 msgid "" "This image will replace the default site logo for users inside the contest." msgstr "Ảnh này sẽ thay thế cho logo mặc định trong kỳ thi." -#: judge/models/contest.py:259 +#: judge/models/contest.py:262 msgid "the amount of live participants" msgstr "số lượng thí sinh thi trực tiếp" -#: judge/models/contest.py:263 +#: judge/models/contest.py:266 msgid "contest summary" msgstr "tổng kết kỳ thi" -#: judge/models/contest.py:265 judge/models/problem.py:262 +#: judge/models/contest.py:268 judge/models/problem.py:262 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" -#: judge/models/contest.py:269 judge/models/profile.py:103 +#: judge/models/contest.py:272 judge/models/profile.py:103 msgid "access code" msgstr "mật khẩu truy cập" -#: judge/models/contest.py:274 +#: judge/models/contest.py:277 msgid "" "An optional code to prompt contestants before they are allowed to join the " "contest. Leave it blank to disable." @@ -977,312 +975,312 @@ msgstr "" "Mật khẩu truy cập cho các thí sinh muốn tham gia kỳ thi. Để trống nếu không " "dùng." -#: judge/models/contest.py:280 judge/models/problem.py:244 +#: judge/models/contest.py:283 judge/models/problem.py:244 msgid "personae non gratae" msgstr "Chặn tham gia" -#: judge/models/contest.py:282 +#: judge/models/contest.py:285 msgid "Bans the selected users from joining this contest." msgstr "Cấm những người dùng được chọn tham gia kỳ thi." -#: judge/models/contest.py:285 +#: judge/models/contest.py:288 msgid "contest format" msgstr "format kỳ thi" -#: judge/models/contest.py:289 +#: judge/models/contest.py:292 msgid "The contest format module to use." msgstr "Format kỳ thi sử dụng." -#: judge/models/contest.py:292 +#: judge/models/contest.py:295 msgid "contest format configuration" msgstr "Tùy chỉnh format kỳ thi" -#: judge/models/contest.py:296 +#: judge/models/contest.py:299 msgid "" "A JSON object to serve as the configuration for the chosen contest format " "module. Leave empty to use None. Exact format depends on the contest format " "selected." msgstr "" -#: judge/models/contest.py:309 +#: judge/models/contest.py:312 msgid "precision points" msgstr "Hiển thị điểm" -#: judge/models/contest.py:312 +#: judge/models/contest.py:315 msgid "Number of digits to round points to." msgstr "Số chữ số thập phân trên bảng điểm." -#: judge/models/contest.py:315 +#: judge/models/contest.py:318 msgid "rate limit" msgstr "giới hạn bài nộp" -#: judge/models/contest.py:320 +#: judge/models/contest.py:323 msgid "" "Maximum number of submissions per minute. Leave empty if you don't want rate " "limit." msgstr "Số bài nộp tối đa mỗi phút. Để trống nếu không muốn giới hạn." -#: judge/models/contest.py:646 +#: judge/models/contest.py:649 msgid "See private contests" msgstr "" -#: judge/models/contest.py:647 +#: judge/models/contest.py:650 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:648 +#: judge/models/contest.py:651 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:649 +#: judge/models/contest.py:652 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:650 templates/contest/moss.html:72 +#: judge/models/contest.py:653 templates/contest/moss.html:72 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:651 +#: judge/models/contest.py:654 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:652 +#: judge/models/contest.py:655 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:653 +#: judge/models/contest.py:656 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:654 +#: judge/models/contest.py:657 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:658 msgid "Edit contest problem label script" msgstr "Cách hiển thị thứ tự bài tập" -#: judge/models/contest.py:657 judge/models/contest.py:804 -#: judge/models/contest.py:882 judge/models/contest.py:912 +#: judge/models/contest.py:660 judge/models/contest.py:821 +#: judge/models/contest.py:899 judge/models/contest.py:929 #: judge/models/submission.py:116 msgid "contest" msgstr "kỳ thi" -#: judge/models/contest.py:658 +#: judge/models/contest.py:661 msgid "contests" msgstr "kỳ thi" -#: judge/models/contest.py:667 +#: judge/models/contest.py:684 msgid "associated contest" msgstr "" -#: judge/models/contest.py:680 +#: judge/models/contest.py:697 msgid "score" msgstr "điểm" -#: judge/models/contest.py:681 +#: judge/models/contest.py:698 msgid "cumulative time" msgstr "tổng thời gian" -#: judge/models/contest.py:683 +#: judge/models/contest.py:700 msgid "is disqualified" msgstr "đã bị loại" -#: judge/models/contest.py:685 +#: judge/models/contest.py:702 msgid "Whether this participation is disqualified." msgstr "Quyết định thí sinh có bị loại không." -#: judge/models/contest.py:687 +#: judge/models/contest.py:704 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:689 +#: judge/models/contest.py:706 msgid "virtual participation id" msgstr "id lần tham gia ảo" -#: judge/models/contest.py:691 +#: judge/models/contest.py:708 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 nghĩa là tham gia chính thức, ngược lại là lần tham gia ảo thứ n." -#: judge/models/contest.py:694 +#: judge/models/contest.py:711 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:697 +#: judge/models/contest.py:714 msgid "same as format_data, but including frozen results" msgstr "" -#: judge/models/contest.py:701 +#: judge/models/contest.py:718 #, fuzzy #| msgid "score" msgid "final score" msgstr "điểm" -#: judge/models/contest.py:703 +#: judge/models/contest.py:720 #, fuzzy #| msgid "cumulative time" msgid "final cumulative time" msgstr "tổng thời gian" -#: judge/models/contest.py:779 +#: judge/models/contest.py:796 #, python-format msgid "%s spectating in %s" msgstr "%s đang theo dõi trong %s" -#: judge/models/contest.py:784 +#: judge/models/contest.py:801 #, python-format msgid "%s in %s, v%d" msgstr "%s trong %s, v%d" -#: judge/models/contest.py:789 +#: judge/models/contest.py:806 #, python-format msgid "%s in %s" msgstr "%s trong %s" -#: judge/models/contest.py:792 +#: judge/models/contest.py:809 msgid "contest participation" msgstr "lần tham gia kỳ thi" -#: judge/models/contest.py:793 +#: judge/models/contest.py:810 msgid "contest participations" msgstr "lần tham gia kỳ thi" -#: judge/models/contest.py:800 judge/models/contest.py:853 -#: judge/models/contest.py:915 judge/models/course.py:165 -#: judge/models/problem.py:596 judge/models/problem.py:603 -#: judge/models/problem.py:624 judge/models/problem.py:655 +#: judge/models/contest.py:817 judge/models/contest.py:870 +#: judge/models/contest.py:932 judge/models/course.py:165 +#: judge/models/problem.py:609 judge/models/problem.py:616 +#: judge/models/problem.py:637 judge/models/problem.py:668 #: judge/models/problem_data.py:50 msgid "problem" msgstr "bài tập" -#: judge/models/contest.py:808 judge/models/contest.py:865 +#: judge/models/contest.py:825 judge/models/contest.py:882 #: judge/models/course.py:167 judge/models/problem.py:209 msgid "points" msgstr "điểm" -#: judge/models/contest.py:809 +#: judge/models/contest.py:826 msgid "partial" msgstr "thành phần" -#: judge/models/contest.py:810 judge/models/contest.py:867 +#: judge/models/contest.py:827 judge/models/contest.py:884 msgid "is pretested" msgstr "dùng pretest" -#: judge/models/contest.py:811 judge/models/course.py:166 +#: judge/models/contest.py:828 judge/models/course.py:166 #: judge/models/interface.py:48 msgid "order" msgstr "thứ tự" -#: judge/models/contest.py:813 +#: judge/models/contest.py:830 msgid "visible testcases" msgstr "hiển thị test" -#: judge/models/contest.py:818 +#: judge/models/contest.py:835 msgid "Maximum number of submissions for this problem, or 0 for no limit." msgstr "Số lần nộp tối đa, đặt là 0 nếu không có giới hạn." -#: judge/models/contest.py:820 +#: judge/models/contest.py:837 msgid "max submissions" msgstr "số lần nộp tối đa" -#: judge/models/contest.py:823 +#: judge/models/contest.py:840 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:827 +#: judge/models/contest.py:844 #, fuzzy #| msgid "Only for format new IOI. Separated by commas, e.g: 2, 3" msgid "Separated by commas, e.g: 2, 3" msgstr "" "Chỉ dùng với format IOI mới. Các sub cách nhau bởi dấu phẩy. Ví dụ: 2, 3" -#: judge/models/contest.py:828 +#: judge/models/contest.py:845 #, fuzzy #| msgid "frozen subtasks" msgid "hidden subtasks" msgstr "Đóng băng subtasks" -#: judge/models/contest.py:840 +#: judge/models/contest.py:857 msgid "contest problem" msgstr "bài trong kỳ thi" -#: judge/models/contest.py:841 +#: judge/models/contest.py:858 msgid "contest problems" msgstr "bài trong kỳ thi" -#: judge/models/contest.py:847 judge/models/submission.py:274 +#: judge/models/contest.py:864 judge/models/submission.py:274 msgid "submission" msgstr "bài nộp" -#: judge/models/contest.py:860 judge/models/contest.py:886 +#: judge/models/contest.py:877 judge/models/contest.py:903 msgid "participation" msgstr "lần tham gia" -#: judge/models/contest.py:868 +#: judge/models/contest.py:885 msgid "Whether this submission was ran only on pretests." msgstr "Quyết định bài nộp chỉ được chạy trên pretest không." -#: judge/models/contest.py:873 +#: judge/models/contest.py:890 msgid "contest submission" msgstr "bài nộp kỳ thi" -#: judge/models/contest.py:874 +#: judge/models/contest.py:891 msgid "contest submissions" msgstr "bài nộp kỳ thi" -#: judge/models/contest.py:890 +#: judge/models/contest.py:907 msgid "rank" msgstr "rank" -#: judge/models/contest.py:891 +#: judge/models/contest.py:908 msgid "rating" msgstr "rating" -#: judge/models/contest.py:892 +#: judge/models/contest.py:909 msgid "raw rating" msgstr "rating thật" -#: judge/models/contest.py:893 +#: judge/models/contest.py:910 msgid "contest performance" msgstr "" -#: judge/models/contest.py:894 +#: judge/models/contest.py:911 msgid "last rated" msgstr "lần cuối được xếp hạng" -#: judge/models/contest.py:898 +#: judge/models/contest.py:915 msgid "contest rating" msgstr "rating kỳ thi" -#: judge/models/contest.py:899 +#: judge/models/contest.py:916 msgid "contest ratings" msgstr "rating kỳ thi" -#: judge/models/contest.py:923 +#: judge/models/contest.py:940 msgid "contest moss result" msgstr "kết quả MOSS kỳ thi" -#: judge/models/contest.py:924 +#: judge/models/contest.py:941 msgid "contest moss results" msgstr "kết quả MOSS kỳ thi" -#: judge/models/contest.py:929 +#: judge/models/contest.py:946 msgid "clarified problem" msgstr "" -#: judge/models/contest.py:931 +#: judge/models/contest.py:948 msgid "clarification body" msgstr "" -#: judge/models/contest.py:933 +#: judge/models/contest.py:950 msgid "clarification timestamp" msgstr "" -#: judge/models/contest.py:952 +#: judge/models/contest.py:969 msgid "contests summary" msgstr "tổng kết kỳ thi" -#: judge/models/contest.py:953 +#: judge/models/contest.py:970 msgid "contests summaries" msgstr "tổng kết kỳ thi" @@ -1382,7 +1380,7 @@ msgstr "tiêu đề bài đăng" msgid "slug" msgstr "slug" -#: judge/models/interface.py:82 judge/models/problem.py:679 +#: judge/models/interface.py:82 judge/models/problem.py:692 msgid "public visibility" msgstr "khả năng hiển thị công khai" @@ -1623,7 +1621,7 @@ 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:197 judge/models/problem.py:639 +#: judge/models/problem.py:197 judge/models/problem.py:652 msgid "memory limit" msgstr "Giới hạn bộ nhớ" @@ -1704,87 +1702,87 @@ msgstr "Nếu bài riêng tư, chỉ những tổ chức này thấy được" msgid "pdf statement" msgstr "Đề bài bằng file pdf" -#: judge/models/problem.py:608 judge/models/problem.py:629 -#: judge/models/problem.py:660 judge/models/runtime.py:159 +#: judge/models/problem.py:621 judge/models/problem.py:642 +#: judge/models/problem.py:673 judge/models/runtime.py:159 msgid "language" msgstr "" -#: judge/models/problem.py:611 +#: judge/models/problem.py:624 msgid "translated name" msgstr "" -#: judge/models/problem.py:613 +#: judge/models/problem.py:626 msgid "translated description" msgstr "" -#: judge/models/problem.py:617 +#: judge/models/problem.py:630 msgid "problem translation" msgstr "" -#: judge/models/problem.py:618 +#: judge/models/problem.py:631 msgid "problem translations" msgstr "" -#: judge/models/problem.py:648 +#: judge/models/problem.py:661 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:649 +#: judge/models/problem.py:662 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:662 judge/models/submission.py:291 +#: judge/models/problem.py:675 judge/models/submission.py:291 msgid "source code" msgstr "mã nguồn" -#: judge/models/problem.py:666 +#: judge/models/problem.py:679 msgid "language-specific template" msgstr "" -#: judge/models/problem.py:667 +#: judge/models/problem.py:680 msgid "language-specific templates" msgstr "" -#: judge/models/problem.py:674 +#: judge/models/problem.py:687 msgid "associated problem" msgstr "" -#: judge/models/problem.py:680 +#: judge/models/problem.py:693 msgid "publish date" msgstr "" -#: judge/models/problem.py:682 +#: judge/models/problem.py:695 msgid "editorial content" msgstr "nội dung lời giải" -#: judge/models/problem.py:695 +#: judge/models/problem.py:708 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/problem.py:699 +#: judge/models/problem.py:712 msgid "solution" msgstr "lời giải" -#: judge/models/problem.py:700 +#: judge/models/problem.py:713 msgid "solutions" msgstr "lời giải" -#: judge/models/problem.py:705 +#: judge/models/problem.py:718 #, fuzzy #| msgid "point value" msgid "proposed point value" msgstr "điểm" -#: judge/models/problem.py:706 +#: judge/models/problem.py:719 msgid "The amount of points you think this problem deserves." msgstr "Bạn nghĩ bài này đáng bao nhiêu điểm?" -#: judge/models/problem.py:720 +#: judge/models/problem.py:733 msgid "The time this vote was cast" msgstr "" -#: judge/models/problem.py:726 +#: judge/models/problem.py:739 msgid "vote" msgstr "" @@ -2627,59 +2625,59 @@ msgstr "Chỉnh sửa bài nộp" msgid "Recalculating user points" msgstr "Tính lại điểm người dùng" -#: judge/utils/problem_data.py:73 +#: judge/utils/problem_data.py:78 msgid "Empty batches not allowed." msgstr "Nhóm test trống là không hợp lệ." -#: judge/utils/problem_data.py:81 judge/utils/problem_data.py:89 -#: judge/utils/problem_data.py:104 +#: judge/utils/problem_data.py:86 judge/utils/problem_data.py:94 +#: judge/utils/problem_data.py:109 msgid "How did you corrupt the custom checker path?" msgstr "How did you corrupt the custom checker path?" -#: judge/utils/problem_data.py:132 +#: judge/utils/problem_data.py:137 #, python-format msgid "Points must be defined for non-batch case #%d." msgstr "Ô điểm số cho test #%d phải được điền." -#: judge/utils/problem_data.py:139 +#: judge/utils/problem_data.py:144 #, python-format msgid "Input file for case %d does not exist: %s" msgstr "File input cho test %d không tồn tại: %s" -#: judge/utils/problem_data.py:144 +#: judge/utils/problem_data.py:149 #, python-format msgid "Output file for case %d does not exist: %s" msgstr "File output cho test %d không tồn tại: %s" -#: judge/utils/problem_data.py:171 +#: judge/utils/problem_data.py:176 #, python-format msgid "Batch start case #%d requires points." msgstr "Nhóm test #%d cần được điền điểm số." -#: judge/utils/problem_data.py:194 +#: judge/utils/problem_data.py:199 #, python-format msgid "Attempt to end batch outside of one in case #%d" msgstr "Nhóm test #%d kết thúc không hợp lệ" -#: judge/utils/problem_data.py:213 +#: judge/utils/problem_data.py:218 msgid "How did you corrupt the zip path?" msgstr "" -#: judge/utils/problem_data.py:219 +#: judge/utils/problem_data.py:224 msgid "How did you corrupt the generator path?" msgstr "" -#: judge/utils/problem_data.py:237 +#: judge/utils/problem_data.py:242 msgid "Invalid interactor judge" msgstr "" -#: judge/utils/problem_data.py:261 +#: judge/utils/problem_data.py:266 #, fuzzy #| msgid "Invalid Return" msgid "Invalid signature handler" msgstr "Invalid Return" -#: judge/utils/problem_data.py:264 +#: judge/utils/problem_data.py:269 msgid "Invalid signature header" msgstr "" @@ -2798,132 +2796,132 @@ msgstr "Bạn phải giải ít nhất một bài trước khi được phép b msgid "Posted comment" msgstr "Bình luận đã đăng" -#: judge/views/contests.py:122 judge/views/contests.py:405 -#: judge/views/contests.py:410 judge/views/contests.py:710 +#: judge/views/contests.py:122 judge/views/contests.py:407 +#: judge/views/contests.py:412 judge/views/contests.py:712 msgid "No such contest" msgstr "Không có contest nào như vậy" -#: judge/views/contests.py:123 judge/views/contests.py:406 +#: judge/views/contests.py:123 judge/views/contests.py:408 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "Không tìm thấy kỳ thi với mã \"%s\"." -#: judge/views/contests.py:142 judge/views/contests.py:1480 -#: judge/views/stats.py:178 templates/contest/list.html:247 -#: templates/contest/list.html:291 templates/contest/list.html:335 -#: templates/contest/list.html:377 +#: judge/views/contests.py:142 judge/views/contests.py:1483 +#: judge/views/stats.py:178 templates/contest/list.html:216 +#: templates/contest/list.html:255 templates/contest/list.html:294 +#: templates/contest/list.html:335 #: templates/organization/org-left-sidebar.html:5 templates/stats/site.html:21 #: templates/user/user-bookmarks.html:56 msgid "Contests" msgstr "Kỳ thi" -#: judge/views/contests.py:410 +#: judge/views/contests.py:412 msgid "Could not find such contest." msgstr "Không tìm thấy kỳ thi nào như vậy." -#: judge/views/contests.py:418 +#: judge/views/contests.py:420 #, python-format msgid "Access to contest \"%s\" denied" msgstr "Truy cập tới kỳ thi \"%s\" bị từ chối" -#: judge/views/contests.py:496 +#: judge/views/contests.py:498 msgid "Clone Contest" msgstr "Nhân bản kỳ thi" -#: judge/views/contests.py:588 +#: judge/views/contests.py:590 msgid "Contest not ongoing" msgstr "Kỳ thi đang không diễn ra" -#: judge/views/contests.py:589 +#: judge/views/contests.py:591 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" kỳ thi đang không diễn ra." -#: judge/views/contests.py:602 +#: judge/views/contests.py:604 msgid "Banned from joining" msgstr "Bị cấm tham gia" -#: judge/views/contests.py:604 +#: judge/views/contests.py:606 msgid "" "You have been declared persona non grata for this contest. You are " "permanently barred from joining this contest." msgstr "Bạn không được phép tham gia kỳ thi này." -#: judge/views/contests.py:694 +#: judge/views/contests.py:696 #, python-format msgid "Enter access code for \"%s\"" msgstr "Nhập mật khẩu truy cập cho \"%s\"" -#: judge/views/contests.py:711 +#: judge/views/contests.py:713 #, python-format msgid "You are not in contest \"%s\"." msgstr "Bạn không ở trong kỳ thi \"%s\"." -#: judge/views/contests.py:734 +#: judge/views/contests.py:736 msgid "ContestCalendar requires integer year and month" msgstr "Lịch thi yêu cầu giá trị cho năm và tháng là số nguyên" -#: judge/views/contests.py:792 +#: judge/views/contests.py:794 #, python-format msgid "Contests in %(month)s" msgstr "Các kỳ thi trong %(month)s" -#: judge/views/contests.py:793 +#: judge/views/contests.py:795 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:853 +#: judge/views/contests.py:855 #, python-format msgid "%s Statistics" msgstr "%s Thống kê" -#: judge/views/contests.py:1161 +#: judge/views/contests.py:1164 #, python-format msgid "%s Rankings" msgstr "%s Bảng điểm" -#: judge/views/contests.py:1172 +#: judge/views/contests.py:1175 msgid "???" msgstr "???" -#: judge/views/contests.py:1199 +#: judge/views/contests.py:1202 #, python-format msgid "Your participation in %s" msgstr "Lần tham gia trong %s" -#: judge/views/contests.py:1200 +#: judge/views/contests.py:1203 #, python-format msgid "%s's participation in %s" msgstr "Lần tham gia của %s trong %s" -#: judge/views/contests.py:1214 +#: judge/views/contests.py:1217 msgid "Live" msgstr "Trực tiếp" -#: judge/views/contests.py:1233 templates/contest/contest-tabs.html:21 +#: judge/views/contests.py:1236 templates/contest/contest-tabs.html:21 msgid "Participation" msgstr "Lần tham gia" -#: judge/views/contests.py:1282 +#: judge/views/contests.py:1285 #, python-format msgid "%s MOSS Results" msgstr "%s Kết quả MOSS" -#: judge/views/contests.py:1318 +#: judge/views/contests.py:1321 #, python-format msgid "Running MOSS for %s..." msgstr "Đang chạy MOSS cho %s..." -#: judge/views/contests.py:1341 +#: judge/views/contests.py:1344 #, python-format msgid "Contest tag: %s" msgstr "Nhãn kỳ thi: %s" -#: judge/views/contests.py:1356 judge/views/ticket.py:67 +#: judge/views/contests.py:1359 judge/views/ticket.py:67 msgid "Issue description" msgstr "Mô tả vấn đề" -#: judge/views/contests.py:1399 +#: judge/views/contests.py:1402 #, python-format msgid "New clarification for %s" msgstr "Thông báo mới cho %s" @@ -3066,7 +3064,7 @@ msgid "You are not allowed to access this organization." msgstr "Bạn không được phép chỉnh sửa tổ chức này." #: judge/views/organization.py:245 judge/views/stats.py:184 -#: templates/contest/list.html:94 templates/problem/list-base.html:91 +#: templates/contest/list.html:71 templates/problem/list-base.html:90 #: templates/stats/site.html:33 templates/user/user-left-sidebar.html:4 #: templates/user/user-list-tabs.html:6 msgid "Groups" @@ -3217,7 +3215,7 @@ msgstr "Bạn không được phép chỉnh sửa tổ chức này." #: judge/views/organization.py:963 templates/blog/blog.html:31 #: templates/comments/content-list.html:53 #: templates/comments/content-list.html:66 -#: templates/contest/contest-tabs.html:36 templates/contest/list.html:128 +#: templates/contest/contest-tabs.html:36 templates/contest/list.html:110 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 #: templates/license.html:10 templates/problem/editorial.html:15 #: templates/problem/feed/items.html:50 @@ -3623,7 +3621,7 @@ msgid "Updated on site" msgstr "Được cập nhật trên web" #: judge/views/user.py:423 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:204 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:208 #: templates/user/user-tabs.html:12 msgid "Edit profile" msgstr "Chỉnh sửa thông tin" @@ -3717,57 +3715,57 @@ msgstr "Chỉnh sửa thông tin" msgid "Rejudge" msgstr "Chấm lại" -#: templates/base.html:140 +#: templates/base.html:144 msgid "Chat" msgstr "Chat" -#: templates/base.html:150 +#: templates/base.html:154 msgid "Notification" msgstr "Thông báo" -#: templates/base.html:177 +#: templates/base.html:181 msgid "Dark Mode" msgstr "" -#: templates/base.html:188 +#: templates/base.html:192 msgid "Profile" msgstr "Trang cá nhân" -#: templates/base.html:197 +#: templates/base.html:201 msgid "Internal" msgstr "Nội bộ" -#: templates/base.html:200 +#: templates/base.html:204 msgid "Stats" msgstr "Thống kê" -#: templates/base.html:213 +#: templates/base.html:217 msgid "Log out" msgstr "Đăng xuất" -#: templates/base.html:223 +#: templates/base.html:227 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Đăng nhập" -#: templates/base.html:224 +#: templates/base.html:228 msgid "Sign up" msgstr "Đăng ký" -#: templates/base.html:238 +#: templates/base.html:242 msgid "spectating" msgstr "đang theo dõi" -#: templates/base.html:250 templates/contest/list.html:195 -#: templates/contest/list.html:396 +#: templates/base.html:254 templates/contest/list.html:178 +#: templates/contest/list.html:349 msgid "In contest" msgstr "Trong kỳ thi" -#: templates/base.html:252 +#: templates/base.html:256 msgid "Out contest" msgstr "Ngoài kỳ thi" -#: templates/base.html:259 +#: templates/base.html:263 msgid "This site works best with JavaScript enabled." msgstr "" @@ -3830,11 +3828,11 @@ msgstr "Thêm mới" msgid "No clarifications have been made at this time." msgstr "Không có thông báo nào." -#: templates/chat/chat.html:5 templates/chat/chat_js.html:563 +#: templates/chat/chat.html:5 templates/chat/chat_js.html:564 msgid "Chat Box" msgstr "Chat Box" -#: templates/chat/chat.html:69 templates/chat/chat_js.html:523 +#: templates/chat/chat.html:69 templates/chat/chat_js.html:524 #: templates/user/base-users-js.html:10 #: templates/user/base-users-two-col.html:19 msgid "Search by handle..." @@ -4030,8 +4028,9 @@ msgstr "Thứ sáu" msgid "Saturday" msgstr "Thứ bảy" -#: templates/contest/clarification.html:52 templates/contest/list.html:232 -#: templates/organization/new.html:10 templates/ticket/new.html:38 +#: templates/contest/clarification.html:52 +#: templates/contest/search-form.html:23 templates/organization/new.html:10 +#: templates/ticket/new.html:38 msgid "Create" msgstr "Tạo mới" @@ -4092,13 +4091,12 @@ msgid "" "%(time_limit)s window between %(start_time)s and " "%(end_time)s" msgstr "" -"Kéo dài %(time_limit)s từ %(start_time)s đến %(end_time)s" +"Dài %(time_limit)s từ %(start_time)s đến %(end_time)s" #: templates/contest/contest-datetime.html:36 #, python-format msgid "%(length)s long starting on %(start_time)s" -msgstr "Kéo dài %(length)s bắt đầu từ %(start_time)s" +msgstr "Dài %(length)s bắt đầu từ %(start_time)s" #: templates/contest/contest-datetime.html:43 msgid "Standing was frozen" @@ -4142,7 +4140,7 @@ msgstr "MOSS" msgid "Leave contest" msgstr "Rời kỳ thi" -#: templates/contest/contest.html:43 templates/contest/list.html:401 +#: templates/contest/contest.html:43 templates/contest/list.html:354 msgid "Virtual join" msgstr "Tham gia ảo" @@ -4170,9 +4168,7 @@ msgstr "Nhân bản" msgid "AC Rate" msgstr "Tỷ lệ AC" -#: templates/contest/contest.html:119 templates/contest/list.html:270 -#: templates/contest/list.html:310 templates/contest/list.html:391 -#: templates/problem/list.html:24 +#: templates/contest/contest.html:119 templates/problem/list.html:24 msgid "Users" msgstr "Người nộp" @@ -4182,7 +4178,6 @@ msgid "Editorial" msgstr "Hướng dẫn" #: templates/contest/contests_summary.html:36 -#: templates/user/base-users-table.html:3 msgid "Rank" msgstr "Rank" @@ -4192,11 +4187,11 @@ msgstr "Rank" msgid "Name" msgstr "Tên" -#: templates/contest/list.html:86 templates/contest/media-js.html:152 +#: templates/contest/list.html:58 templates/contest/media-js.html:152 msgid "Are you sure you want to join?" msgstr "Bạn có chắc tham gia?" -#: templates/contest/list.html:87 +#: templates/contest/list.html:59 msgid "" "Joining a contest for the first time starts your timer, after which it " "becomes unstoppable." @@ -4204,96 +4199,87 @@ msgstr "" "Tham gia kỳ thi lần đầu sẽ kích hoạt thời gian đếm ngược, không thể dừng lại " "sau đó." -#: templates/contest/list.html:89 templates/contest/media-js.html:155 +#: templates/contest/list.html:61 templates/contest/media-js.html:155 msgid "By joining in this contest, you will automatically leave contest" msgstr "Khi tham gia kỳ thi này, bạn sẽ tự động rời khỏi kỳ thi" -#: templates/contest/list.html:122 +#: templates/contest/list.html:104 msgid "hidden" msgstr "ẩn" -#: templates/contest/list.html:134 +#: templates/contest/list.html:116 msgid "private" msgstr "riêng tư" -#: templates/contest/list.html:146 +#: templates/contest/list.html:128 msgid "rated" msgstr "rated" -#: templates/contest/list.html:165 templates/contest/list.html:172 +#: templates/contest/list.html:147 templates/contest/list.html:154 msgid "Start" msgstr "Bắt đầu" -#: templates/contest/list.html:168 +#: templates/contest/list.html:150 msgid "End" msgstr "Kết thúc" -#: templates/contest/list.html:178 -#, python-format -msgid "%(time_limit)s window" -msgstr "Cửa sổ thi dài %(time_limit)s" +#: templates/contest/list.html:158 +msgid "Length" +msgstr "Dài" -#: templates/contest/list.html:180 +#: templates/contest/list.html:160 #, python-format -msgid "%(duration)s long" -msgstr "Kéo dài %(duration)s" +msgid "%(time_limit)s" +msgstr "%(time_limit)s" -#: templates/contest/list.html:200 +#: templates/contest/list.html:162 +#, python-format +msgid "%(duration)s" +msgstr "%(duration)s" + +#: templates/contest/list.html:183 msgid "Spectate" msgstr "Theo dõi" -#: templates/contest/list.html:206 templates/organization/home.html:23 +#: templates/contest/list.html:189 templates/organization/home.html:23 msgid "Join" msgstr "Tham gia" -#: templates/contest/list.html:214 -msgid "Search contests..." -msgstr "Tìm kiếm kỳ thi..." - -#: templates/contest/list.html:224 templates/course/grades.html:84 -#: templates/internal/problem/problem.html:34 -msgid "Search" -msgstr "Tìm kiếm" - -#: templates/contest/list.html:228 -msgid "Hide organization contests" -msgstr "Ẩn các kỳ thi riêng tư của nhóm" - -#: templates/contest/list.html:240 +#: templates/contest/list.html:209 msgid "Active Contests" msgstr "Kỳ thi bạn đang tham gia" -#: templates/contest/list.html:257 +#: templates/contest/list.html:226 #, python-format msgid "Window ends in %(countdown)s" msgstr "Cửa số thi còn %(countdown)s" -#: templates/contest/list.html:260 templates/contest/list.html:300 +#: templates/contest/list.html:229 templates/contest/list.html:264 #, python-format msgid "Ends in %(countdown)s" msgstr "Kết thúc trong %(countdown)s" -#: templates/contest/list.html:284 +#: templates/contest/list.html:248 msgid "Ongoing Contests" msgstr "Kỳ thi đang diễn ra" -#: templates/contest/list.html:321 +#: templates/contest/list.html:280 msgid "There is no ongoing contest at this time." msgstr "Không có kỳ thi nào đang diễn ra hiện tại." -#: templates/contest/list.html:328 +#: templates/contest/list.html:287 msgid "Upcoming Contests" msgstr "Kỳ thi sắp tới" -#: templates/contest/list.html:358 +#: templates/contest/list.html:316 msgid "There is no scheduled contest at this time." msgstr "Không có kỳ thi nào được lên lịch hiện tại." -#: templates/contest/list.html:365 +#: templates/contest/list.html:323 msgid "Past Contests" msgstr "Kỳ thi trong quá khứ" -#: templates/contest/list.html:414 +#: templates/contest/list.html:367 msgid "There is no past contest." msgstr "Không có kỳ thi nào trong quá khứ." @@ -4399,6 +4385,23 @@ msgstr "Hiển thị tham gia ảo" msgid "Download as CSV" msgstr "Tải file CSV" +#: templates/contest/search-form.html:2 +msgid "Contest search" +msgstr "Tìm kiếm kỳ thi" + +#: templates/contest/search-form.html:6 +msgid "Search contests..." +msgstr "Tìm kiếm kỳ thi..." + +#: templates/contest/search-form.html:10 +msgid "Hide organization contests" +msgstr "Ẩn các kỳ thi riêng tư của nhóm" + +#: templates/contest/search-form.html:21 templates/problem/search-form.html:95 +#: templates/submission/list.html:355 templates/ticket/list.html:250 +msgid "Go" +msgstr "Lọc" + #: templates/contest/stats.html:48 msgid "Problem Status Distribution" msgstr "Phân bố theo kết quả" @@ -4466,6 +4469,10 @@ msgstr "Sắp xếp theo" msgid "Score" msgstr "Điểm" +#: templates/course/grades.html:84 templates/internal/problem/problem.html:34 +msgid "Search" +msgstr "Tìm kiếm" + #: templates/course/grades.html:99 templates/submission/user-ajax.html:33 msgid "Total" msgstr "Tổng điểm" @@ -4899,15 +4906,15 @@ msgstr "Gợi ý" msgid "Filter by type..." msgstr "Lọc theo dạng..." -#: templates/problem/list-base.html:160 templates/problem/list-base.html:186 +#: templates/problem/list-base.html:157 templates/problem/list-base.html:182 msgid "Add types..." msgstr "Thêm dạng" -#: templates/problem/list-base.html:202 +#: templates/problem/list-base.html:198 msgid "Fail to vote!" msgstr "Hệ thống lỗi!" -#: templates/problem/list-base.html:205 +#: templates/problem/list-base.html:201 msgid "Successful vote! Thank you!" msgstr "Đã gửi thành công! Cảm ơn bạn!" @@ -5180,11 +5187,6 @@ msgstr "Tất cả" msgid "Point range" msgstr "Mốc điểm" -#: templates/problem/search-form.html:95 templates/submission/list.html:355 -#: templates/ticket/list.html:250 -msgid "Go" -msgstr "Lọc" - #: templates/problem/search-form.html:96 msgid "Random" msgstr "Ngẫu nhiên" @@ -6117,6 +6119,9 @@ msgstr "Thông tin" msgid "Check all" msgstr "Chọn tất cả" +#~ msgid "Duration" +#~ msgstr "Thời hạn" + #~ msgid "Submissions in {0}" #~ msgstr "Bài nộp trong {0}" diff --git a/resources/base.scss b/resources/base.scss index 647031b..06efd1c 100644 --- a/resources/base.scss +++ b/resources/base.scss @@ -863,6 +863,8 @@ noscript #noscript { .margin-label{ margin-bottom: 2.5px; + padding-bottom: 0.25em; + display: block; } ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */ diff --git a/resources/contest.scss b/resources/contest.scss index 290cf35..8c429fc 100644 --- a/resources/contest.scss +++ b/resources/contest.scss @@ -8,6 +8,7 @@ width: 100%; box-sizing: border-box; display: flex; + background: white; .info-contest:first-child, .info-contest:nth-child(2) { margin-right: 15px; @@ -24,10 +25,9 @@ } .contest-title { - font-size: 17px; + font-size: 1.1em; font-weight: 600; - line-height: 150%; - margin-bottom: 10px; + margin-bottom: 5px; } } @@ -206,7 +206,7 @@ } .contest-list-title { - font-size: 18px; + font-size: 1.1em; font-weight: 600; } diff --git a/resources/problem.scss b/resources/problem.scss index 96703d5..3473906 100644 --- a/resources/problem.scss +++ b/resources/problem.scss @@ -97,11 +97,6 @@ height: 2.3em; } -label[for="category"], label[for="type"] { - padding-bottom: 0.25em; - display: block; -} - #category { margin-top: 0.5em; width: 100%; diff --git a/templates/contest/list.html b/templates/contest/list.html index e18bda4..3738e94 100644 --- a/templates/contest/list.html +++ b/templates/contest/list.html @@ -1,9 +1,9 @@ -{% extends "two-column-content.html" %} +{% extends "three-column-content.html" %} {% block meta %} {% endblock %} -{% block two_col_media %} +{% block three_col_media %} {% endblock %} -{% block two_col_js %} +{% block three_col_js %}