This commit is contained in:
Egor Matveev
2022-02-11 22:15:48 +03:00
parent 1efa48aff3
commit e721b9b5ec
7 changed files with 90 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ from django.utils import timezone
from Main.models import SetTask, Set
from SprintLib.BaseView import BaseView, AccessError
from SprintLib.language import languages
class SetSettingsView(BaseView):
@@ -36,6 +37,7 @@ class SetSettingsView(BaseView):
if self.current_set.end_time
else timezone.now().strftime("%Y-%m-%dT%H:%M")
)
self.context['languages'] = languages
def post_save(self):
for key, value in self.request.POST.items():
@@ -97,4 +99,17 @@ class SetSettingsView(BaseView):
for t in to_delete:
self.entities.set.editors.remove(t)
self.entities.set.save()
return "/admin/task?task_id=" + str(self.entities.task.id)
return "/admin/set?set_id=" + str(self.entities.set.id)
def post_languages_edit(self):
current_languages = self.entities.set.languages
for key, value in self.request.POST.items():
if key.startswith("language_"):
i = int(key.split("_")[1])
if i not in current_languages:
self.entities.set.languages.append(i)
to_delete = [i for i in current_languages if "language_" + str(i) not in self.request.POST]
for t in to_delete:
self.entities.set.languages.remove(t)
self.entities.set.save()
return "/admin/set?set_id=" + str(self.entities.set.id)

View File

@@ -3,6 +3,7 @@ from zipfile import ZipFile
from Main.models import Solution, Progress, SolutionFile
from SprintLib.BaseView import BaseView, AccessError
from SprintLib.language import languages
from SprintLib.queue import send_testing
from SprintLib.utils import write_bytes
@@ -23,9 +24,13 @@ class TaskView(BaseView):
if hasattr(self.entities, 'setTask'):
self.entities.add('task', self.entities.setTask.task)
self.entities.add('set', self.entities.setTask.set)
self.context['languages'] = self.entities.set.language_models
for lang in self.context['languages']:
print(lang)
else:
if not self.entities.task.public and not self.entities.task.creator == self.request.user and not self.request.user.username in self.entities.task.editors:
raise AccessError()
self.context['languages'] = languages
if self.request.method == "GET":
return
self.solution = Solution.objects.create(