Redesign org list

This commit is contained in:
cuom1999 2022-06-18 14:32:37 +07:00
parent cd5672abf0
commit 289e9ab7db
5 changed files with 238 additions and 185 deletions

View file

@ -6,12 +6,24 @@ from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('judge', '0126_languagetemplate'),
("judge", "0126_languagetemplate"),
]
operations = [
migrations.AlterModelOptions(
name='submission',
options={'permissions': (('abort_any_submission', 'Abort any submission'), ('rejudge_submission', 'Rejudge the submission'), ('rejudge_submission_lot', 'Rejudge a lot of submissions'), ('spam_submission', 'Submit without limit'), ('view_all_submission', 'View all submission'), ('resubmit_other', "Resubmit others' submission"), ('view_public_submission', 'View public submissions')), 'verbose_name': 'submission', 'verbose_name_plural': 'submissions'},
name="submission",
options={
"permissions": (
("abort_any_submission", "Abort any submission"),
("rejudge_submission", "Rejudge the submission"),
("rejudge_submission_lot", "Rejudge a lot of submissions"),
("spam_submission", "Submit without limit"),
("view_all_submission", "View all submission"),
("resubmit_other", "Resubmit others' submission"),
("view_public_submission", "View public submissions"),
),
"verbose_name": "submission",
"verbose_name_plural": "submissions",
},
),
]

View file

@ -238,9 +238,16 @@ class OrganizationList(TitleMixin, ListView, OrganizationBase):
def get_context_data(self, **kwargs):
context = super(OrganizationList, self).get_context_data(**kwargs)
context["my_organizations"] = []
context["page_type"] = "organizations"
if self.request.profile:
context["my_organizations"] = self.request.profile.organizations.all()
context["my_organizations"] = context["organizations"].filter(
id__in=self.request.profile.organizations.values("id")
)
other_organizations = context["organizations"].exclude(
id__in=context["my_organizations"]
)
context["open_organizations"] = other_organizations.filter(is_open=True)
context["private_organizations"] = other_organizations.filter(is_open=False)
return context

View file

@ -88,7 +88,9 @@ class SubmissionDetailBase(LoginRequiredMixin, TitleMixin, SubmissionMixin, Deta
problem = submission.problem
if self.request.user.has_perm("judge.view_all_submission"):
return submission
if problem.is_public and self.request.user.has_perm("judge.view_public_submission"):
if problem.is_public and self.request.user.has_perm(
"judge.view_public_submission"
):
return submission
if submission.user_id == profile.id:
return submission

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: lqdoj2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 12:37+0700\n"
"POT-Creation-Date: 2022-06-18 14:29+0700\n"
"PO-Revision-Date: 2021-07-20 03:44\n"
"Last-Translator: Icyene\n"
"Language-Team: Vietnamese\n"
@ -175,7 +175,7 @@ msgstr ""
msgid "Access"
msgstr "Truy cập"
#: judge/admin/contest.py:203 judge/admin/problem.py:192
#: judge/admin/contest.py:203 judge/admin/problem.py:207
msgid "Justice"
msgstr "Xử phạt"
@ -247,24 +247,24 @@ msgstr ""
msgid "diff"
msgstr ""
#: judge/admin/organization.py:59 judge/admin/problem.py:254
#: judge/admin/organization.py:59 judge/admin/problem.py:264
#: judge/admin/profile.py:116
msgid "View on site"
msgstr "Xem trên trang"
#: judge/admin/problem.py:48
#: judge/admin/problem.py:50
msgid "Describe the changes you made (optional)"
msgstr "Mô tả các thay đổi (tùy chọn)"
#: judge/admin/problem.py:185
#: judge/admin/problem.py:200
msgid "Social Media"
msgstr "Mạng Xã Hội"
#: judge/admin/problem.py:188
#: judge/admin/problem.py:203
msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:189 judge/admin/problem.py:407
#: judge/admin/problem.py:204 judge/admin/problem.py:393
#: templates/contest/contest.html:84 templates/problem/data.html:476
#: templates/problem/list.html:20 templates/problem/list.html:44
#: templates/user/base-users-table.html:10 templates/user/user-about.html:36
@ -272,65 +272,65 @@ msgstr ""
msgid "Points"
msgstr "Điểm"
#: judge/admin/problem.py:190
#: judge/admin/problem.py:205
msgid "Limits"
msgstr "Giới hạn"
#: judge/admin/problem.py:191 judge/admin/submission.py:353
#: judge/admin/problem.py:206 judge/admin/submission.py:353
#: templates/stats/base.html:14 templates/submission/list.html:342
msgid "Language"
msgstr "Ngôn ngữ"
#: judge/admin/problem.py:193
#: judge/admin/problem.py:208
msgid "History"
msgstr "Lịch sử"
#: judge/admin/problem.py:250 templates/problem/list-base.html:98
#: judge/admin/problem.py:260 templates/problem/list-base.html:98
msgid "Authors"
msgstr "Các tác giả"
#: judge/admin/problem.py:271
#: judge/admin/problem.py:281
#, python-format
msgid "%d problem successfully marked as public."
msgid_plural "%d problems successfully marked as public."
msgstr[0] "%d bài tập đã được đánh dấu công khai."
#: judge/admin/problem.py:278
#: judge/admin/problem.py:288
msgid "Mark problems as public"
msgstr "Công khai bài tập"
#: judge/admin/problem.py:287
#: judge/admin/problem.py:297
#, python-format
msgid "%d problem successfully marked as private."
msgid_plural "%d problems successfully marked as private."
msgstr[0] "%d bài tập đã được đánh dấu riêng tư."
#: judge/admin/problem.py:294
#: judge/admin/problem.py:304
msgid "Mark problems as private"
msgstr "Đánh dấu các bài tập là riêng tư"
#: judge/admin/problem.py:401 judge/admin/submission.py:316
#: judge/admin/problem.py:387 judge/admin/submission.py:316
#: templates/problem/list.html:16 templates/problem/list.html:33
msgid "Problem code"
msgstr "Mã bài"
#: judge/admin/problem.py:413 judge/admin/submission.py:322
#: judge/admin/problem.py:399 judge/admin/submission.py:322
msgid "Problem name"
msgstr "Tên bài"
#: judge/admin/problem.py:419
#: judge/admin/problem.py:405
#, fuzzy
#| msgid "contest rating"
msgid "Voter rating"
msgstr "rating kỳ thi"
#: judge/admin/problem.py:425
#: judge/admin/problem.py:411
#, fuzzy
#| msgid "Total points"
msgid "Voter point"
msgstr "Tổng điểm"
#: judge/admin/problem.py:431
#: judge/admin/problem.py:417
msgid "Vote"
msgstr ""
@ -520,7 +520,7 @@ msgstr "Đăng ký để nhận thông báo về các kỳ thi"
msgid "Enable experimental features"
msgstr "Sử dụng các tính năng thử nghiệm"
#: judge/forms.py:86 judge/views/organization.py:449 judge/views/register.py:68
#: judge/forms.py:86 judge/views/organization.py:454 judge/views/register.py:68
#, python-brace-format
msgid "You may not be part of more than {count} public groups."
msgstr "Bạn không thể tham gia nhiều hơn {count} nhóm công khai."
@ -626,7 +626,7 @@ msgstr "người bình luận"
msgid "associated page"
msgstr "trang tương ứng"
#: judge/models/comment.py:53 judge/models/problem.py:696
#: judge/models/comment.py:53 judge/models/problem.py:714
msgid "votes"
msgstr "bình chọn"
@ -646,7 +646,7 @@ msgstr "bình luận"
msgid "comments"
msgstr ""
#: judge/models/comment.py:160 judge/models/problem.py:664
#: judge/models/comment.py:160 judge/models/problem.py:682
#, python-format
msgid "Editorial for %s"
msgstr ""
@ -1085,7 +1085,7 @@ msgstr "lần tham gia kỳ thi"
#: judge/models/contest.py:739 judge/models/contest.py:783
#: judge/models/contest.py:845 judge/models/problem.py:576
#: judge/models/problem.py:583 judge/models/problem.py:614
#: judge/models/problem_data.py:49
#: judge/models/problem.py:645 judge/models/problem_data.py:49
msgid "problem"
msgstr "bài tập"
@ -1130,7 +1130,7 @@ msgstr "bài trong kỳ thi"
msgid "contest problems"
msgstr "bài trong kỳ thi"
#: judge/models/contest.py:777 judge/models/submission.py:234
#: judge/models/contest.py:777 judge/models/submission.py:235
msgid "submission"
msgstr "bài nộp"
@ -1222,7 +1222,7 @@ msgstr "mục cha"
msgid "post title"
msgstr "tiêu đề bài đăng"
#: judge/models/interface.py:75 judge/models/problem.py:653
#: judge/models/interface.py:75 judge/models/problem.py:671
msgid "authors"
msgstr "tác giả"
@ -1230,7 +1230,7 @@ msgstr "tác giả"
msgid "slug"
msgstr "slug"
#: judge/models/interface.py:77 judge/models/problem.py:651
#: judge/models/interface.py:77 judge/models/problem.py:669
msgid "public visibility"
msgstr "khả năng hiển thị công khai"
@ -1501,7 +1501,7 @@ msgid "If private, only these organizations may see the problem."
msgstr ""
#: judge/models/problem.py:588 judge/models/problem.py:619
#: judge/models/runtime.py:161
#: judge/models/problem.py:650 judge/models/runtime.py:161
msgid "language"
msgstr ""
@ -1541,41 +1541,53 @@ msgstr ""
msgid "language-specific resource limits"
msgstr ""
#: judge/models/problem.py:646
#: judge/models/problem.py:652 judge/models/submission.py:246
msgid "source code"
msgstr "mã nguồn"
#: judge/models/problem.py:656
msgid "language-specific template"
msgstr ""
#: judge/models/problem.py:657
msgid "language-specific templates"
msgstr ""
#: judge/models/problem.py:664
msgid "associated problem"
msgstr ""
#: judge/models/problem.py:652
#: judge/models/problem.py:670
msgid "publish date"
msgstr ""
#: judge/models/problem.py:654
#: judge/models/problem.py:672
msgid "editorial content"
msgstr "nội dung lời giải"
#: judge/models/problem.py:668
#: judge/models/problem.py:686
msgid "solution"
msgstr "lời giải"
#: judge/models/problem.py:669
#: judge/models/problem.py:687
msgid "solutions"
msgstr "lời giải"
#: judge/models/problem.py:674
#: judge/models/problem.py:692
#, fuzzy
#| msgid "point value"
msgid "proposed point value"
msgstr "điểm"
#: judge/models/problem.py:675
#: judge/models/problem.py:693
msgid "The amount of points you think this problem deserves."
msgstr ""
#: judge/models/problem.py:689
#: judge/models/problem.py:707
msgid "The time this vote was cast"
msgstr ""
#: judge/models/problem.py:695
#: judge/models/problem.py:713
msgid "vote"
msgstr ""
@ -2158,15 +2170,15 @@ msgstr "Lỗi máy chấm"
msgid "submission time"
msgstr "thời gian bài nộp"
#: judge/models/submission.py:69 judge/models/submission.py:264
#: judge/models/submission.py:69 judge/models/submission.py:265
msgid "execution time"
msgstr "thời gian chạy"
#: judge/models/submission.py:70 judge/models/submission.py:265
#: judge/models/submission.py:70 judge/models/submission.py:266
msgid "memory usage"
msgstr "bộ nhớ sử dụng"
#: judge/models/submission.py:72 judge/models/submission.py:266
#: judge/models/submission.py:72 judge/models/submission.py:267
msgid "points granted"
msgstr "điểm"
@ -2214,51 +2226,47 @@ msgstr "được chấm lại bởi admin"
msgid "was ran on pretests only"
msgstr "chỉ chấm pretest"
#: judge/models/submission.py:235 templates/contest/moss.html:58
#: judge/models/submission.py:236 templates/contest/moss.html:58
msgid "submissions"
msgstr "bài nộp"
#: judge/models/submission.py:242 judge/models/submission.py:256
#: judge/models/submission.py:243 judge/models/submission.py:257
msgid "associated submission"
msgstr "bài nộp tương ứng"
#: judge/models/submission.py:245
msgid "source code"
msgstr "mã nguồn"
#: judge/models/submission.py:260
#: judge/models/submission.py:261
msgid "test case ID"
msgstr "test case ID"
#: judge/models/submission.py:262
#: judge/models/submission.py:263
msgid "status flag"
msgstr ""
#: judge/models/submission.py:267
#: judge/models/submission.py:268
msgid "points possible"
msgstr ""
#: judge/models/submission.py:268
#: judge/models/submission.py:269
msgid "batch number"
msgstr "số thứ tự của nhóm"
#: judge/models/submission.py:270
#: judge/models/submission.py:271
msgid "judging feedback"
msgstr "phản hồi từ máy chấm"
#: judge/models/submission.py:273
#: judge/models/submission.py:274
msgid "extended judging feedback"
msgstr "phản hồi thêm từ máy chấm"
#: judge/models/submission.py:275
#: judge/models/submission.py:276
msgid "program output"
msgstr "output chương trình"
#: judge/models/submission.py:283
#: judge/models/submission.py:284
msgid "submission test case"
msgstr "cái testcase trong bài nộp"
#: judge/models/submission.py:284
#: judge/models/submission.py:285
msgid "submission test cases"
msgstr "cái testcase trong bài nộp"
@ -2493,8 +2501,8 @@ msgstr "Bạn phải giải ít nhất 1 bài trước khi được vote."
msgid "You already voted."
msgstr "Bạn đã vote."
#: judge/views/comment.py:153 judge/views/organization.py:749
#: judge/views/organization.py:841
#: judge/views/comment.py:153 judge/views/organization.py:754
#: judge/views/organization.py:846
msgid "Edited from site"
msgstr "Chỉnh sửa từ web"
@ -2703,58 +2711,58 @@ 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:229 judge/views/register.py:49
#: templates/contest/list.html:109 templates/organization/list.html:31
#: templates/problem/list-base.html:96 templates/user/user-left-sidebar.html:4
#: templates/user/user-list-tabs.html:6
#: templates/contest/list.html:109 templates/problem/list-base.html:96
#: templates/user/user-left-sidebar.html:4 templates/user/user-list-tabs.html:6
msgid "Groups"
msgstr "Nhóm"
#: judge/views/organization.py:304
#: judge/views/organization.py:307
#, python-format
msgid "%s Members"
msgstr "%s Thành viên"
#: judge/views/organization.py:407
#: judge/views/organization.py:410
#, python-brace-format
msgid "All submissions in <a href=\"{1}\">{0}</a>"
msgstr "Bài nộp trong <a href=\"{1}\">{0}</a>"
#: judge/views/organization.py:435 judge/views/organization.py:441
#: judge/views/organization.py:448
#: judge/views/organization.py:440 judge/views/organization.py:446
#: judge/views/organization.py:453
msgid "Joining group"
msgstr "Tham gia nhóm"
#: judge/views/organization.py:436
#: judge/views/organization.py:441
msgid "You are already in the group."
msgstr "Bạn đã ở trong nhóm."
#: judge/views/organization.py:441
#: judge/views/organization.py:446
msgid "This group is not open."
msgstr "Nhóm này là nhóm kín."
#: judge/views/organization.py:464
#: judge/views/organization.py:469
msgid "Leaving group"
msgstr "Rời nhóm"
#: judge/views/organization.py:465
#: judge/views/organization.py:470
#, python-format
msgid "You are not in \"%s\"."
msgstr "Bạn không ở trong \"%s\"."
#: judge/views/organization.py:490
#: judge/views/organization.py:495
#, python-format
msgid "Request to join %s"
msgstr "Đăng ký tham gia %s"
#: judge/views/organization.py:521
#: judge/views/organization.py:526
msgid "Join request detail"
msgstr "Chi tiết đơn đăng ký"
#: judge/views/organization.py:569
#: judge/views/organization.py:574
#, python-format
msgid "Managing join requests for %s"
msgstr "Quản lý đơn đăng ký cho %s"
#: judge/views/organization.py:609
#: judge/views/organization.py:614
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
@ -2763,129 +2771,129 @@ msgstr ""
"Tổ chức chỉ có thể chứa %d thành viên. Bạn không thể chấp thuận nhiều hơn %d "
"người."
#: judge/views/organization.py:627
#: judge/views/organization.py:632
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "Đã chấp thuận %d người."
#: judge/views/organization.py:630
#: judge/views/organization.py:635
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "Đã từ chối %d người."
#: judge/views/organization.py:670
#: judge/views/organization.py:675
#, python-format
msgid "Add member for %s"
msgstr "Thêm thành viên cho %s"
#: judge/views/organization.py:682
#: judge/views/organization.py:687
#, fuzzy
#| msgid "Edited from site"
msgid "Added members from site"
msgstr "Chỉnh sửa từ web"
#: judge/views/organization.py:702 judge/views/organization.py:710
#: judge/views/organization.py:707 judge/views/organization.py:715
msgid "Can't kick user"
msgstr "Không thể đuổi"
#: judge/views/organization.py:703
#: judge/views/organization.py:708
msgid "The user you are trying to kick does not exist!"
msgstr ""
#: judge/views/organization.py:711
#: judge/views/organization.py:716
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
#: judge/views/organization.py:732
#: judge/views/organization.py:737
#, fuzzy, python-format
#| msgid "Editing %s"
msgid "Edit %s"
msgstr "Đang chỉnh sửa %s"
#: judge/views/organization.py:771
#: judge/views/organization.py:776
#, python-format
msgid "Add blog for %s"
msgstr "Thêm bài đăng cho %s"
#: judge/views/organization.py:782
#: judge/views/organization.py:787
msgid "Added from site"
msgstr "Thêm từ web"
#: judge/views/organization.py:816
#: judge/views/organization.py:821
msgid "Permission denied"
msgstr "Truy cập bị từ chối"
#: judge/views/organization.py:817
#: judge/views/organization.py:822
msgid "Not allowed to edit this blog"
msgstr "Bạn không được phép chỉnh sửa bài đăng này."
#: judge/views/organization.py:836
#: judge/views/organization.py:841
#, python-format
msgid "Edit blog %s"
msgstr "Chỉnh sửa %s"
#: judge/views/organization.py:866
#: judge/views/organization.py:871
#, python-format
msgid "Pending blogs in %s"
msgstr "Bài đang đợi duyệt trong %s"
#: judge/views/problem.py:108
#: judge/views/problem.py:109
msgid "No such problem"
msgstr "Không có bài nào như vậy"
#: judge/views/problem.py:109
#: judge/views/problem.py:110
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr "Không tìm thấy bài tập với mã bài \"%s\"."
#: judge/views/problem.py:169
#: judge/views/problem.py:170
#, python-brace-format
msgid "Editorial for {0}"
msgstr "Hướng dẫn cho {0}"
#: judge/views/problem.py:173
#: judge/views/problem.py:174
#, python-brace-format
msgid "Editorial for <a href=\"{1}\">{0}</a>"
msgstr "Hướng dẫn cho <a href=\"{1}\">{0}</a>"
#: judge/views/problem.py:406 templates/contest/contest.html:79
#: judge/views/problem.py:407 templates/contest/contest.html:79
#: templates/organization/org-left-sidebar.html:4
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:29
msgid "Problems"
msgstr "Bài tập"
#: judge/views/problem.py:771
#: judge/views/problem.py:772
msgid "Problem feed"
msgstr "Bài tập"
#: judge/views/problem.py:984
#: judge/views/problem.py:996
msgid "Banned from submitting"
msgstr "Bị cấm nộp bài"
#: judge/views/problem.py:986
#: judge/views/problem.py:998
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr "Bạn đã bị cấm nộp bài này."
#: judge/views/problem.py:1009
#: judge/views/problem.py:1021
msgid "Too many submissions"
msgstr "Quá nhiều lần nộp"
#: judge/views/problem.py:1011
#: judge/views/problem.py:1023
msgid "You have exceeded the submission limit for this problem."
msgstr "Bạn đã vượt quá số lần nộp cho bài này."
#: judge/views/problem.py:1090 judge/views/problem.py:1095
#: judge/views/problem.py:1102 judge/views/problem.py:1107
#, python-format
msgid "Submit to %(problem)s"
msgstr "Nộp bài cho %(problem)s"
#: judge/views/problem.py:1117
#: judge/views/problem.py:1130
msgid "Clone Problem"
msgstr "Nhân bản bài tập"
@ -3027,49 +3035,49 @@ msgstr "Kết quả chấm"
msgid "Version matrix"
msgstr "Ma trận phiên bản"
#: judge/views/submission.py:114 judge/views/submission.py:122
#: judge/views/submission.py:116 judge/views/submission.py:124
#, python-format
msgid "Submission of %(problem)s by %(user)s"
msgstr "Bài nộp của %(user)s cho bài %(problem)s"
#: judge/views/submission.py:287 judge/views/submission.py:288
#: judge/views/submission.py:289 judge/views/submission.py:290
#: templates/problem/problem.html:194
msgid "All submissions"
msgstr "Tất cả bài nộp"
#: judge/views/submission.py:480
#: judge/views/submission.py:482
msgid "All my submissions"
msgstr "Tất cả bài nộp của tôi"
#: judge/views/submission.py:481
#: judge/views/submission.py:483
#, python-format
msgid "All submissions by %s"
msgstr "Tất cả bài nộp của %s"
#: judge/views/submission.py:526
#: judge/views/submission.py:528
#, python-format
msgid "All submissions for %s"
msgstr "Tất cả bài nộp cho %s"
#: judge/views/submission.py:554
#: judge/views/submission.py:556
msgid "Must pass a problem"
msgstr "Phải làm được một bài"
#: judge/views/submission.py:612
#: judge/views/submission.py:614
#, python-format
msgid "My submissions for %(problem)s"
msgstr "Bài nộp của tôi cho %(problem)s"
#: judge/views/submission.py:613
#: judge/views/submission.py:615
#, 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:743
#: judge/views/submission.py:745
msgid "Must pass a contest"
msgstr "Phải qua một kỳ thi"
#: judge/views/submission.py:773
#: judge/views/submission.py:775
#, python-brace-format
msgid ""
"<a href=\"{1}\">{0}</a>'s submissions for <a href=\"{3}\">{2}</a> in <a href="
@ -3078,7 +3086,7 @@ msgstr ""
"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>"
#: judge/views/submission.py:785
#: judge/views/submission.py:787
#, python-brace-format
msgid ""
"<a href=\"{1}\">{0}</a>'s submissions for problem {2} in <a href=\"{4}\">{3}"
@ -3087,7 +3095,7 @@ msgstr ""
"Các bài nộp của <a href=\"{1}\">{0}</a> cho bài {2} trong <a href=\"{4}\">{3}"
"</a>"
#: judge/views/submission.py:831
#: judge/views/submission.py:833
#, fuzzy
#| msgid "You do not have the permission to rejudge submissions."
msgid "You don't have permission to access."
@ -4270,24 +4278,30 @@ msgstr "Bạn phải đăng ký thành viên để được tham gia lại."
msgid "Request membership"
msgstr "Đăng ký thành viên"
#: templates/organization/list.html:39
msgid "Show my groups only"
msgstr "Chỉ hiển thị nhóm đang tham gia"
#: templates/organization/list.html:58
msgid "members"
msgstr "thành viên"
#: templates/organization/list.html:46 templates/status/language-list.html:34
#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "Tên"
#: templates/organization/list.html:66
msgid "My groups"
msgstr "Nhóm của tôi"
#: templates/organization/list.html:47
#: templates/organization/org-left-sidebar.html:8
msgid "Members"
msgstr "Thành viên"
#: templates/organization/list.html:67
msgid "Open groups"
msgstr "Nhóm mở"
#: templates/organization/list.html:68
msgid "Private groups"
msgstr "Nhóm kín"
#: templates/organization/org-left-sidebar.html:6
msgid "Submissions"
msgstr "Bài nộp"
#: templates/organization/org-left-sidebar.html:8
msgid "Members"
msgstr "Thành viên"
#: templates/organization/org-right-sidebar.html:7
msgid "Controls"
msgstr "Quản lý"
@ -4674,21 +4688,21 @@ msgstr "Thời gian:"
msgid "Memory limit:"
msgstr "Bộ nhớ:"
#: templates/problem/problem.html:262 templates/problem/raw.html:64
#: templates/problem/problem.html:270 templates/problem/raw.html:64
#: templates/submission/status-testcases.html:141
msgid "Input:"
msgstr "Input:"
#: templates/problem/problem.html:264 templates/problem/raw.html:64
#: templates/problem/problem.html:272 templates/problem/raw.html:64
msgid "stdin"
msgstr "bàn phím"
#: templates/problem/problem.html:268 templates/problem/raw.html:67
#: templates/problem/problem.html:276 templates/problem/raw.html:67
#: templates/submission/status-testcases.html:145
msgid "Output:"
msgstr "Output:"
#: templates/problem/problem.html:269 templates/problem/raw.html:67
#: templates/problem/problem.html:277 templates/problem/raw.html:67
msgid "stdout"
msgstr "màn hình"
@ -4795,11 +4809,11 @@ msgstr "Lọc"
msgid "Random"
msgstr "Ngẫu nhiên"
#: templates/problem/submit.html:117
#: templates/problem/submit.html:120
msgid "Your source code must contain at most 65536 characters."
msgstr "Code phải chứa không quá 65536 ký tự."
#: templates/problem/submit.html:204
#: templates/problem/submit.html:239
#, python-format
msgid ""
"<b>Warning!</b> Your default language, <b>%(default_language)s</b>, is "
@ -4808,7 +4822,7 @@ msgstr ""
"<b>Cẩn thận!</b> Ngôn ngữ ưa thích của bạn, <b>%(default_language)s</b>, "
"không được sử dụng trong bài này."
#: templates/problem/submit.html:215
#: templates/problem/submit.html:250
#, python-format
msgid ""
"\n"
@ -4823,15 +4837,15 @@ msgstr[0] ""
" Bạn còn %(left)s lần nộp\n"
" "
#: templates/problem/submit.html:224
#: templates/problem/submit.html:259
msgid "You have 0 submissions left"
msgstr "Bạn đã hết lần nộp"
#: templates/problem/submit.html:258
#: templates/problem/submit.html:293
msgid "No judge is available for this problem."
msgstr "Không có máy chấm có thể chấm bài này."
#: templates/problem/submit.html:262
#: templates/problem/submit.html:298
msgid "Submit!"
msgstr "Nộp bài!"
@ -5054,6 +5068,11 @@ msgstr "Không có máy chấm nào hoạt động."
msgid "ID"
msgstr "ID"
#: templates/status/language-list.html:34
#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "Tên"
#: templates/status/language-list.html:35
msgid "Runtime Info"
msgstr "Thông tin Runtime"
@ -5618,6 +5637,9 @@ msgstr "Thông tin"
msgid "Check all"
msgstr "Chọn tất cả"
#~ msgid "Show my groups only"
#~ msgstr "Chỉ hiển thị nhóm đang tham gia"
#~ msgid "Edit difficulty"
#~ msgstr "Thay đổi độ khó"

View file

@ -1,59 +1,69 @@
{% extends "base.html" %}
{% block js_media %}
<script src="{{ static('libs/tablesorter.js') }}" type="text/javascript"></script>
{% extends "user/base-users-three-col.html" %}
{% block users_js_media %}
<script type="text/javascript">
$(function () {
$("#organization-table").tablesorter();
{% if request.user.is_authenticated %}
$('#show-my-org-checkbox').click(function() {
let checked = $('#show-my-org-checkbox').is(':checked');
if (checked) {
$('.other-organization').hide();
$('.my-organization').last().find('td').css({'border-bottom-width':
'1px', 'border-color': '#ccc'});
}
else {
$('.other-organization').show();
$('.my-organization').last().find('td').css({'border-bottom-width':
'', 'border-color': ''});
}
})
$('#show-my-org-checkbox').click()
{% endif %}
$(function(){
register_all_toggles();
});
</script>
{% endblock %}
{% block users_media %}
<style>
.organization-row {
display: block;
padding: 0.5em;
border-bottom: 1px gray solid;
border-top: none;
color: black;
font-weight: bold;
}
.organization-container .organization-row:last-child {
border-bottom: none;
}
.organization-row:hover {
background-color: #f3f3f3;
}
.organization-container {
border: 1px gray solid;
margin-bottom: 3em;
}
.org-logo {
vertical-align: middle;
height: 2em;
width: 2em;
display: inline-block;
margin-right: 1em;
margin-left: 0.5em;
}
.toggle {
cursor: pointer;
}
</style>
{% endblock %}
{% block title_ruler %}{% endblock %}
{% block title_row %}
{% set tab = 'organizations' %}
{% set title = _('Groups') %}
{% include "user/user-list-tabs.html" %}
{% block left_sidebar %}
{% include "user/user-left-sidebar.html" %}
{% endblock %}
{% block body %}
{% if request.user.is_authenticated %}
<div style="margin-bottom: 0.5em">
<input id="show-my-org-checkbox" type="checkbox" style="vertical-align: bottom;">
<label for="show-my-org-checkbox" style="vertical-align: bottom; margin-right: 1em;">{{ _('Show my groups only') }}</label>
</div>
{% macro org_list(title, queryset) %}
{% if queryset %}
<h3 style="padding-bottom: 1em" class="toggle open"><i class="fa fa-chevron-right fa-fw"></i> {{title}} ({{queryset.count()}})</h3>
<div class="organization-container toggled">
{% for org in queryset %}
<a href="{{ org.get_absolute_url() }}" class="organization-row" title="{{org.about}}">
<img class="org-logo" src="{{ org.logo_override_image or static('icons/icon.png') }}">
<span>{{ org.name }}</span>
<span style="font-weight: normal; float:right"><i>{{ org.member_count }} {{_('members')}}</i></span>
</a>
{% endfor %}
</div>
{% endif %}
<table id="organization-table" class="table">
<thead>
<tr>
<th style="width:85%">{{ _('Name') }}</th>
<th>{{ _('Members') }}</th>
</tr>
</thead>
<tbody>
{% for org in organizations %}
<tr class="{{ 'my-organization' if org in my_organizations else 'other-organization'}}">
<td><a href="{{ org.get_absolute_url() }}">{{ org.name }}</a></td>
<td><a href="{{ org.get_users_url() }}">{{ org.member_count }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endmacro %}
{% block users_table %}
{{ org_list(_('My groups'), my_organizations) }}
{{ org_list(_('Open groups'), open_organizations) }}
{{ org_list(_('Private groups'), private_organizations) }}
{% endblock %}