Add old volunteer link to UI

This commit is contained in:
cuom1999 2022-07-29 15:53:35 +07:00
parent 89b74e8ef8
commit c9f8fbe098
5 changed files with 397 additions and 145 deletions

View file

@ -1,34 +1,67 @@
from operator import attrgetter
from django.contrib import admin from django.contrib import admin
from django.utils.html import format_html from django.utils.html import format_html
from django.urls import reverse from django.urls import reverse
from django.utils.translation import gettext, gettext_lazy as _, ungettext from django.utils.translation import gettext, gettext_lazy as _, ungettext
from django.forms import ModelForm
from judge.models import VolunteerProblemVote from judge.models import VolunteerProblemVote
from judge.widgets import AdminSelect2MultipleWidget
class VolunteerProblemVoteForm(ModelForm):
class Meta:
widgets = {
"types": AdminSelect2MultipleWidget,
}
class VolunteerProblemVoteAdmin(admin.ModelAdmin): class VolunteerProblemVoteAdmin(admin.ModelAdmin):
form = VolunteerProblemVoteForm
fields = ( fields = (
"voter",
"problem",
"time",
"thinking_points",
"knowledge_points",
"feedback",
)
readonly_fields = ("time", "problem", "voter")
list_display = (
"voter", "voter",
"problem_link", "problem_link",
"time", "time",
"thinking_points", "thinking_points",
"knowledge_points", "knowledge_points",
"types",
"feedback", "feedback",
) )
readonly_fields = ("time", "problem_link", "voter")
list_display = (
"voter",
"problem_link",
"thinking_points",
"knowledge_points",
"show_types",
"feedback",
)
search_fields = (
"voter__user__username",
"problem__code",
"problem__name",
)
date_hierarchy = "time" date_hierarchy = "time"
def problem_link(self, obj): def problem_link(self, obj):
if self.request.user.is_superuser:
url = reverse("admin:judge_problem_change", args=(obj.problem.id,)) url = reverse("admin:judge_problem_change", args=(obj.problem.id,))
return format_html(f"<a href='{url}'>{obj.problem.code}</a>") else:
url = reverse("problem_detail", args=(obj.problem.code,))
return format_html(f"<a href='{url}'>{obj.problem}</a>")
problem_link.short_description = _("Problem") problem_link.short_description = _("Problem")
problem_link.admin_order_field = "problem__code" problem_link.admin_order_field = "problem__code"
def show_types(self, obj):
return ", ".join(map(attrgetter("name"), obj.types.all()))
show_types.short_description = _("Types")
def get_queryset(self, request):
self.request = request
if request.user.is_superuser:
return super().get_queryset(request)
queryset = VolunteerProblemVote.objects.prefetch_related("voter")
return queryset.filter(voter=request.profile).distinct()

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: 2022-07-18 12:59+0700\n" "POT-Creation-Date: 2022-07-29 15:51+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"
@ -141,7 +141,7 @@ msgstr "Trang liên kết"
msgid "Included contests" msgid "Included contests"
msgstr "" msgstr ""
#: judge/admin/contest.py:74 judge/admin/volunteer.py:33 #: judge/admin/contest.py:74 judge/admin/volunteer.py:54
#: templates/contest/clarification.html:42 templates/contest/contest.html:83 #: templates/contest/clarification.html:42 templates/contest/contest.html:83
#: templates/contest/moss.html:43 templates/internal/base.html:29 #: templates/contest/moss.html:43 templates/internal/base.html:29
#: templates/internal/base.html:37 templates/problem/list.html:15 #: templates/internal/base.html:37 templates/problem/list.html:15
@ -264,7 +264,7 @@ msgstr "Mạng Xã Hội"
msgid "Taxonomy" msgid "Taxonomy"
msgstr "" msgstr ""
#: judge/admin/problem.py:205 judge/admin/problem.py:394 #: judge/admin/problem.py:205 judge/admin/problem.py:401
#: templates/contest/contest.html:84 templates/problem/data.html:475 #: templates/contest/contest.html:84 templates/problem/data.html:475
#: templates/problem/list.html:20 templates/problem/list.html:44 #: templates/problem/list.html:20 templates/problem/list.html:44
#: templates/user/base-users-table.html:10 templates/user/user-about.html:36 #: templates/user/base-users-table.html:10 templates/user/user-about.html:36
@ -309,28 +309,28 @@ msgstr[0] "%d bài tập đã được đánh dấu riêng tư."
msgid "Mark problems as private" msgid "Mark problems as private"
msgstr "Đánh dấu các bài tập là riêng tư" msgstr "Đánh dấu các bài tập là riêng tư"
#: judge/admin/problem.py:388 judge/admin/submission.py:316 #: judge/admin/problem.py:395 judge/admin/submission.py:316
#: templates/problem/list.html:16 templates/problem/list.html:33 #: templates/problem/list.html:16 templates/problem/list.html:33
msgid "Problem code" msgid "Problem code"
msgstr "Mã bài" msgstr "Mã bài"
#: judge/admin/problem.py:400 judge/admin/submission.py:322 #: judge/admin/problem.py:407 judge/admin/submission.py:322
msgid "Problem name" msgid "Problem name"
msgstr "Tên bài" msgstr "Tên bài"
#: judge/admin/problem.py:406 #: judge/admin/problem.py:413
#, fuzzy #, fuzzy
#| msgid "contest rating" #| msgid "contest rating"
msgid "Voter rating" msgid "Voter rating"
msgstr "rating kỳ thi" msgstr "rating kỳ thi"
#: judge/admin/problem.py:412 #: judge/admin/problem.py:419
#, fuzzy #, fuzzy
#| msgid "Total points" #| msgid "Total points"
msgid "Voter point" msgid "Voter point"
msgstr "Tổng điểm" msgstr "Tổng điểm"
#: judge/admin/problem.py:418 #: judge/admin/problem.py:425
msgid "Vote" msgid "Vote"
msgstr "" msgstr ""
@ -471,6 +471,11 @@ msgstr "Các bài tập trong nhóm này"
msgid "These problems are included in this type of problems" msgid "These problems are included in this type of problems"
msgstr "Các bài tập dạng này" msgstr "Các bài tập dạng này"
#: judge/admin/volunteer.py:60 templates/internal/base.html:78
#: templates/problem/list.html:18 templates/problem/list.html:40
msgid "Types"
msgstr "Dạng"
#: judge/apps.py:8 #: judge/apps.py:8
msgid "Online Judge" msgid "Online Judge"
msgstr "" msgstr ""
@ -3438,7 +3443,7 @@ msgstr "Xin chào, <b>%(username)s</b>."
#: templates/contest/list.html:130 templates/contest/ranking-table.html:49 #: templates/contest/list.html:130 templates/contest/ranking-table.html:49
#: templates/internal/base.html:59 #: templates/internal/base.html:59
#: templates/organization/org-left-sidebar.html:12 #: templates/organization/org-left-sidebar.html:12
#: templates/problem/left-sidebar.html:5 templates/problem/list-base.html:257 #: templates/problem/left-sidebar.html:5 templates/problem/list-base.html:261
#: templates/problem/problem-list-tabs.html:6 #: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12 templates/submission/list.html:386 #: templates/submission/info-base.html:12 templates/submission/list.html:386
#: templates/submission/submission-list-tabs.html:15 #: templates/submission/submission-list-tabs.html:15
@ -3488,7 +3493,7 @@ msgstr ""
#: templates/comments/list.html:83 templates/contest/contest-tabs.html:23 #: templates/comments/list.html:83 templates/contest/contest-tabs.html:23
#: 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:14 #: templates/license.html:10 templates/problem/editorial.html:14
#: templates/problem/feed.html:58 #: templates/problem/feed.html:65
msgid "Edit" msgid "Edit"
msgstr "Chỉnh sửa" msgstr "Chỉnh sửa"
@ -3758,7 +3763,7 @@ msgid "Next"
msgstr "Tiếp" msgstr "Tiếp"
#: templates/contest/contest-list-tabs.html:21 templates/contest/list.html:128 #: templates/contest/contest-list-tabs.html:21 templates/contest/list.html:128
#: templates/problem/left-sidebar.html:4 templates/problem/list-base.html:256 #: templates/problem/left-sidebar.html:4 templates/problem/list-base.html:260
#: templates/problem/problem-list-tabs.html:5 #: templates/problem/problem-list-tabs.html:5
msgid "List" msgid "List"
msgstr "Danh sách" msgstr "Danh sách"
@ -4148,12 +4153,7 @@ msgstr ""
msgid "Thinking" msgid "Thinking"
msgstr "Bảng xếp hạng" msgstr "Bảng xếp hạng"
#: templates/internal/base.html:78 templates/problem/list.html:18 #: templates/internal/base.html:82 templates/problem/feed.html:111
#: templates/problem/list.html:40
msgid "Types"
msgstr "Dạng"
#: templates/internal/base.html:82 templates/problem/feed.html:104
#, fuzzy #, fuzzy
#| msgid "Feed" #| msgid "Feed"
msgid "Feedback" msgid "Feedback"
@ -4486,35 +4486,43 @@ msgstr "MỚI NHẤT"
msgid "VOLUNTEER" msgid "VOLUNTEER"
msgstr "TÌNH NGUYỆN" msgstr "TÌNH NGUYỆN"
#: templates/problem/feed.html:56 #: templates/problem/feed.html:22
msgid "View your votes"
msgstr "Xem các đơn đã điền của bạn"
#: templates/problem/feed.html:60 templates/submission/status.html:60
msgid "View source"
msgstr "Xem mã nguồn"
#: templates/problem/feed.html:63
msgid "Volunteer form" msgid "Volunteer form"
msgstr "Phiếu tình nguyện" msgstr "Phiếu tình nguyện"
#: templates/problem/feed.html:60 #: templates/problem/feed.html:67
msgid "Submit" msgid "Submit"
msgstr "Gửi" msgstr "Gửi"
#: templates/problem/feed.html:67 #: templates/problem/feed.html:74
msgid "Value" msgid "Value"
msgstr "Giá trị" msgstr "Giá trị"
#: templates/problem/feed.html:74 #: templates/problem/feed.html:81
msgid "Knowledge point" msgid "Knowledge point"
msgstr "Độ khó kiến thức" msgstr "Độ khó kiến thức"
#: templates/problem/feed.html:82 #: templates/problem/feed.html:89
msgid "Thinking point" msgid "Thinking point"
msgstr "Độ khó nghĩ" msgstr "Độ khó nghĩ"
#: templates/problem/feed.html:90 templates/problem/search-form.html:84 #: templates/problem/feed.html:97 templates/problem/search-form.html:84
msgid "Problem types" msgid "Problem types"
msgstr "Dạng bài" msgstr "Dạng bài"
#: templates/problem/feed.html:107 #: templates/problem/feed.html:114
msgid "Any additional note here" msgid "Any additional note here"
msgstr "Lưu ý thêm cho admin" msgstr "Lưu ý thêm cho admin"
#: templates/problem/left-sidebar.html:3 templates/problem/list-base.html:255 #: templates/problem/left-sidebar.html:3 templates/problem/list-base.html:259
msgid "Feed" msgid "Feed"
msgstr "Gợi ý" msgstr "Gợi ý"
@ -4522,15 +4530,15 @@ msgstr "Gợi ý"
msgid "Filter by type..." msgid "Filter by type..."
msgstr "Lọc theo dạng..." msgstr "Lọc theo dạng..."
#: templates/problem/list-base.html:161 templates/problem/list-base.html:187 #: templates/problem/list-base.html:165 templates/problem/list-base.html:191
msgid "Add types..." msgid "Add types..."
msgstr "Thêm dạng" msgstr "Thêm dạng"
#: templates/problem/list-base.html:203 #: templates/problem/list-base.html:207
msgid "Fail to vote!" msgid "Fail to vote!"
msgstr "Hệ thống lỗi!" msgstr "Hệ thống lỗi!"
#: templates/problem/list-base.html:206 #: templates/problem/list-base.html:210
msgid "Successful vote! Thank you!" msgid "Successful vote! Thank you!"
msgstr "Đã gửi thành công! Cảm ơn bạn!" msgstr "Đã gửi thành công! Cảm ơn bạn!"
@ -5255,10 +5263,6 @@ msgstr "AC pretest không đồng nghĩa AC cả bài nhé :))"
msgid "Submission aborted!" msgid "Submission aborted!"
msgstr "Đã hủy chấm bài nộp!" msgstr "Đã hủy chấm bài nộp!"
#: templates/submission/status.html:60
msgid "View source"
msgstr "Xem mã nguồn"
#: templates/submission/status.html:89 #: templates/submission/status.html:89
msgid "Abort" msgid "Abort"
msgstr "Hủy chấm" msgstr "Hủy chấm"

View file

@ -39,305 +39,515 @@ msgstr "Đăng ký tên"
msgid "Report" msgid "Report"
msgstr "Báo cáo" msgstr "Báo cáo"
msgid "Bài cơ bản (Basic Problems)" msgid "2sat"
msgstr "" msgstr ""
msgid "Bài toán số dư (Modulo)" msgid "adhoc"
msgstr "" msgstr ""
msgid "Bài toán truy vấn (Query)" msgid "aho-corasick"
msgstr "" msgstr ""
msgid "Bài đặc biệt (ad hoc)" msgid "articulation-point"
msgstr "" msgstr ""
msgid "Bảng thưa (SparseTable)" msgid "backtrack"
msgstr "" msgstr ""
msgid "Bao hàm loại trừ (Inclusion-Exclusion)" msgid "bellman-ford"
msgstr "" msgstr ""
msgid "Bao lồi (Convex Hull)" msgid "bfs-01"
msgstr "" msgstr ""
msgid "Cài đặt (Implementation)" msgid "biconnected-component"
msgstr "" msgstr ""
msgid "Cặp ghép (Matching)" msgid "binary-search"
msgstr "" msgstr ""
msgid "Cấu hình tập hợp" msgid "binary-search-parallel"
msgstr "" msgstr ""
msgid "Cây (đồ thị)" msgid "bit"
msgstr "" msgstr ""
msgid "Cây chỉ số nhị phân (Binary Indexed Tree)" msgid "bit2d"
msgstr "" msgstr ""
msgid "Cây hậu tố (Suffix tree)" msgid "bitset"
msgstr "" msgstr ""
msgid "Cây khung nhỏ nhất" msgid "bitwise"
msgstr "" msgstr ""
msgid "Cây phân đoạn (Segment Tree)" msgid "block-cut-tree"
msgstr "" msgstr ""
msgid "Cây tiền tố (Trie)" msgid "boruvka"
msgstr "" msgstr ""
msgid "Cày trâu / Duyệt (Brute-force)" msgid "branch&bound"
msgstr "" msgstr ""
msgid "Centroid Decomposition" msgid "bridge"
msgstr "" msgstr ""
msgid "Chặt nhị phân (Binary search)" msgid "brute force"
msgstr "" msgstr ""
msgid "Chặt tam phân (Ternary search)" msgid "cactus-graph"
msgstr "" msgstr ""
msgid "Chia căn (Sqrt decomposition)" msgid "casework"
msgstr "" msgstr ""
msgid "Chia để trị" msgid "centroid"
msgstr "" msgstr ""
msgid "Chu trình Euler (Euler Cycle)" msgid "chinese-remainder"
msgstr "" msgstr ""
msgid "Chưa phân loại (Uncategorized)" msgid "combinatorics"
msgstr "" msgstr ""
msgid "CTDL Tiêu chuẩn (C++ STL)" msgid "constructive"
msgstr "" msgstr ""
msgid "CTDL Đặc biệt (Data Structures)" msgid "convex-hull"
msgstr "" msgstr ""
msgid "Danh sách liên kết (Linked list)" msgid "counting"
msgstr "" msgstr ""
msgid "Dãy con chung dài nhất (LCS)" msgid "cycle"
msgstr "" msgstr ""
msgid "Dãy con tăng dài nhất (LIS)" msgid "data structures"
msgstr "" msgstr ""
msgid "Dãy lặp" msgid "deep-optimization"
msgstr "" msgstr ""
msgid "DFS,BFS (đồ thị)" msgid "dfs/bfs"
msgstr "" msgstr ""
msgid "Disjoint-set (DSU)" msgid "dijkstra"
msgstr "" msgstr ""
msgid "Duyệt phân tập (Meet-in-the-middle)" msgid "divide and conquer"
msgstr "" msgstr ""
msgid "Euclid mở rộng" msgid "dp-alien"
msgstr "" msgstr ""
msgid "Euler tour trên cây" msgid "dp-bitmask"
msgstr "" msgstr ""
msgid "Hai con trỏ (Two-pointers)" msgid "dp-cc"
msgstr "" msgstr ""
msgid "Hàm băm (Hash)" msgid "dp-convexhull"
msgstr "" msgstr ""
msgid "Hàm Mobius" msgid "dp-count"
msgstr "" msgstr ""
msgid "Hình học" msgid "dp-dag"
msgstr "" msgstr ""
msgid "Hoán vị" msgid "dp-digit"
msgstr "" msgstr ""
msgid "Khớp, cầu (đồ thị)" msgid "dp-dnc"
msgstr "" msgstr ""
msgid "Khử gauss (Gauss Elimination)" msgid "dp-general"
msgstr "" msgstr ""
msgid "Lập trình cơ bản" msgid "dp-knuth"
msgstr "" msgstr ""
msgid "LCA (Lowest common ancestor)" msgid "dp-matrix"
msgstr "" msgstr ""
msgid "LT đồ thị (LQĐ)" msgid "dp-openclose"
msgstr "" msgstr ""
msgid "Luồng (Flow)" msgid "dp-permutation"
msgstr "" msgstr ""
msgid "Luồng cận dưới" msgid "dp-slope"
msgstr "" msgstr ""
msgid "Luồng mincost" msgid "dp-sos"
msgstr "" msgstr ""
msgid "Lý thuyết trò chơi (Game Theory)" msgid "dp-swap-label"
msgstr "" msgstr ""
msgid "Lý Thuyết Đồ Thị (Graph Theory)" msgid "dp-tree"
msgstr "" msgstr ""
msgid "Manacher" msgid "dsu"
msgstr "" msgstr ""
msgid "Mảng" msgid "dsu-roll-back"
msgstr "" msgstr ""
msgid "Mảng hậu tố (Suffix Array)" msgid "dynamic programming"
msgstr "" msgstr ""
msgid "Mảng tổng dồn (Prefix sum)" msgid "euler-path"
msgstr "" msgstr ""
msgid "Ngăn xếp, hàng đợi (Stack, Queue)" msgid "euler-theorem"
msgstr "" msgstr ""
msgid "Ngẫu nhiên (Random)" msgid "euler-tour"
msgstr "" msgstr ""
msgid "Nhân ma trận" msgid "extgcd"
msgstr "" msgstr ""
msgid "Nhân đa thức (FFT)" msgid "fft/ntt"
msgstr "" msgstr ""
msgid "Nhánh cận" msgid "flow-demands"
msgstr "" msgstr ""
msgid "Palindrome tree" msgid "flow-general"
msgstr "" msgstr ""
msgid "Phân tích thừa số nguyên tố (Prime Factorization)" msgid "flow-mincost"
msgstr "" msgstr ""
msgid "Phi hàm Euler (Euler's totient function)" msgid "flows"
msgstr "" msgstr ""
msgid "Quay lui" msgid "floyd"
msgstr "" msgstr ""
msgid "Quy hoạch động" msgid "function-graph"
msgstr "" msgstr ""
msgid "Quy hoạch động bitmask" msgid "game theory"
msgstr "" msgstr ""
msgid "Quy hoạch động chữ số" msgid "game-ad-hoc"
msgstr "" msgstr ""
msgid "Quy hoạch động thứ tự từ điển" msgid "game-minimax"
msgstr "" msgstr ""
msgid "Quy hoạch động trạng thái" msgid "game-nim"
msgstr "" msgstr ""
msgid "Quy hoạch động trên cây" msgid "game-sprague-grundy"
msgstr "" msgstr ""
msgid "Quy hoạch động đảo nhãn" msgid "gauss-elim"
msgstr "" msgstr ""
msgid "Quy hoạch động đếm" msgid "genetic"
msgstr "" msgstr ""
msgid "Rời rạc hóa (Compression)" msgid "geometry"
msgstr "" msgstr ""
msgid "Sàng (Sieve)" msgid "geometry-general"
msgstr "" msgstr ""
msgid "Sắp xếp (Sorting)" msgid "gomory-hu-tree"
msgstr "" msgstr ""
msgid "Sắp xếp tô pô (Topo Sort)" msgid "graph theory"
msgstr "" msgstr ""
msgid "Scratch" msgid "greedy"
msgstr "" msgstr ""
msgid "Số học (Number Theory)" msgid "greedy-exchange"
msgstr "" msgstr ""
msgid "Số nguyên tố" msgid "greedy-general"
msgstr "" msgstr ""
msgid "Sweep Line" msgid "greedy-moore"
msgstr "" msgstr ""
msgid "Tách chuỗi cây (HLD)" msgid "hashing"
msgstr "" msgstr ""
msgid "Tham Lam (Greedy)" msgid "heuristic"
msgstr "" msgstr ""
msgid "Tháng tư là lời nói dối của em" msgid "heuristics"
msgstr "" msgstr ""
msgid "Thành phần liên thông" msgid "hld"
msgstr "" msgstr ""
msgid "Thao Tác Bit (bitwise)" msgid "HSG"
msgstr "" msgstr ""
msgid "Thuật toán KMP" msgid "ICPC"
msgstr "" msgstr ""
msgid "Thuật toán Mo" msgid "inclusion-exclusion"
msgstr "" msgstr ""
msgid "Tổ hợp" msgid "interactive"
msgstr "" msgstr ""
msgid "Toán (Math)" msgid "inversive-geometry"
msgstr "" msgstr ""
msgid "Tối ưu hóa (Deep-optimize)" msgid "kd-tree"
msgstr "" msgstr ""
msgid "Tương tác (Interactive)" msgid "kirchoff"
msgstr "" msgstr ""
msgid "t_Bài tập (thầy Đông)" msgid "kmp"
msgstr "" msgstr ""
msgid "Xác suất (Probability)" msgid "kruskal"
msgstr "" msgstr ""
msgid "Xâu con (Substring)" msgid "lagrange-inter"
msgstr "" msgstr ""
msgid "Xâu đối xứng (Palindrome)" msgid "language"
msgstr "" msgstr ""
msgid "Xây dựng, tìm khuôn (Constructive)" msgid "lca"
msgstr "" msgstr ""
msgid "Xử lí sai số (Precision-fix)" msgid "lichao-tree"
msgstr "" msgstr ""
msgid "Xử lí số lớn (Bignum)" msgid "local-search"
msgstr "" msgstr ""
msgid "Xử lí xâu (String)" msgid "manacher"
msgstr "" msgstr ""
msgid "Z Function" msgid "matching-bipartie"
msgstr "" msgstr ""
msgid "Đếm Phân Phối" msgid "matching-general"
msgstr "" msgstr ""
msgid "Đường đi ngắn nhất (đồ thị)" msgid "matching-hall"
msgstr ""
msgid "matching-hungarian"
msgstr ""
msgid "matching-konig"
msgstr ""
msgid "math"
msgstr ""
msgid "math-general"
msgstr ""
msgid "max-clique"
msgstr ""
msgid "meet-in-the-middle"
msgstr ""
msgid "mo-general"
msgstr ""
msgid "mo-tree"
msgstr ""
msgid "mo-update"
msgstr ""
msgid "mobius"
msgstr ""
msgid "modular"
msgstr ""
msgid "modular-inverse"
msgstr ""
msgid "monotonic-queue"
msgstr ""
msgid "multiplicative"
msgstr ""
msgid "NEW"
msgstr ""
msgid "number theory"
msgstr ""
msgid "offline"
msgstr ""
msgid "order-statistic"
msgstr ""
msgid "output-only"
msgstr ""
msgid "palin-tree"
msgstr ""
msgid "picks-theorem"
msgstr ""
msgid "planar-graph"
msgstr ""
msgid "polygon-triangulation"
msgstr ""
msgid "precision-issue"
msgstr ""
msgid "prefix-sum"
msgstr ""
msgid "primality-test"
msgstr ""
msgid "probability"
msgstr ""
msgid "randomized"
msgstr ""
msgid "rmq"
msgstr ""
msgid "rmq-2d"
msgstr ""
msgid "rmq2d"
msgstr ""
msgid "scc"
msgstr ""
msgid "scheduling"
msgstr ""
msgid "search"
msgstr ""
msgid "segtree-2d"
msgstr ""
msgid "segtree-beats"
msgstr ""
msgid "segtree-dynamic"
msgstr ""
msgid "segtree-general"
msgstr ""
msgid "segtree-persistent"
msgstr ""
msgid "segtree-walk"
msgstr ""
msgid "sequence"
msgstr ""
msgid "sieve"
msgstr ""
msgid "sieve-segment"
msgstr ""
msgid "small-to-large"
msgstr ""
msgid "sortings"
msgstr ""
msgid "spanning-tree"
msgstr ""
msgid "sparse-table"
msgstr ""
msgid "spfa"
msgstr ""
msgid "sqrt"
msgstr ""
msgid "sqrt-babygiant"
msgstr ""
msgid "sqrt-buckets"
msgstr ""
msgid "sqrt-buffer"
msgstr ""
msgid "sqrt-time"
msgstr ""
msgid "static-data"
msgstr ""
msgid "stl"
msgstr ""
msgid "string"
msgstr ""
msgid "suffix-array"
msgstr ""
msgid "sweep-line"
msgstr ""
msgid "tenary-search"
msgstr ""
msgid "topo-sort"
msgstr ""
msgid "tortoise-hare"
msgstr ""
msgid "treap/splay"
msgstr ""
msgid "tree-isomorphism"
msgstr ""
msgid "trie"
msgstr ""
msgid "TSP"
msgstr ""
msgid "TST"
msgstr ""
msgid "two-pointers"
msgstr ""
msgid "VOI"
msgstr ""
msgid "voronoi"
msgstr ""
msgid "z-function"
msgstr "" msgstr ""

View file

@ -17,6 +17,11 @@
</a> </a>
{% endif %} {% endif %}
</div> </div>
{% if request.user.has_perm('judge.suggest_problem_changes') and feed_type == 'volunteer' %}
<ul style="margin-bottom: 1em; margin-left: auto">
<li><a href="{{url('admin:judge_volunteerproblemvote_changelist')}}">{{_('View your votes')}}</a></li>
</ul>
{% endif %}
{% for problem in problems %} {% for problem in problems %}
<div class="blog-box"> <div class="blog-box">
<h3 class="problem-feed-name"> <h3 class="problem-feed-name">