Fix random frontend (problem info, lazy load img, comment pagedown)

This commit is contained in:
cuom1999 2024-02-26 14:31:33 -06:00
parent 7bba448ef5
commit 3f53c62d4d
11 changed files with 131 additions and 96 deletions

View file

@ -88,6 +88,7 @@ ALLOWED_ATTRS = [
"frameborder", "frameborder",
"allow", "allow",
"allowfullscreen", "allowfullscreen",
"loading",
] ]
@ -105,11 +106,9 @@ def markdown(value, lazy_load=False):
soup = BeautifulSoup(html, features="html.parser") soup = BeautifulSoup(html, features="html.parser")
for img in soup.findAll("img"): for img in soup.findAll("img"):
if img.get("src"): if img.get("src"):
img["data-src"] = img["src"] img["loading"] = "lazy"
img["src"] = ""
for img in soup.findAll("iframe"): for img in soup.findAll("iframe"):
if img.get("src"): if img.get("src"):
img["data-src"] = img["src"] img["loading"] = "lazy"
img["src"] = ""
html = str(soup) html = str(soup)
return '<div class="md-typeset content-description">%s</div>' % html return '<div class="md-typeset content-description">%s</div>' % html

View file

@ -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: 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" "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"
@ -18,23 +18,23 @@ msgstr ""
"X-Crowdin-Project-ID: 466004\n" "X-Crowdin-Project-ID: 466004\n"
"X-Crowdin-File-ID: 5\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" msgid "last seen"
msgstr "xem lần cuối" 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/admin/interface.py:150 judge/models/contest.py:647
#: judge/models/contest.py:853 judge/models/course.py:129 #: 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" msgid "user"
msgstr "người dùng" 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 #: judge/models/notification.py:17
msgid "posted time" msgid "posted time"
msgstr "thời gian đăng" 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" msgid "body of comment"
msgstr "nội dung bình luận" msgstr "nội dung bình luận"
@ -42,11 +42,11 @@ msgstr "nội dung bình luận"
msgid "LQDOJ Chat" msgid "LQDOJ Chat"
msgstr "" msgstr ""
#: chat_box/views.py:441 #: chat_box/views.py:444
msgid "Recent" msgid "Recent"
msgstr "Gần đây" 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/comments/content-list.html:77
#: templates/contest/contest-list-tabs.html:4 #: templates/contest/contest-list-tabs.html:4
#: templates/contest/ranking-table.html:47 templates/course/left_sidebar.html:8 #: 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." 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: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" msgid "organization"
msgstr "" msgstr ""
@ -2152,35 +2152,35 @@ msgstr "Background tự chọn"
msgid "CSS custom background properties: url(\"image_url\"), color, etc" msgid "CSS custom background properties: url(\"image_url\"), color, etc"
msgstr "CSS background tự chọn. Ví dụ: url(\"image_url\"), white, ..." 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" msgid "user profile"
msgstr "thông tin người dùng" msgstr "thông tin người dùng"
#: judge/models/profile.py:424 #: judge/models/profile.py:413
msgid "user profiles" msgid "user profiles"
msgstr "thông tin người dùng" msgstr "thông tin người dùng"
#: judge/models/profile.py:440 #: judge/models/profile.py:429
msgid "request time" msgid "request time"
msgstr "thời gian đăng ký" msgstr "thời gian đăng ký"
#: judge/models/profile.py:443 #: judge/models/profile.py:432
msgid "state" msgid "state"
msgstr "trạng thái" msgstr "trạng thái"
#: judge/models/profile.py:450 #: judge/models/profile.py:439
msgid "reason" msgid "reason"
msgstr "lý do" msgstr "lý do"
#: judge/models/profile.py:453 #: judge/models/profile.py:442
msgid "organization join request" msgid "organization join request"
msgstr "đơn đăng ký tham gia" msgstr "đơn đăng ký tham gia"
#: judge/models/profile.py:454 #: judge/models/profile.py:443
msgid "organization join requests" msgid "organization join requests"
msgstr "đơn đăng ký tham gia" msgstr "đơn đăng ký tham gia"
#: judge/models/profile.py:516 #: judge/models/profile.py:505
#, fuzzy #, fuzzy
#| msgid "last seen" #| msgid "last seen"
msgid "last visit" 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/contest/tag-title.html:9 templates/flatpages/admin_link.html:3
#: templates/license.html:10 templates/problem/editorial.html:15 #: templates/license.html:10 templates/problem/editorial.html:15
#: templates/problem/feed/problems.html:50 #: templates/problem/feed/problems.html:50
#: templates/test_formatter/download_test_formatter.html:77 #: templates/test_formatter/download_test_formatter.html:83
msgid "Edit" msgid "Edit"
msgstr "Chỉnh sửa" 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" msgid "All submissions"
msgstr "Tất cả bài nộp" 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" 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:546 #: judge/views/submission.py:547
#, 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:552 #: judge/views/submission.py:553
#, python-brace-format #, python-brace-format
msgid "All submissions by <a href=\"{1}\">{0}</a>" msgid "All submissions by <a href=\"{1}\">{0}</a>"
msgstr "Tất cả bài nộp của <a href=\"{1}\">{0}</a>" msgstr "Tất cả bài nộp của <a href=\"{1}\">{0}</a>"
#: judge/views/submission.py:573 #: judge/views/submission.py:574
#, fuzzy #, fuzzy
#| msgid "All submissions" #| msgid "All submissions"
msgid "All friend submissions" msgid "All friend submissions"
msgstr "Tất cả bài nộp" msgstr "Tất cả bài nộp"
#: judge/views/submission.py:602 #: judge/views/submission.py:603
#, 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:630 #: judge/views/submission.py:631
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:688 #: judge/views/submission.py:689
#, 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:689 #: judge/views/submission.py:690
#, 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:825 #: judge/views/submission.py:826
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:855 #: judge/views/submission.py:856
#, 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="
@ -3510,7 +3510,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:867 #: judge/views/submission.py:868
#, 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}"
@ -3519,15 +3519,15 @@ 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:1001 #: judge/views/submission.py:1002
#, 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."
msgstr "Bạn không có quyền chấm lại bài." 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:64
#: judge/views/test_formatter/test_formatter.py:104 #: judge/views/test_formatter/test_formatter.py:107
#: judge/views/test_formatter/test_formatter.py:187 #: judge/views/test_formatter/test_formatter.py:190
#, fuzzy #, fuzzy
#| msgid "contest format" #| msgid "contest format"
msgid "Test Formatter" msgid "Test Formatter"
@ -3628,7 +3628,7 @@ msgstr "Chỉnh sửa thông tin"
msgid "Leaderboard" msgid "Leaderboard"
msgstr "Xếp hạng" msgstr "Xếp hạng"
#: judge/views/user.py:543 #: judge/views/user.py:542
msgid "Import Users" msgid "Import Users"
msgstr "" msgstr ""
@ -3812,7 +3812,7 @@ msgid "You have no ticket"
msgstr "Bạn không có báo cáo" msgstr "Bạn không có báo cáo"
#: templates/blog/list.html:72 templates/problem/list.html:150 #: templates/blog/list.html:72 templates/problem/list.html:150
#: templates/problem/problem.html:390 #: templates/problem/problem.html:408
msgid "Clarifications" msgid "Clarifications"
msgstr "Thông báo" msgstr "Thông báo"
@ -3821,7 +3821,7 @@ msgid "Add"
msgstr "Thêm mới" msgstr "Thêm mới"
#: templates/blog/list.html:97 templates/problem/list.html:172 #: 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." msgid "No clarifications have been made at this time."
msgstr "Không có thông báo nào." 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/blog/edit.html:36
#: templates/organization/contest/add.html:36 #: templates/organization/contest/add.html:36
#: templates/organization/contest/edit.html:86 #: templates/organization/contest/edit.html:86
#: templates/organization/form.html:23 #: templates/organization/form.html:23 templates/pagedown.html:31
msgid "Save" msgid "Save"
msgstr "Lưu" msgstr "Lưu"
@ -4503,6 +4503,7 @@ msgstr "Tải file lên"
#: templates/fine_uploader/script.html:23 #: templates/fine_uploader/script.html:23
#: templates/markdown_editor/markdown_editor.html:124 #: templates/markdown_editor/markdown_editor.html:124
#: templates/pagedown.html:32
msgid "Cancel" msgid "Cancel"
msgstr "Hủy" msgstr "Hủy"
@ -4572,14 +4573,17 @@ msgid "Update Preview"
msgstr "Cập nhật xem trước" msgstr "Cập nhật xem trước"
#: templates/markdown_editor/markdown_editor.html:108 #: templates/markdown_editor/markdown_editor.html:108
#: templates/pagedown.html:15
msgid "Insert Image" msgid "Insert Image"
msgstr "Chèn hình ảnh" msgstr "Chèn hình ảnh"
#: templates/markdown_editor/markdown_editor.html:111 #: templates/markdown_editor/markdown_editor.html:111
#: templates/pagedown.html:18
msgid "From the web" msgid "From the web"
msgstr "Từ web" msgstr "Từ web"
#: templates/markdown_editor/markdown_editor.html:117 #: templates/markdown_editor/markdown_editor.html:117
#: templates/pagedown.html:25
msgid "From your computer" msgid "From your computer"
msgstr "Từ máy tính của bạn" msgstr "Từ máy tính của bạn"
@ -4761,7 +4765,7 @@ msgstr "Xem YAML"
msgid "Autofill testcases" msgid "Autofill testcases"
msgstr "Tự động điền test" 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 "Problem type"
msgid_plural "Problem types" msgid_plural "Problem types"
msgstr[0] "Dạng bài" msgstr[0] "Dạng bài"
@ -5043,66 +5047,66 @@ msgstr "Quản lý bài nộp"
msgid "Clone problem" msgid "Clone problem"
msgstr "Nhân bản bài" msgstr "Nhân bản bài"
#: templates/problem/problem.html:234 #: templates/problem/problem.html:252
msgid "Author:" msgid "Author:"
msgid_plural "Authors:" msgid_plural "Authors:"
msgstr[0] "Tác giả:" msgstr[0] "Tác giả:"
#: templates/problem/problem.html:262 #: templates/problem/problem.html:280
msgid "Allowed languages" msgid "Allowed languages"
msgstr "Ngôn ngữ cho phép" msgstr "Ngôn ngữ cho phép"
#: templates/problem/problem.html:270 #: templates/problem/problem.html:288
#, python-format #, python-format
msgid "No %(lang)s judge online" msgid "No %(lang)s judge online"
msgstr "Không có máy chấm cho %(lang)s" 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 #: templates/status/judge-status-table.html:2
msgid "Judge" msgid "Judge"
msgid_plural "Judges" msgid_plural "Judges"
msgstr[0] "Máy chấm" msgstr[0] "Máy chấm"
#: templates/problem/problem.html:300 #: templates/problem/problem.html:318
msgid "none available" msgid "none available"
msgstr "Bài này chưa có máy chấm" msgstr "Bài này chưa có máy chấm"
#: templates/problem/problem.html:312 #: templates/problem/problem.html:330
#, python-format #, python-format
msgid "This problem has %(length)s clarification(s)" msgid "This problem has %(length)s clarification(s)"
msgstr "Bài này có %(length)s thông báo" msgstr "Bài này có %(length)s thông báo"
#: templates/problem/problem.html:320 #: templates/problem/problem.html:338
msgid "Points:" msgid "Points:"
msgstr "Điểm:" msgstr "Điểm:"
#: templates/problem/problem.html:331 #: templates/problem/problem.html:349
msgid "Time limit:" msgid "Time limit:"
msgstr "Thời gian:" msgstr "Thời gian:"
#: templates/problem/problem.html:336 #: templates/problem/problem.html:354
msgid "Memory limit:" msgid "Memory limit:"
msgstr "Bộ nhớ:" 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 #: templates/submission/status-testcases.html:155
msgid "Input:" msgid "Input:"
msgstr "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" msgid "stdin"
msgstr "bàn phím" 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 #: templates/submission/status-testcases.html:159
msgid "Output:" msgid "Output:"
msgstr "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" msgid "stdout"
msgstr "màn hình" msgstr "màn hình"
#: templates/problem/problem.html:376 #: templates/problem/problem.html:394
msgid "Request clarification" msgid "Request clarification"
msgstr "Yêu cầu làm rõ đề" msgstr "Yêu cầu làm rõ đề"
@ -5152,16 +5156,16 @@ msgstr "Hiển thị hướng dẫn"
msgid "All" msgid "All"
msgstr "Tất cả" msgstr "Tất cả"
#: templates/problem/search-form.html:87 #: templates/problem/search-form.html:88
msgid "Point range" msgid "Point range"
msgstr "Mốc điểm" 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 #: templates/ticket/list.html:250
msgid "Go" msgid "Go"
msgstr "Lọc" msgstr "Lọc"
#: templates/problem/search-form.html:94 #: templates/problem/search-form.html:96
msgid "Random" msgid "Random"
msgstr "Ngẫu nhiên" msgstr "Ngẫu nhiên"
@ -5690,43 +5694,49 @@ msgstr "pretests"
msgid "main tests" msgid "main tests"
msgstr "test chính thức" msgstr "test chính thức"
#: templates/test_formatter/download_test_formatter.html:69 #: templates/test_formatter/download_test_formatter.html:75
#: templates/test_formatter/download_test_formatter.html:76 #: templates/test_formatter/download_test_formatter.html:82
#: templates/test_formatter/edit_test_formatter.html:128 #: templates/test_formatter/edit_test_formatter.html:134
msgid "Download" msgid "Download"
msgstr "Tải xuống" 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" msgid "Before"
msgstr "Trước" msgstr "Trước"
#: templates/test_formatter/edit_test_formatter.html:100 #: templates/test_formatter/edit_test_formatter.html:106
#: templates/test_formatter/edit_test_formatter.html:108 #: templates/test_formatter/edit_test_formatter.html:114
msgid "Input format" msgid "Input format"
msgstr "Định dạng đầu vào" msgstr "Định dạng đầu vào"
#: templates/test_formatter/edit_test_formatter.html:102 #: templates/test_formatter/edit_test_formatter.html:108
#: templates/test_formatter/edit_test_formatter.html:110 #: templates/test_formatter/edit_test_formatter.html:116
msgid "Output format" msgid "Output format"
msgstr "Định dạng đầu ra" msgstr "Định dạng đầu ra"
#: templates/test_formatter/edit_test_formatter.html:107 #: templates/test_formatter/edit_test_formatter.html:113
msgid "After" msgid "After"
msgstr "Sau" msgstr "Sau"
#: templates/test_formatter/edit_test_formatter.html:116 #: templates/test_formatter/edit_test_formatter.html:122
msgid "Preview" msgid "Preview"
msgstr "Xem trước" msgstr "Xem trước"
#: templates/test_formatter/edit_test_formatter.html:123 #: templates/test_formatter/edit_test_formatter.html:129
msgid "File name" msgid "File name"
msgstr "Tên file" msgstr "Tên file"
#: templates/test_formatter/edit_test_formatter.html:127 #: templates/test_formatter/edit_test_formatter.html:133
msgid "Convert" msgid "Convert"
msgstr "Chuyển đổi" msgstr "Chuyển đổi"
#: templates/test_formatter/test_formatter.html:8 #: templates/test_formatter/test_formatter.html:17
msgid "Upload" msgid "Upload"
msgstr "Tải lên" msgstr "Tải lên"
@ -6071,6 +6081,11 @@ msgstr "Thông tin"
msgid "Check all" msgid "Check all"
msgstr "Chọn tất cả" msgstr "Chọn tất cả"
#, fuzzy
#~| msgid "From the web"
#~ msgid "From the Web"
#~ msgstr "Từ web"
#~ msgid "on {time}" #~ msgid "on {time}"
#~ msgstr "vào {time}" #~ msgstr "vào {time}"

View file

@ -400,14 +400,8 @@ function onWindowReady() {
}); });
setTimeout(() => { 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(); register_markdown_editors();
}, "100"); }, 100);
$('form').submit(function (evt) { $('form').submit(function (evt) {
// Prevent multiple submissions of forms, see #565 // Prevent multiple submissions of forms, see #565

View file

@ -23,12 +23,6 @@ $(function () {
csrfmiddlewaretoken: $.cookie('csrftoken') csrfmiddlewaretoken: $.cookie('csrftoken')
}, function (result) { }, function (result) {
$content.html(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'); $preview.addClass('dmmd-preview-has-content').removeClass('dmmd-preview-stale');
renderKatex($content[0]); renderKatex($content[0]);
}); });

View file

@ -73,7 +73,7 @@
} }
.filter-form-group { .filter-form-group {
margin-top: 5px; margin-top: 15px;
} }
} }

View file

@ -211,10 +211,10 @@
$comments.find('a.edit-link').featherlight({ $comments.find('a.edit-link').featherlight({
afterOpen: function () { afterOpen: function () {
register_dmmd_preview($('#id-edit-comment-body-preview')); register_dmmd_preview($('#id-edit-comment-body-preview'));
register_markdown_editors();
if ('DjangoPagedown' in window) { if ('DjangoPagedown' in window) {
var $wmd = $('.featherlight .wmd-wrapper'); var $wmd = $('.featherlight .wmd-wrapper');
if ($wmd.length) { if ($wmd.length) {
window.DjangoPagedown.createEditor($wmd.get(0));
if ('MathJax' in window) { if ('MathJax' in window) {
var preview = $('.featherlight div.wmd-preview')[0]; var preview = $('.featherlight div.wmd-preview')[0];
renderKatex(preview); renderKatex(preview);

View file

@ -32,7 +32,7 @@
<div class="organization-container toggled"> <div class="organization-container toggled">
{% for org in queryset %} {% for org in queryset %}
<a href="{{ org.get_absolute_url() }}" class="organization-row" title="{{org.about}}"> <a href="{{ org.get_absolute_url() }}" class="organization-row" title="{{org.about}}">
<img class="org-logo" data-src="{{ org.logo_override_image or static('icons/icon.png') }}"> <img class="org-logo" loading="lazy" src="{{ org.logo_override_image or static('icons/icon.png') }}">
<span style="margin-right: auto">{{ org.name }}</span> <span style="margin-right: auto">{{ org.name }}</span>
<span style="font-weight: normal"><i>{{ org.member_count }} {{_('members')}}</i></span> <span style="font-weight: normal"><i>{{ org.member_count }} {{_('members')}}</i></span>
</a> </a>

View file

@ -12,23 +12,24 @@
{% endif %} {% endif %}
{% if image_upload_enabled %} {% if image_upload_enabled %}
<div class="pagedown-image-upload"> <div class="pagedown-image-upload">
<h2>Insert Image</h2> <h2>{{_("Insert Image")}}</h2>
<div class="form-row"> <div class="form-row">
<div> <div>
<label class="label">From the web</label> <label class="label">{{_("From the web")}}</label>
<input class="url-input" type="text" placeholder="http://" /> <input class="url-input" type="text" placeholder="http://" />
</div> </div>
</div> </div>
<br>
<div class="form-row"> <div class="form-row">
<div> <div>
<label class="label">From your computer</label> <label class="label">{{_("From your computer")}}</label>
<input class="file-input" type="file" name="image" id="file" data-action="{{ url('pagedown-image-upload') }}" accept="image/*"/> <input class="file-input" type="file" name="image" id="file" data-action="{{ url('pagedown-image-upload') }}" accept="image/*"/>
</div> </div>
</div> </div>
<div class="submit-row"> <div class="submit-row">
<div class="submit-loading"></div> <div class="submit-loading"></div>
<input class="submit-input show" type="submit" value="Save" name="_addanother"> <input class="submit-input show small" type="submit" value="{{_('Save')}}" name="_addanother">
<p class="deletelink-box"><a href="#" class="close-image-upload deletelink">Cancel</a></p> <p class="deletelink-box"><a href="#" class="close-image-upload deletelink">{{_("Cancel")}}</a></p>
</div> </div>
</div> </div>
{% endif %} {% endif %}

View file

@ -224,6 +224,36 @@
</div> </div>
{% endif %} {% endif %}
{% if problem.language_time_limit or problem.language_memory_limit %}
<hr style="padding-top: 0.3em">
{% endif %}
{% if problem.language_time_limit %}
<div class="problem-info-entry">
<i class="fa fa-clock-o fa-fw"></i><span class="pi-name">{{ _('Time limit:') }}</span>
</div>
<div class="problem-lang-limits">
{% for name, limit in problem.language_time_limit %}
<div class="lang-limit">
<span class="lang-name">{{ name }}</span>
<span class="lang-tl">{{ limit }}s</span>
</div>
{% endfor %}
</div>
{% endif %}
{% if problem.language_memory_limit %}
<div class="problem-info-entry">
<i class="fa fa-server fa-fw"></i><span class="pi-name">{{ _('Memory limit:') }}</span>
</div>
<div class="problem-lang-limits">
{% for name, limit in problem.language_memory_limit %}
<div class="lang-limit">
<span class="lang-name">{{ name }}</span>
<span class="lang-ml">{{ limit|kbsimpleformat }}</span>
</div>
{% endfor %}
</div>
{% endif%}
<hr style="padding-top: 0.7em"> <hr style="padding-top: 0.7em">
{% cache 86400 'problem_authors' problem.id LANGUAGE_CODE %} {% cache 86400 'problem_authors' problem.id LANGUAGE_CODE %}

View file

@ -84,8 +84,10 @@
</select> </select>
</div> </div>
{% if point_values %} {% if point_values %}
<div style="margin-top: 5px;" class="bold-text margin-label" class="form-label">{{ _('Point range') }}</div> <div class="filter-form-group">
<div id="point-slider"></div> <div class="bold-text margin-label" class="form-label">{{ _('Point range') }}</div>
<div id="point-slider"></div>
</div>
{% endif %} {% endif %}
<input id="point-start" type="hidden" name="point_start" {% if point_start and point_start != point_values.min %}value="{{ point_start }}"{% else %}disabled{% endif %}> <input id="point-start" type="hidden" name="point_start" {% if point_start and point_start != point_values.min %}value="{{ point_start }}"{% else %}disabled{% endif %}>
<input id="point-end" type="hidden" name="point_end" {% if point_end and point_end != point_values.max %}value="{{ point_end }}"{% else %}disabled{% endif %}> <input id="point-end" type="hidden" name="point_end" {% if point_end and point_end != point_values.max %}value="{{ point_end }}"{% else %}disabled{% endif %}>

View file

@ -22,7 +22,7 @@
<div class="toggled sidebox-content"> <div class="toggled sidebox-content">
{% for organization in recent_organizations %} {% for organization in recent_organizations %}
<a href="{{ url('organization_home', organization.organization.pk, organization.organization.slug) }}" class="organization-row" title="{{organization.organization.about}}"> <a href="{{ url('organization_home', organization.organization.pk, organization.organization.slug) }}" class="organization-row" title="{{organization.organization.about}}">
<img class="org-logo" data-src="{{ organization.organization.logo_override_image or static('icons/icon.png') }}"> <img class="org-logo" loading="lazy" src="{{ organization.organization.logo_override_image or static('icons/icon.png') }}">
<span style="word-break: break-word;">{{ organization.organization }}</span> <span style="word-break: break-word;">{{ organization.organization }}</span>
</a> </a>
{% endfor %} {% endfor %}