diff --git a/judge/markdown.py b/judge/markdown.py index 96e3539..9fd81aa 100644 --- a/judge/markdown.py +++ b/judge/markdown.py @@ -88,6 +88,7 @@ ALLOWED_ATTRS = [ "frameborder", "allow", "allowfullscreen", + "loading", ] @@ -105,11 +106,9 @@ def markdown(value, lazy_load=False): soup = BeautifulSoup(html, features="html.parser") for img in soup.findAll("img"): if img.get("src"): - img["data-src"] = img["src"] - img["src"] = "" + img["loading"] = "lazy" for img in soup.findAll("iframe"): if img.get("src"): - img["data-src"] = img["src"] - img["src"] = "" + img["loading"] = "lazy" html = str(soup) return '
%s
' % html diff --git a/locale/vi/LC_MESSAGES/django.po b/locale/vi/LC_MESSAGES/django.po index 8140c87..6e75ad7 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-02-20 06:20+0700\n" +"POT-Creation-Date: 2024-02-27 03:20+0700\n" "PO-Revision-Date: 2021-07-20 03:44\n" "Last-Translator: Icyene\n" "Language-Team: Vietnamese\n" @@ -18,23 +18,23 @@ msgstr "" "X-Crowdin-Project-ID: 466004\n" "X-Crowdin-File-ID: 5\n" -#: chat_box/models.py:22 chat_box/models.py:87 +#: chat_box/models.py:22 chat_box/models.py:83 msgid "last seen" msgstr "xem lần cuối" -#: chat_box/models.py:58 chat_box/models.py:83 chat_box/models.py:99 +#: chat_box/models.py:54 chat_box/models.py:79 chat_box/models.py:95 #: judge/admin/interface.py:150 judge/models/contest.py:647 #: judge/models/contest.py:853 judge/models/course.py:129 -#: judge/models/profile.py:430 judge/models/profile.py:504 +#: judge/models/profile.py:419 judge/models/profile.py:493 msgid "user" msgstr "người dùng" -#: chat_box/models.py:60 judge/models/comment.py:44 +#: chat_box/models.py:56 judge/models/comment.py:44 #: judge/models/notification.py:17 msgid "posted time" msgstr "thời gian đăng" -#: chat_box/models.py:62 judge/models/comment.py:49 +#: chat_box/models.py:58 judge/models/comment.py:49 msgid "body of comment" msgstr "nội dung bình luận" @@ -42,11 +42,11 @@ msgstr "nội dung bình luận" msgid "LQDOJ Chat" msgstr "" -#: chat_box/views.py:441 +#: chat_box/views.py:444 msgid "Recent" msgstr "Gần đây" -#: chat_box/views.py:445 templates/base.html:192 +#: chat_box/views.py:448 templates/base.html:192 #: templates/comments/content-list.html:77 #: templates/contest/contest-list-tabs.html:4 #: templates/contest/ranking-table.html:47 templates/course/left_sidebar.html:8 @@ -2046,7 +2046,7 @@ msgid "" msgstr "Ảnh này sẽ thay thế logo mặc định khi ở trong tổ chức." #: judge/models/profile.py:148 judge/models/profile.py:178 -#: judge/models/profile.py:436 judge/models/profile.py:511 +#: judge/models/profile.py:425 judge/models/profile.py:500 msgid "organization" msgstr "" @@ -2152,35 +2152,35 @@ msgstr "Background tự chọn" msgid "CSS custom background properties: url(\"image_url\"), color, etc" msgstr "CSS background tự chọn. Ví dụ: url(\"image_url\"), white, ..." -#: judge/models/profile.py:423 +#: judge/models/profile.py:412 msgid "user profile" msgstr "thông tin người dùng" -#: judge/models/profile.py:424 +#: judge/models/profile.py:413 msgid "user profiles" msgstr "thông tin người dùng" -#: judge/models/profile.py:440 +#: judge/models/profile.py:429 msgid "request time" msgstr "thời gian đăng ký" -#: judge/models/profile.py:443 +#: judge/models/profile.py:432 msgid "state" msgstr "trạng thái" -#: judge/models/profile.py:450 +#: judge/models/profile.py:439 msgid "reason" msgstr "lý do" -#: judge/models/profile.py:453 +#: judge/models/profile.py:442 msgid "organization join request" msgstr "đơn đăng ký tham gia" -#: judge/models/profile.py:454 +#: judge/models/profile.py:443 msgid "organization join requests" msgstr "đơn đăng ký tham gia" -#: judge/models/profile.py:516 +#: judge/models/profile.py:505 #, fuzzy #| msgid "last seen" msgid "last visit" @@ -3224,7 +3224,7 @@ msgstr "Bạn không được phép chỉnh sửa tổ chức này." #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 #: templates/license.html:10 templates/problem/editorial.html:15 #: templates/problem/feed/problems.html:50 -#: templates/test_formatter/download_test_formatter.html:77 +#: templates/test_formatter/download_test_formatter.html:83 msgid "Edit" msgstr "Chỉnh sửa" @@ -3458,50 +3458,50 @@ msgstr "Bài nộp của %(user)s cho bài %(problem)s" msgid "All submissions" msgstr "Tất cả bài nộp" -#: judge/views/submission.py:545 judge/views/submission.py:550 +#: judge/views/submission.py:546 judge/views/submission.py:551 msgid "All my submissions" msgstr "Tất cả bài nộp của tôi" -#: judge/views/submission.py:546 +#: judge/views/submission.py:547 #, python-format msgid "All submissions by %s" msgstr "Tất cả bài nộp của %s" -#: judge/views/submission.py:552 +#: judge/views/submission.py:553 #, python-brace-format msgid "All submissions by {0}" msgstr "Tất cả bài nộp của {0}" -#: judge/views/submission.py:573 +#: judge/views/submission.py:574 #, fuzzy #| msgid "All submissions" msgid "All friend submissions" msgstr "Tất cả bài nộp" -#: judge/views/submission.py:602 +#: judge/views/submission.py:603 #, python-format msgid "All submissions for %s" msgstr "Tất cả bài nộp cho %s" -#: judge/views/submission.py:630 +#: judge/views/submission.py:631 msgid "Must pass a problem" msgstr "Phải làm được một bài" -#: judge/views/submission.py:688 +#: judge/views/submission.py:689 #, python-format msgid "My submissions for %(problem)s" msgstr "Bài nộp của tôi cho %(problem)s" -#: judge/views/submission.py:689 +#: judge/views/submission.py:690 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Các bài nộp của %(user)s cho %(problem)s" -#: judge/views/submission.py:825 +#: judge/views/submission.py:826 msgid "Must pass a contest" msgstr "Phải qua một kỳ thi" -#: judge/views/submission.py:855 +#: judge/views/submission.py:856 #, python-brace-format msgid "" "{0}'s submissions for {2} in {0} cho {2} trong {4}" -#: judge/views/submission.py:867 +#: judge/views/submission.py:868 #, python-brace-format msgid "" "{0}'s submissions for problem {2} in {3}" @@ -3519,15 +3519,15 @@ msgstr "" "Các bài nộp của {0} cho bài {2} trong {3}" "" -#: judge/views/submission.py:1001 +#: judge/views/submission.py:1002 #, fuzzy #| msgid "You do not have the permission to rejudge submissions." msgid "You don't have permission to access." msgstr "Bạn không có quyền chấm lại bài." -#: judge/views/test_formatter/test_formatter.py:61 -#: judge/views/test_formatter/test_formatter.py:104 -#: judge/views/test_formatter/test_formatter.py:187 +#: judge/views/test_formatter/test_formatter.py:64 +#: judge/views/test_formatter/test_formatter.py:107 +#: judge/views/test_formatter/test_formatter.py:190 #, fuzzy #| msgid "contest format" msgid "Test Formatter" @@ -3628,7 +3628,7 @@ msgstr "Chỉnh sửa thông tin" msgid "Leaderboard" msgstr "Xếp hạng" -#: judge/views/user.py:543 +#: judge/views/user.py:542 msgid "Import Users" msgstr "" @@ -3812,7 +3812,7 @@ msgid "You have no ticket" msgstr "Bạn không có báo cáo" #: templates/blog/list.html:72 templates/problem/list.html:150 -#: templates/problem/problem.html:390 +#: templates/problem/problem.html:408 msgid "Clarifications" msgstr "Thông báo" @@ -3821,7 +3821,7 @@ msgid "Add" msgstr "Thêm mới" #: templates/blog/list.html:97 templates/problem/list.html:172 -#: templates/problem/problem.html:401 +#: templates/problem/problem.html:419 msgid "No clarifications have been made at this time." msgstr "Không có thông báo nào." @@ -4441,7 +4441,7 @@ msgstr "Vui lòng sửa các lỗi bên dưới" #: templates/organization/blog/edit.html:36 #: templates/organization/contest/add.html:36 #: templates/organization/contest/edit.html:86 -#: templates/organization/form.html:23 +#: templates/organization/form.html:23 templates/pagedown.html:31 msgid "Save" msgstr "Lưu" @@ -4503,6 +4503,7 @@ msgstr "Tải file lên" #: templates/fine_uploader/script.html:23 #: templates/markdown_editor/markdown_editor.html:124 +#: templates/pagedown.html:32 msgid "Cancel" msgstr "Hủy" @@ -4572,14 +4573,17 @@ msgid "Update Preview" msgstr "Cập nhật xem trước" #: templates/markdown_editor/markdown_editor.html:108 +#: templates/pagedown.html:15 msgid "Insert Image" msgstr "Chèn hình ảnh" #: templates/markdown_editor/markdown_editor.html:111 +#: templates/pagedown.html:18 msgid "From the web" msgstr "Từ web" #: templates/markdown_editor/markdown_editor.html:117 +#: templates/pagedown.html:25 msgid "From your computer" msgstr "Từ máy tính của bạn" @@ -4761,7 +4765,7 @@ msgstr "Xem YAML" msgid "Autofill testcases" msgstr "Tự động điền test" -#: templates/problem/data.html:506 templates/problem/problem.html:249 +#: templates/problem/data.html:506 templates/problem/problem.html:267 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Dạng bài" @@ -5043,66 +5047,66 @@ msgstr "Quản lý bài nộp" msgid "Clone problem" msgstr "Nhân bản bài" -#: templates/problem/problem.html:234 +#: templates/problem/problem.html:252 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Tác giả:" -#: templates/problem/problem.html:262 +#: templates/problem/problem.html:280 msgid "Allowed languages" msgstr "Ngôn ngữ cho phép" -#: templates/problem/problem.html:270 +#: templates/problem/problem.html:288 #, python-format msgid "No %(lang)s judge online" msgstr "Không có máy chấm cho %(lang)s" -#: templates/problem/problem.html:282 +#: templates/problem/problem.html:300 #: templates/status/judge-status-table.html:2 msgid "Judge" msgid_plural "Judges" msgstr[0] "Máy chấm" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:318 msgid "none available" msgstr "Bài này chưa có máy chấm" -#: templates/problem/problem.html:312 +#: templates/problem/problem.html:330 #, python-format msgid "This problem has %(length)s clarification(s)" msgstr "Bài này có %(length)s thông báo" -#: templates/problem/problem.html:320 +#: templates/problem/problem.html:338 msgid "Points:" msgstr "Điểm:" -#: templates/problem/problem.html:331 +#: templates/problem/problem.html:349 msgid "Time limit:" msgstr "Thời gian:" -#: templates/problem/problem.html:336 +#: templates/problem/problem.html:354 msgid "Memory limit:" msgstr "Bộ nhớ:" -#: templates/problem/problem.html:341 templates/problem/raw.html:67 +#: templates/problem/problem.html:359 templates/problem/raw.html:67 #: templates/submission/status-testcases.html:155 msgid "Input:" msgstr "Input:" -#: templates/problem/problem.html:343 templates/problem/raw.html:67 +#: templates/problem/problem.html:361 templates/problem/raw.html:67 msgid "stdin" msgstr "bàn phím" -#: templates/problem/problem.html:348 templates/problem/raw.html:70 +#: templates/problem/problem.html:366 templates/problem/raw.html:70 #: templates/submission/status-testcases.html:159 msgid "Output:" msgstr "Output:" -#: templates/problem/problem.html:349 templates/problem/raw.html:70 +#: templates/problem/problem.html:367 templates/problem/raw.html:70 msgid "stdout" msgstr "màn hình" -#: templates/problem/problem.html:376 +#: templates/problem/problem.html:394 msgid "Request clarification" msgstr "Yêu cầu làm rõ đề" @@ -5152,16 +5156,16 @@ msgstr "Hiển thị hướng dẫn" msgid "All" msgstr "Tất cả" -#: templates/problem/search-form.html:87 +#: templates/problem/search-form.html:88 msgid "Point range" msgstr "Mốc điểm" -#: templates/problem/search-form.html:93 templates/submission/list.html:355 +#: 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:94 +#: templates/problem/search-form.html:96 msgid "Random" msgstr "Ngẫu nhiên" @@ -5690,43 +5694,49 @@ msgstr "pretests" msgid "main tests" msgstr "test chính thức" -#: templates/test_formatter/download_test_formatter.html:69 -#: templates/test_formatter/download_test_formatter.html:76 -#: templates/test_formatter/edit_test_formatter.html:128 +#: templates/test_formatter/download_test_formatter.html:75 +#: templates/test_formatter/download_test_formatter.html:82 +#: templates/test_formatter/edit_test_formatter.html:134 msgid "Download" msgstr "Tải xuống" -#: templates/test_formatter/edit_test_formatter.html:99 +#: templates/test_formatter/download_test_formatter.html:86 +#: templates/test_formatter/edit_test_formatter.html:137 +#: templates/test_formatter/test_formatter.html:20 +msgid "Copyright" +msgstr "" + +#: templates/test_formatter/edit_test_formatter.html:105 msgid "Before" msgstr "Trước" -#: templates/test_formatter/edit_test_formatter.html:100 -#: templates/test_formatter/edit_test_formatter.html:108 +#: templates/test_formatter/edit_test_formatter.html:106 +#: templates/test_formatter/edit_test_formatter.html:114 msgid "Input format" msgstr "Định dạng đầu vào" -#: templates/test_formatter/edit_test_formatter.html:102 -#: templates/test_formatter/edit_test_formatter.html:110 +#: templates/test_formatter/edit_test_formatter.html:108 +#: templates/test_formatter/edit_test_formatter.html:116 msgid "Output format" msgstr "Định dạng đầu ra" -#: templates/test_formatter/edit_test_formatter.html:107 +#: templates/test_formatter/edit_test_formatter.html:113 msgid "After" msgstr "Sau" -#: templates/test_formatter/edit_test_formatter.html:116 +#: templates/test_formatter/edit_test_formatter.html:122 msgid "Preview" msgstr "Xem trước" -#: templates/test_formatter/edit_test_formatter.html:123 +#: templates/test_formatter/edit_test_formatter.html:129 msgid "File name" msgstr "Tên file" -#: templates/test_formatter/edit_test_formatter.html:127 +#: templates/test_formatter/edit_test_formatter.html:133 msgid "Convert" msgstr "Chuyển đổi" -#: templates/test_formatter/test_formatter.html:8 +#: templates/test_formatter/test_formatter.html:17 msgid "Upload" msgstr "Tải lên" @@ -6071,6 +6081,11 @@ msgstr "Thông tin" msgid "Check all" msgstr "Chọn tất cả" +#, fuzzy +#~| msgid "From the web" +#~ msgid "From the Web" +#~ msgstr "Từ web" + #~ msgid "on {time}" #~ msgstr "vào {time}" diff --git a/resources/common.js b/resources/common.js index 333635a..8584905 100644 --- a/resources/common.js +++ b/resources/common.js @@ -400,14 +400,8 @@ function onWindowReady() { }); setTimeout(() => { - $("[data-src]img").each(function() { - $(this).attr("src", $(this).attr("data-src")); - }) - $("[data-src]iframe").each(function() { - $(this).attr("src", $(this).attr("data-src")); - }) register_markdown_editors(); - }, "100"); + }, 100); $('form').submit(function (evt) { // Prevent multiple submissions of forms, see #565 diff --git a/resources/dmmd-preview.js b/resources/dmmd-preview.js index 4efdc88..2646503 100644 --- a/resources/dmmd-preview.js +++ b/resources/dmmd-preview.js @@ -23,12 +23,6 @@ $(function () { csrfmiddlewaretoken: $.cookie('csrftoken') }, function (result) { $content.html(result); - $(".dmmd-preview-content [data-src]img").each(function() { - $(this).attr("src", $(this).attr("data-src")); - }) - $(".dmmd-preview-content [data-src]iframe").each(function() { - $(this).attr("src", $(this).attr("data-src")); - }) $preview.addClass('dmmd-preview-has-content').removeClass('dmmd-preview-stale'); renderKatex($content[0]); }); diff --git a/resources/problem.scss b/resources/problem.scss index ff2d615..446bb22 100644 --- a/resources/problem.scss +++ b/resources/problem.scss @@ -73,7 +73,7 @@ } .filter-form-group { - margin-top: 5px; + margin-top: 15px; } } diff --git a/templates/comments/media-js.html b/templates/comments/media-js.html index b374efb..a862607 100644 --- a/templates/comments/media-js.html +++ b/templates/comments/media-js.html @@ -211,10 +211,10 @@ $comments.find('a.edit-link').featherlight({ afterOpen: function () { register_dmmd_preview($('#id-edit-comment-body-preview')); + register_markdown_editors(); if ('DjangoPagedown' in window) { var $wmd = $('.featherlight .wmd-wrapper'); if ($wmd.length) { - window.DjangoPagedown.createEditor($wmd.get(0)); if ('MathJax' in window) { var preview = $('.featherlight div.wmd-preview')[0]; renderKatex(preview); diff --git a/templates/organization/list.html b/templates/organization/list.html index 65debd0..e387daa 100644 --- a/templates/organization/list.html +++ b/templates/organization/list.html @@ -32,7 +32,7 @@
{% for org in queryset %} - + {{ org.name }} {{ org.member_count }} {{_('members')}} diff --git a/templates/pagedown.html b/templates/pagedown.html index 294b77d..c02c941 100644 --- a/templates/pagedown.html +++ b/templates/pagedown.html @@ -12,23 +12,24 @@ {% endif %} {% if image_upload_enabled %}
-

Insert Image

+

{{_("Insert Image")}}

- +
+
- +
{% endif %} diff --git a/templates/problem/problem.html b/templates/problem/problem.html index 348ffdf..b550602 100644 --- a/templates/problem/problem.html +++ b/templates/problem/problem.html @@ -224,6 +224,36 @@
{% endif %} +{% if problem.language_time_limit or problem.language_memory_limit %} +
+{% endif %} +{% if problem.language_time_limit %} +
+ {{ _('Time limit:') }} +
+
+ {% for name, limit in problem.language_time_limit %} +
+ {{ name }} + {{ limit }}s +
+ {% endfor %} +
+{% endif %} +{% if problem.language_memory_limit %} +
+ {{ _('Memory limit:') }} +
+
+ {% for name, limit in problem.language_memory_limit %} +
+ {{ name }} + {{ limit|kbsimpleformat }} +
+ {% endfor %} +
+{% endif%} +
{% cache 86400 'problem_authors' problem.id LANGUAGE_CODE %} diff --git a/templates/problem/search-form.html b/templates/problem/search-form.html index 97a3c35..81dfa4c 100644 --- a/templates/problem/search-form.html +++ b/templates/problem/search-form.html @@ -84,8 +84,10 @@ {% if point_values %} -
{{ _('Point range') }}
-
+
+
{{ _('Point range') }}
+
+
{% endif %} diff --git a/templates/recent-organization.html b/templates/recent-organization.html index 54f938f..95b5ee1 100644 --- a/templates/recent-organization.html +++ b/templates/recent-organization.html @@ -22,7 +22,7 @@