diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po
index aaa334c..12d2bd5 100644
--- a/locale/ar/LC_MESSAGES/django.po
+++ b/locale/ar/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Arabic, Saudi Arabia\n"
@@ -17,21 +17,21 @@ msgstr ""
"X-Crowdin-Language: ar-SA\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -99,11 +99,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -147,8 +147,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -160,7 +161,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -279,8 +280,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -346,6 +347,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -382,7 +384,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -444,8 +446,8 @@ msgstr[5] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -456,6 +458,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -536,7 +539,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -548,11 +551,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -564,7 +569,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -647,7 +652,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -750,7 +755,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -763,12 +768,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -862,12 +867,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -875,7 +880,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -896,7 +901,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -910,7 +915,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1055,14 +1060,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1190,7 +1195,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1198,7 +1203,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1262,269 +1267,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2367,7 +2372,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2393,7 +2398,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2511,26 +2516,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2564,73 +2569,74 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2641,7 +2647,7 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2652,85 +2658,85 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2878,7 +2884,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2982,46 +2988,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3081,7 +3091,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3153,7 +3163,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3161,7 +3172,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3189,23 +3201,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3362,7 +3378,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3442,11 +3458,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3576,11 +3592,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3592,26 +3608,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3737,63 +3757,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3802,6 +3826,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3921,24 +3946,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4019,16 +4048,16 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
@@ -4039,63 +4068,63 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
@@ -4105,7 +4134,7 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
@@ -4115,16 +4144,16 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
@@ -4134,20 +4163,20 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4443,6 +4472,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4458,6 +4488,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4754,6 +4785,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po
index b42e4c8..f1ea49d 100644
--- a/locale/de/LC_MESSAGES/django.po
+++ b/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: German\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: de\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "Chinesisch (vereinfacht)"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -138,8 +138,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr "Systematik"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -345,7 +347,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -403,8 +405,8 @@ msgstr[1] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -415,6 +417,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -495,7 +498,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -507,11 +510,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -523,7 +528,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -606,7 +611,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -709,7 +714,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -722,12 +727,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -821,12 +826,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -834,7 +839,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -855,7 +860,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -869,7 +874,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1014,14 +1019,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1149,7 +1154,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1157,7 +1162,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1221,269 +1226,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2314,7 +2319,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2340,7 +2345,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2458,26 +2463,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2511,165 +2516,166 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2813,7 +2819,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2917,46 +2923,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3016,7 +3026,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3088,7 +3098,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3096,7 +3107,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3124,25 +3136,29 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online"
msgid "Online Users"
msgstr "Online"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3299,7 +3315,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3379,11 +3395,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3513,11 +3529,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3529,26 +3545,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3674,63 +3694,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3739,6 +3763,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3858,24 +3883,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3956,79 +3985,79 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
#, fuzzy
#| msgid "Authors"
msgid "Author:"
@@ -4036,41 +4065,41 @@ msgid_plural "Authors:"
msgstr[0] "Autoren"
msgstr[1] "Autoren"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4362,6 +4391,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4377,6 +4407,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4673,6 +4704,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po
index 1eda16f..9bcad4c 100644
--- a/locale/en/LC_MESSAGES/django.po
+++ b/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,21 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -100,11 +100,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -140,8 +140,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -153,7 +154,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -256,8 +257,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -315,6 +316,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -347,7 +349,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -405,8 +407,8 @@ msgstr[1] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -417,6 +419,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -497,7 +500,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -509,11 +512,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -525,7 +530,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -608,7 +613,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -711,7 +716,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -724,12 +729,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -823,12 +828,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -836,7 +841,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -857,7 +862,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -871,7 +876,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1016,14 +1021,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1151,7 +1156,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1159,7 +1164,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1223,269 +1228,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2316,7 +2321,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2342,7 +2347,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2460,26 +2465,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2513,165 +2518,166 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2815,7 +2821,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2919,46 +2925,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3018,7 +3028,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3090,7 +3100,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3098,7 +3109,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3126,23 +3138,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3299,7 +3315,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3379,11 +3395,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3513,11 +3529,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3529,26 +3545,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3674,63 +3694,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3739,6 +3763,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3858,24 +3883,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3956,119 +3985,119 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4360,6 +4389,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4375,6 +4405,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4671,6 +4702,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po
index ac32b95..d03046a 100644
--- a/locale/es/LC_MESSAGES/django.po
+++ b/locale/es/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:06\n"
"Last-Translator: Icyene\n"
"Language-Team: Spanish\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: es-ES\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "usuario"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "hora de publicación"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "cuerpo del comentario"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "Chino simplificado"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Iniciar sesión"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Inicio"
@@ -138,8 +138,9 @@ msgstr "Concurso incluido"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Problema"
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Programación"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Detalles"
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr "Taxanomía"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr "Usuario"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "Email"
@@ -346,7 +348,7 @@ msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
"Estos problemas no están permitidos para ser presentados en este idioma"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Descripción"
@@ -404,8 +406,8 @@ msgstr[1] "%d de las presentaciones fue rescatado con éxito."
msgid "Rescore the selected submissions"
msgstr "Repuntear las presentaciones seleccionadas"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Código del problema"
@@ -416,6 +418,7 @@ msgstr "Nombre del problema"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -498,7 +501,7 @@ msgstr "Subscribirse en las actualizaciones de los concursos"
msgid "Enable experimental features"
msgstr "Habilitar las actualizaciones experimentales"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "Tu no deberías formar parte de más de {count} organizaciones públicas."
@@ -512,11 +515,13 @@ msgstr "juez"
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Nombre de usuario"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "Contraseña"
@@ -528,7 +533,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr "Código del problema debe ser ^[a-z0-9]+$"
@@ -611,7 +616,7 @@ msgstr "comentario"
msgid "comments"
msgstr "comentarios"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr "Editorial de %s"
@@ -724,7 +729,7 @@ msgstr "Estas personas serán capaces de editar el concurso."
msgid "description"
msgstr "descripción"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "problemas"
@@ -737,12 +742,12 @@ msgstr "hora de inicio"
msgid "end time"
msgstr "hora final"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "tiempo límite"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "publicidad visible"
@@ -855,12 +860,12 @@ msgstr ""
"finaliza el concurso."
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "privado para organizaciones"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "organizaciones"
@@ -868,7 +873,7 @@ msgstr "organizaciones"
msgid "If private, only these organizations may see the contest"
msgstr "Es privado, sólo estas organizaciones deben ser el concurso"
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "Imagen de OpenGraph"
@@ -889,7 +894,7 @@ msgstr "la cantidad de participantes en vivo"
msgid "contest summary"
msgstr "resumen del concurso"
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
"Texto sin formato, que se muestra en la etiqueta de metadescripción, por "
@@ -907,7 +912,7 @@ msgstr ""
"Un código opcional para incitar a los concursantes antes de que se les "
"permita unirse al concurso. Déjelo en blanco para desactivar."
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr "persona no grata"
@@ -1059,14 +1064,14 @@ msgid "contest participations"
msgstr "participaciones del concurso"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "problema"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "puntos"
@@ -1196,7 +1201,7 @@ msgstr "elementos paternales"
msgid "post title"
msgstr "título de la publicación"
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "autores"
@@ -1204,7 +1209,7 @@ msgstr "autores"
msgid "slug"
msgstr "babosa"
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr "visibilidad pública"
@@ -1270,133 +1275,133 @@ msgstr "hora del mensaje"
msgid "messages in the thread"
msgstr "mensajes en el hilo"
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr "problema de categoría de identificación"
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr "problema de categoría de nombre"
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "tipo del problema"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "tipos del problema"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr "problema de identificación del grupo"
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr "problema de identificación del nombre"
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "grupo de problema"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "grupos de problemas"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr "llave"
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr "enlace"
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "nombre completo"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr "nombre corto"
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr "Mostrar en páginas bajo esta licencia"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "icono"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "Enlace al icono"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr "texto de licencia"
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "licencia"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "licencias"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr "código del problema"
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "nombre del problema"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr "cuerpo del problema"
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr "creadores"
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr "curadores"
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr "probadores"
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
@@ -1404,11 +1409,11 @@ msgstr ""
"El límite de tiempo para este problema, en segundos. Los segundos "
"fraccionarios (por ejemplo, 1.5) serán permitidos."
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "límite de memoria"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
@@ -1416,129 +1421,129 @@ msgstr ""
"La memoria límite para este problema, en kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr "permitir puntos parciales"
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "idiomas permitidos"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr "manejado manualmente"
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr "fecha de publicación"
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
"No tiene la habilidad mágica para publicar automáticamente debido a la "
"compatibilidad con versiones anteriores"
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr "problemas de envío"
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "idioma"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr "nombre traducido"
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr "descripción traducida"
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr "problemas de traducción"
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr "problemas de traducciones"
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr "problema calificado"
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr "calificación del cuerpo"
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr "marca de tiempo de aclaración"
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "límite de recursos específicos del idioma"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "límites de recursos específicos del idioma"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr "problema asociado"
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr "fecha de publicación"
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr "contenido editorial"
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "solución"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "soluciones"
@@ -2401,7 +2406,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "Sobre"
@@ -2427,7 +2432,7 @@ msgstr ""
msgid "You already voted."
msgstr "Tu ya votaste."
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "Editado desde sitio"
@@ -2546,26 +2551,26 @@ msgstr "En Vivo"
msgid "Participation"
msgstr "Participación"
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr "Concurso etiqueta: %s"
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr "Descripción del problema"
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "clarification body"
msgid "New clarification for %s"
@@ -2600,66 +2605,67 @@ msgstr "Duración"
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "Ninguna organización"
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "No se encontró una organización con la clave \"%s\"."
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr "No se pudo encontrar tal organización."
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "Organizaciones"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s miembros"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "Unirse a la organización"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "Ya estas en esta organización."
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "Esta organización no está abierta."
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "Abandonar organización"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "No estás en \"%s\"."
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "Solicitar para unirse %s"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "Únete a detalle de la solicitud"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "Gestionar solicitudes de unirse para %s"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
@@ -2668,80 +2674,80 @@ msgstr ""
"Su organización solo puede recibir %d miembros más. No puede aprobar %d "
"usuarios."
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "%d usuarios aprobados."
msgstr[1] "Usuarios aprobados \"%d\"."
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "%d usuarios rechazados."
msgstr[1] "Usuarios rechazados \"%d\"."
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "Editando %s"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "No se puede editar la organización"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "No tiene permitido editar esta organización."
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "No tiene permitido expulsar a personas de esta organización."
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "No se puede reaccionar en contra del usuario"
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr "¡El usuario que estás tratando de poner no existe!"
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr "El usuario que estás tratando poner no está en la organización: %s."
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "No existe ese problema"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr "No se pudo encontrar el problema con el código \"%s\"."
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr "Editorial de{0}"
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr "Editorial de {0}"
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Problemas"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr "Esta prohibido enviarlo"
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
@@ -2749,20 +2755,20 @@ msgstr ""
"Usted ha sido declarado persona no grata por este problema. Usted está "
"permanentemente impedido en presentar este problema."
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr "Muchos envíos"
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr "Usted ha excedido el límite de presentaciones de este problema."
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr "Enviar a %(problem)s"
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2914,7 +2920,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr "Presentación de %(problem)s por %(user)s"
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "Todos los envíos"
@@ -3022,48 +3028,52 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr "No existe este usuario"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr "Ningún usuario se encarga de \"%s\"."
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr "Mi cuenta"
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "Usuario %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
#, fuzzy
#| msgid "M j, Y, G:i"
msgid "M j, Y"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr "Actualizado en el sitio"
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "Modificar perfil"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr "Tabla de calificación"
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3123,7 +3133,7 @@ msgstr "Hola, %(username)s."
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3201,7 +3211,8 @@ msgstr "Eventos"
msgid "News"
msgstr "Noticias"
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr "Aclaraciones"
@@ -3209,7 +3220,8 @@ msgstr "Aclaraciones"
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr "No se han hecho aclaraciones en este momento."
@@ -3237,25 +3249,29 @@ msgstr "Problemas nuevos"
msgid "Comment stream"
msgstr "Corriente del comentario"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Juez en línea"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3416,7 +3432,7 @@ msgstr "Lista"
msgid "Calendar"
msgstr "Calendario"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr "Información"
@@ -3498,11 +3514,11 @@ msgstr "Tasa de AC"
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "Usuarios"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr "Editorial"
@@ -3645,11 +3661,11 @@ msgstr "Organización"
msgid "Full Name"
msgstr "nombre completo"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3665,30 +3681,36 @@ msgstr "¿Usted esta seguro de que quiere unirse?"
msgid "Are you sure you want to un-disqualify this participation?"
msgstr "¿Usted esta seguro de que quiere unirse?"
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr "Ver la participación del usuario"
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr "Mostrar organizaciones"
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "nombre completo"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
#, fuzzy
#| msgid "Show my tickets only"
msgid "Show friends only"
msgstr "Sólo mostrar mis tickets"
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "virtual participation id"
+msgid "Show virtual participation"
+msgstr "identificación de la participación virtual"
+
#: templates/contest/stats.html:51
#, fuzzy
#| msgid "problem translation"
@@ -3839,71 +3861,77 @@ msgstr "activar"
msgid "Update"
msgstr "Actualizar"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr "Unirse a esta organización"
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr "Solicitar membresía"
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organizations"
msgid "Organization news"
msgstr "Organizaciones"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no scheduled contests at this time."
msgid "There is no news at this time."
msgstr "No hay concursos programados en este momento."
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "Concurso"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "Abandonar organización"
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr "Unirse a esta organización"
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr "Solicitar membresía"
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "Editar organización"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "Ver solicitud"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr "Administrador de la organización"
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr "Ver miembros"
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "Abandonar organización"
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "See private contests"
msgid "New private contests"
msgstr "Ver publicaciones privadas"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "Ver en PDF"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "New problems"
msgid "New private problems"
@@ -3916,6 +3944,7 @@ msgid "Show my organizations only"
msgstr "Mostrar organizaciones"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "Nombre"
@@ -4041,24 +4070,30 @@ msgstr ""
msgid "Filter by type..."
msgstr "Filtrar por tipo..."
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr "Problemas calientes"
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "Categoría"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "Tipos"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr "AC%%"
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Clarifications"
+msgid "Add clarifications"
+msgstr "Aclaraciones"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4144,100 +4179,100 @@ msgstr "¿Usted esta seguro de que quiere unirse?"
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "Ver en PDF"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr "Enviar solución"
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] "%(counter)s envío restante"
msgstr[1] "%(counter)s envíos restantes"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr "0 envíos restantes"
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr "Mis Envíos"
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr "Mejores envíos"
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr "Leer editorial"
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr "Administrar tickets"
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "Editar el problema"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr "Editar casos de prueba"
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr "Clonar problema"
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "Puntos:"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr "(parcial)"
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "Tiempo límite:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "Límite de memoria:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "Autor:"
msgstr[1] "Autores:"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "Tipo de problema"
msgstr[1] "Tipos de problema"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "Idiomas permitidos"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr "No hay jueces online para %(lang)s"
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
#, fuzzy
#| msgid "Judge"
msgid "Judge:"
@@ -4245,20 +4280,20 @@ msgid_plural "Judges:"
msgstr[0] "Juez"
msgstr[1] "Juez"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr "Solicitar aclaración"
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr "Reportar un problema"
@@ -4570,6 +4605,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "Cargar"
@@ -4585,6 +4621,7 @@ msgid "There are no judges available at this time."
msgstr "No hay jueces disponibles en este momento."
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr "Identificación"
@@ -4903,6 +4940,28 @@ msgstr "Script de usuario"
msgid "Update profile"
msgstr "Actualizar perfil"
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "perfil del usuario"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index 3d4e81e..a1dd7f8 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: French\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: fr\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "utilisateur"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "Chinois simplifié"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Se connecter"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Accueil"
@@ -138,8 +138,9 @@ msgstr "Concours inclus"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Problème"
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Planification"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Détails"
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr "Taxonomie"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr "Utilisateur"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "Courriel"
@@ -345,7 +347,7 @@ msgstr "Problèmes non autorisés"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "Ces problèmes ne peuvent êtres soumis dans ce language"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Description"
@@ -403,8 +405,8 @@ msgstr[1] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Code de la problème"
@@ -415,6 +417,7 @@ msgstr "Nom de la problème"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -495,7 +498,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -507,11 +510,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Nom d'utilisateur"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "Mot de passe "
@@ -523,7 +528,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -606,7 +611,7 @@ msgstr "commentaire"
msgid "comments"
msgstr "commentaires"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -709,7 +714,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "problèmes"
@@ -722,12 +727,12 @@ msgstr "heure de début"
msgid "end time"
msgstr "heure de fin"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "limite de Temps"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "visible publiquement"
@@ -821,12 +826,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "organisations"
@@ -834,7 +839,7 @@ msgstr "organisations"
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -855,7 +860,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -869,7 +874,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1014,14 +1019,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "problème"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "points"
@@ -1149,7 +1154,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "auteurs"
@@ -1157,7 +1162,7 @@ msgstr "auteurs"
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1221,269 +1226,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "type de problème"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr "clé"
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "nom complet"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "licence"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "licenses"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "limite de mémoire"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "langages autorisées"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "langue"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "limite de ressources spécifiques à un language"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "limites de ressources spécifiques à un language"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "solution"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "solutions"
@@ -2318,7 +2323,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "A propos"
@@ -2344,7 +2349,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2462,26 +2467,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "Best solutions for %s"
msgid "New clarification for %s"
@@ -2516,165 +2521,166 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Problèmes"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2820,7 +2826,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2924,46 +2930,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "Modifier le profile"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3023,7 +3033,7 @@ msgstr "Bonjour, %(username)s."
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3096,7 +3106,8 @@ msgstr "Evènements"
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3104,7 +3115,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3132,25 +3144,29 @@ msgstr "Nouveaux problèmes"
msgid "Comment stream"
msgstr "Flux de commentaire"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Juge en ligne"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3311,7 +3327,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3393,11 +3409,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "Utilisateurs"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3533,11 +3549,11 @@ msgstr "Organisation "
msgid "Full Name"
msgstr "nom complet"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3549,28 +3565,32 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "nom complet"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3700,71 +3720,77 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr ""
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr ""
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organization"
msgid "Organization news"
msgstr "Organisation "
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no scheduled contests at this time."
msgid "There is no news at this time."
msgstr "Il n'y a aucun concours au futur à ce moment."
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "Concours"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr ""
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr ""
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr ""
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr ""
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr ""
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr ""
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "Leave contest"
msgid "New private contests"
msgstr "Quitter le concours"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "Voir en PDF"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "New problems"
msgid "New private problems"
@@ -3777,6 +3803,7 @@ msgid "Show my organizations only"
msgstr "organisations"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3898,24 +3925,30 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Best solutions for %s"
+msgid "Add clarifications"
+msgstr "Les meilleures solutions pour %s"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3998,79 +4031,79 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "Voir en PDF"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "Points :"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
#, fuzzy
#| msgid "Authors"
msgid "Author:"
@@ -4078,7 +4111,7 @@ msgid_plural "Authors:"
msgstr[0] "Auteurs"
msgstr[1] "Auteurs"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
#, fuzzy
#| msgid "problem type"
msgid "Problem type"
@@ -4086,35 +4119,35 @@ msgid_plural "Problem types"
msgstr[0] "type de problème"
msgstr[1] "type de problème"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "Languages autorisés"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4406,6 +4439,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "Charge"
@@ -4421,6 +4455,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4727,6 +4762,28 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "profil utilisateur"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/hr/LC_MESSAGES/django.po b/locale/hr/LC_MESSAGES/django.po
index 17eb310..c55f0a3 100644
--- a/locale/hr/LC_MESSAGES/django.po
+++ b/locale/hr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Croatian\n"
@@ -17,21 +17,21 @@ msgstr ""
"X-Crowdin-Language: hr\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "korisnik"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "vrijeme objave"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "tekst komentara"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -99,11 +99,11 @@ msgstr "Pojednostavljeni kineski"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Prijava"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Početna"
@@ -141,8 +141,9 @@ msgstr "Uključena natjecanja"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Zadatak"
@@ -154,7 +155,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Raspoređivanje"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Pojedinosti"
@@ -261,8 +262,8 @@ msgid "Taxonomy"
msgstr "Taksonomija"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -322,6 +323,7 @@ msgid "User"
msgstr "Korisnik"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "E-mail"
@@ -355,7 +357,7 @@ msgstr "Nedozvoljeni zadaci"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "Sljedeći zadatke NE možete riješiti u ovom jeziku"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Opis"
@@ -414,8 +416,8 @@ msgstr[2] "%d predanih rješenja je uspješno ponovno ocijenjeno."
msgid "Rescore the selected submissions"
msgstr "Ponovno ocijeni označena predana rješenja"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Kod zadatka"
@@ -426,6 +428,7 @@ msgstr "Ime zadatka"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -506,7 +509,7 @@ msgstr "Pretplati se na novosti na natjecanju"
msgid "Enable experimental features"
msgstr "Uključi eksperimentalne opcije"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "Ne možete biti član više od {count} javnih organizacija."
@@ -518,11 +521,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Korisničko ime"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "Lozinka"
@@ -534,7 +539,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -617,7 +622,7 @@ msgstr "komentar"
msgid "comments"
msgstr "komentari"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr "Objašnjenje za %s"
@@ -726,7 +731,7 @@ msgstr "Ove osobe će moći uređivati natjecanje."
msgid "description"
msgstr "opis"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "zadaci"
@@ -739,12 +744,12 @@ msgstr "vrijeme početka"
msgid "end time"
msgstr "vrijeme kraja"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "vremensko ograničenje"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "javno vidljivo"
@@ -846,12 +851,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "privatno za organizacije"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -859,7 +864,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "OpenGraph slika"
@@ -880,7 +885,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -894,7 +899,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr "persona non grata"
@@ -1039,14 +1044,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1174,7 +1179,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1182,7 +1187,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1246,143 +1251,143 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "memorijsko ograničenje"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
@@ -1390,127 +1395,127 @@ msgstr ""
"Memorijsko ograničenje za ovaj zadatak, u kilobajtima (npr. 64mb = 65536 "
"kilobajta)."
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr "dopušteno djelomično bodovanje"
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "dopušteni programski jezici"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr "ručno upravljano"
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr "datum objave"
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr "sažetak zadatka"
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2346,7 +2351,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2372,7 +2377,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2490,26 +2495,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2543,73 +2548,74 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "Zahtjev za pridruživanje %s"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2617,7 +2623,7 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2625,85 +2631,85 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "Uređivanje %s"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "Nije moguće urediti organizaciju"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "Nemate ovlasti za uređivanje ove organizacije."
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "Nemate ovlasti za izbacivanje ljudi iz ove organizacije."
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "Nije moguće izbaciti korisnika"
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr "Korisnik kojeg pokušavate izbaciti ne postoji!"
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr "Korisnik kojeg pokušavate izbaciti nije u organizaciji: %s."
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Zadaci"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr "Previše poslanih rješenja"
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2850,7 +2856,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr "Predano rješenje za zadatak %(problem)s od korisnika %(user)s"
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "Sva predana rješenja"
@@ -2954,46 +2960,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3053,7 +3063,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3126,7 +3136,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3134,7 +3145,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3162,25 +3174,29 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Evaluator"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3340,7 +3356,7 @@ msgstr ""
msgid "Calendar"
msgstr "Kalendar"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3422,11 +3438,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3560,11 +3576,11 @@ msgstr "Organizacija"
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3576,26 +3592,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3725,65 +3745,71 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr ""
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr ""
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organization"
msgid "Organization news"
msgstr "Organizacija"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
msgid "There is no news at this time."
msgstr ""
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
msgid "Controls"
msgstr ""
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr ""
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr ""
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr ""
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr ""
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr ""
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr ""
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
msgid "New private contests"
msgstr ""
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "rate all"
+msgid "View all"
+msgstr "boduj sve"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "Disallowed problems"
msgid "New private problems"
@@ -3796,6 +3822,7 @@ msgid "Show my organizations only"
msgstr "privatno za organizacije"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3917,24 +3944,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4017,16 +4048,16 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
@@ -4034,63 +4065,63 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
#, fuzzy
#| msgid "Authors"
msgid "Author:"
@@ -4099,7 +4130,7 @@ msgstr[0] "Autori"
msgstr[1] "Autori"
msgstr[2] "Autori"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
#, fuzzy
#| msgid "Problem code"
msgid "Problem type"
@@ -4108,36 +4139,36 @@ msgstr[0] "Kod zadatka"
msgstr[1] "Kod zadatka"
msgstr[2] "Kod zadatka"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4430,6 +4461,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4445,6 +4477,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4749,6 +4782,28 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "User"
+msgid "User File"
+msgstr "Korisnik"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/hu/LC_MESSAGES/django.po b/locale/hu/LC_MESSAGES/django.po
index 88a209f..0707642 100644
--- a/locale/hu/LC_MESSAGES/django.po
+++ b/locale/hu/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Hungarian\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: hu\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "felhasználó"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "hozzászólás ideje"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "hozzászólás törzse"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "Egyszerűsített kínai"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Belépés"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Nyitólap"
@@ -138,8 +138,9 @@ msgstr "Hozzárendelt versenyek"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Feladat"
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Időbeosztás"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Részletek"
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr "Rendszerezés"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr "Felhasználó"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "Email"
@@ -345,7 +347,7 @@ msgstr "Tiltott feladatok"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "Ezekre a feladatokra nem lehet megoldást beküldeni ezen a nyelven"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Leírás"
@@ -403,8 +405,8 @@ msgstr[1] "%d feltöltés sikeresen újrapontozva."
msgid "Rescore the selected submissions"
msgstr "A kiválasztott feltöltések újrapontozása"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Feladat azonosító"
@@ -415,6 +417,7 @@ msgstr "Feladat név"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -495,7 +498,7 @@ msgstr "Iratkozz fel hírlevelünkre"
msgid "Enable experimental features"
msgstr "Kísérleti funkciók engedélyezése"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "Nem lehetsz tagja több mint {count} nyilvános csoportnak."
@@ -509,11 +512,13 @@ msgstr "bíró"
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Felhasználóinév"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "Jelszó"
@@ -525,7 +530,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr "A feladat azonosítónak ^[a-z0-9]+$ kell lennie"
@@ -608,7 +613,7 @@ msgstr "hozzászólás"
msgid "comments"
msgstr "hozzászólások"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr "Megoldási útmutató %s-hez"
@@ -721,7 +726,7 @@ msgstr "Ezek az emberek szerkeszthetik a versenyt."
msgid "description"
msgstr "leírás"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "feladatok"
@@ -734,12 +739,12 @@ msgstr "kezdés"
msgid "end time"
msgstr "befejezés"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "időkorlát"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "nyilvánosan látható"
@@ -842,12 +847,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "privát a csoport számára"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "csoportok"
@@ -855,7 +860,7 @@ msgstr "csoportok"
msgid "If private, only these organizations may see the contest"
msgstr "Ha privát, csak ezek a csoportok láthatják a versenyt"
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "OpenGraph kép"
@@ -876,7 +881,7 @@ msgstr "az éles résztvevők száma"
msgid "contest summary"
msgstr "verseny összefoglaló"
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -890,7 +895,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr "nemkívánatos személy"
@@ -1041,14 +1046,14 @@ msgid "contest participations"
msgstr "verseny részvételek"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "feladat"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "pontok"
@@ -1176,7 +1181,7 @@ msgstr "szülő elem"
msgid "post title"
msgstr "bejegyzés címe"
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "szerzők"
@@ -1184,7 +1189,7 @@ msgstr "szerzők"
msgid "slug"
msgstr "csonk"
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr "láthatóság"
@@ -1250,133 +1255,133 @@ msgstr "üzenet időbélyege"
msgid "messages in the thread"
msgstr "üzenetek a szálban"
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr "feladat kategória azonosító"
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr "feladat kategória név"
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "feladat típus"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "feladat típusok"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr "feladat csoport azonosító"
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr "feladat csoport név"
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "feladat csoport"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "feladat csoport nevek"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr "kulcs"
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr "link"
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "teljes név"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr "rövid név"
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "ikon"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "URL az ikonhoz"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr "licenc szöveg"
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "licenc"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "licencek"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr "feladat azonosító"
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "feladat név"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr "feladat törzs"
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr "szerzők"
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr "kurátorok"
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr "tesztelők"
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
@@ -1384,137 +1389,137 @@ msgstr ""
"A feladat időlimitje másodpercekben. Tört másodperceket (pl. 1.5) is "
"írhatunk."
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "memória korlát"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr "A feladat memória limitje kilobyte-okban (pl. 64mb = 65536 kilobyte)."
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr "részleges pontok engedélyezése"
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "engedélyezett nyelvek"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr "manuáisan kezelt"
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr "publikálás ideje"
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr "feladat összefoglaló"
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "nyelv"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr "lefordított név"
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr "lefordított leírás"
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr "feladat fordítás"
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr "feladat fordítások"
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr "pontosított feladat"
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr "pontosítás törzse"
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr "pontosítás időbélyege"
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "nyelv specifikus erőforrás korlát"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "nyelv specifikus erőforrás korlátok"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr "hozzárendelt probléma"
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr "publikálás dátuma"
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr "megoldási útmutató tartalom"
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "megoldás"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "megoldások"
@@ -2353,7 +2358,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2379,7 +2384,7 @@ msgstr ""
msgid "You already voted."
msgstr "Már szavaztál."
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "Szerkesztve az oldalról"
@@ -2498,26 +2503,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr "Probléma leírása"
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "clarification body"
msgid "New clarification for %s"
@@ -2552,66 +2557,67 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "Nincs ilyen csoport"
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "Nem található csoport a \"%s\" kulccsal."
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr "Nem található ilyen csoport."
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "Csoportok"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s Tagok"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "Belépés a csoportba"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "Már benne vagy a csoportba."
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "Ez a csoport nem nyílt."
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "Csoport elhagyása"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "Nem vagy \"%s\"-ben."
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "Kérés a \"%s\"-hez való csatlakozásra"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "Belépési kérés részletei"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "%s belépési kéréseinek kezelése"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
@@ -2620,80 +2626,80 @@ msgstr ""
"A csoportod csak %d további tagot tud fogadni. Nem tudsz felvenni %d "
"felhasználót."
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "%d darab felhasználó jóváhagyva."
msgstr[1] "%d darab felhasználó jóváhagyva."
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "%d darab felhasználó elutasítva."
msgstr[1] "%d darab felhasználó elutasítva."
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "%s szerkesztése"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "Nem lehet szerkeszteni a csoportot"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "Nincs jogosultságod szerkeszteni ezt a csoportot."
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "Nincs jogosultságod embereket kirúgni ebből a csoportból."
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "Nem lehet kirúgni a felhasználót"
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr "A felhasználó akit megpróbálsz kirúgni nem létezik!"
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr "A felhasználó akit ki akarsz rúgni nincs a csoportban: %s."
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "Nincs ilyen feladat"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr "Megoldás útmutató {0}-hez"
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr "Megoldási útmutató {0}-hez"
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Feladatok"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr "Feltöltéstől eltiltott"
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
@@ -2701,20 +2707,20 @@ msgstr ""
"Nemkívánatos személy vagy ennél a feladatnál, így örökre el vagy tiltva a "
"feltöltéstől."
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr "Túl sok feltöltés"
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2860,7 +2866,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "Összes beküldés"
@@ -2965,48 +2971,52 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr "Nincs ilyen felhasználó"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr "Saját fiók"
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "Felhasználó %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
#, fuzzy
#| msgid "M j, Y, G:i"
msgid "M j, Y"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr "Frissítve az oldalon"
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "Profil szerkesztése"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr "Ranglista"
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3066,7 +3076,7 @@ msgstr "Heló, %(username)s."
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3138,7 +3148,8 @@ msgstr "Események"
msgid "News"
msgstr "Hírek"
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr "Pontosítások"
@@ -3146,7 +3157,8 @@ msgstr "Pontosítások"
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr "Nem jelentek meg pontosítások még."
@@ -3174,25 +3186,29 @@ msgstr "Új feladatok"
msgid "Comment stream"
msgstr "Kommentfolyam"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Online tesztelő"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3355,7 +3371,7 @@ msgstr "Lista"
msgid "Calendar"
msgstr "Naptár"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3435,11 +3451,11 @@ msgstr "AC arány"
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "Felhasználók"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr "Megoldási útmutató"
@@ -3575,11 +3591,11 @@ msgstr "Intézmény"
msgid "Full Name"
msgstr "teljes név"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3595,30 +3611,36 @@ msgstr "Biztos hogy csatlakozni akarsz?"
msgid "Are you sure you want to un-disqualify this participation?"
msgstr "Biztos hogy csatlakozni akarsz?"
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr "Csoportok mutatása"
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "teljes név"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
#, fuzzy
#| msgid "Show my tickets only"
msgid "Show friends only"
msgstr "Csak a saját hibajegyek mutatása"
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "virtual participation id"
+msgid "Show virtual participation"
+msgstr "virtuális részvételi azonosító"
+
#: templates/contest/stats.html:51
#, fuzzy
#| msgid "problem translation"
@@ -3760,71 +3782,77 @@ msgstr "aktiválás"
msgid "Update"
msgstr "Frissít"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr "Belépés a csoportba"
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr "Tagság kérelmezése"
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organizations"
msgid "Organization news"
msgstr "Csoportok"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no scheduled contests at this time."
msgid "There is no news at this time."
msgstr "Jelenleg nincs ütemezett verseny."
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "Verseny"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "Csoport elhagyása"
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr "Belépés a csoportba"
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr "Tagság kérelmezése"
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "Csoport szerkesztése"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "Kérések megtekintése"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr "Csoport adminisztrációja"
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr "Tagok megtekintése"
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "Csoport elhagyása"
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "See private contests"
msgid "New private contests"
msgstr "Privát versenyek mutatása"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "Mutasd PDF-ként"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "New problems"
msgid "New private problems"
@@ -3837,6 +3865,7 @@ msgid "Show my organizations only"
msgstr "Csoportok mutatása"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "Név"
@@ -3963,24 +3992,30 @@ msgstr ""
msgid "Filter by type..."
msgstr "Szűrés típus szerint..."
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "Kategória"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "Típusok"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr "AC %%"
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Clarifications"
+msgid "Add clarifications"
+msgstr "Pontosítások"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4066,100 +4101,100 @@ msgstr "Biztos hogy csatlakozni akarsz?"
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "Mutasd PDF-ként"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr "Megoldás beküldése"
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] "%(counter)s beküldés van hátra"
msgstr[1] "%(counter)s beküldés van hátra"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr "0 beküldés van hátra"
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr "Beküldéseim"
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr "Legjobb beküldések"
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr "Megoldási útmutató olvasása"
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr "Hibajegyek kezelése"
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "Feladat szerkesztése"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr "Teszt adatok szerkesztése"
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr "Feladat klónozása"
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "Pontok:"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr "(részleges)"
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "Időkorlát:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "Memóriakorlát:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "Szerző:"
msgstr[1] "Szerzők:"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "Feladat típus"
msgstr[1] "Feladat típusok"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "Engedélyezett nyelvek"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr "Nincs jelenleg online %(lang)s tesztelő"
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
#, fuzzy
#| msgid "Judge"
msgid "Judge:"
@@ -4167,20 +4202,20 @@ msgid_plural "Judges:"
msgstr[0] "Tesztelő"
msgstr[1] "Tesztelő"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr "Pontosítást kérek"
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr "Hiba jelentése"
@@ -4474,6 +4509,7 @@ msgid "Ping"
msgstr "Ping"
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4489,6 +4525,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr "Azonosító"
@@ -4805,6 +4842,28 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "felhasználói profil"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/it/LC_MESSAGES/django.po b/locale/it/LC_MESSAGES/django.po
index 8adca41..cd68ad8 100644
--- a/locale/it/LC_MESSAGES/django.po
+++ b/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Italian\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: it\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -138,8 +138,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -345,7 +347,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -403,8 +405,8 @@ msgstr[1] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -415,6 +417,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -495,7 +498,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -507,11 +510,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -523,7 +528,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -606,7 +611,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -709,7 +714,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -722,12 +727,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -821,12 +826,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -834,7 +839,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -855,7 +860,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -869,7 +874,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1014,14 +1019,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1149,7 +1154,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1157,7 +1162,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1221,269 +1226,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2314,7 +2319,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2340,7 +2345,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2458,26 +2463,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2511,165 +2516,166 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2813,7 +2819,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2917,46 +2923,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3016,7 +3026,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3088,7 +3098,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3096,7 +3107,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3124,23 +3136,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3297,7 +3313,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3377,11 +3393,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3511,11 +3527,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3527,26 +3543,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3672,63 +3692,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3737,6 +3761,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3856,24 +3881,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3954,119 +3983,119 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4358,6 +4387,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4373,6 +4403,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4669,6 +4700,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/ja/LC_MESSAGES/django.po b/locale/ja/LC_MESSAGES/django.po
index d8918d5..5d14a95 100644
--- a/locale/ja/LC_MESSAGES/django.po
+++ b/locale/ja/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Japanese\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: ja\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "利用者"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "投稿時刻"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "コメント本文"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "簡体字中国語"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "ログイン"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "ホーム"
@@ -136,8 +136,9 @@ msgstr "含まれているコンテスト"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "課題"
@@ -149,7 +150,7 @@ msgstr "設定"
msgid "Scheduling"
msgstr "スケジュール"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "詳細"
@@ -248,8 +249,8 @@ msgid "Taxonomy"
msgstr "分類"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -305,6 +306,7 @@ msgid "User"
msgstr "利用者"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "電子メール"
@@ -336,7 +338,7 @@ msgstr "許可されていない課題"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "それらの課題は、この言語での提出は許可されていません"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "説明"
@@ -393,8 +395,8 @@ msgstr[0] "%d 個の提出物が正常に再採点されました。"
msgid "Rescore the selected submissions"
msgstr "選択した提出物を再採点する"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "課題のコード"
@@ -405,6 +407,7 @@ msgstr "課題名"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -485,7 +488,7 @@ msgstr "コンテストの更新を購読する"
msgid "Enable experimental features"
msgstr "実験的な機能を有効化する"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "あなたは {count} 個以上の公開組織に参加できない場合があります。"
@@ -499,11 +502,13 @@ msgstr "判定器"
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "利用者名"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "パスワード"
@@ -515,7 +520,7 @@ msgstr "二要素認証のトークンは6桁の数字でなければなりま
msgid "Invalid Two Factor Authentication token."
msgstr "無効な二要素認証トークンです。"
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr "課題のコードは ^[a-z0-9]+$ でなければなりません"
@@ -598,7 +603,7 @@ msgstr "コメント"
msgid "comments"
msgstr "コメント"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr "%s の論説"
@@ -711,7 +716,7 @@ msgstr "これらの人々 は、コンテストを編集することができ
msgid "description"
msgstr "説明"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "課題"
@@ -724,12 +729,12 @@ msgstr "開始時刻"
msgid "end time"
msgstr "終了時刻"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "時間制限"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "公開されています"
@@ -839,12 +844,12 @@ msgstr ""
"する。"
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "組織へプライベートにする"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "組織"
@@ -852,7 +857,7 @@ msgstr "組織"
msgid "If private, only these organizations may see the contest"
msgstr "もしプライベートであれば、組織の者だけがコンテストを見ることができます"
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "OpenGraph 画像"
@@ -873,7 +878,7 @@ msgstr "ライブ参加者の人数"
msgid "contest summary"
msgstr "コンテスト概要"
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr "ソーシャルメディアなどのメタ説明タグに表示されるプレーンテキスト。"
@@ -889,7 +894,7 @@ msgstr ""
"コンテストへの参加が許可される前に競技者に提示するオプションのコード。無効に"
"するには空白のままにします。"
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr "感謝しない人"
@@ -1042,14 +1047,14 @@ msgid "contest participations"
msgstr "コンテスト参加者"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "課題"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "点数"
@@ -1179,7 +1184,7 @@ msgstr "親項目"
msgid "post title"
msgstr "投稿の題目"
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "著者"
@@ -1187,7 +1192,7 @@ msgstr "著者"
msgid "slug"
msgstr "スラグ"
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr "一般公開"
@@ -1253,271 +1258,271 @@ msgstr "メッセージのタイムスタンプ"
msgid "messages in the thread"
msgstr "スレッド中のメッセージ"
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr "課題分類 ID"
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr "課題分類名"
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "課題のタイプ"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "課題のタイプ"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr "課題のグループ ID"
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr "課題のグループ名"
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "課題グループ"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "課題グループ"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr "鍵"
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr "リンク"
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "氏名"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr "短縮名"
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr "このライセンスの下でページに表示される"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "アイコン"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "アイコンへの URL"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr "ライセンス本文"
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "ライセンス"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "ライセンス"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr "課題のコード"
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr "問題に対する短くて唯一なコード、URL で /problem/ の後に使用される"
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "課題名"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr "課題本文"
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr "作成者"
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr "キュレーター"
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr "テスター"
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
"この課題の秒単位での制限時間。小数秒(例えば1.5)はサポートされています。"
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "メモリ制限"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
"この課題のメモリ制限、キロバイト単位(例えば 64 mb = 65536 キロバイト)。"
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr "部分点を許す"
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "許可されている言語"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr "手動で管理されている"
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr "発行年月日"
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr "下位互換性を保つのために自動発行する魔法のような能力は持ちません。"
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr "課題の概要"
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "言語"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr "翻訳された名前"
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr "翻訳された説明"
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr "翻訳された課題"
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr "翻訳された課題"
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr "解説された課題"
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr "解説本文"
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr "解説のタイムスタンプ"
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "言語固有のリソース制限"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "言語固有のリソース制限"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr "関連する課題"
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr "発行日"
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr "編集内容"
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "解答"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "解答"
@@ -2366,7 +2371,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "サイトについて"
@@ -2392,7 +2397,7 @@ msgstr ""
msgid "You already voted."
msgstr "あなたは既に投票しました。"
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "サイトから編集された"
@@ -2511,26 +2516,26 @@ msgstr "ライブ"
msgid "Participation"
msgstr "参加"
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr "コンテストタグ: %s"
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr "問題の説明"
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "clarification body"
msgid "New clarification for %s"
@@ -2565,66 +2570,67 @@ msgstr "ランタイム"
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "このような組織はありません"
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "鍵 \"%s\" を持つ組織は見つかりませんでした。"
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr "このような組織を見つけることができませんでした。"
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "組織"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s のメンバー"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "所属している組織"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "あなたは、既にこの組織にしょぞくしています。"
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "この組織は公開ではありません。"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "組織から脱退する"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "あなたは \"%s\" に所属していません。"
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "%s への参加を申し込む"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "参加申込みの詳細"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "%s への参加申込みを管理する"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
@@ -2633,78 +2639,78 @@ msgstr ""
"あなたの組織はあと %d 人のメンバーしか受け入れられません。あなたは %d 人の利"
"用者を承認できません。"
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "%d 人の利用者を承認しました。"
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "%d 人の利用者を拒否しました。"
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "%s を編集"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "組織を編集できません"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "あなたは、この組織を編集することは許可されていません。"
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "あなたはこの組織から人を追い出すことを許可されていません。"
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "利用者を追い出せません"
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr "あなたが追い出そうとしている利用者は存在しません!"
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr "あなたが追い出そうとしているユーザは組織内にいません: %s 。"
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "そのような課題はありません"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr "コード \"%s\" を有する課題は見つかりませんでした。"
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr "{0} の論説"
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr "{0} の論説"
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "課題"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr "提出が禁止された"
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
@@ -2712,20 +2718,20 @@ msgstr ""
"あなたはこの課題に感謝しない人として宣言されている。あなたはこの課題に提出す"
"ることを永続的に禁止されている。"
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr "提出物が多過ぎます"
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr "あなたは、この課題の提出制限を超えました"
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr "%(problem)s に提出する"
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2872,7 +2878,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr "%(user)s による %(problem)s への提出物"
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "全ての提出物"
@@ -2981,48 +2987,52 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr "そのような利用者はいません"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr "利用者ハンドル \"%s\" はありません。"
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr "自分のアカウント"
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "利用者 %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
#, fuzzy
#| msgid "M j, Y, G:i"
msgid "M j, Y"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr "サイトで更新された"
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "プロフィールを編集する"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr "リーダーボード"
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3082,7 +3092,7 @@ msgstr "こんにちは、%(username)s。"
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3160,7 +3170,8 @@ msgstr "イベント"
msgid "News"
msgstr "お知らせ"
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr "解説"
@@ -3168,7 +3179,8 @@ msgstr "解説"
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr "現時点では何も解説されていません。"
@@ -3196,25 +3208,29 @@ msgstr "新しい課題"
msgid "Comment stream"
msgstr "コメントストリーム"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "オンライン判定"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3375,7 +3391,7 @@ msgstr "一覧"
msgid "Calendar"
msgstr "カレンダー"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr "情報"
@@ -3457,11 +3473,11 @@ msgstr "受理率"
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "利用者"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr "論説"
@@ -3602,11 +3618,11 @@ msgstr "組織"
msgid "Full Name"
msgstr "氏名"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3622,30 +3638,36 @@ msgstr "あなたは本当に参加したいですか?"
msgid "Are you sure you want to un-disqualify this participation?"
msgstr "あなたは本当に参加したいですか?"
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr "利用者の参加を見る"
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr "組織を表示する"
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "氏名"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
#, fuzzy
#| msgid "Show my tickets only"
msgid "Show friends only"
msgstr "私のチケットだけを表示する"
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "virtual participation id"
+msgid "Show virtual participation"
+msgstr "仮想参加 id"
+
#: templates/contest/stats.html:51
#, fuzzy
#| msgid "problem translation"
@@ -3793,71 +3815,77 @@ msgstr "有効化"
msgid "Update"
msgstr "更新"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr "組織に参加する"
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr "メンバーシップを要求する"
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organizations"
msgid "Organization news"
msgstr "組織"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no scheduled contests at this time."
msgid "There is no news at this time."
msgstr "現在スケジュールされているコンテストはありません。"
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "コンテスト"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "組織から脱退する"
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr "組織に参加する"
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr "メンバーシップを要求する"
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "組織を編集する"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "要求を表示する"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr "組織を管理する"
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr "メンバーを表示する"
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "組織から脱退する"
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "See private contests"
msgid "New private contests"
msgstr "プライベートのコンテストを見る"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "PDF として表示する"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "New problems"
msgid "New private problems"
@@ -3870,6 +3898,7 @@ msgid "Show my organizations only"
msgstr "組織を表示する"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "名前"
@@ -3995,24 +4024,30 @@ msgstr ""
msgid "Filter by type..."
msgstr "タイプで絞り込む..."
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr "ホットな課題"
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "カテゴリ"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "タイプ"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr "受理 %%"
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Clarifications"
+msgid "Add clarifications"
+msgstr "解説"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4098,117 +4133,117 @@ msgstr "あなたは本当に参加したいですか?"
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "PDF として表示する"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr "解答を提出する"
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] "%(counter)s 個の提出物が残っています"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr "提出物が残っていません"
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr "私の提出物"
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr "最優秀提出物"
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr "論説を読む"
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr "チケットを管理する"
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "課題を編集する"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr "テストデータを編集する"
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr "課題を複製する"
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "点数:"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr "(部分点)"
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "制限時間:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "メモリ制限:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "著者:"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "課題のタイプ"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "許可されている言語"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr "%(lang)s はオンライン判定されません"
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
#, fuzzy
#| msgid "Judge"
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] "判定器"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr "解説を要求する"
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr "問題を報告する"
@@ -4514,6 +4549,7 @@ msgid "Ping"
msgstr "ピン"
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "負荷"
@@ -4529,6 +4565,7 @@ msgid "There are no judges available at this time."
msgstr "現在利用できる判定器はありません。"
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr "ID"
@@ -4849,6 +4886,28 @@ msgstr "利用者スクリプト"
msgid "Update profile"
msgstr "プロフィールの更新"
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "ユーザープロフィール"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/ko/LC_MESSAGES/django.po b/locale/ko/LC_MESSAGES/django.po
index bf1e772..858e8bd 100644
--- a/locale/ko/LC_MESSAGES/django.po
+++ b/locale/ko/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Korean\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: ko\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "사용자"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "게시 시각"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "코멘트 본문"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "중국어(간체)"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "로그인"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "메인"
@@ -136,8 +136,9 @@ msgstr "포함된 대회"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "문제"
@@ -149,7 +150,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Scheduling"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "세부사항"
@@ -248,8 +249,8 @@ msgid "Taxonomy"
msgstr "분류"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -305,6 +306,7 @@ msgid "User"
msgstr "사용자"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "이메일"
@@ -336,7 +338,7 @@ msgstr "허가되지 않은 문제"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "이 문제는 이 언어로는 제출이 불가합니다."
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "설명"
@@ -393,8 +395,8 @@ msgstr[0] "%d개의 제출이 성공적으로 재채점되었습니다."
msgid "Rescore the selected submissions"
msgstr "재채점"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "문제 코드"
@@ -405,6 +407,7 @@ msgstr "문제 이름"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -485,7 +488,7 @@ msgstr "대회 업데이트를 구독하세요."
msgid "Enable experimental features"
msgstr "베타 기능 활성화"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "{count}개보다 많은 공개 조직에 소속될 수 없습니다."
@@ -499,11 +502,13 @@ msgstr "채점"
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "사용자 이름"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "비밀번호"
@@ -515,7 +520,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -598,7 +603,7 @@ msgstr "코멘트"
msgid "comments"
msgstr "코멘트"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -709,7 +714,7 @@ msgstr "이 사람들은 대회를 편집할 권한이 있습니다."
msgid "description"
msgstr "설명"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "문제"
@@ -722,12 +727,12 @@ msgstr "시작 시각"
msgid "end time"
msgstr "종료 시각"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "시간 제한"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "공개"
@@ -829,12 +834,12 @@ msgstr ""
"대회 종료전까지 설정 후 대회 종료 후 해제하여 모든 테스트 케이스 채점 진행"
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "조직에 비공개"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "조직"
@@ -842,7 +847,7 @@ msgstr "조직"
msgid "If private, only these organizations may see the contest"
msgstr "비공개로 설정 시, 이 조직만 대회를 볼 수 있습니다."
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "OpenGraph 이미지"
@@ -863,7 +868,7 @@ msgstr "현재 접속되어 있는 참가자 수"
msgid "contest summary"
msgstr "대회 요약"
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -877,7 +882,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1026,14 +1031,14 @@ msgid "contest participations"
msgstr "대회 참가자"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "문제"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "점수"
@@ -1163,7 +1168,7 @@ msgstr "부모 항목"
msgid "post title"
msgstr "게시물 제목"
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "저자"
@@ -1171,7 +1176,7 @@ msgstr "저자"
msgid "slug"
msgstr "slug"
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr "공개 여부"
@@ -1237,269 +1242,269 @@ msgstr "메시지 타임스탬프"
msgid "messages in the thread"
msgstr "messages in the thread"
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr "문제 범주 ID"
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr "문제 범주 이름"
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "문제 유형"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "문제 유형"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr "문제 그룹 ID"
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr "문제 그룹"
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "문제 그룹"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "문제 그룹"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr "key"
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr "링크"
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "전체 이름"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr "짧은 이름"
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr "이 라이센스에 의해 표시됨"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "아이콘"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "아이콘 URL"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr "라이센스 내용"
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "라이센스"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "라이센스"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr "문제 코드"
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "문제 이름"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr "문제 본문"
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr "제작자"
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr "curators"
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr "testers"
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "메모리 제한"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr "부분 점수 허용"
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "허용된 언어"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr "수동으로 관리됨"
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr "게시 날짜"
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr "문제 요약"
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "언어"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr "번역된 이름"
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr "번역된 설명"
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr "문제 번역"
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr "문제 번역"
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr "수정된 문제"
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr "수정사항"
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr "수정 타임스탬프"
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "특정 언어 리소스 제한"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "특정 언어 리소스 제한"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr "관련된 문제"
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "솔루션"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "솔루션"
@@ -2336,7 +2341,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2362,7 +2367,7 @@ msgstr ""
msgid "You already voted."
msgstr "이미 투표하셨습니다."
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "사이트에서 편집"
@@ -2481,26 +2486,26 @@ msgstr "실시간"
msgid "Participation"
msgstr "참여"
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr "대회 태그: %s"
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "clarification body"
msgid "New clarification for %s"
@@ -2535,66 +2540,67 @@ msgstr "런타임"
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "존재하지 않는 조직"
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "%s 조직을 찾을 수 없습니다."
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr "그러한 조직을 찾을 수 없습니다."
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "조직"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s 멤버"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "조직 가입"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "이미 조직에 가입되어 있습니다."
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "이 조직은 공개되어 있지 않습니다."
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "조직 탈퇴"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "%s에 있지 않습니다."
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "%s 가입 신청"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "가입 신청 세부 사항"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "%s 가입 신청 가입"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
@@ -2603,97 +2609,97 @@ msgstr ""
"당신의 조직은 %d명의 회원만 더 가입이 가능합니다. %d명의 사용자 가입 승인이 "
"불가합니다."
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "%d명 사용자 승인"
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "%d명 거부"
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "%s 편집중"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "조직 편집이 불가합니다."
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "조직을 편집할 권한이 없습니다."
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "조직 사용자를 탈퇴시킬 권한이 없습니다."
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "이 사용자를 탈퇴시킬 수 없습니다."
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr "탈퇴시키려는 사용자가 존재하지 않습니다."
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "존재하지 않는 문제"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr "%s 문제를 찾을 수 없습니다."
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "문제"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2839,7 +2845,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "모든 제출들"
@@ -2947,46 +2953,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3046,7 +3056,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3119,7 +3129,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3127,7 +3138,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3155,25 +3167,29 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Online Judge"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3335,7 +3351,7 @@ msgstr ""
msgid "Calendar"
msgstr "표준"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3425,11 +3441,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3565,11 +3581,11 @@ msgstr "그룹"
msgid "Full Name"
msgstr "전체 이름"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3581,28 +3597,34 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "전체 이름"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "virtual participation id"
+msgid "Show virtual participation"
+msgstr "가상 참여 id"
+
#: templates/contest/stats.html:51
#, fuzzy
#| msgid "problem translation"
@@ -3736,69 +3758,75 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr ""
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr ""
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organizations"
msgid "Organization news"
msgstr "조직"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
msgid "There is no news at this time."
msgstr ""
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contests"
msgid "Controls"
msgstr "대회"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr ""
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr ""
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr ""
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr ""
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr ""
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr ""
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "associated contest"
msgid "New private contests"
msgstr "관련된 대회"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "rate all"
+msgid "View all"
+msgstr "모든 순위"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "associated problem"
msgid "New private problems"
@@ -3811,6 +3839,7 @@ msgid "Show my organizations only"
msgstr "조직"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3932,24 +3961,30 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "clarification body"
+msgid "Add clarifications"
+msgstr "수정사항"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4034,122 +4069,122 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, fuzzy, python-format
#| msgid "contest submission"
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] "대회 제출"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
#, fuzzy
#| msgid "Authors"
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "저자"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
#, fuzzy
#| msgid "problem type"
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "문제 유형"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
#, fuzzy
#| msgid "judge"
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] "채점"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4440,6 +4475,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4455,6 +4491,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4765,6 +4802,28 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "사용자 프로파일"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/lt/LC_MESSAGES/django.po b/locale/lt/LC_MESSAGES/django.po
index 6c33ff4..6ed93e7 100644
--- a/locale/lt/LC_MESSAGES/django.po
+++ b/locale/lt/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Lithuanian\n"
@@ -17,21 +17,21 @@ msgstr ""
"X-Crowdin-Language: lt\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -99,11 +99,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -143,8 +143,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -156,7 +157,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -267,8 +268,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -330,6 +331,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -364,7 +366,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -424,8 +426,8 @@ msgstr[3] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -436,6 +438,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -516,7 +519,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -528,11 +531,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -544,7 +549,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -627,7 +632,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -730,7 +735,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -743,12 +748,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -842,12 +847,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -855,7 +860,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -876,7 +881,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -890,7 +895,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1035,14 +1040,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1170,7 +1175,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1178,7 +1183,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1242,269 +1247,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2341,7 +2346,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2367,7 +2372,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2485,26 +2490,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2538,73 +2543,74 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2613,7 +2619,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2622,85 +2628,85 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2846,7 +2852,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2950,46 +2956,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3049,7 +3059,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3121,7 +3131,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3129,7 +3140,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3157,23 +3169,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3330,7 +3346,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3410,11 +3426,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3544,11 +3560,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3560,26 +3576,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3705,63 +3725,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3770,6 +3794,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3889,24 +3914,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3987,16 +4016,16 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
@@ -4005,63 +4034,63 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
@@ -4069,7 +4098,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
@@ -4077,16 +4106,16 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
@@ -4094,20 +4123,20 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4401,6 +4430,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4416,6 +4446,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4712,6 +4743,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/nl/LC_MESSAGES/django.po b/locale/nl/LC_MESSAGES/django.po
index b88688b..a300f0f 100644
--- a/locale/nl/LC_MESSAGES/django.po
+++ b/locale/nl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Dutch\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: nl\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -138,8 +138,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -345,7 +347,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -403,8 +405,8 @@ msgstr[1] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -415,6 +417,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -495,7 +498,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -507,11 +510,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -523,7 +528,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -606,7 +611,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -709,7 +714,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -722,12 +727,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -821,12 +826,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -834,7 +839,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -855,7 +860,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -869,7 +874,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1014,14 +1019,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1149,7 +1154,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1157,7 +1162,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1221,269 +1226,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2314,7 +2319,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2340,7 +2345,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2458,26 +2463,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2511,165 +2516,166 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2813,7 +2819,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2917,46 +2923,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3016,7 +3026,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3088,7 +3098,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3096,7 +3107,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3124,23 +3136,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3297,7 +3313,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3377,11 +3393,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3511,11 +3527,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3527,26 +3543,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3672,63 +3692,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3737,6 +3761,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3856,24 +3881,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3954,119 +3983,119 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4358,6 +4387,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4373,6 +4403,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4669,6 +4700,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/pl/LC_MESSAGES/django.po b/locale/pl/LC_MESSAGES/django.po
index a0646b3..c85a4bf 100644
--- a/locale/pl/LC_MESSAGES/django.po
+++ b/locale/pl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Polish\n"
@@ -18,21 +18,21 @@ msgstr ""
"X-Crowdin-Language: pl\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -100,11 +100,11 @@ msgstr "Chiński Uproszczony"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Logowanie"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Strona główna"
@@ -144,8 +144,9 @@ msgstr "Załączniki"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Problem"
@@ -157,7 +158,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Planowanie"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Szczegóły"
@@ -268,8 +269,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -331,6 +332,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -365,7 +367,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -425,8 +427,8 @@ msgstr[3] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -437,6 +439,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -517,7 +520,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -529,11 +532,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -545,7 +550,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -628,7 +633,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -731,7 +736,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -744,12 +749,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -843,12 +848,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -856,7 +861,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -877,7 +882,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -891,7 +896,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1036,14 +1041,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1171,7 +1176,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1179,7 +1184,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1243,269 +1248,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2342,7 +2347,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2368,7 +2373,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2486,26 +2491,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2539,73 +2544,74 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2614,7 +2620,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2623,85 +2629,85 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2847,7 +2853,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2951,46 +2957,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3050,7 +3060,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3122,7 +3132,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3130,7 +3141,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3158,23 +3170,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3331,7 +3347,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3411,11 +3427,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3547,11 +3563,11 @@ msgstr "Organizacja"
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3563,26 +3579,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3710,65 +3730,69 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr ""
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr ""
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organization"
msgid "Organization news"
msgstr "Organizacja"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
msgid "There is no news at this time."
msgstr ""
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
msgid "Controls"
msgstr ""
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr ""
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr ""
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr ""
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr ""
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr ""
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr ""
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
msgid "New private contests"
msgstr ""
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3777,6 +3801,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3896,24 +3921,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3994,16 +4023,16 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
@@ -4012,63 +4041,63 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
@@ -4076,7 +4105,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
#, fuzzy
#| msgid "Problem"
msgid "Problem type"
@@ -4086,16 +4115,16 @@ msgstr[1] "Problem"
msgstr[2] "Problem"
msgstr[3] "Problem"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
@@ -4103,20 +4132,20 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4410,6 +4439,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4425,6 +4455,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4721,6 +4752,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/pt/LC_MESSAGES/django.po b/locale/pt/LC_MESSAGES/django.po
index 9ca7ad8..9c6b116 100644
--- a/locale/pt/LC_MESSAGES/django.po
+++ b/locale/pt/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Portuguese, Brazilian\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: pt-BR\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -138,8 +138,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -345,7 +347,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -403,8 +405,8 @@ msgstr[1] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -415,6 +417,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -495,7 +498,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -507,11 +510,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -523,7 +528,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -606,7 +611,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -709,7 +714,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -722,12 +727,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -821,12 +826,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -834,7 +839,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -855,7 +860,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -869,7 +874,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1014,14 +1019,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1149,7 +1154,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1157,7 +1162,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1221,269 +1226,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2314,7 +2319,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2340,7 +2345,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2458,26 +2463,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2511,165 +2516,166 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] ""
msgstr[1] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2813,7 +2819,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2917,46 +2923,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3016,7 +3026,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3088,7 +3098,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3096,7 +3107,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3124,23 +3136,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3297,7 +3313,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3377,11 +3393,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3511,11 +3527,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3527,26 +3543,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3672,63 +3692,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3737,6 +3761,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3856,24 +3881,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3954,119 +3983,119 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4358,6 +4387,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4373,6 +4403,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4669,6 +4700,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/ro/LC_MESSAGES/django.po b/locale/ro/LC_MESSAGES/django.po
index 11e6cc2..c1dc332 100644
--- a/locale/ro/LC_MESSAGES/django.po
+++ b/locale/ro/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Romanian\n"
@@ -17,21 +17,21 @@ msgstr ""
"X-Crowdin-Language: ro\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -99,11 +99,11 @@ msgstr "Chineză simplificată"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Login"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Start"
@@ -141,8 +141,9 @@ msgstr "Concursuri incluse"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Problemă"
@@ -154,7 +155,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Programare"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Detalii"
@@ -261,8 +262,8 @@ msgid "Taxonomy"
msgstr "Taxonomie"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -322,6 +323,7 @@ msgid "User"
msgstr "Utilizator"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "Email"
@@ -355,7 +357,7 @@ msgstr "Probleme nepermise"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "Aceste probleme NU pot fi transmise în acest limbaj"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Descriere"
@@ -414,8 +416,8 @@ msgstr[2] "%d submisii au fost repunctate cu succes."
msgid "Rescore the selected submissions"
msgstr "Repunctează submisiile selectate"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Codul problemei"
@@ -426,6 +428,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -506,7 +509,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -520,11 +523,13 @@ msgstr "evaluator"
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Nume de utilizator"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -536,7 +541,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr "Codul problemei trebuie să fie ^[a-z0-9]+$"
@@ -619,7 +624,7 @@ msgstr "comentariu"
msgid "comments"
msgstr "comentarii"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -730,7 +735,7 @@ msgstr "Aceste persoane vor putea să editeze concursul."
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "probleme"
@@ -743,12 +748,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -844,12 +849,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "organizații"
@@ -857,7 +862,7 @@ msgstr "organizații"
msgid "If private, only these organizations may see the contest"
msgstr "Dacă e privat, doar aceste organizaţii pot vedea acest concurs"
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "Imagine OpenGraph"
@@ -878,7 +883,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -892,7 +897,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1039,14 +1044,14 @@ msgid "contest participations"
msgstr "participările la concurs"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "problemă"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "puncte"
@@ -1176,7 +1181,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1184,7 +1189,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1250,269 +1255,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "tipul problemei"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "tipurile problemei"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "grupul problemei"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "grupurile problemei"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "nume complet"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr "Afişat pe paginile sub această licenţă"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "pictogramă"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "Hyperlink către icon"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "licență"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "licențe"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr "codul problemei"
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "numele problemei"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "limbaj"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "limita de resurse specifică limbii"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "limite de resurse specifică limbii"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "soluţie"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "soluţii"
@@ -2353,7 +2358,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "Despre"
@@ -2379,7 +2384,7 @@ msgstr ""
msgid "You already voted."
msgstr "Ai votat deja."
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "Editat de pe site"
@@ -2498,26 +2503,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "Best solutions for %s"
msgid "New clarification for %s"
@@ -2552,73 +2557,74 @@ msgstr "Limbaje"
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "Nicio organizaţie de acest fel"
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "Nicio organizaţie găsită cu cheia \"%s\"."
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr "Nu am putut găsi organizaţii de acest fel."
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "Organizaţii"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s Membri"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "Aderarea la organizaţie"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "Sunteţi deja în organizaţie."
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "Această organizaţie nu este deschisă."
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "Părăsire organizaţie"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "Nu sunteţi în \"%s\"."
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "Cerere de adăugare la %s"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "Detalii despre cererea de adăugare"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "Gestionarea cererilor de asociere cu %s"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2626,7 +2632,7 @@ msgstr[0] "Aprobat %d utilizator."
msgstr[1] "Aprobat %d utilizatori."
msgstr[2] "Aprobat %d utilizatori."
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2634,66 +2640,66 @@ msgstr[0] "Respins %d utilizator."
msgstr[1] "Respins %d utilizatori."
msgstr[2] "Respins %d utilizatori."
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "Editare %s"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "Nu puteţi edita organizaţia"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "Nu aveţi permisiunea pentru a edita această organizaţie."
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "Nicio problemă de acest fel"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr "Imposibil de găsit probleme cu codul \"%s\"."
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Probleme"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
@@ -2701,20 +2707,20 @@ msgstr ""
"Ați fost declarat \"persoană neacceptată\" pentru această problemă. Sunteți "
"exclus definitiv de la submiterea acestei probleme."
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2867,7 +2873,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr "Soluţia problemei %(problem)s de %(user)s"
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "Toate soluţile"
@@ -2973,48 +2979,52 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr "Niciun astfel de utilizator"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr "Porecla de utilizator \"%s\" nu există."
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "Utilizatorul %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
#, fuzzy
#| msgid "M j, Y, G:i"
msgid "M j, Y"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr "M j, Y, G:i"
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr "Actualizat pe loc"
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "Editează-ți profilul"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3074,7 +3084,7 @@ msgstr "Bună ziua, %(username)s."
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3147,7 +3157,8 @@ msgstr "Evenimente"
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3155,7 +3166,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3183,25 +3195,29 @@ msgstr "Probleme noi"
msgid "Comment stream"
msgstr "Comentarii"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Online Judge"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3363,7 +3379,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3446,11 +3462,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "Utilizatori"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3586,11 +3602,11 @@ msgstr "Organizație"
msgid "Full Name"
msgstr "nume complet"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3602,28 +3618,34 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "nume complet"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "contest participation"
+msgid "Show virtual participation"
+msgstr "participarea la concurs"
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3771,71 +3793,77 @@ msgstr "activează"
msgid "Update"
msgstr "Actualizare"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr "Alăturaţi-vă organizaţiei"
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr "Cerere de membru"
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organizations"
msgid "Organization news"
msgstr "Organizaţii"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no scheduled contests at this time."
msgid "There is no news at this time."
msgstr "Nu există concursuri programate în acest moment."
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "Concurs"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "Părăsiţi organizaţia"
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr "Alăturaţi-vă organizaţiei"
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr "Cerere de membru"
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "Editează organizaţia"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "Vezi solicitări"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr ""
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr "Vezi membrii"
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "Părăsiţi organizaţia"
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "Rate all ratable contests"
msgid "New private contests"
msgstr "Dă o notă la toate concursurile adecvate"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "Versiune PDF"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "New problems"
msgid "New private problems"
@@ -3848,6 +3876,7 @@ msgid "Show my organizations only"
msgstr "organizații"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "Nume"
@@ -3969,24 +3998,30 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "Categorie"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "Tipuri"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Best solutions for %s"
+msgid "Add clarifications"
+msgstr "Cele mai bune soluţii pentru %s"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4069,16 +4104,16 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "Versiune PDF"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr "Trimite soluţie"
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, fuzzy, python-format
#| msgid "contest submission"
msgid "%(counter)s submission left"
@@ -4087,70 +4122,70 @@ msgstr[0] "submisie de concurs"
msgstr[1] "submisie de concurs"
msgstr[2] "submisie de concurs"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr "Soluţiile mele"
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr "Cele mai bune soluţii"
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "Schimbă problema"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr "Duplică problemă"
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "Puncte:"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr "(parţial)"
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "Limita de timp:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "Limita de memorie:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "Autor:"
msgstr[1] "Autori:"
msgstr[2] "Autori:"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
#, fuzzy
#| msgid "problem type"
msgid "Problem type"
@@ -4159,16 +4194,16 @@ msgstr[0] "tipul problemei"
msgstr[1] "tipul problemei"
msgstr[2] "tipul problemei"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "Limbajele acceptate"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr "Nici un judge pentru %(lang)s e online"
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
#, fuzzy
#| msgid "Judges"
msgid "Judge:"
@@ -4177,20 +4212,20 @@ msgstr[0] "Judges"
msgstr[1] "Judges"
msgstr[2] "Judges"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4487,6 +4522,7 @@ msgid "Ping"
msgstr "Ping"
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "Încărcare"
@@ -4502,6 +4538,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr "ID"
@@ -4808,6 +4845,28 @@ msgstr "Script de utilizator"
msgid "Update profile"
msgstr "Actualizați profilul"
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "profil utilizator"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po
index 81a2c67..45d6e25 100644
--- a/locale/ru/LC_MESSAGES/django.po
+++ b/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Russian\n"
@@ -18,21 +18,21 @@ msgstr ""
"X-Crowdin-Language: ru\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "пользователь"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "время публикации"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "тело комментария"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -100,11 +100,11 @@ msgstr "Упрощенный китайский"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Войти"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Главная"
@@ -144,8 +144,9 @@ msgstr "Включены конкурсы"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Проблема"
@@ -157,7 +158,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Расписание"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Детали"
@@ -268,8 +269,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -331,6 +332,7 @@ msgid "User"
msgstr "Пользователь"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "Эл. почта"
@@ -365,7 +367,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "Решения этих задач нельзя сдавать на этом языке"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Описание"
@@ -425,8 +427,8 @@ msgstr[3] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Исходный код"
@@ -437,6 +439,7 @@ msgstr "Название задачи"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -517,7 +520,7 @@ msgstr "Уведомлять об изменениях в соревновани
msgid "Enable experimental features"
msgstr "Включить экспериментальные возможности"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "Вы не можете состоять более чем в {count} публичных организациях."
@@ -529,11 +532,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Имя пользователя"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "Пароль"
@@ -545,7 +550,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -628,7 +633,7 @@ msgstr "комментарий"
msgid "comments"
msgstr "комментарии"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr "Разбор задач для %s"
@@ -739,7 +744,7 @@ msgstr "Эти люди будут иметь право изменять сор
msgid "description"
msgstr "описание"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "задачи"
@@ -752,12 +757,12 @@ msgstr "время начала"
msgid "end time"
msgstr "время конца"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "ограничение по памяти"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -859,12 +864,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "организации"
@@ -872,7 +877,7 @@ msgstr "организации"
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -893,7 +898,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -907,7 +912,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1052,14 +1057,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "задача"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "очки"
@@ -1187,7 +1192,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "авторы"
@@ -1195,7 +1200,7 @@ msgstr "авторы"
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1259,269 +1264,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "язык"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2362,7 +2367,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "О нас"
@@ -2388,7 +2393,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2507,26 +2512,26 @@ msgstr "Онлайн"
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2560,73 +2565,74 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2635,7 +2641,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2644,85 +2650,85 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Задачи"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2868,7 +2874,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2972,46 +2978,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "Пользователь %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3071,7 +3081,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3144,7 +3154,8 @@ msgstr "События"
msgid "News"
msgstr "Новости"
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3152,7 +3163,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3180,25 +3192,29 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Онлайн Judge"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3359,7 +3375,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3441,11 +3457,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "Пользователи"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3582,11 +3598,11 @@ msgstr "Организация"
msgid "Full Name"
msgstr "Имя"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3602,26 +3618,32 @@ msgstr "Вы уверены, что вы хотите выйти?"
msgid "Are you sure you want to un-disqualify this participation?"
msgstr "Вы уверены, что вы хотите выйти?"
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "contest participation"
+msgid "Show virtual participation"
+msgstr "участие в соревновании"
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3757,71 +3779,77 @@ msgstr "активировать"
msgid "Update"
msgstr "Обновить"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr "Присоединиться к организации"
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr ""
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organization"
msgid "Organization news"
msgstr "Организация"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no comments at the moment."
msgid "There is no news at this time."
msgstr "Еще нет ни одного комментария."
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "Соревнование"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "Покинуть организацию"
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr "Присоединиться к организации"
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr ""
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "Редактировать организацию"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "Просмотр запросов"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr ""
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr ""
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "Покинуть организацию"
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "Leave contest"
msgid "New private contests"
msgstr "Покинуть соревнование"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "Просмотр в формате PDF"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "Edit problem"
msgid "New private problems"
@@ -3834,6 +3862,7 @@ msgid "Show my organizations only"
msgstr "организации"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "Имя"
@@ -3955,24 +3984,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "Категория"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "Типы"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4056,16 +4089,16 @@ msgstr "Вы уверены, что вы хотите выйти?"
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "Просмотр в формате PDF"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
@@ -4074,63 +4107,63 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "Редактировать задачу"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
#, fuzzy
#| msgid "Authors"
msgid "Author:"
@@ -4140,7 +4173,7 @@ msgstr[1] "Авторы"
msgstr[2] "Авторы"
msgstr[3] "Авторы"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
#, fuzzy
#| msgid "Problem code"
msgid "Problem type"
@@ -4150,16 +4183,16 @@ msgstr[1] "Исходный код"
msgstr[2] "Исходный код"
msgstr[3] "Исходный код"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
@@ -4167,20 +4200,20 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4474,6 +4507,7 @@ msgid "Ping"
msgstr "Пинг"
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "Загрузка"
@@ -4489,6 +4523,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr "ID"
@@ -4795,6 +4830,28 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "User %s"
+msgid "User File"
+msgstr "Пользователь %s"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/sr/LC_MESSAGES/django.po b/locale/sr/LC_MESSAGES/django.po
index 35c892b..94f6760 100644
--- a/locale/sr/LC_MESSAGES/django.po
+++ b/locale/sr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2016-12-22 21:23-0500\n"
"Last-Translator: Icyene \n"
"Language-Team: Serbian (Latin)\n"
@@ -17,21 +17,21 @@ msgstr ""
"X-Crowdin-Language: sr-CS\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -99,11 +99,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -141,8 +141,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -154,7 +155,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -261,8 +262,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -322,6 +323,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -355,7 +357,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -414,8 +416,8 @@ msgstr[2] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -426,6 +428,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -506,7 +509,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -518,11 +521,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -534,7 +539,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -617,7 +622,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -720,7 +725,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -733,12 +738,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -832,12 +837,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -845,7 +850,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -866,7 +871,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -880,7 +885,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1025,14 +1030,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1160,7 +1165,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1168,7 +1173,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1232,269 +1237,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2328,7 +2333,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2354,7 +2359,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2472,26 +2477,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2525,73 +2530,74 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2599,7 +2605,7 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2607,85 +2613,85 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2830,7 +2836,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2934,46 +2940,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3033,7 +3043,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3105,7 +3115,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3113,7 +3124,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3141,23 +3153,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3314,7 +3330,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3394,11 +3410,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3528,11 +3544,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3544,26 +3560,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3689,63 +3709,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3754,6 +3778,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3873,24 +3898,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3971,16 +4000,16 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
@@ -3988,106 +4017,106 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4380,6 +4409,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4395,6 +4425,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4691,6 +4722,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/sr_Latn/LC_MESSAGES/django.po b/locale/sr_Latn/LC_MESSAGES/django.po
index 166a4f1..8c5db5a 100644
--- a/locale/sr_Latn/LC_MESSAGES/django.po
+++ b/locale/sr_Latn/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:06\n"
"Last-Translator: Icyene\n"
"Language-Team: Serbian (Latin)\n"
@@ -17,21 +17,21 @@ msgstr ""
"X-Crowdin-Language: sr-CS\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr ""
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr ""
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -99,11 +99,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr ""
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr ""
@@ -141,8 +141,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -154,7 +155,7 @@ msgstr ""
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr ""
@@ -261,8 +262,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -322,6 +323,7 @@ msgid "User"
msgstr ""
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr ""
@@ -355,7 +357,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr ""
@@ -414,8 +416,8 @@ msgstr[2] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -426,6 +428,7 @@ msgstr ""
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -506,7 +509,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -518,11 +521,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr ""
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr ""
@@ -534,7 +539,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -617,7 +622,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -720,7 +725,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -733,12 +738,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -832,12 +837,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -845,7 +850,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -866,7 +871,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -880,7 +885,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1025,14 +1030,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr ""
@@ -1160,7 +1165,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1168,7 +1173,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1232,269 +1237,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr ""
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr ""
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr ""
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr ""
@@ -2328,7 +2333,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr ""
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2354,7 +2359,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2472,26 +2477,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2525,73 +2530,74 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
@@ -2599,7 +2605,7 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
@@ -2607,85 +2613,85 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr ""
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr ""
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2830,7 +2836,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr ""
@@ -2934,46 +2940,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr ""
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr ""
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3033,7 +3043,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3105,7 +3115,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3113,7 +3124,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3141,23 +3153,27 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr ""
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3314,7 +3330,7 @@ msgstr ""
msgid "Calendar"
msgstr ""
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3394,11 +3410,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3528,11 +3544,11 @@ msgstr ""
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3544,26 +3560,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3689,63 +3709,67 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr ""
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr ""
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr ""
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr ""
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr ""
-#: templates/organization/home.html:108
-msgid "Edit organization"
-msgstr ""
-
-#: templates/organization/home.html:112
-msgid "View requests"
-msgstr ""
-
-#: templates/organization/home.html:118
-msgid "Admin organization"
-msgstr ""
-
#: templates/organization/home.html:122
-msgid "View members"
+msgid "Organization news"
msgstr ""
-#: templates/organization/home.html:129
-msgid "New private contests"
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr ""
+
+#: templates/organization/home.html:137
+msgid "Controls"
msgstr ""
#: templates/organization/home.html:142
+msgid "Edit organization"
+msgstr ""
+
+#: templates/organization/home.html:148
+msgid "View requests"
+msgstr ""
+
+#: templates/organization/home.html:161
+msgid "Admin organization"
+msgstr ""
+
+#: templates/organization/home.html:167
+msgid "View members"
+msgstr ""
+
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
+msgid "New private contests"
+msgstr ""
+
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3754,6 +3778,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3873,24 +3898,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3971,16 +4000,16 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
@@ -3988,106 +4017,106 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr ""
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr ""
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr ""
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4380,6 +4409,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4395,6 +4425,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4691,6 +4722,26 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+msgid "User File"
+msgstr ""
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po
index 65e4088..4e2e4e3 100644
--- a/locale/tr/LC_MESSAGES/django.po
+++ b/locale/tr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:06\n"
"Last-Translator: Icyene\n"
"Language-Team: Turkish\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: tr\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "kullanıcı"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "gönderi zamanı"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "yorum metni"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Giriş"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Ana sayfa"
@@ -138,8 +138,9 @@ msgstr "Yarışmalar"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr ""
@@ -151,7 +152,7 @@ msgstr ""
msgid "Scheduling"
msgstr "Planlama"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Ayrıntılar"
@@ -254,8 +255,8 @@ msgid "Taxonomy"
msgstr "Tasnif"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -313,6 +314,7 @@ msgid "User"
msgstr "Kullanıcı"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "E-posta"
@@ -345,7 +347,7 @@ msgstr "Yasaklı problemler"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "Bu problemler için bu dilde çözüm gönderilemez"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Tanım"
@@ -403,8 +405,8 @@ msgstr[1] "%d çözüm yeniden puanlandı."
msgid "Rescore the selected submissions"
msgstr "Seçili çözümleri yeniden puanla"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Problem anahtarı"
@@ -415,6 +417,7 @@ msgstr "Problem adı"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -495,7 +498,7 @@ msgstr "Yarışma güncellemelerine abone ol"
msgid "Enable experimental features"
msgstr "Deneysel özellikleri aç"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "{count} açık organizasyondan daha fazlasına üye olamazsın."
@@ -509,11 +512,13 @@ msgstr "judge'lar"
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Kullanıcı Adı"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "Şifre"
@@ -525,7 +530,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr "Problem kodu ^[a-z0-9]+$ olmalıdır"
@@ -608,7 +613,7 @@ msgstr "yorum"
msgid "comments"
msgstr "yorumlar"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr "%s problemi için editorial"
@@ -721,7 +726,7 @@ msgstr "Bu kişiler yarışmayı düzenleyebilecekler."
msgid "description"
msgstr "Tanım"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "problemler"
@@ -734,12 +739,12 @@ msgstr "başlangıç"
msgid "end time"
msgstr "bitiş"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "zaman sınırı"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "herkese açık"
@@ -849,12 +854,12 @@ msgstr ""
"puanlanır."
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "organizasyonlara özel"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "organizasyonlar"
@@ -862,7 +867,7 @@ msgstr "organizasyonlar"
msgid "If private, only these organizations may see the contest"
msgstr "Özel ise, sadece bu organizasyonlar yarışmayı görebilirler"
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "OpenGraph resmi"
@@ -883,7 +888,7 @@ msgstr "anlık katılımcı sayısı"
msgid "contest summary"
msgstr "yarışma özeti"
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
"Düz yazı, sosyal medya vb. için \"meta description\" tag'inde görünecektir."
@@ -900,7 +905,7 @@ msgstr ""
"Yarışmaya katılabilmek için girilmesi gereken, isteğe bağlı bir kod. Boş "
"bırakılırsa devre dışı kalır."
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr "istenmeyen kişiler"
@@ -1051,14 +1056,14 @@ msgid "contest participations"
msgstr "yarışma katılımı"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr ""
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "puan"
@@ -1188,7 +1193,7 @@ msgstr "üst nesne"
msgid "post title"
msgstr "gönderi başlığı"
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "yazarlar"
@@ -1196,7 +1201,7 @@ msgstr "yazarlar"
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr "halka açık mı?"
@@ -1262,133 +1267,133 @@ msgstr "mesaj zaman damgası(timestamp)"
msgid "messages in the thread"
msgstr "konudaki mesajlar"
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr "problem kategori ID'si"
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr "problem kategorisi adı"
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "problem tipi"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "problem tipleri"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr "problem grup ID'si"
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr "problem grubu adı"
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "problem grubu"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "problem grupları"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr "anahtar"
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "Tam ad"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr "Kısa ad"
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr "Bu lisans altındaki sayfalarda gösterilir"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "ikon"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "ikon URL'si"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr "lisans metni"
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "lisans"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "lisans"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr "problem kodu"
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "problem adı"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr "problem içeriği"
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr "yaratıcılar"
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr "küratörler"
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr "testçiler"
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
@@ -1396,138 +1401,138 @@ msgstr ""
"Bu problem için saniye cinsinden zaman sınırı. Küsuratlı saniyeler(örn. 1.5) "
"desteklenmektedir."
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "bellek sınırı"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
"Bu problem için kilobayt cinsinden hafıza sınırı. (örn. 64MB = 65536 KB)"
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr "kısmi puanlama yapılabilir"
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "izin verilen diller"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr "elle yönetilir"
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr "yayınlama tarihi"
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr "Geri uyumluluk sorunundan dolayı oto-yayınlama büyüsü yapılamamaktadır"
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr "problem özeti"
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "dil"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr "çevrilmiş ad"
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr "çevrilmiş tanım"
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr "problem çevirisi"
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr "problem çevirisi"
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr "açıklık getirilmiş problem"
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr "açıklama içeriği"
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr "açıklama zaman damgası(timestamp)"
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "Dile özel kaynak sınırı"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "Dile özel kaynak sınırları"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr "ilgili problem"
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr "yayın tarihi"
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr "problem analizi içeriği"
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "çözüm"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "çözümler"
@@ -2382,7 +2387,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "Hakkında"
@@ -2408,7 +2413,7 @@ msgstr ""
msgid "You already voted."
msgstr "Zaten oy verdin."
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "Site aracılığıyla düzenlendi"
@@ -2527,26 +2532,26 @@ msgstr "Canlı"
msgid "Participation"
msgstr "Katılım"
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr "Yarışma etiketi: %s"
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr "Sorun açıklaması"
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "clarification body"
msgid "New clarification for %s"
@@ -2581,66 +2586,67 @@ msgstr "Dil sürümleri"
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "Böyle bir organizasyon yok :("
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "\"%s\" anahtarına sahip bir organizasyon bulunamadı."
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr "Böyle bir organizasyon bulunamadı."
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "Organizasyonlar"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s üye"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "Organizasyona katılım"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "Bu organizasyonda zaten varsın."
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "Bu organizasyon açık değil."
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "Organizasyondan çık"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "\"%s\" içinde değilsin."
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "%s'ye katılma isteği"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "Katılma isteği detayı"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "%s - Katılım isteklerini yönet"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
@@ -2649,100 +2655,100 @@ msgstr ""
"Organizasyon yalnızca %d üye daha alabilir. %d üyenin katılımını "
"onaylayamazsın."
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "%d kullanıcı onaylandı"
msgstr[1] "%d kullanıcı onaylandı"
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "%d kullanıcı onaylandı"
msgstr[1] "%d kullanıcı onaylandı"
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "%s düzenleniyor"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "Bu organizasyon düzenlenemiyor"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "Bu organizasyonu düzenleme yetkisine sahip değilsin."
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "Üyeleri bu organizasyondan atma yetkisine sahip değilsin."
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "Bu üyeyi atamazsın."
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr "Atmaya çalıştığın üye bulunamıyor!"
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr "Atmaya çalıştığın üye \"%s\" organizasyonunda değil."
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "Böyle bir problem yok :("
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr "\"%s\" anahtarına sahip problem bulunamadı."
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr " {0} - Problem analizi"
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr "{0} için problem analizi"
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Problemler"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr "Çözüm gönderme engellendi"
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
"Bu problem için istenmeyen adam olarak işaretlendin. Çözüm gönderemezsin."
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr "Çok fazla çözüm gönderisi"
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr "Bu soru için çözüm gönderi sınırını geçtin."
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr "Çözüm gönder -%(problem)s"
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2889,7 +2895,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr "%(user)s tarafından %(problem)s için gönderilen çözüm"
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "Tüm çözümler"
@@ -2998,48 +3004,52 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr "Böyle bir kullanıcı yok"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr "\"%s\" adında bir kullanıcı yok."
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr "Hesabım"
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "Kullanıcı %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
#, fuzzy
#| msgid "M j, Y, G:i"
msgid "M j, Y"
msgstr "j M Y, G:i"
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr "j M Y, G:i"
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr "Sitede güncellendi"
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "Profili düzenle"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr "Sıralama"
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3099,7 +3109,7 @@ msgstr "Merhaba, %(username)s."
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3175,7 +3185,8 @@ msgstr "Etkinlikler"
msgid "News"
msgstr "Haberler"
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr "Açıklamalar"
@@ -3183,7 +3194,8 @@ msgstr "Açıklamalar"
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr "Henüz bir açıklama yapılmadı."
@@ -3211,25 +3223,29 @@ msgstr "Yeni problemler"
msgid "Comment stream"
msgstr "Son yorumlar"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "Online Değerlendirme Sistemi"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3390,7 +3406,7 @@ msgstr "Liste"
msgid "Calendar"
msgstr "Takvim"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr "Hakkında"
@@ -3472,11 +3488,11 @@ msgstr "AC Oranı"
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "Kullanıcılar"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr "Problem analizi"
@@ -3614,11 +3630,11 @@ msgstr "Organizasyon"
msgid "Full Name"
msgstr "Tam ad"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3634,30 +3650,36 @@ msgstr "Katılmak istediğine emin misin?"
msgid "Are you sure you want to un-disqualify this participation?"
msgstr "Katılmak istediğine emin misin?"
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr "Kullanıcı katılımını göster"
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr "Organizasyonları göster"
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "Tam ad"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
#, fuzzy
#| msgid "Show my tickets only"
msgid "Show friends only"
msgstr "Sadece benim biletlerimi göster"
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "virtual participation id"
+msgid "Show virtual participation"
+msgstr "sanal katılım ID'si"
+
#: templates/contest/stats.html:51
#, fuzzy
#| msgid "problem translation"
@@ -3805,71 +3827,77 @@ msgstr "aktifleştir"
msgid "Update"
msgstr "Güncelle"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr "Organizasyona katıl"
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr "Üyelik talep et"
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organizations"
msgid "Organization news"
msgstr "Organizasyonlar"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no scheduled contests at this time."
msgid "There is no news at this time."
msgstr "Şu anda planlanmış yarışma bulunmuyor."
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "Yarışma"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "Organizasyondan ayrıl"
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr "Organizasyona katıl"
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr "Üyelik talep et"
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "Organizasyonu düzenle"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "İstekleri göster"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr "Organizasyonu düzenle"
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr "Üyeleri göster"
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "Organizasyondan ayrıl"
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "See private contests"
msgid "New private contests"
msgstr "Özel yarışmaları gör"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "PDF olarak göster"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "New problems"
msgid "New private problems"
@@ -3882,6 +3910,7 @@ msgid "Show my organizations only"
msgstr "Organizasyonları göster"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "İsim"
@@ -4006,24 +4035,30 @@ msgstr ""
msgid "Filter by type..."
msgstr "Tipe göre filtrele..."
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr "Popüler problemler"
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "Kategori"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "Tipler"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr "AC %%"
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Clarifications"
+msgid "Add clarifications"
+msgstr "Açıklamalar"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4109,100 +4144,100 @@ msgstr "Katılmak istediğine emin misin?"
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "PDF olarak göster"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr "Çözüm yolla"
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] "%(counter)s gönderi kaldı"
msgstr[1] "%(counter)s gönderi kaldı"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr "0 çözüm kaldı"
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr "Benim çözümlerim"
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr "En iyi çözümler"
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr "Problem analizine git"
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr "Biletleri yönet"
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "Soruyu düzenle"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr "Test verisini düzenle"
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr "Soruyu çoğalt"
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "Puan:"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr "(kısmi)"
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "Zaman sınırı:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "Bellek sınırı:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "Yazar"
msgstr[1] "Yazarlar"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "Soru tipi"
msgstr[1] "Soru tipleri"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "İzin verilen diller"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr "%(lang)s için çevrimiçi judge yok"
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
#, fuzzy
#| msgid "Judges"
msgid "Judge:"
@@ -4210,20 +4245,20 @@ msgid_plural "Judges:"
msgstr[0] "Judge'lar"
msgstr[1] "Judge'lar"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr "Açıklama talebi"
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr "Bir sorun bildir"
@@ -4529,6 +4564,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "Yükle"
@@ -4544,6 +4580,7 @@ msgid "There are no judges available at this time."
msgstr "Şu an mevcut hiçbir judge bulunmuyor."
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4857,6 +4894,28 @@ msgstr "Userscript"
msgid "Update profile"
msgstr "Profilini güncelle"
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "Kullanıcı Profili"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/vi/LC_MESSAGES/django.po b/locale/vi/LC_MESSAGES/django.po
index c3e8476..68bc185 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: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2021-07-20 03:44\n"
"Last-Translator: Icyene\n"
"Language-Team: Vietnamese\n"
@@ -18,21 +18,21 @@ msgstr ""
"X-Crowdin-Project-ID: 466004\n"
"X-Crowdin-File-ID: 5\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "người dùng"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "thời gian đăng"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "nội dung bình luận"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr "Chat Box"
@@ -100,11 +100,11 @@ msgstr ""
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "Đăng nhập"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "Trang chủ"
@@ -138,8 +138,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "Bài tập"
@@ -151,7 +152,7 @@ msgstr "Cài đặt"
msgid "Scheduling"
msgstr ""
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "Chi tiết"
@@ -250,8 +251,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -307,6 +308,7 @@ msgid "User"
msgstr "Thành viên"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "Email"
@@ -338,7 +340,7 @@ msgstr "Các bài tập không được cho phép"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "Các bài này không cho phép sử dụng ngôn ngữ này"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "Mô tả"
@@ -395,8 +397,8 @@ msgstr[0] "%d bài nộp đã được tính điểm lại."
msgid "Rescore the selected submissions"
msgstr "Tính điểm lại cái bài nộp"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "Mã bài"
@@ -407,6 +409,7 @@ msgstr "Tên bài"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -487,7 +490,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:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "Bạn không thể tham gia nhiều hơn {count} tổ chức công khai."
@@ -499,11 +502,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "Tên đăng nhập"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "Mật khẩu"
@@ -515,7 +520,7 @@ msgstr "Two Factor Authentication phải chứa 6 chữ số."
msgid "Invalid Two Factor Authentication token."
msgstr "Token Two Factor Authentication không hợp lệ."
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr "Mã bài phải có dạng ^[a-z0-9]+$"
@@ -598,7 +603,7 @@ msgstr "bình luận"
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -702,7 +707,7 @@ msgstr ""
msgid "description"
msgstr "mô tả"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "bài tập"
@@ -715,12 +720,12 @@ msgstr "thời gian bắt đầu"
msgid "end time"
msgstr "thời gian kết thúc"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "giới hạn thời gian"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "hiển thị công khai"
@@ -819,12 +824,12 @@ msgstr ""
"kỳ thi, hãy bỏ đánh dấu ô này và chấm lại tất cả các bài."
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "riêng tư với các tổ chức"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "tổ chức"
@@ -832,7 +837,7 @@ msgstr "tổ chức"
msgid "If private, only these organizations may see the contest"
msgstr "Nếu riêng tư, chỉ những tổ chức này thấy được kỳ thi"
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "Hình ảnh OpenGraph"
@@ -853,7 +858,7 @@ msgstr "số lượng thí sinh thi trực tiếp"
msgid "contest summary"
msgstr "tổng kết kỳ thi"
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -869,7 +874,7 @@ msgstr ""
"Mật khẩu truy cập cho các thí sinh muốn tham gia kỳ thi. Để trống nếu không "
"dùng."
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1014,14 +1019,14 @@ msgid "contest participations"
msgstr "lần tham gia kỳ thi"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "bài tập"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "điểm"
@@ -1149,7 +1154,7 @@ msgstr "mục cha"
msgid "post title"
msgstr "tiêu đề bài đăng"
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "tác giả"
@@ -1157,7 +1162,7 @@ msgstr "tác giả"
msgid "slug"
msgstr "slug"
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr "khả năng hiển thị công khai"
@@ -1221,269 +1226,269 @@ msgstr "thời gian gửi"
msgid "messages in the thread"
msgstr "tin nhắn trong chuỗi"
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr "mã của nhóm bài"
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr "tên nhóm bài"
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "dạng bài"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "dạng bài"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr "mã của nhóm bài"
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr "tên nhóm bài"
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "nhóm bài"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "nhóm bài"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr "đường dẫn"
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "tên đầy đủ"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr "tên ngắn"
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr "Được hiển thị trên các trang theo giấy phép này"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "icon"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "Đường dẫn icon"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr "văn bản giấy phép"
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr ""
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr ""
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr ""
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr ""
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr ""
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr "nội dung lời giải"
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "lời giải"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "lời giải"
@@ -2311,7 +2316,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "Giới thiệu"
@@ -2337,7 +2342,7 @@ 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:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "Chỉnh sửa từ web"
@@ -2455,26 +2460,26 @@ msgstr "Trực tiếp"
msgid "Participation"
msgstr "Lần tham gia"
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr "%s Kết quả MOSS"
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr "Đang chạy MOSS cho %s..."
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr "Nhãn kỳ thi: %s"
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr "Mô tả vấn đề"
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr "Thông báo mới cho %s"
@@ -2508,66 +2513,67 @@ msgstr "Runtimes"
msgid "Notifications (%d unseen)"
msgstr "Thông báo (%d chưa xem)"
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "Không có tổ chức như vậy"
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "Không tìm thấy tổ chức với mã \"%s\"."
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "Tổ chức"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s Thành viên"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "Tham gia tổ chức"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "Bạn đã ở trong tổ chức."
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "Tổ chức này không phải tổ chức mở."
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "Rời tổ chức"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "Bạn không ở trong \"%s\"."
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "Đăng ký tham gia %s"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "Chi tiết đơn đăng ký"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "Quản lý đơn đăng ký cho %s"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
@@ -2576,97 +2582,97 @@ 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:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "Đã chấp thuận %d người."
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "Đã từ chối %d người."
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "Đang chỉnh sửa %s"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "Không thể chỉnh sửa tổ chức"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "Bạn không được phép chỉnh sửa tổ chức này."
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "Bạn không được phép đuổi người."
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "Không thể đuổi"
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "Không có bài nào như vậy"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, 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:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr "Hướng dẫn cho {0}"
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr "Hướng dẫn cho {0}"
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "Bài tập"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr "Bị cấm nộp bài"
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
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:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr "Quá nhiều lần nộp"
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
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:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr "Nộp bài cho %(problem)s"
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr "Nhân bản bài tập"
@@ -2814,7 +2820,7 @@ 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:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "Tất cả bài nộp"
@@ -2922,46 +2928,50 @@ msgstr "Hủy kích hoạt Two Factor Authentication"
msgid "Perform Two Factor Authentication"
msgstr "Thực hiện Two Factor Authentication"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr "Không người dùng nào như vậy"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr "Không tồn tại tên người dùng \"%s\"."
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr "Tài khoản của tôi"
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "Thành viên %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr "j M, Y"
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr "j M, Y, G:i"
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr "Được cập nhật trên web"
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "Chỉnh sửa thông tin"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr "Bảng xếp hạng"
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3021,7 +3031,7 @@ msgstr "Xin chào, %(username)s."
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3099,7 +3109,8 @@ msgstr "Sự kiện"
msgid "News"
msgstr "Tin tức"
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr "Thông báo"
@@ -3107,7 +3118,8 @@ msgstr "Thông báo"
msgid "Add"
msgstr "Thêm mới"
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr "Không có thông báo nào."
@@ -3135,23 +3147,27 @@ msgstr "Bài tập mới"
msgid "Comment stream"
msgstr "Dòng bình luận"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr "Chat"
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
msgid "Online Users"
msgstr "Trực tuyến"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr "Làm mới"
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr "Nhập chat"
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3316,7 +3332,7 @@ msgstr "Danh sách"
msgid "Calendar"
msgstr "Lịch"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr "Thông tin"
@@ -3398,11 +3414,11 @@ msgstr "Tỷ lệ AC"
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "Số lượng"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr "Hướng dẫn"
@@ -3536,11 +3552,11 @@ msgstr "Tổ chức"
msgid "Full Name"
msgstr "Họ tên"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr "Khôi phục kết quả"
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr "Hủy kết quả"
@@ -3552,26 +3568,30 @@ msgstr "Bạn có chắc muốn hủy kết quả này?"
msgid "Are you sure you want to un-disqualify this participation?"
msgstr "Bạn có chắc muốn khôi phục kết quả này?"
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr "Xem các lần tham gia"
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr "Hiển thị tổ chức"
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr "Hiển thị họ tên"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr "Chỉ hiển thị bạn bè"
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr "Chỉ hiển thị tổng điểm"
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr "Hiển thị tham gia ảo"
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr "Phân bố theo kết quả"
@@ -3697,63 +3717,69 @@ msgstr "Hoạt động"
msgid "Update"
msgstr "Cập nhật"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr "Bạn có chắc muốn rời tổ chức?"
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr "Bạn phải tham gia lại để được hiển thị trong bảng xếp hạng tổ chức."
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr "Bạn phải đăng ký thành viên để được tham gia lại."
-#: templates/organization/home.html:72
-msgid "Organization news"
-msgstr "Tin tức tổ chức"
-
-#: templates/organization/home.html:78
-msgid "There is no news at this time."
-msgstr "Không có tin tức."
-
-#: templates/organization/home.html:87
-msgid "Controls"
-msgstr "Quản lý"
-
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "Rời tổ chức"
-
-#: templates/organization/home.html:98
+#: templates/organization/home.html:88
msgid "Join organization"
msgstr "Tham gia tổ chức"
-#: templates/organization/home.html:102
+#: templates/organization/home.html:92
msgid "Request membership"
msgstr "Đăng ký thành viên"
-#: templates/organization/home.html:108
+#: templates/organization/home.html:122
+msgid "Organization news"
+msgstr "Tin tức tổ chức"
+
+#: templates/organization/home.html:128
+msgid "There is no news at this time."
+msgstr "Không có tin tức."
+
+#: templates/organization/home.html:137
+msgid "Controls"
+msgstr "Quản lý"
+
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "Chỉnh sửa tổ chức"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "Xem các đơn đăng ký"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr "Trang admin tổ chức"
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr "Xem thành viên"
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "Rời tổ chức"
+
+#: templates/organization/home.html:183
msgid "New private contests"
msgstr "Kỳ thi riêng tư mới"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "Xem PDF"
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr "Bài tập riêng tư mới"
@@ -3762,6 +3788,7 @@ msgid "Show my organizations only"
msgstr "Chỉ hiển thị tổ chức của tôi"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "Tên"
@@ -3884,24 +3911,30 @@ msgstr ""
msgid "Filter by type..."
msgstr "Lọc theo dạng..."
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr "Bài tập mới"
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "Nhóm"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "Dạng"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr "AC %%"
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Clarifications"
+msgid "Add clarifications"
+msgstr "Thông báo"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr "Để trống nếu không lọc theo ngôn ngữ"
@@ -3982,115 +4015,115 @@ msgstr "Bạn có chắc muốn tính điểm lại %(count)d bài nộp?"
msgid "Rescore all submissions"
msgstr "Tính điểm lại các bài nộp"
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "Xem PDF"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr "Nộp bài"
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] "Còn %(counter)s lần nộp"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr "Còn 0 lần nộp"
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr "Bài nộp của tôi"
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr "Các bài nộp tốt nhất"
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr "Xem hướng dẫn"
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr "Xử lý báo cáo"
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "Chỉnh sửa bài"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr "Chỉnh sửa test"
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr "Báo cáo của tôi"
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr "Quản lý bài nộp"
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr "Nhân bản bài"
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "Điểm:"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr "(thành phần)"
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "Thời gian:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "Bộ nhớ:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "Tác giả:"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "Dạng bài"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "Ngôn ngữ cho phép"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr "Không có máy chấm cho %(lang)s"
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] "Máy chấm:"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr "không có sẵn"
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, 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:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr "Yêu cầu làm rõ đề"
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr "Báo cáo một vấn đề"
@@ -4387,6 +4420,7 @@ msgid "Ping"
msgstr "Ping"
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "Load"
@@ -4402,6 +4436,7 @@ msgid "There are no judges available at this time."
msgstr "Không có máy chấm nào hoạt động."
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr "ID"
@@ -4702,6 +4737,28 @@ msgstr ""
msgid "Update profile"
msgstr "Cập nhật thông tin"
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "thông tin người dùng"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po
index 0c1bf20..ad14d52 100644
--- a/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/locale/zh_Hans/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Chinese Simplified\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: zh-CN\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "用户"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "发布时间"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr "评论正文"
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "简体中文"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "登录"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "首页"
@@ -136,8 +136,9 @@ msgstr "带标签的竞赛"
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "题目"
@@ -149,7 +150,7 @@ msgstr ""
msgid "Scheduling"
msgstr "时间计划"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "详细信息"
@@ -248,8 +249,8 @@ msgid "Taxonomy"
msgstr "分类"
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -305,6 +306,7 @@ msgid "User"
msgstr "用户"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "电子邮箱"
@@ -336,7 +338,7 @@ msgstr "排除题目"
msgid "These problems are NOT allowed to be submitted in this language"
msgstr "这些题目不允许使用该语言解决"
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "描述"
@@ -393,8 +395,8 @@ msgstr[0] "%d个程序提交的分数已被重新计算。"
msgid "Rescore the selected submissions"
msgstr "重新计算选定程序的分数"
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr "题目代码"
@@ -405,6 +407,7 @@ msgstr "题目名称"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -485,7 +488,7 @@ msgstr "订阅有关于竞赛的资讯"
msgid "Enable experimental features"
msgstr "允许使用实验性功能"
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr "你不能参与超过 {count} 个组织"
@@ -499,11 +502,13 @@ msgstr "裁判服务器"
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "用户名"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "密码"
@@ -515,7 +520,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr "题目代码必须匹配 ^[a-z0-9]+$"
@@ -598,7 +603,7 @@ msgstr "评论"
msgid "comments"
msgstr "评论"
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr "%s 的题解"
@@ -711,7 +716,7 @@ msgstr "这些人将可以编辑竞赛。"
msgid "description"
msgstr "描述"
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr "题目"
@@ -724,12 +729,12 @@ msgstr "开始时间"
msgid "end time"
msgstr "结束时间"
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr "时间限制"
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr "公开"
@@ -835,12 +840,12 @@ msgstr ""
"赛结束后重新评分前关闭。"
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr "只对组织可见"
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr "组织"
@@ -848,7 +853,7 @@ msgstr "组织"
msgid "If private, only these organizations may see the contest"
msgstr "选中时,只对选择的组织才可见"
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr "OpenGraph 图像"
@@ -869,7 +874,7 @@ msgstr "实时参与者数"
msgid "contest summary"
msgstr "竞赛简介"
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr "在meta description标签内显示的纯文本介绍。"
@@ -883,7 +888,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr "在参赛者被允许参加比赛之前的一个可选代码。如无需要请留空白禁用。"
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr "不受欢迎人物"
@@ -1034,14 +1039,14 @@ msgid "contest participations"
msgstr "竞赛参与信息"
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "题目"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "分"
@@ -1171,7 +1176,7 @@ msgstr "父项"
msgid "post title"
msgstr "文章标题"
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr "作者"
@@ -1179,7 +1184,7 @@ msgstr "作者"
msgid "slug"
msgstr "网址标识"
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr "公共可见性"
@@ -1245,269 +1250,269 @@ msgstr "消息时间戳"
msgid "messages in the thread"
msgstr "话题中的消息"
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr "题目类型标识符"
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr "题目类型名称"
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "题目类型"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "题目类型"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr "题目组标识符"
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr "题目组名称"
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr "题目组"
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr "题目组"
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr "键"
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr "链接"
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr "全名字"
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr "简称"
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr "在本许可证下的页面上显示"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr "图标"
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr "图标的 URL"
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr "许可证文本"
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr "许可证"
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr "许可证"
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr "题目代码"
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "题目名称"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr "题目正文"
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr "作者"
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr "管理员"
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr "测试人员"
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr "这个问题的时间限制(以秒为单位。支持小数秒计时方式(例如1.5)。"
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "内存限制"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr "此问题的存储限制,以kb为单位(例如 64mb = 65536 kb)"
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr "允许部分分数"
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "允许的语言"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr "手动管理"
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr "公开日期"
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr "无法自动在时间后公开题目"
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr "问题摘要"
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr "语言"
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr "翻译题目名"
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr "翻译题目正文"
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr "题目翻译"
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr "题目翻译"
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr "已澄清的问题"
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr "澄清的身体"
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr "澄清时间戳"
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr "语言特定资源限制"
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr "语言特定资源限制"
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr "关联的题目"
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr "发布日期"
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr "可编辑的内容"
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "题目讲解"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "题目讲解"
@@ -2351,7 +2356,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr "自我介绍"
@@ -2377,7 +2382,7 @@ msgstr ""
msgid "You already voted."
msgstr "你已经投了票。"
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr "从网站中上编辑"
@@ -2496,26 +2501,26 @@ msgstr "实时"
msgid "Participation"
msgstr "参与历史"
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr "竞赛标签:%s"
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr "问题说明"
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, fuzzy, python-format
#| msgid "clarification body"
msgid "New clarification for %s"
@@ -2550,163 +2555,164 @@ msgstr "语言"
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr "无该组织"
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr "找不到标识符为”%s“的组织。"
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr "找不到该组织。"
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr "组织"
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr "%s 成员列表"
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr "加入组织"
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr "你已经是该组织的成员。"
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr "该组织不开放。"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr "离开组织"
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr "你不是是“%s”的成员。"
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr "请求加入 %s"
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr "组织加入请求详细信息"
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr "管理 %s 的加入请求"
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr "你的组织只能再接受%d个用户,无法接受%d个。"
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] "批准了%d个用户。"
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] "拒绝了%d个用户。"
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr "编辑 %s"
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr "无法编辑组织"
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr "您没有编辑该组织的权利。"
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr "你没有踢组织成员的权利。"
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr "无法踢用户"
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr "你想踢的用户不存在!"
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr "你想踢的用户不是组织成员:%s"
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "无该题目"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr "找不到代码为“%s”的题目。"
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr "{0} 的题解"
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr "{0}的题解"
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "题目"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr "禁止提交"
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr "您在该题目不受欢迎。您被永久禁止为该题目提交解决程序。"
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr "提交太多了"
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr "您已超出此问题的提交限制。"
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr "提交于 %(problem)s"
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2850,7 +2856,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr "%(user)s 在 %(problem)s 的提交结果"
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "所有提交历史"
@@ -2957,48 +2963,52 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr "无该用户"
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr "无名为“%s“的用户"
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr "我的帐户"
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "用户 %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
#, fuzzy
#| msgid "M j, Y, G:i"
msgid "M j, Y"
msgstr "Y年n月j日 G:i"
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr "Y年n月j日 G:i"
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr "在网站上更新"
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr "编辑个人资料"
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr "排行榜"
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3058,7 +3068,7 @@ msgstr "你好,%(username)s。"
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3136,7 +3146,8 @@ msgstr "活动"
msgid "News"
msgstr "新闻"
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr "澄清"
@@ -3144,7 +3155,8 @@ msgstr "澄清"
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr "目前还没有作出任何澄清。"
@@ -3172,25 +3184,29 @@ msgstr "新题目"
msgid "Comment stream"
msgstr "评论流"
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "在线评测系统"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
#, fuzzy
#| msgid "Delete?"
msgid "Delete"
@@ -3351,7 +3367,7 @@ msgstr "清单"
msgid "Calendar"
msgstr "日历"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr "资料和信息"
@@ -3432,11 +3448,11 @@ msgstr "AC率"
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr "用户"
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr "编辑"
@@ -3572,11 +3588,11 @@ msgstr "组织"
msgid "Full Name"
msgstr "全名字"
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3592,30 +3608,36 @@ msgstr "你确定你想要加入吗?"
msgid "Are you sure you want to un-disqualify this participation?"
msgstr "你确定你想要加入吗?"
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr "查看用户参与历史"
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr "显示机构"
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
#, fuzzy
#| msgid "full name"
msgid "Show full name"
msgstr "全名字"
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
#, fuzzy
#| msgid "Show my tickets only"
msgid "Show friends only"
msgstr "只显示我的工单"
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+#, fuzzy
+#| msgid "virtual participation id"
+msgid "Show virtual participation"
+msgstr "虚拟参与信息编号"
+
#: templates/contest/stats.html:51
#, fuzzy
#| msgid "problem translation"
@@ -3760,71 +3782,77 @@ msgstr "激活"
msgid "Update"
msgstr "升级"
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr "加入组织"
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr "申请加入"
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organizations"
msgid "Organization news"
msgstr "组织"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
#, fuzzy
#| msgid "There are no scheduled contests at this time."
msgid "There is no news at this time."
msgstr "现在没有预定的竞赛。"
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
#, fuzzy
#| msgid "Contest"
msgid "Controls"
msgstr "竞赛"
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr "离开组织"
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr "加入组织"
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr "申请加入"
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr "编辑组织"
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr "查看请求"
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr "管理组织"
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr "查看成员"
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr "离开组织"
+
+#: templates/organization/home.html:183
#, fuzzy
#| msgid "See private contests"
msgid "New private contests"
msgstr "查看私人竞赛"
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+#, fuzzy
+#| msgid "View as PDF"
+msgid "View all"
+msgstr "PDF 视图"
+
+#: templates/organization/home.html:199
#, fuzzy
#| msgid "New problems"
msgid "New private problems"
@@ -3837,6 +3865,7 @@ msgid "Show my organizations only"
msgstr "显示机构"
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr "名称"
@@ -3961,24 +3990,30 @@ msgstr ""
msgid "Filter by type..."
msgstr "根据类型过滤"
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr "热门问题"
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr "分类"
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr "类型"
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr "AC%%"
+#: templates/problem/list.html:342
+#, fuzzy
+#| msgid "Clarifications"
+msgid "Add clarifications"
+msgstr "澄清"
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -4064,117 +4099,117 @@ msgstr "你确定你想要加入吗?"
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr "PDF 视图"
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr "提交程序"
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] "还剩%(counter)s 提交数"
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr "还剩下 0 次提交"
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr "我的提交历史"
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr "提交排行"
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr "阅读题解"
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr "管理工单"
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr "编辑题目"
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr "编辑测试数据"
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr "复制题目"
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr "分数:"
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr "(部分)"
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "时间限制:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "内存限制:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "作者:"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "题目类型"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "允许的语言"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr "没有支持 %(lang)s 的裁判服务器。"
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
#, fuzzy
#| msgid "Judge"
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] "评测"
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr "提出问题"
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr "反馈问题"
@@ -4475,6 +4510,7 @@ msgid "Ping"
msgstr "延迟"
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr "负载"
@@ -4490,6 +4526,7 @@ msgid "There are no judges available at this time."
msgstr "本语言没有可用的裁判服务器。"
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr "ID"
@@ -4804,6 +4841,28 @@ msgstr "用户脚本"
msgid "Update profile"
msgstr "更新资料"
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "用户信息"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""
diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po
index 01bab6c..24bd3ae 100644
--- a/locale/zh_Hant/LC_MESSAGES/django.po
+++ b/locale/zh_Hant/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dmoj\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-24 07:18+0700\n"
+"POT-Creation-Date: 2021-10-25 05:59+0700\n"
"PO-Revision-Date: 2019-11-11 22:05\n"
"Last-Translator: Icyene\n"
"Language-Team: Chinese Traditional\n"
@@ -16,21 +16,21 @@ msgstr ""
"X-Crowdin-Language: zh-TW\n"
"X-Crowdin-File: django.po\n"
-#: chat_box/models.py:13 judge/admin/interface.py:110
+#: chat_box/models.py:16 judge/admin/interface.py:110
#: judge/models/contest.py:403 judge/models/contest.py:528
#: judge/models/profile.py:211
msgid "user"
msgstr "使用者"
-#: chat_box/models.py:14 judge/models/comment.py:43 judge/models/comment.py:191
+#: chat_box/models.py:17 judge/models/comment.py:43 judge/models/comment.py:191
msgid "posted time"
msgstr "發佈時間"
-#: chat_box/models.py:15 judge/models/comment.py:47
+#: chat_box/models.py:18 judge/models/comment.py:47
msgid "body of comment"
msgstr ""
-#: chat_box/views.py:23 templates/chat/chat.html:4
+#: chat_box/views.py:29 templates/chat/chat.html:4
msgid "Chat Box"
msgstr ""
@@ -98,11 +98,11 @@ msgstr "簡體中文"
msgid "Traditional Chinese"
msgstr ""
-#: dmoj/urls.py:57
+#: dmoj/urls.py:58
msgid "Login"
msgstr "登入"
-#: dmoj/urls.py:105 templates/base.html:193
+#: dmoj/urls.py:106 templates/base.html:193
msgid "Home"
msgstr "首頁"
@@ -136,8 +136,9 @@ msgstr ""
#: judge/admin/contest.py:66 templates/contest/clarification.html:42
#: templates/contest/contest.html:83 templates/contest/moss.html:43
-#: templates/problem/list.html:227 templates/problem/list.html:245
-#: templates/user/user-problems.html:56 templates/user/user-problems.html:98
+#: templates/problem/list.html:214 templates/problem/list.html:232
+#: templates/problem/list.html:350 templates/user/user-problems.html:56
+#: templates/user/user-problems.html:98
msgid "Problem"
msgstr "題目"
@@ -149,7 +150,7 @@ msgstr ""
msgid "Scheduling"
msgstr "排程"
-#: judge/admin/contest.py:122 templates/organization/home.html:57
+#: judge/admin/contest.py:122 templates/organization/home.html:107
msgid "Details"
msgstr "詳細資訊"
@@ -248,8 +249,8 @@ msgid "Taxonomy"
msgstr ""
#: judge/admin/problem.py:128 templates/contest/contest.html:84
-#: templates/problem/data.html:429 templates/problem/list.html:235
-#: templates/problem/list.html:261 templates/user/base-users-table.html:10
+#: templates/problem/data.html:429 templates/problem/list.html:222
+#: templates/problem/list.html:248 templates/user/base-users-table.html:10
#: templates/user/user-about.html:36 templates/user/user-about.html:52
#: templates/user/user-problems.html:58
msgid "Points"
@@ -305,6 +306,7 @@ msgid "User"
msgstr "使用者"
#: judge/admin/profile.py:91 templates/registration/registration_form.html:145
+#: templates/user/import/table_csv.html:8
msgid "Email"
msgstr "電子郵件"
@@ -336,7 +338,7 @@ msgstr ""
msgid "These problems are NOT allowed to be submitted in this language"
msgstr ""
-#: judge/admin/runtime.py:83
+#: judge/admin/runtime.py:83 templates/problem/list.html:352
msgid "Description"
msgstr "描述說明"
@@ -393,8 +395,8 @@ msgstr[0] ""
msgid "Rescore the selected submissions"
msgstr ""
-#: judge/admin/submission.py:200 templates/problem/list.html:229
-#: templates/problem/list.html:249
+#: judge/admin/submission.py:200 templates/problem/list.html:216
+#: templates/problem/list.html:236
msgid "Problem code"
msgstr ""
@@ -405,6 +407,7 @@ msgstr "題目名稱"
#: judge/admin/submission.py:215 templates/notification/list.html:15
#: templates/organization/requests/log.html:10
#: templates/organization/requests/pending.html:13
+#: templates/problem/list.html:351
#: templates/submission/status-testcases.html:125
#: templates/submission/status-testcases.html:127
msgid "Time"
@@ -485,7 +488,7 @@ msgstr ""
msgid "Enable experimental features"
msgstr ""
-#: judge/forms.py:57 judge/views/organization.py:166 judge/views/register.py:49
+#: judge/forms.py:57 judge/views/organization.py:168 judge/views/register.py:49
#, python-brace-format
msgid "You may not be part of more than {count} public organizations."
msgstr ""
@@ -497,11 +500,13 @@ msgstr ""
#: judge/forms.py:112 judge/views/register.py:26
#: templates/registration/registration_form.html:139
#: templates/user/base-users-table.html:5
+#: templates/user/import/table_csv.html:4
msgid "Username"
msgstr "使用者名稱"
#: judge/forms.py:113 templates/registration/registration_form.html:151
#: templates/registration/registration_form.html:165
+#: templates/user/import/table_csv.html:5
msgid "Password"
msgstr "密碼"
@@ -513,7 +518,7 @@ msgstr ""
msgid "Invalid Two Factor Authentication token."
msgstr ""
-#: judge/forms.py:148 judge/models/problem.py:99
+#: judge/forms.py:148 judge/models/problem.py:97
msgid "Problem code must be ^[a-z0-9]+$"
msgstr ""
@@ -596,7 +601,7 @@ msgstr ""
msgid "comments"
msgstr ""
-#: judge/models/comment.py:137 judge/models/problem.py:465
+#: judge/models/comment.py:137 judge/models/problem.py:443
#, python-format
msgid "Editorial for %s"
msgstr ""
@@ -699,7 +704,7 @@ msgstr ""
msgid "description"
msgstr ""
-#: judge/models/contest.py:72 judge/models/problem.py:392
+#: judge/models/contest.py:72 judge/models/problem.py:390
#: judge/models/runtime.py:138
msgid "problems"
msgstr ""
@@ -712,12 +717,12 @@ msgstr ""
msgid "end time"
msgstr ""
-#: judge/models/contest.py:75 judge/models/problem.py:120
-#: judge/models/problem.py:436
+#: judge/models/contest.py:75 judge/models/problem.py:118
+#: judge/models/problem.py:414
msgid "time limit"
msgstr ""
-#: judge/models/contest.py:76 judge/models/problem.py:138
+#: judge/models/contest.py:76 judge/models/problem.py:136
msgid "publicly visible"
msgstr ""
@@ -811,12 +816,12 @@ msgid ""
msgstr ""
#: judge/models/contest.py:110 judge/models/interface.py:77
-#: judge/models/problem.py:159
+#: judge/models/problem.py:157
msgid "private to organizations"
msgstr ""
#: judge/models/contest.py:111 judge/models/interface.py:75
-#: judge/models/problem.py:157 judge/models/profile.py:77
+#: judge/models/problem.py:155 judge/models/profile.py:77
msgid "organizations"
msgstr ""
@@ -824,7 +829,7 @@ msgstr ""
msgid "If private, only these organizations may see the contest"
msgstr ""
-#: judge/models/contest.py:113 judge/models/problem.py:147
+#: judge/models/contest.py:113 judge/models/problem.py:145
msgid "OpenGraph image"
msgstr ""
@@ -845,7 +850,7 @@ msgstr ""
msgid "contest summary"
msgstr ""
-#: judge/models/contest.py:121 judge/models/problem.py:149
+#: judge/models/contest.py:121 judge/models/problem.py:147
msgid "Plain-text, shown in meta description tag, e.g. for social media."
msgstr ""
@@ -859,7 +864,7 @@ msgid ""
"contest. Leave it blank to disable."
msgstr ""
-#: judge/models/contest.py:125 judge/models/problem.py:143
+#: judge/models/contest.py:125 judge/models/problem.py:141
msgid "personae non gratae"
msgstr ""
@@ -1004,14 +1009,14 @@ msgid "contest participations"
msgstr ""
#: judge/models/contest.py:491 judge/models/contest.py:513
-#: judge/models/contest.py:553 judge/models/problem.py:391
-#: judge/models/problem.py:396 judge/models/problem.py:434
+#: judge/models/contest.py:553 judge/models/problem.py:389
+#: judge/models/problem.py:394 judge/models/problem.py:412
#: judge/models/problem_data.py:40
msgid "problem"
msgstr "題目"
#: judge/models/contest.py:493 judge/models/contest.py:517
-#: judge/models/problem.py:131
+#: judge/models/problem.py:129
msgid "points"
msgstr "分"
@@ -1139,7 +1144,7 @@ msgstr ""
msgid "post title"
msgstr ""
-#: judge/models/interface.py:67 judge/models/problem.py:454
+#: judge/models/interface.py:67 judge/models/problem.py:432
msgid "authors"
msgstr ""
@@ -1147,7 +1152,7 @@ msgstr ""
msgid "slug"
msgstr ""
-#: judge/models/interface.py:69 judge/models/problem.py:452
+#: judge/models/interface.py:69 judge/models/problem.py:430
msgid "public visibility"
msgstr ""
@@ -1211,269 +1216,269 @@ msgstr ""
msgid "messages in the thread"
msgstr ""
-#: judge/models/problem.py:28
+#: judge/models/problem.py:26
msgid "problem category ID"
msgstr ""
-#: judge/models/problem.py:29
+#: judge/models/problem.py:27
msgid "problem category name"
msgstr ""
-#: judge/models/problem.py:36
+#: judge/models/problem.py:34
msgid "problem type"
msgstr "題目類型"
-#: judge/models/problem.py:37 judge/models/problem.py:115
+#: judge/models/problem.py:35 judge/models/problem.py:113
msgid "problem types"
msgstr "題目類型"
-#: judge/models/problem.py:41
+#: judge/models/problem.py:39
msgid "problem group ID"
msgstr ""
-#: judge/models/problem.py:42
+#: judge/models/problem.py:40
msgid "problem group name"
msgstr ""
-#: judge/models/problem.py:49 judge/models/problem.py:118
+#: judge/models/problem.py:47 judge/models/problem.py:116
msgid "problem group"
msgstr ""
-#: judge/models/problem.py:50
+#: judge/models/problem.py:48
msgid "problem groups"
msgstr ""
-#: judge/models/problem.py:54
+#: judge/models/problem.py:52
msgid "key"
msgstr ""
-#: judge/models/problem.py:56
+#: judge/models/problem.py:54
msgid "link"
msgstr ""
-#: judge/models/problem.py:57
+#: judge/models/problem.py:55
msgid "full name"
msgstr ""
-#: judge/models/problem.py:58 judge/models/profile.py:33
+#: judge/models/problem.py:56 judge/models/profile.py:33
#: judge/models/runtime.py:24
msgid "short name"
msgstr ""
-#: judge/models/problem.py:59
+#: judge/models/problem.py:57
msgid "Displayed on pages under this license"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "icon"
msgstr ""
-#: judge/models/problem.py:60
+#: judge/models/problem.py:58
msgid "URL to the icon"
msgstr ""
-#: judge/models/problem.py:61
+#: judge/models/problem.py:59
msgid "license text"
msgstr ""
-#: judge/models/problem.py:70
+#: judge/models/problem.py:68
msgid "license"
msgstr ""
-#: judge/models/problem.py:71
+#: judge/models/problem.py:69
msgid "licenses"
msgstr ""
-#: judge/models/problem.py:98
+#: judge/models/problem.py:96
msgid "problem code"
msgstr ""
-#: judge/models/problem.py:100
+#: judge/models/problem.py:98
msgid "A short, unique code for the problem, used in the url after /problem/"
msgstr ""
-#: judge/models/problem.py:102
+#: judge/models/problem.py:100
msgid "problem name"
msgstr "題目名稱"
-#: judge/models/problem.py:103
+#: judge/models/problem.py:101
msgid "The full name of the problem, as shown in the problem list."
msgstr ""
-#: judge/models/problem.py:105
+#: judge/models/problem.py:103
msgid "problem body"
msgstr ""
-#: judge/models/problem.py:106
+#: judge/models/problem.py:104
msgid "creators"
msgstr "建立者"
-#: judge/models/problem.py:107
+#: judge/models/problem.py:105
msgid "These users will be able to edit the problem, and be listed as authors."
msgstr ""
-#: judge/models/problem.py:109
+#: judge/models/problem.py:107
msgid "curators"
msgstr ""
-#: judge/models/problem.py:110
+#: judge/models/problem.py:108
msgid ""
"These users will be able to edit the problem, but not be listed as authors."
msgstr ""
-#: judge/models/problem.py:112
+#: judge/models/problem.py:110
msgid "testers"
msgstr ""
-#: judge/models/problem.py:114
+#: judge/models/problem.py:112
msgid "These users will be able to view the private problem, but not edit it."
msgstr ""
-#: judge/models/problem.py:116
+#: judge/models/problem.py:114
msgid "The type of problem, as shown on the problem's page."
msgstr ""
-#: judge/models/problem.py:119
+#: judge/models/problem.py:117
msgid "The group of problem, shown under Category in the problem list."
msgstr ""
-#: judge/models/problem.py:121
+#: judge/models/problem.py:119
msgid ""
"The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) "
"are supported."
msgstr ""
-#: judge/models/problem.py:125 judge/models/problem.py:439
+#: judge/models/problem.py:123 judge/models/problem.py:417
msgid "memory limit"
msgstr "記憶體限制"
-#: judge/models/problem.py:126
+#: judge/models/problem.py:124
msgid ""
"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 "
"kilobytes)."
msgstr "此問題的記憶體限制,以kb為單位 ( 例如 64mb = 65536 kb)"
-#: judge/models/problem.py:132
+#: judge/models/problem.py:130
msgid ""
"Points awarded for problem completion. Points are displayed with a 'p' "
"suffix if partial."
msgstr ""
-#: judge/models/problem.py:135
+#: judge/models/problem.py:133
msgid "allows partial points"
msgstr ""
-#: judge/models/problem.py:136
+#: judge/models/problem.py:134
msgid "allowed languages"
msgstr "允許的語言"
-#: judge/models/problem.py:137
+#: judge/models/problem.py:135
msgid "List of allowed submission languages."
msgstr ""
-#: judge/models/problem.py:139
+#: judge/models/problem.py:137
msgid "manually managed"
msgstr ""
-#: judge/models/problem.py:140
+#: judge/models/problem.py:138
msgid "Whether judges should be allowed to manage data or not."
msgstr ""
-#: judge/models/problem.py:141
+#: judge/models/problem.py:139
msgid "date of publishing"
msgstr ""
-#: judge/models/problem.py:142
+#: judge/models/problem.py:140
msgid ""
"Doesn't have magic ability to auto-publish due to backward compatibility"
msgstr ""
-#: judge/models/problem.py:144
+#: judge/models/problem.py:142
msgid "Bans the selected users from submitting to this problem."
msgstr ""
-#: judge/models/problem.py:146
+#: judge/models/problem.py:144
msgid "The license under which this problem is published."
msgstr ""
-#: judge/models/problem.py:148
+#: judge/models/problem.py:146
msgid "problem summary"
msgstr ""
-#: judge/models/problem.py:150
+#: judge/models/problem.py:148
msgid "number of users"
msgstr ""
-#: judge/models/problem.py:151
+#: judge/models/problem.py:149
msgid "The number of users who solved the problem."
msgstr ""
-#: judge/models/problem.py:152
+#: judge/models/problem.py:150
msgid "solve rate"
msgstr ""
-#: judge/models/problem.py:158
+#: judge/models/problem.py:156
msgid "If private, only these organizations may see the problem."
msgstr ""
-#: judge/models/problem.py:397 judge/models/problem.py:435
+#: judge/models/problem.py:395 judge/models/problem.py:413
#: judge/models/runtime.py:111
msgid "language"
msgstr ""
-#: judge/models/problem.py:398
+#: judge/models/problem.py:396
msgid "translated name"
msgstr ""
-#: judge/models/problem.py:399
+#: judge/models/problem.py:397
msgid "translated description"
msgstr ""
-#: judge/models/problem.py:403
+#: judge/models/problem.py:401
msgid "problem translation"
msgstr ""
-#: judge/models/problem.py:404
+#: judge/models/problem.py:402
msgid "problem translations"
msgstr ""
-#: judge/models/problem.py:408
+#: judge/models/problem.py:406
msgid "clarified problem"
msgstr ""
-#: judge/models/problem.py:409
+#: judge/models/problem.py:407
msgid "clarification body"
msgstr ""
-#: judge/models/problem.py:410
+#: judge/models/problem.py:408
msgid "clarification timestamp"
msgstr ""
-#: judge/models/problem.py:445
+#: judge/models/problem.py:423
msgid "language-specific resource limit"
msgstr ""
-#: judge/models/problem.py:446
+#: judge/models/problem.py:424
msgid "language-specific resource limits"
msgstr ""
-#: judge/models/problem.py:450
+#: judge/models/problem.py:428
msgid "associated problem"
msgstr ""
-#: judge/models/problem.py:453
+#: judge/models/problem.py:431
msgid "publish date"
msgstr ""
-#: judge/models/problem.py:455
+#: judge/models/problem.py:433
msgid "editorial content"
msgstr ""
-#: judge/models/problem.py:471
+#: judge/models/problem.py:449
msgid "solution"
msgstr "題解"
-#: judge/models/problem.py:472
+#: judge/models/problem.py:450
msgid "solutions"
msgstr "題解"
@@ -2303,7 +2308,7 @@ msgctxt "hours and minutes"
msgid "%h:%m"
msgstr "%h:%m"
-#: judge/views/about.py:7 templates/organization/home.html:62
+#: judge/views/about.py:7 templates/organization/home.html:112
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4
msgid "About"
msgstr ""
@@ -2329,7 +2334,7 @@ msgstr ""
msgid "You already voted."
msgstr ""
-#: judge/views/comment.py:126 judge/views/organization.py:338
+#: judge/views/comment.py:126 judge/views/organization.py:344
msgid "Edited from site"
msgstr ""
@@ -2447,26 +2452,26 @@ msgstr ""
msgid "Participation"
msgstr ""
-#: judge/views/contests.py:807
+#: judge/views/contests.py:808
#, python-format
msgid "%s MOSS Results"
msgstr ""
-#: judge/views/contests.py:834
+#: judge/views/contests.py:835
#, python-format
msgid "Running MOSS for %s..."
msgstr ""
-#: judge/views/contests.py:857
+#: judge/views/contests.py:858
#, python-format
msgid "Contest tag: %s"
msgstr ""
-#: judge/views/contests.py:867 judge/views/ticket.py:57
+#: judge/views/contests.py:868 judge/views/ticket.py:57
msgid "Issue description"
msgstr ""
-#: judge/views/contests.py:910
+#: judge/views/contests.py:911
#, python-format
msgid "New clarification for %s"
msgstr ""
@@ -2500,163 +2505,164 @@ msgstr ""
msgid "Notifications (%d unseen)"
msgstr ""
-#: judge/views/organization.py:58 judge/views/organization.py:61
+#: judge/views/organization.py:59 judge/views/organization.py:62
msgid "No such organization"
msgstr ""
-#: judge/views/organization.py:59
+#: judge/views/organization.py:60
#, python-format
msgid "Could not find an organization with the key \"%s\"."
msgstr ""
-#: judge/views/organization.py:62
+#: judge/views/organization.py:63
msgid "Could not find such organization."
msgstr ""
-#: judge/views/organization.py:78 judge/views/register.py:34
-#: templates/organization/list.html:32 templates/user/user-list-tabs.html:6
+#: judge/views/organization.py:79 judge/views/register.py:34
+#: templates/organization/list.html:32 templates/user/import/table_csv.html:9
+#: templates/user/user-list-tabs.html:6
msgid "Organizations"
msgstr ""
-#: judge/views/organization.py:128
+#: judge/views/organization.py:130
#, python-format
msgid "%s Members"
msgstr ""
-#: judge/views/organization.py:157 judge/views/organization.py:160
-#: judge/views/organization.py:165
+#: judge/views/organization.py:159 judge/views/organization.py:162
+#: judge/views/organization.py:167
msgid "Joining organization"
msgstr ""
-#: judge/views/organization.py:157
+#: judge/views/organization.py:159
msgid "You are already in the organization."
msgstr ""
-#: judge/views/organization.py:160
+#: judge/views/organization.py:162
msgid "This organization is not open."
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
msgid "Leaving organization"
msgstr ""
-#: judge/views/organization.py:177
+#: judge/views/organization.py:179
#, python-format
msgid "You are not in \"%s\"."
msgstr ""
-#: judge/views/organization.py:201
+#: judge/views/organization.py:203
#, python-format
msgid "Request to join %s"
msgstr ""
-#: judge/views/organization.py:219
+#: judge/views/organization.py:221
msgid "Join request detail"
msgstr ""
-#: judge/views/organization.py:248
+#: judge/views/organization.py:254
#, python-format
msgid "Managing join requests for %s"
msgstr ""
-#: judge/views/organization.py:279
+#: judge/views/organization.py:285
#, python-format
msgid ""
"Your organization can only receive %d more members. You cannot approve %d "
"users."
msgstr ""
-#: judge/views/organization.py:291
+#: judge/views/organization.py:297
#, python-format
msgid "Approved %d user."
msgid_plural "Approved %d users."
msgstr[0] ""
-#: judge/views/organization.py:292
+#: judge/views/organization.py:298
#, python-format
msgid "Rejected %d user."
msgid_plural "Rejected %d users."
msgstr[0] ""
-#: judge/views/organization.py:322
+#: judge/views/organization.py:328
#, python-format
msgid "Editing %s"
msgstr ""
-#: judge/views/organization.py:346 judge/views/organization.py:354
+#: judge/views/organization.py:352 judge/views/organization.py:360
msgid "Can't edit organization"
msgstr ""
-#: judge/views/organization.py:347
+#: judge/views/organization.py:353
msgid "You are not allowed to edit this organization."
msgstr ""
-#: judge/views/organization.py:355
+#: judge/views/organization.py:361
msgid "You are not allowed to kick people from this organization."
msgstr ""
-#: judge/views/organization.py:360 judge/views/organization.py:364
+#: judge/views/organization.py:366 judge/views/organization.py:370
msgid "Can't kick user"
msgstr ""
-#: judge/views/organization.py:361
+#: judge/views/organization.py:367
msgid "The user you are trying to kick does not exist!"
msgstr ""
-#: judge/views/organization.py:365
+#: judge/views/organization.py:371
#, python-format
msgid "The user you are trying to kick is not in organization: %s."
msgstr ""
-#: judge/views/problem.py:69
+#: judge/views/problem.py:68
msgid "No such problem"
msgstr "沒有這個題目"
-#: judge/views/problem.py:70
+#: judge/views/problem.py:69
#, python-format
msgid "Could not find a problem with the code \"%s\"."
msgstr ""
-#: judge/views/problem.py:112
+#: judge/views/problem.py:111
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:115
+#: judge/views/problem.py:114
#, python-brace-format
msgid "Editorial for {0}"
msgstr ""
-#: judge/views/problem.py:287 templates/contest/contest.html:79
+#: judge/views/problem.py:285 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31
msgid "Problems"
msgstr "問題"
-#: judge/views/problem.py:579
+#: judge/views/problem.py:585
msgid "Banned from submitting"
msgstr ""
-#: judge/views/problem.py:580
+#: judge/views/problem.py:586
msgid ""
"You have been declared persona non grata for this problem. You are "
"permanently barred from submitting this problem."
msgstr ""
-#: judge/views/problem.py:594
+#: judge/views/problem.py:600
msgid "Too many submissions"
msgstr ""
-#: judge/views/problem.py:595
+#: judge/views/problem.py:601
msgid "You have exceeded the submission limit for this problem."
msgstr ""
-#: judge/views/problem.py:655 judge/views/problem.py:658
+#: judge/views/problem.py:661 judge/views/problem.py:664
#, python-format
msgid "Submit to %(problem)s"
msgstr ""
-#: judge/views/problem.py:673
+#: judge/views/problem.py:679
msgid "Clone Problem"
msgstr ""
@@ -2799,7 +2805,7 @@ msgid "Submission of %(problem)s by %(user)s"
msgstr ""
#: judge/views/submission.py:244 judge/views/submission.py:245
-#: templates/problem/problem.html:176
+#: templates/problem/problem.html:167
msgid "All submissions"
msgstr "全部的提交"
@@ -2903,46 +2909,50 @@ msgstr ""
msgid "Perform Two Factor Authentication"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
msgid "No such user"
msgstr ""
-#: judge/views/user.py:70
+#: judge/views/user.py:74
#, python-format
msgid "No user handle \"%s\"."
msgstr ""
-#: judge/views/user.py:74
+#: judge/views/user.py:78
msgid "My account"
msgstr "我的帳戶"
-#: judge/views/user.py:75
+#: judge/views/user.py:79
#, python-format
msgid "User %s"
msgstr "用戶 %s"
-#: judge/views/user.py:144
+#: judge/views/user.py:148
msgid "M j, Y"
msgstr ""
-#: judge/views/user.py:167
+#: judge/views/user.py:171
msgid "M j, Y, G:i"
msgstr ""
-#: judge/views/user.py:286
+#: judge/views/user.py:290
msgid "Updated on site"
msgstr ""
-#: judge/views/user.py:319 templates/admin/auth/user/change_form.html:14
+#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:238
#: templates/user/user-tabs.html:10
msgid "Edit profile"
msgstr ""
-#: judge/views/user.py:328 templates/user/user-list-tabs.html:4
+#: judge/views/user.py:332 templates/user/user-list-tabs.html:4
msgid "Leaderboard"
msgstr ""
+#: judge/views/user.py:407
+msgid "Import Users"
+msgstr ""
+
#: judge/views/widgets.py:48 judge/views/widgets.py:58
#, python-format
msgid "Invalid upstream data: %s"
@@ -3002,7 +3012,7 @@ msgstr ""
#: templates/base.html:236 templates/comments/list.html:89
#: templates/contest/contest-list-tabs.html:24
-#: templates/contest/ranking-table.html:50
+#: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6
#: templates/submission/info-base.html:12
#: templates/submission/submission-list-tabs.html:15
@@ -3075,7 +3085,8 @@ msgstr ""
msgid "News"
msgstr ""
-#: templates/blog/list.html:115 templates/problem/problem.html:370
+#: templates/blog/list.html:115 templates/problem/list.html:347
+#: templates/problem/problem.html:361
msgid "Clarifications"
msgstr ""
@@ -3083,7 +3094,8 @@ msgstr ""
msgid "Add"
msgstr ""
-#: templates/blog/list.html:140 templates/problem/problem.html:381
+#: templates/blog/list.html:140 templates/problem/list.html:369
+#: templates/problem/problem.html:372
msgid "No clarifications have been made at this time."
msgstr ""
@@ -3111,25 +3123,29 @@ msgstr ""
msgid "Comment stream"
msgstr ""
-#: templates/chat/chat.html:447
+#: templates/chat/chat.html:305
msgid "Chat"
msgstr ""
-#: templates/chat/chat.html:449 templates/chat/chat.html:456
+#: templates/chat/chat.html:307 templates/chat/chat.html:314
#, fuzzy
#| msgid "Online Judge"
msgid "Online Users"
msgstr "線上裁判"
-#: templates/chat/chat.html:457
+#: templates/chat/chat.html:315
msgid "Refresh"
msgstr ""
-#: templates/chat/chat.html:475
+#: templates/chat/chat.html:333
+msgid "Emoji"
+msgstr ""
+
+#: templates/chat/chat.html:334
msgid "Enter your message"
msgstr ""
-#: templates/chat/message.html:17
+#: templates/chat/message.html:20
msgid "Delete"
msgstr ""
@@ -3289,7 +3305,7 @@ msgstr ""
msgid "Calendar"
msgstr "標準"
-#: templates/contest/contest-tabs.html:4 templates/organization/home.html:55
+#: templates/contest/contest-tabs.html:4 templates/organization/home.html:105
msgid "Info"
msgstr ""
@@ -3369,11 +3385,11 @@ msgstr ""
#: templates/contest/contest.html:86 templates/contest/list.html:237
#: templates/contest/list.html:289 templates/contest/list.html:366
-#: templates/problem/list.html:236 templates/problem/list.html:267
+#: templates/problem/list.html:223 templates/problem/list.html:254
msgid "Users"
msgstr ""
-#: templates/contest/contest.html:111 templates/problem/list.html:343
+#: templates/contest/contest.html:111 templates/problem/list.html:330
msgid "Editorial"
msgstr ""
@@ -3505,11 +3521,11 @@ msgstr "組織"
msgid "Full Name"
msgstr ""
-#: templates/contest/ranking-table.html:41
+#: templates/contest/ranking-table.html:44
msgid "Un-Disqualify"
msgstr ""
-#: templates/contest/ranking-table.html:44
+#: templates/contest/ranking-table.html:47
msgid "Disqualify"
msgstr ""
@@ -3521,26 +3537,30 @@ msgstr ""
msgid "Are you sure you want to un-disqualify this participation?"
msgstr ""
-#: templates/contest/ranking.html:404
+#: templates/contest/ranking.html:463
msgid "View user participation"
msgstr ""
-#: templates/contest/ranking.html:408
+#: templates/contest/ranking.html:467
msgid "Show organizations"
msgstr ""
-#: templates/contest/ranking.html:412
+#: templates/contest/ranking.html:471
msgid "Show full name"
msgstr ""
-#: templates/contest/ranking.html:415
+#: templates/contest/ranking.html:474
msgid "Show friends only"
msgstr ""
-#: templates/contest/ranking.html:418
+#: templates/contest/ranking.html:477
msgid "Total score only"
msgstr ""
+#: templates/contest/ranking.html:479
+msgid "Show virtual participation"
+msgstr ""
+
#: templates/contest/stats.html:51
msgid "Problem Status Distribution"
msgstr ""
@@ -3670,65 +3690,69 @@ msgstr ""
msgid "Update"
msgstr ""
-#: templates/organization/home.html:20
+#: templates/organization/home.html:41
msgid "Are you sure you want to leave this organization?"
msgstr ""
-#: templates/organization/home.html:22
+#: templates/organization/home.html:43
msgid "You will have to rejoin to show up on the organization leaderboard."
msgstr ""
-#: templates/organization/home.html:24
+#: templates/organization/home.html:45
msgid "You will have to request membership in order to join again."
msgstr ""
-#: templates/organization/home.html:72
+#: templates/organization/home.html:88
+msgid "Join organization"
+msgstr ""
+
+#: templates/organization/home.html:92
+msgid "Request membership"
+msgstr ""
+
+#: templates/organization/home.html:122
#, fuzzy
#| msgid "Organization"
msgid "Organization news"
msgstr "組織"
-#: templates/organization/home.html:78
+#: templates/organization/home.html:128
msgid "There is no news at this time."
msgstr ""
-#: templates/organization/home.html:87
+#: templates/organization/home.html:137
msgid "Controls"
msgstr ""
-#: templates/organization/home.html:93
-msgid "Leave organization"
-msgstr ""
-
-#: templates/organization/home.html:98
-msgid "Join organization"
-msgstr ""
-
-#: templates/organization/home.html:102
-msgid "Request membership"
-msgstr ""
-
-#: templates/organization/home.html:108
+#: templates/organization/home.html:142
msgid "Edit organization"
msgstr ""
-#: templates/organization/home.html:112
+#: templates/organization/home.html:148
msgid "View requests"
msgstr ""
-#: templates/organization/home.html:118
+#: templates/organization/home.html:161
msgid "Admin organization"
msgstr ""
-#: templates/organization/home.html:122
+#: templates/organization/home.html:167
msgid "View members"
msgstr ""
-#: templates/organization/home.html:129
+#: templates/organization/home.html:174
+msgid "Leave organization"
+msgstr ""
+
+#: templates/organization/home.html:183
msgid "New private contests"
msgstr ""
-#: templates/organization/home.html:142
+#: templates/organization/home.html:193 templates/organization/home.html:208
+msgid "View all"
+msgstr ""
+
+#: templates/organization/home.html:199
msgid "New private problems"
msgstr ""
@@ -3737,6 +3761,7 @@ msgid "Show my organizations only"
msgstr ""
#: templates/organization/list.html:47 templates/status/language-list.html:34
+#: templates/user/import/table_csv.html:6
msgid "Name"
msgstr ""
@@ -3858,24 +3883,28 @@ msgstr ""
msgid "Filter by type..."
msgstr ""
-#: templates/problem/list.html:206
+#: templates/problem/list.html:193
msgid "Hot problems"
msgstr ""
-#: templates/problem/list.html:231 templates/problem/list.html:253
+#: templates/problem/list.html:218 templates/problem/list.html:240
#: templates/problem/search-form.html:45 templates/user/user-problems.html:57
msgid "Category"
msgstr ""
-#: templates/problem/list.html:233 templates/problem/list.html:257
+#: templates/problem/list.html:220 templates/problem/list.html:244
msgid "Types"
msgstr ""
-#: templates/problem/list.html:264
+#: templates/problem/list.html:251
#, python-format
msgid "AC %%"
msgstr ""
+#: templates/problem/list.html:342
+msgid "Add clarifications"
+msgstr ""
+
#: templates/problem/manage_submission.html:55
msgid "Leave empty to not filter by language"
msgstr ""
@@ -3960,115 +3989,115 @@ msgstr ""
msgid "Rescore all submissions"
msgstr ""
-#: templates/problem/problem.html:141
+#: templates/problem/problem.html:132
msgid "View as PDF"
msgstr ""
-#: templates/problem/problem.html:150 templates/problem/problem.html:160
-#: templates/problem/problem.html:165
+#: templates/problem/problem.html:141 templates/problem/problem.html:151
+#: templates/problem/problem.html:156
msgid "Submit solution"
msgstr ""
-#: templates/problem/problem.html:153
+#: templates/problem/problem.html:144
#, python-format
msgid "%(counter)s submission left"
msgid_plural "%(counter)s submissions left"
msgstr[0] ""
-#: templates/problem/problem.html:161
+#: templates/problem/problem.html:152
msgid "0 submissions left"
msgstr ""
-#: templates/problem/problem.html:173
+#: templates/problem/problem.html:164
msgid "My submissions"
msgstr ""
-#: templates/problem/problem.html:177
+#: templates/problem/problem.html:168
msgid "Best submissions"
msgstr ""
-#: templates/problem/problem.html:181
+#: templates/problem/problem.html:172
msgid "Read editorial"
msgstr ""
-#: templates/problem/problem.html:186
+#: templates/problem/problem.html:177
msgid "Manage tickets"
msgstr ""
-#: templates/problem/problem.html:190
+#: templates/problem/problem.html:181
msgid "Edit problem"
msgstr ""
-#: templates/problem/problem.html:192
+#: templates/problem/problem.html:183
msgid "Edit test data"
msgstr ""
-#: templates/problem/problem.html:197
+#: templates/problem/problem.html:188
msgid "My tickets"
msgstr ""
-#: templates/problem/problem.html:205
+#: templates/problem/problem.html:196
msgid "Manage submissions"
msgstr ""
-#: templates/problem/problem.html:211
+#: templates/problem/problem.html:202
msgid "Clone problem"
msgstr ""
-#: templates/problem/problem.html:218
+#: templates/problem/problem.html:209
msgid "Points:"
msgstr ""
-#: templates/problem/problem.html:221 templates/problem/problem.html:223
+#: templates/problem/problem.html:212 templates/problem/problem.html:214
msgid "(partial)"
msgstr ""
-#: templates/problem/problem.html:228
+#: templates/problem/problem.html:219
msgid "Time limit:"
msgstr "時間限制:"
-#: templates/problem/problem.html:240
+#: templates/problem/problem.html:231
msgid "Memory limit:"
msgstr "記憶體限制:"
-#: templates/problem/problem.html:259
+#: templates/problem/problem.html:250
msgid "Author:"
msgid_plural "Authors:"
msgstr[0] "作者:"
-#: templates/problem/problem.html:274
+#: templates/problem/problem.html:265
msgid "Problem type"
msgid_plural "Problem types"
msgstr[0] "題目類型"
-#: templates/problem/problem.html:287
+#: templates/problem/problem.html:278
msgid "Allowed languages"
msgstr "允許的語言"
-#: templates/problem/problem.html:295
+#: templates/problem/problem.html:286
#, python-format
msgid "No %(lang)s judge online"
msgstr ""
-#: templates/problem/problem.html:306
+#: templates/problem/problem.html:297
msgid "Judge:"
msgid_plural "Judges:"
msgstr[0] ""
-#: templates/problem/problem.html:323
+#: templates/problem/problem.html:314
msgid "none available"
msgstr ""
-#: templates/problem/problem.html:335
+#: templates/problem/problem.html:326
#, python-format
msgid "This problem has %(length)s clarification(s)"
msgstr ""
-#: templates/problem/problem.html:359
+#: templates/problem/problem.html:350
msgid "Request clarification"
msgstr ""
-#: templates/problem/problem.html:361
+#: templates/problem/problem.html:352
msgid "Report an issue"
msgstr ""
@@ -4359,6 +4388,7 @@ msgid "Ping"
msgstr ""
#: templates/status/judge-status-table.html:8
+#: templates/user/import/index.html:104
msgid "Load"
msgstr ""
@@ -4374,6 +4404,7 @@ msgid "There are no judges available at this time."
msgstr ""
#: templates/status/language-list.html:33 templates/ticket/list.html:261
+#: templates/user/import/table_csv.html:3
msgid "ID"
msgstr ""
@@ -4680,6 +4711,28 @@ msgstr ""
msgid "Update profile"
msgstr ""
+#: templates/user/import/index.html:31
+msgid "Upload CSV only"
+msgstr ""
+
+#: templates/user/import/index.html:100
+#, fuzzy
+#| msgid "user profile"
+msgid "User File"
+msgstr "使用者個人檔案"
+
+#: templates/user/import/index.html:102
+msgid "Sample"
+msgstr ""
+
+#: templates/user/import/index.html:105 templates/user/user-list-tabs.html:8
+msgid "Import"
+msgstr ""
+
+#: templates/user/import/table_csv.html:7
+msgid "School"
+msgstr ""
+
#: templates/user/pp-row.html:22
#, python-format
msgid ""