codestyle

This commit is contained in:
Egor Matveev
2021-12-02 18:24:51 +03:00
parent 255a364c34
commit d2d427fd6e
25 changed files with 168 additions and 378 deletions

View File

@@ -29,13 +29,17 @@ class AccountView(BaseView):
def post_set_language(self):
lang_id = int(self.request.POST["language"])
self.request.user.userinfo.favourite_language_id = lang_id if lang_id != -1 else None
self.request.user.userinfo.favourite_language_id = (
lang_id if lang_id != -1 else None
)
self.request.user.userinfo.save()
return "/account"
def post_notifications(self):
for attr in dir(self.request.user.userinfo):
if attr.startswith('notification'):
setattr(self.request.user.userinfo, attr, attr in self.request.POST.keys())
if attr.startswith("notification"):
setattr(
self.request.user.userinfo, attr, attr in self.request.POST.keys()
)
self.request.user.userinfo.save()
return '/account'
return "/account"

View File

@@ -6,5 +6,8 @@ from SprintLib.utils import get_bytes
class ImageView(BaseView):
endpoint = "image"
def get(self):
return HttpResponse(get_bytes(int(self.request.GET['id'])), content_type="image/jpg")
return HttpResponse(
get_bytes(int(self.request.GET["id"])), content_type="image/jpg"
)

View File

@@ -8,22 +8,31 @@ from random import randrange
class SendCodeView(BaseView):
endpoint = "send_code"
def post_create(self):
username = self.request.POST["username"]
user = User.objects.filter(username=username).first()
if not user:
return {"success": False, "message": "Пользователя с таким именем не существует"}
return {
"success": False,
"message": "Пользователя с таким именем не существует",
}
code = randrange(10000, 100000)
user.userinfo.code = code
user.userinfo.save()
bot.send_message(user.userinfo.telegram_chat_id, "Код для входа в сервис: " + str(code))
bot.send_message(
user.userinfo.telegram_chat_id, "Код для входа в сервис: " + str(code)
)
return {"success": True, "message": "Код отправлен"}
def post_check(self):
username = self.request.POST["username"]
user = User.objects.filter(username=username).first()
if not user:
return {"success": False, "message": "Пользователя с таким именем не существует"}
return {
"success": False,
"message": "Пользователя с таким именем не существует",
}
code = int(self.request.POST["code"])
if code == user.userinfo.code:
user.userinfo.code = None

View File

@@ -3,5 +3,5 @@ from SprintLib.BaseView import BaseView
class SetSettingsView(BaseView):
required_login = True
view_file = 'set_settings.html'
endpoint = "admin/set"
view_file = "set_settings.html"
endpoint = "admin/set"

View File

@@ -2,7 +2,7 @@ from SprintLib.BaseView import BaseView, AccessError
class SolutionView(BaseView):
view_file = 'solution.html'
view_file = "solution.html"
required_login = True
endpoint = "solution"

View File

@@ -6,17 +6,20 @@ from SprintLib.BaseView import BaseView
class SolutionsTableView(BaseView):
view_file = 'solutions_table.html'
view_file = "solutions_table.html"
required_login = True
endpoint = "solutions_table"
def get(self):
self.context['solutions'] = Solution.objects.filter(
self.context["solutions"] = Solution.objects.filter(
user=self.request.user, task=self.entities.task
).order_by("-time_sent")
if 'render' in self.request.GET.keys():
if "render" in self.request.GET.keys():
return
for sol in self.context['solutions']:
if sol.result == CONSTS['testing_status'] or sol.result == CONSTS['in_queue_status']:
for sol in self.context["solutions"]:
if (
sol.result == CONSTS["testing_status"]
or sol.result == CONSTS["in_queue_status"]
):
return
return HttpResponse('done')
return HttpResponse("done")

View File

@@ -5,14 +5,14 @@ from SprintLib.BaseView import BaseView
class TaskRuntimeView(BaseView):
view_file = 'task_runtime.html'
view_file = "task_runtime.html"
required_login = True
endpoint = "task_runtime"
def get(self):
progress = Progress.objects.get(task=self.entities.task, user=self.request.user)
self.context['progress'] = progress
if 'render' in self.request.GET.keys():
self.context["progress"] = progress
if "render" in self.request.GET.keys():
return
if progress.finished:
return HttpResponse('done')
return HttpResponse("done")

View File

@@ -13,47 +13,49 @@ class TaskSettingsView(BaseView):
def pre_handle(self):
if self.entities.task not in self.request.user.userinfo.available_tasks:
raise AccessError()
if self.request.method == 'POST':
for progress in Progress.objects.filter(task=self.entities.task, finished=False):
if self.request.method == "POST":
for progress in Progress.objects.filter(
task=self.entities.task, finished=False
):
progress.start_time = timezone.now()
progress.save()
def get(self):
self.context['error_message'] = self.request.GET.get('error_message', '')
self.context["error_message"] = self.request.GET.get("error_message", "")
def post(self):
for key, value in self.request.POST.items():
setattr(self.entities.task, key, value.strip())
self.entities.task.public = 'public' in self.request.POST
self.entities.task.public = "public" in self.request.POST
self.entities.task.save()
return f"/admin/task?task_id={self.entities.task.id}"
def _upload(self, is_test):
filename = self.request.FILES['file'].name
filename = self.request.FILES["file"].name
ef, created = None, None
if is_test:
name = filename.strip('.a')
name = filename.strip(".a")
if not name.isnumeric():
return f'/admin/task?task_id={self.entities.task.id}&error_message=Формат файла не соответствует тесту'
ef, created = ExtraFile.objects.get_or_create(task=self.entities.task, is_test=True, filename=filename)
return f"/admin/task?task_id={self.entities.task.id}&error_message=Формат файла не соответствует тесту"
ef, created = ExtraFile.objects.get_or_create(
task=self.entities.task, is_test=True, filename=filename
)
if not created:
ef.is_sample = False
ef.save()
return f'/admin/task?task_id={self.entities.task.id}'
return f"/admin/task?task_id={self.entities.task.id}"
if ef is None or created is None:
ef, created = ExtraFile.objects.get_or_create(
task=self.entities.task,
filename=filename,
is_test=is_test
task=self.entities.task, filename=filename, is_test=is_test
)
ef.write(self.request.FILES['file'].read())
ef.write(self.request.FILES["file"].read())
try:
var = ef.text
ef.readable = True
except UnicodeDecodeError:
ef.readable = False
ef.save()
return '/admin/task?task_id=' + str(self.entities.task.id)
return "/admin/task?task_id=" + str(self.entities.task.id)
def post_file_upload(self):
return self._upload(False)
@@ -62,21 +64,23 @@ class TaskSettingsView(BaseView):
return self._upload(True)
def post_delete_file(self):
ef = ExtraFile.objects.get(id=self.request.POST['id'])
ef = ExtraFile.objects.get(id=self.request.POST["id"])
ef.delete()
return HttpResponse("ok")
def _create(self, is_test):
name = self.request.POST['newfile_name']
name = self.request.POST["newfile_name"]
ef, created = ExtraFile.objects.get_or_create(filename=name, task=self.entities.task)
ef, created = ExtraFile.objects.get_or_create(
filename=name, task=self.entities.task
)
if not created:
return f'/admin/task?task_id={self.entities.task.id}&error_message=Файл с таким именем уже существует'
return f"/admin/task?task_id={self.entities.task.id}&error_message=Файл с таким именем уже существует"
ef.write(b"")
ef.is_test = is_test
ef.readable = True
ef.save()
return f'/admin/task?task_id={self.entities.task.id}'
return f"/admin/task?task_id={self.entities.task.id}"
def post_create_file(self):
return self._create(False)
@@ -85,9 +89,9 @@ class TaskSettingsView(BaseView):
return self._create(True)
def post_save_test(self):
ef = ExtraFile.objects.get(id=self.request.POST['test_id'])
ef = ExtraFile.objects.get(id=self.request.POST["test_id"])
ef.remove_from_fs()
ef.write(self.request.POST['text'].encode('utf-8'))
ef.is_sample = 'is_sample' in self.request.POST.keys()
ef.write(self.request.POST["text"].encode("utf-8"))
ef.is_sample = "is_sample" in self.request.POST.keys()
ef.save()
return f'/admin/task?task_id={self.entities.task.id}'
return f"/admin/task?task_id={self.entities.task.id}"

View File

@@ -44,7 +44,7 @@ class TaskView(BaseView):
return "task?task_id=" + str(self.entities.task.id)
filename = self.request.FILES["file"].name
if filename.endswith(".zip"):
archive = ZipFile(io.BytesIO(self.request.FILES['file'].read()))
archive = ZipFile(io.BytesIO(self.request.FILES["file"].read()))
for file in archive.infolist():
if file.is_dir():
continue
@@ -55,7 +55,7 @@ class TaskView(BaseView):
fs_id=fs_id,
)
else:
fs_id = write_bytes(self.request.FILES['file'].read())
fs_id = write_bytes(self.request.FILES["file"].read())
SolutionFile.objects.create(
path=filename,
solution=self.solution,