Add Google Login

This commit is contained in:
cuom1999 2021-12-29 13:33:25 +07:00
parent 7268f2eb96
commit c2fa394e7a
4 changed files with 93 additions and 57 deletions

View file

@ -490,6 +490,8 @@ SOCIAL_AUTH_PIPELINE = (
'social_core.pipeline.user.user_details', 'social_core.pipeline.user.user_details',
) )
SOCIAL_AUTH_PROTECTED_USER_FIELDS = ['first_name', 'last_name']
SOCIAL_AUTH_GOOGLE_OAUTH2_USER_FIELDS = ['email', 'username']
SOCIAL_AUTH_GITHUB_SECURE_SCOPE = ['user:email'] SOCIAL_AUTH_GITHUB_SECURE_SCOPE = ['user:email']
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email'] SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
SOCIAL_AUTH_SLUGIFY_USERNAMES = True SOCIAL_AUTH_SLUGIFY_USERNAMES = True
@ -501,11 +503,6 @@ MOSS_API_KEY = None
CELERY_WORKER_HIJACK_ROOT_LOGGER = False CELERY_WORKER_HIJACK_ROOT_LOGGER = False
try:
with open(os.path.join(os.path.dirname(__file__), 'local_settings.py')) as f:
exec(f.read(), globals())
except IOError:
pass
TESTCASE_VISIBLE_LENGTH = 64 TESTCASE_VISIBLE_LENGTH = 64
@ -524,4 +521,13 @@ NEWSLETTER_EMAIL_DELAY = 0.1
NEWSLETTER_BATCH_DELAY = 60 NEWSLETTER_BATCH_DELAY = 60
# Number of emails in one batch # Number of emails in one batch
NEWSLETTER_BATCH_SIZE = 100 NEWSLETTER_BATCH_SIZE = 100
# Google form to request name
REGISTER_NAME_URL = None
try:
with open(os.path.join(os.path.dirname(__file__), 'local_settings.py')) as f:
exec(f.read(), globals())
except IOError:
pass

View file

@ -318,7 +318,9 @@ def edit_profile(request):
form.fields['test_site'].initial = request.user.has_perm('judge.test_site') form.fields['test_site'].initial = request.user.has_perm('judge.test_site')
tzmap = settings.TIMEZONE_MAP tzmap = settings.TIMEZONE_MAP
print(settings.REGISTER_NAME_URL)
return render(request, 'user/edit-profile.html', { return render(request, 'user/edit-profile.html', {
'edit_name_url': settings.REGISTER_NAME_URL,
'require_staff_2fa': settings.DMOJ_REQUIRE_STAFF_2FA, 'require_staff_2fa': settings.DMOJ_REQUIRE_STAFF_2FA,
'form': form, 'title': _('Edit profile'), 'profile': profile, 'form': form, 'title': _('Edit profile'), 'profile': profile,
'has_math_config': bool(settings.MATHOID_URL), 'has_math_config': bool(settings.MATHOID_URL),

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: lqdoj2\n" "Project-Id-Version: lqdoj2\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-27 15:13+0700\n" "POT-Creation-Date: 2021-12-29 13:13+0700\n"
"PO-Revision-Date: 2021-07-20 03:44\n" "PO-Revision-Date: 2021-07-20 03:44\n"
"Last-Translator: Icyene\n" "Last-Translator: Icyene\n"
"Language-Team: Vietnamese\n" "Language-Team: Vietnamese\n"
@ -108,7 +108,7 @@ msgstr ""
msgid "Login" msgid "Login"
msgstr "Đăng nhập" msgstr "Đăng nhập"
#: dmoj/urls.py:106 templates/base.html:211 #: dmoj/urls.py:106 templates/base.html:207
msgid "Home" msgid "Home"
msgstr "Trang chủ" msgstr "Trang chủ"
@ -156,7 +156,7 @@ msgstr "Cài đặt"
msgid "Scheduling" msgid "Scheduling"
msgstr "" msgstr ""
#: judge/admin/contest.py:122 templates/organization/home.html:98 #: judge/admin/contest.py:122 templates/organization/home.html:100
msgid "Details" msgid "Details"
msgstr "Chi tiết" msgstr "Chi tiết"
@ -217,7 +217,7 @@ msgstr "Tính toán lại kết quả"
msgid "username" msgid "username"
msgstr "tên đăng nhập" msgstr "tên đăng nhập"
#: judge/admin/contest.py:320 templates/base.html:298 #: judge/admin/contest.py:320 templates/base.html:294
msgid "virtual" msgid "virtual"
msgstr "ảo" msgstr "ảo"
@ -318,7 +318,7 @@ msgstr "Email"
#: judge/admin/profile.py:96 judge/views/register.py:29 #: judge/admin/profile.py:96 judge/views/register.py:29
#: templates/registration/registration_form.html:173 #: templates/registration/registration_form.html:173
#: templates/user/edit-profile.html:106 #: templates/user/edit-profile.html:114
msgid "Timezone" msgid "Timezone"
msgstr "Múi giờ" msgstr "Múi giờ"
@ -2338,8 +2338,9 @@ msgctxt "hours and minutes"
msgid "%h:%m" msgid "%h:%m"
msgstr "%h:%m" msgstr "%h:%m"
#: judge/views/about.py:7 templates/organization/home.html:103 #: judge/views/about.py:7 templates/organization/home.html:105
#: templates/user/user-about.html:83 templates/user/user-tabs.html:4 #: templates/user/user-about.html:83 templates/user/user-tabs.html:4
#: templates/user/users-table.html:32
msgid "About" msgid "About"
msgstr "Giới thiệu" msgstr "Giới thiệu"
@ -2677,7 +2678,7 @@ msgstr "Thảo luận <a href=\"{1}\">{0}</a>"
#: judge/views/problem.py:297 templates/contest/contest.html:79 #: judge/views/problem.py:297 templates/contest/contest.html:79
#: templates/user/user-about.html:28 templates/user/user-tabs.html:5 #: templates/user/user-about.html:28 templates/user/user-tabs.html:5
#: templates/user/users-table.html:31 #: templates/user/users-table.html:29
msgid "Problems" msgid "Problems"
msgstr "Bài tập" msgstr "Bài tập"
@ -2802,7 +2803,7 @@ msgstr "Các bài nộp tốt nhất cho bài {0} trong <a href=\"{2}\">{1}</a>"
msgid "A username must contain letters, numbers, or underscores" msgid "A username must contain letters, numbers, or underscores"
msgstr "Tên đăng nhập phải chứa ký tự, chữ số, hoặc dấu gạch dưới" msgstr "Tên đăng nhập phải chứa ký tự, chữ số, hoặc dấu gạch dưới"
#: judge/views/register.py:31 templates/user/edit-profile.html:110 #: judge/views/register.py:31 templates/user/edit-profile.html:118
msgid "Preferred language" msgid "Preferred language"
msgstr "Ngôn ngữ ưa thích" msgstr "Ngôn ngữ ưa thích"
@ -2990,17 +2991,17 @@ msgstr "j M, Y, G:i"
msgid "Updated on site" msgid "Updated on site"
msgstr "Được cập nhật trên web" msgstr "Được cập nhật trên web"
#: judge/views/user.py:323 templates/admin/auth/user/change_form.html:14 #: judge/views/user.py:324 templates/admin/auth/user/change_form.html:14
#: templates/admin/auth/user/change_form.html:17 templates/base.html:259 #: templates/admin/auth/user/change_form.html:17 templates/base.html:255
#: templates/user/user-tabs.html:10 #: templates/user/user-tabs.html:10
msgid "Edit profile" msgid "Edit profile"
msgstr "Chỉnh sửa thông tin" msgstr "Chỉnh sửa thông tin"
#: judge/views/user.py:332 templates/user/user-list-tabs.html:4 #: judge/views/user.py:333 templates/user/user-list-tabs.html:4
msgid "Leaderboard" msgid "Leaderboard"
msgstr "Bảng xếp hạng" msgstr "Bảng xếp hạng"
#: judge/views/user.py:407 #: judge/views/user.py:408
msgid "Import Users" msgid "Import Users"
msgstr "" msgstr ""
@ -3196,20 +3197,20 @@ msgstr "Chỉnh sửa thông tin"
msgid "Rejudge" msgid "Rejudge"
msgstr "Chấm lại" msgstr "Chấm lại"
#: templates/base.html:228 templates/chat/chat.html:566 #: templates/base.html:224 templates/chat/chat.html:566
msgid "Chat" msgid "Chat"
msgstr "Chat" msgstr "Chat"
#: templates/base.html:234 #: templates/base.html:230
msgid "Notification" msgid "Notification"
msgstr "Thông báo" msgstr "Thông báo"
#: templates/base.html:251 #: templates/base.html:247
#, python-format #, python-format
msgid "Hello, <b>%(username)s</b>." msgid "Hello, <b>%(username)s</b>."
msgstr "Xin chào, <b>%(username)s</b>." msgstr "Xin chào, <b>%(username)s</b>."
#: templates/base.html:257 templates/chat/chat.html:20 #: templates/base.html:253 templates/chat/chat.html:20
#: templates/comments/list.html:89 templates/contest/contest-list-tabs.html:24 #: templates/comments/list.html:89 templates/contest/contest-list-tabs.html:24
#: templates/contest/ranking-table.html:53 #: templates/contest/ranking-table.html:53
#: templates/problem/problem-list-tabs.html:6 #: templates/problem/problem-list-tabs.html:6
@ -3218,28 +3219,28 @@ msgstr "Xin chào, <b>%(username)s</b>."
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: templates/base.html:266 #: templates/base.html:262
msgid "Log out" msgid "Log out"
msgstr "Đăng xuất" msgstr "Đăng xuất"
#: templates/base.html:275 #: templates/base.html:271
#: templates/registration/password_reset_complete.html:4 #: templates/registration/password_reset_complete.html:4
msgid "Log in" msgid "Log in"
msgstr "Đăng nhập" msgstr "Đăng nhập"
#: templates/base.html:276 templates/registration/registration_form.html:177 #: templates/base.html:272 templates/registration/registration_form.html:177
msgid "or" msgid "or"
msgstr "hoặc" msgstr "hoặc"
#: templates/base.html:277 #: templates/base.html:273
msgid "Sign up" msgid "Sign up"
msgstr "Đăng ký" msgstr "Đăng ký"
#: templates/base.html:292 #: templates/base.html:288
msgid "spectating" msgid "spectating"
msgstr "đang theo dõi" msgstr "đang theo dõi"
#: templates/base.html:305 #: templates/base.html:301
msgid "This site works best with JavaScript enabled." msgid "This site works best with JavaScript enabled."
msgstr "" msgstr ""
@ -3341,7 +3342,7 @@ msgid "New message(s)"
msgstr "Tin nhắn mới" msgstr "Tin nhắn mới"
#: templates/chat/chat.html:507 templates/chat/chat.html:588 #: templates/chat/chat.html:507 templates/chat/chat.html:588
#: templates/user/base-users.html:14 templates/user/base-users.html:69 #: templates/user/base-users.html:14 templates/user/base-users.html:80
msgid "Search by handle..." msgid "Search by handle..."
msgstr "Tìm kiếm theo tên..." msgstr "Tìm kiếm theo tên..."
@ -3550,7 +3551,7 @@ msgstr "Danh sách"
msgid "Calendar" msgid "Calendar"
msgstr "Lịch" msgstr "Lịch"
#: templates/contest/contest-tabs.html:4 templates/organization/home.html:96 #: templates/contest/contest-tabs.html:4 templates/organization/home.html:98
msgid "Info" msgid "Info"
msgstr "Thông tin" msgstr "Thông tin"
@ -3601,10 +3602,12 @@ msgid "Login to participate"
msgstr "Đăng nhập để tham gia" msgstr "Đăng nhập để tham gia"
#: templates/contest/contest.html:33 #: templates/contest/contest.html:33
#, python-format
msgid "Spectating, contest ends in %(countdown)s." msgid "Spectating, contest ends in %(countdown)s."
msgstr "Đang theo dõi, kỳ thi còn %(countdown)s." msgstr "Đang theo dõi, kỳ thi còn %(countdown)s."
#: templates/contest/contest.html:35 #: templates/contest/contest.html:35
#, python-format
msgid "Participating virtually, %(countdown)s remaining." msgid "Participating virtually, %(countdown)s remaining."
msgstr "Đang tham gia ảo, còn %(countdown)s." msgstr "Đang tham gia ảo, còn %(countdown)s."
@ -3613,6 +3616,7 @@ msgid "Participating virtually."
msgstr "Đang tham gia ảo." msgstr "Đang tham gia ảo."
#: templates/contest/contest.html:41 #: templates/contest/contest.html:41
#, python-format
msgid "Starting in %(countdown)s." msgid "Starting in %(countdown)s."
msgstr "Kỳ thi bắt đầu trong %(countdown)s nữa." msgstr "Kỳ thi bắt đầu trong %(countdown)s nữa."
@ -3621,6 +3625,7 @@ msgid "Contest is over."
msgstr "Kỳ thi đã kết thúc." msgstr "Kỳ thi đã kết thúc."
#: templates/contest/contest.html:47 #: templates/contest/contest.html:47
#, python-format
msgid "Your time is up! Contest ends in %(countdown)s." msgid "Your time is up! Contest ends in %(countdown)s."
msgstr "Hết giờ! Kỳ thi kết thúc trong %(countdown)s." msgstr "Hết giờ! Kỳ thi kết thúc trong %(countdown)s."
@ -3630,6 +3635,7 @@ msgid "You have %(countdown)s remaining."
msgstr "Bạn còn %(countdown)s." msgstr "Bạn còn %(countdown)s."
#: templates/contest/contest.html:52 #: templates/contest/contest.html:52
#, python-format
msgid "Contest ends in %(countdown)s." msgid "Contest ends in %(countdown)s."
msgstr "Kỳ thi kết thúc trong %(countdown)s" msgstr "Kỳ thi kết thúc trong %(countdown)s"
@ -3811,7 +3817,7 @@ msgstr "Chỉ những tổ chức sau được tham gia kỳ thi:"
msgid "Organization" msgid "Organization"
msgstr "Tổ chức" msgstr "Tổ chức"
#: templates/contest/ranking-table.html:10 templates/user/users-table.html:13 #: templates/contest/ranking-table.html:10
msgid "Full Name" msgid "Full Name"
msgstr "Họ tên" msgstr "Họ tên"
@ -4016,55 +4022,55 @@ msgstr "Bạn phải tham gia lại để được hiển thị trong bảng x
msgid "You will have to request membership in order to join again." 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." msgstr "Bạn phải đăng ký thành viên để được tham gia lại."
#: templates/organization/home.html:79 #: templates/organization/home.html:81
msgid "Join organization" msgid "Join organization"
msgstr "Tham gia tổ chức" msgstr "Tham gia tổ chức"
#: templates/organization/home.html:83 #: templates/organization/home.html:85
msgid "Request membership" msgid "Request membership"
msgstr "Đăng ký thành viên" msgstr "Đăng ký thành viên"
#: templates/organization/home.html:113 #: templates/organization/home.html:115
msgid "Organization news" msgid "Organization news"
msgstr "Tin tức tổ chức" msgstr "Tin tức tổ chức"
#: templates/organization/home.html:119 #: templates/organization/home.html:121
msgid "There is no news at this time." msgid "There is no news at this time."
msgstr "Không có tin tức." msgstr "Không có tin tức."
#: templates/organization/home.html:128 #: templates/organization/home.html:130
msgid "Controls" msgid "Controls"
msgstr "Quản lý" msgstr "Quản lý"
#: templates/organization/home.html:133 #: templates/organization/home.html:135
msgid "Edit organization" msgid "Edit organization"
msgstr "Chỉnh sửa tổ chức" msgstr "Chỉnh sửa tổ chức"
#: templates/organization/home.html:139 #: templates/organization/home.html:141
msgid "View requests" msgid "View requests"
msgstr "Xem các đơn đăng ký" msgstr "Xem các đơn đăng ký"
#: templates/organization/home.html:152 #: templates/organization/home.html:154
msgid "Admin organization" msgid "Admin organization"
msgstr "Trang admin tổ chức" msgstr "Trang admin tổ chức"
#: templates/organization/home.html:158 #: templates/organization/home.html:160
msgid "View members" msgid "View members"
msgstr "Xem thành viên" msgstr "Xem thành viên"
#: templates/organization/home.html:165 #: templates/organization/home.html:167
msgid "Leave organization" msgid "Leave organization"
msgstr "Rời tổ chức" msgstr "Rời tổ chức"
#: templates/organization/home.html:174 #: templates/organization/home.html:176
msgid "New private contests" msgid "New private contests"
msgstr "Kỳ thi riêng tư mới" msgstr "Kỳ thi riêng tư mới"
#: templates/organization/home.html:184 templates/organization/home.html:199 #: templates/organization/home.html:186 templates/organization/home.html:201
msgid "View all" msgid "View all"
msgstr "Tất cả" msgstr "Tất cả"
#: templates/organization/home.html:190 #: templates/organization/home.html:192
msgid "New private problems" msgid "New private problems"
msgstr "Bài tập riêng tư mới" msgstr "Bài tập riêng tư mới"
@ -4632,12 +4638,12 @@ msgid "Default language"
msgstr "Ngôn ngữ ưa thích" msgstr "Ngôn ngữ ưa thích"
#: templates/registration/registration_form.html:186 #: templates/registration/registration_form.html:186
#: templates/user/edit-profile.html:173 #: templates/user/edit-profile.html:181
msgid "Affiliated organizations" msgid "Affiliated organizations"
msgstr "Tổ chức bạn muốn tham gia" msgstr "Tổ chức bạn muốn tham gia"
#: templates/registration/registration_form.html:195 #: templates/registration/registration_form.html:195
#: templates/user/edit-profile.html:128 #: templates/user/edit-profile.html:136
msgid "Notify me about upcoming contests" msgid "Notify me about upcoming contests"
msgstr "Nhận thông báo về các kỳ thi tương lai" msgstr "Nhận thông báo về các kỳ thi tương lai"
@ -4980,43 +4986,55 @@ msgstr "Không có gì."
msgid "Rank" msgid "Rank"
msgstr "Rank" msgstr "Rank"
#: templates/user/edit-profile.html:97 #: templates/user/edit-profile.html:98
msgid "Name and School"
msgstr "Họ tên và Trường"
#: templates/user/edit-profile.html:100
msgid "Enter this form"
msgstr "Điền vào link này"
#: templates/user/edit-profile.html:101
msgid "It takes some time for admin to approve"
msgstr "Ban quản trị sẽ phê duyệt"
#: templates/user/edit-profile.html:105
msgid "Self-description" msgid "Self-description"
msgstr "Tự giới thiệu" msgstr "Tự giới thiệu"
#: templates/user/edit-profile.html:105 #: templates/user/edit-profile.html:113
msgid "Select your closest major city" msgid "Select your closest major city"
msgstr "Chọn thành phố gần nhất" msgstr "Chọn thành phố gần nhất"
#: templates/user/edit-profile.html:114 #: templates/user/edit-profile.html:122
msgid "Editor theme" msgid "Editor theme"
msgstr "Giao diện cho code editor" msgstr "Giao diện cho code editor"
#: templates/user/edit-profile.html:119 #: templates/user/edit-profile.html:127
msgid "Math engine" msgid "Math engine"
msgstr "" msgstr ""
#: templates/user/edit-profile.html:143 templates/user/edit-profile.html:144 #: templates/user/edit-profile.html:151 templates/user/edit-profile.html:152
msgid "Change your avatar" msgid "Change your avatar"
msgstr "Đổi ảnh đại diện" msgstr "Đổi ảnh đại diện"
#: templates/user/edit-profile.html:150 #: templates/user/edit-profile.html:158
msgid "Change your password" msgid "Change your password"
msgstr "Đổi mật khẩu" msgstr "Đổi mật khẩu"
#: templates/user/edit-profile.html:157 #: templates/user/edit-profile.html:165
msgid "Two Factor Authentication is enabled." msgid "Two Factor Authentication is enabled."
msgstr "Two Factor Authentication đã được kích hoạt." msgstr "Two Factor Authentication đã được kích hoạt."
#: templates/user/edit-profile.html:164 #: templates/user/edit-profile.html:172
msgid "Two Factor Authentication is disabled." msgid "Two Factor Authentication is disabled."
msgstr "Two Factor Authentication đã được hủy kích hoạt." msgstr "Two Factor Authentication đã được hủy kích hoạt."
#: templates/user/edit-profile.html:181 #: templates/user/edit-profile.html:189
msgid "User-script" msgid "User-script"
msgstr "" msgstr ""
#: templates/user/edit-profile.html:185 #: templates/user/edit-profile.html:193
msgid "Update profile" msgid "Update profile"
msgstr "Cập nhật thông tin" msgstr "Cập nhật thông tin"
@ -5229,4 +5247,4 @@ msgstr "Thông tin"
#: templates/widgets/select_all.html:8 #: templates/widgets/select_all.html:8
msgid "Check all" msgid "Check all"
msgstr "Chọn tất cả" msgstr "Chọn tất cả"

View file

@ -94,6 +94,16 @@
{% csrf_token %} {% csrf_token %}
{% if edit_name_url %}
<div style="margin-bottom: 1em; font-size: 1.1em">
<label style="color:#666">{{_('Name and School')}}:</label>
<span>
<a href="{{edit_name_url}}">{{_('Enter this form')}}</a>
<span style="float: right">({{_('It takes some time for admin to approve')}})</span>
</span>
</div>
{% endif %}
<div style="padding-top:0.5em" class="block-header">{{ _('Self-description') }}:</div> <div style="padding-top:0.5em" class="block-header">{{ _('Self-description') }}:</div>
{{ form.about }} {{ form.about }}
<hr> <hr>