From a49ecded946cda8ebec20153e7a2988407799d9e Mon Sep 17 00:00:00 2001 From: Egor Matveev Date: Sat, 22 Jan 2022 15:08:12 +0300 Subject: [PATCH] new --- Main/templatetags/filters.py | 11 +++++++++++ Main/views/TasksView.py | 3 --- templates/set.html | 7 +++++-- templates/set_settings.html | 2 +- templates/tasks.html | 8 ++++++-- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Main/templatetags/filters.py b/Main/templatetags/filters.py index 9bd6204..1e7e00b 100644 --- a/Main/templatetags/filters.py +++ b/Main/templatetags/filters.py @@ -1,4 +1,15 @@ from django import template +from Main.models import Solution register = template.Library() + + +@register.filter('solved') +def solved(user, task): + solutions = Solution.objects.filter(user=user, task=task) + if len(solutions.filter(result='OK')) != 0: + return True + if len(solutions) != 0: + return False + return None diff --git a/Main/views/TasksView.py b/Main/views/TasksView.py index 2c2bba2..e00e856 100644 --- a/Main/views/TasksView.py +++ b/Main/views/TasksView.py @@ -7,9 +7,6 @@ class TasksView(BaseView): required_login = True endpoint = "tasks" - def get(self): - self.context["tasks"] = Task.objects.filter(public=True).order_by('-time_estimation') - def post(self): task_name = self.request.POST["name"] task = Task.objects.create(name=task_name, creator=self.request.user) diff --git a/templates/set.html b/templates/set.html index cec06b9..38a277d 100644 --- a/templates/set.html +++ b/templates/set.html @@ -4,11 +4,14 @@ {% block main %}

{{ set.name }}

+

{{ set.description }}

Таски

{% for settask in set.settasks_ordered %} {{ settask.name }}. {{ settask.task.name }}
{% endfor %}

- Время начала: {% if not set.start_time %}без ограничений{% else %}{{ set.start_time_moscow }}{% endif %}
- Время окончания: {% if not set.end_time %}без ограничений{% else %}{{ set.end_time_moscow }}{% endif %} + Время начала: {% if not set.start_time %}без ограничений{% else %}{{ set.start_time_moscow }}{% endif %}
+ Время окончания: {% if not set.end_time %}без ограничений{% else %}{{ set.end_time_moscow }}{% endif %}
+ Публичность: {% if set.public %}публично{% else %}приватно{% endif %}
+ Открытость: {% if set.opened %}открыто{% else %}закрыто{% endif %} для просмотра и решения
{% endblock %} \ No newline at end of file diff --git a/templates/set_settings.html b/templates/set_settings.html index b496590..0517f94 100644 --- a/templates/set_settings.html +++ b/templates/set_settings.html @@ -13,7 +13,7 @@
{% csrf_token %} -

+

Таски

{% for settask in settasks %} diff --git a/templates/tasks.html b/templates/tasks.html index cb37cb3..959c6c4 100644 --- a/templates/tasks.html +++ b/templates/tasks.html @@ -2,6 +2,8 @@ {% block title %}Задачи{% endblock %} +{% load filters %} + {% block main %} @@ -43,7 +45,9 @@ {% endif %}
- {% for task in tasks %} - {{ task.name }} {% if task.creator == user or user.username in task.editors %} {% endif %}
+ {% for task in user.userinfo.available_tasks %} + {% with result=user|solved:task %} + {{ task.name }} {% if task.creator == user or user.username in task.editors %} {% endif %}
+ {% endwith %} {% endfor %} {% endblock %} \ No newline at end of file