Use css for darkmode

This commit is contained in:
cuom1999 2022-12-18 03:31:31 -06:00
parent de875bd384
commit 97a56145b2
62 changed files with 6748 additions and 1034 deletions

View file

@ -31,7 +31,6 @@ from judge.widgets import (
AdminSelect2Widget,
CheckboxSelectMultipleWithSelectAll,
HeavyPreviewAdminPageDownWidget,
HeavyPreviewPageDownWidget,
)
MEMORY_UNITS = (("KB", "KB"), ("MB", "MB"))

View file

@ -8,3 +8,4 @@ def finished_submission(sub):
keys += ["contest_complete:%d" % participation.id]
keys += ["contest_attempted:%d" % participation.id]
cache.delete_many(keys)

View file

@ -70,3 +70,15 @@ class ContestMiddleware(object):
request.participation = None
request.in_contest_mode = request.in_contest and request.contest_mode
return self.get_response(request)
class DarkModeMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if "darkmode" in request.GET:
return HttpResponseRedirect(
reverse("toggle_darkmode") + "?next=" + urlquote(request.path)
)
return self.get_response(request)

View file

@ -22,6 +22,7 @@ def get_resource(request):
scheme = "https"
else:
scheme = "http"
return {
"PYGMENT_THEME": settings.PYGMENT_THEME,
"INLINE_JQUERY": settings.INLINE_JQUERY,
@ -30,6 +31,7 @@ def get_resource(request):
"FONTAWESOME_CSS": settings.FONTAWESOME_CSS,
"DMOJ_SCHEME": scheme,
"DMOJ_CANONICAL": settings.DMOJ_CANONICAL,
"use_darkmode": request.session.get("darkmode", False) == True,
}

View file

@ -623,3 +623,11 @@ def sample_import_users(request):
response = HttpResponse(content, content_type="text/plain")
response["Content-Disposition"] = "attachment; filename={0}".format(filename)
return response
def toggle_darkmode(request):
path = request.GET.get("next")
if not path:
return HttpResponseBadRequest()
request.session["darkmode"] = not request.session.get("darkmode", False)
return HttpResponseRedirect(path)

View file

@ -40,7 +40,6 @@ else:
class Media:
css = {
"all": [
"pagedown_widget.css",
"markdown.css",
]
}
@ -49,6 +48,7 @@ else:
class Media:
css = {
"all": [
"pagedown_widget.css",
"content-description.css",
"admin/css/pagedown.css",
"markdown.css",
@ -104,7 +104,6 @@ else:
}
class Media:
css = {"all": ["dmmd-preview.css"]}
js = ["dmmd-preview.js"]
class HeavyPreviewAdminPageDownWidget(
@ -117,5 +116,6 @@ else:
"table.css",
"ranks.css",
"markdown.css",
"dmmd-preview.css",
]
}