diff --git a/fet2020/tasks/managers.py b/fet2020/tasks/managers.py index ea4019ab..f07bb75d 100644 --- a/fet2020/tasks/managers.py +++ b/fet2020/tasks/managers.py @@ -2,18 +2,13 @@ from django.db import models from django.db.models import Q -class TaskQuerySet(models.QuerySet): - def get_ordered(self): - return self.order_by("task_list") - - class TaskManager(models.Manager): - def get_tasks(self, user, completed, task_list, all_tasks): + def get_tasks(self, user, assigned_tasks, task_list, completed): # None ... assigned to all users - qs_all = self.get_queryset().get_ordered() + qs_all = self.get_queryset() qs = qs_all.filter(assigned_to__id=user) - if all_tasks: + if not assigned_tasks: qs_tmp = qs_all.filter( Q(assigned_to=None) & Q(task_list__users__id__exact=user) ) @@ -23,6 +18,3 @@ class TaskManager(models.Manager): qs = qs.filter(task_list=task_list) return qs.filter(completed=completed) - - def get_queryset(self): - return TaskQuerySet(self.model, using=self._db) diff --git a/fet2020/tasks/models.py b/fet2020/tasks/models.py index 8182961b..e871fd54 100644 --- a/fet2020/tasks/models.py +++ b/fet2020/tasks/models.py @@ -3,6 +3,7 @@ from django.conf import settings from django.core.validators import ValidationError from django.contrib.auth.models import User from django.db import models +from django.db.models import F from django.db.models.constraints import UniqueConstraint from django.urls import reverse from django.utils import timezone @@ -80,6 +81,7 @@ class Task(models.Model): taskmanager = TaskManager() class Meta: + ordering = ("task_list", F("due_date").desc(nulls_first=True)) verbose_name = "Aufgabe" verbose_name_plural = "Aufgaben" diff --git a/fet2020/tasks/urls.py b/fet2020/tasks/urls.py index 2c910257..09d79b04 100644 --- a/fet2020/tasks/urls.py +++ b/fet2020/tasks/urls.py @@ -9,8 +9,8 @@ app_name = apps.TasksConfig.name urlpatterns = [ path("", views.index, name="index"), - path("task-create/", TaskCreate.as_view(), name="task-create"), - path("/docu-create/", DocumentCreate.as_view(), name="docu-create"), + path("add/", TaskCreate.as_view(), name="task-create"), path("/update/", TaskUpdate.as_view(), name="task-update"), path("/detail/", TaskDetail.as_view(), name="task-detail"), + path("/add/", DocumentCreate.as_view(), name="docu-create"), ] diff --git a/fet2020/tasks/views.py b/fet2020/tasks/views.py index ee5c84c5..c43c5842 100644 --- a/fet2020/tasks/views.py +++ b/fet2020/tasks/views.py @@ -22,10 +22,12 @@ logger = logging.getLogger(__name__) @authenticated_user def index(request): - completed = False tasklist = None show_tasklist = None - show_all_tasks = True + assigned_tasks = None + completed = False + state_open = False + state_closed = False if request.method == "POST": if "btn_checkbox" in request.POST: @@ -38,38 +40,35 @@ def index(request): task.save() if request.method == "GET": - if "tasklist" in request.GET: - if request.GET["tasklist"] != "all": + if request.GET.get("tasklist"): + if request.GET.get("tasklist") != "all": tasklist = TaskList.objects.filter(id=request.GET["tasklist"]).first() show_tasklist = tasklist.id - if "tasks" in request.GET: - if request.GET["tasks"] == "all": - show_all_tasks = True - else: - show_all_tasks = False + if request.GET.get("tasks") == "assigned": + assigned_tasks = True - if "open_tasks" in request.GET: + if request.GET.get("open_tasks"): completed = False + state_open = True - if "closed_tasks" in request.GET: + if request.GET.get("closed_tasks"): completed = True + state_closed = True tasks = Task.taskmanager.get_tasks( user=request.user.id, - completed=completed, + assigned_tasks=assigned_tasks, task_list=tasklist, - all_tasks=show_all_tasks, + completed=completed, ) - tasklists = TaskList.objects.all() context = { "tasks": tasks, - "tasklists": tasklists, - "current_user": request.user.id, - "completed": completed, "show_tasklist": show_tasklist, - "show_all_tasks": show_all_tasks, + "assigned_tasks": assigned_tasks, + "state_open": state_open, + "state_closed": state_closed, } return render(request, "tasks/index.html", context) diff --git a/fet2020/templates/tasks/index.html b/fet2020/templates/tasks/index.html index 64e9512e..1e7502ca 100644 --- a/fet2020/templates/tasks/index.html +++ b/fet2020/templates/tasks/index.html @@ -43,24 +43,25 @@ Task-Gruppe