From 90d3316ab6f27d0192455f45cbade79b92be431d Mon Sep 17 00:00:00 2001 From: Egor Matveev Date: Thu, 3 Feb 2022 20:23:19 +0300 Subject: [PATCH] editors --- Main/views/SetSettingsView.py | 13 ++++++++++++ Main/views/TaskSettingsView.py | 13 ++++++++++++ templates/set_settings.html | 36 ++++++++++++++++++++++++++++++++++ templates/task_runtime.html | 2 +- templates/task_settings.html | 32 ++++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+), 1 deletion(-) diff --git a/Main/views/SetSettingsView.py b/Main/views/SetSettingsView.py index 3ca4848..dee2a3a 100644 --- a/Main/views/SetSettingsView.py +++ b/Main/views/SetSettingsView.py @@ -85,3 +85,16 @@ class SetSettingsView(BaseView): return "/admin/set?set_id=" + str(self.current_set.id) self.current_set.save() return "/admin/set?set_id=" + str(self.current_set.id) + + def post_users_edit(self): + current_users = self.entities.set.editors + for key, value in self.request.POST.items(): + if key.startswith("user_"): + i = '_'.join(key.split("_")[1:]) + if i not in current_users: + self.entities.set.editors.append(i) + to_delete = [i for i in current_users if "user_" + i not in self.request.POST] + 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) \ No newline at end of file diff --git a/Main/views/TaskSettingsView.py b/Main/views/TaskSettingsView.py index 82c7232..a4c2dd2 100644 --- a/Main/views/TaskSettingsView.py +++ b/Main/views/TaskSettingsView.py @@ -95,3 +95,16 @@ class TaskSettingsView(BaseView): ef.is_sample = "is_sample" in self.request.POST.keys() ef.save() return f"/admin/task?task_id={self.entities.task.id}" + + def post_users_edit(self): + current_users = self.entities.task.editors + for key, value in self.request.POST.items(): + if key.startswith("user_"): + i = '_'.join(key.split("_")[1:]) + if i not in current_users: + self.entities.task.editors.append(i) + to_delete = [i for i in current_users if "user_" + i not in self.request.POST] + for t in to_delete: + self.entities.task.editors.remove(t) + self.entities.task.save() + return "/admin/task?task_id=" + str(self.entities.task.id) diff --git a/templates/set_settings.html b/templates/set_settings.html index 0517f94..6a02a25 100644 --- a/templates/set_settings.html +++ b/templates/set_settings.html @@ -86,4 +86,40 @@

+

Редакторы

+ {% for editor in set.editors %} + {{ editor }}
+ {% endfor %} + + {% endblock %} \ No newline at end of file diff --git a/templates/task_runtime.html b/templates/task_runtime.html index 664bc35..2ff14b4 100644 --- a/templates/task_runtime.html +++ b/templates/task_runtime.html @@ -1 +1 @@ -

{{ task.name }}{{ progress.time }}

\ No newline at end of file +

{{ task.name }}{% if task.creator == user or user.username in task.editors %}{% endif %}{{ progress.time }}

\ No newline at end of file diff --git a/templates/task_settings.html b/templates/task_settings.html index ccefac4..6c24b0a 100644 --- a/templates/task_settings.html +++ b/templates/task_settings.html @@ -123,6 +123,38 @@ {% for editor in task.editors %} {{ editor }}
{% endfor %} + +

Загрузка тестов и файлов

{{ error_message }}