move manager method in managers file
This commit is contained in:
31
fet2020/tasks/managers.py
Normal file
31
fet2020/tasks/managers.py
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
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):
|
||||||
|
# None ... assigned to all users
|
||||||
|
qs_all = self.get_queryset().get_ordered()
|
||||||
|
qs = qs_all.filter(assigned_to__id=user)
|
||||||
|
|
||||||
|
if all_tasks:
|
||||||
|
qs_tmp = qs_all.filter(
|
||||||
|
Q(assigned_to=None) & Q(task_list__users__id__exact=user)
|
||||||
|
)
|
||||||
|
qs = (qs | qs_tmp).distinct()
|
||||||
|
|
||||||
|
if not completed:
|
||||||
|
qs = qs.filter(completed=completed)
|
||||||
|
|
||||||
|
if task_list:
|
||||||
|
qs = qs.filter(task_list=task_list)
|
||||||
|
|
||||||
|
return qs
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return TaskQuerySet(self.model, using=self._db)
|
||||||
@@ -3,7 +3,6 @@ from django.conf import settings
|
|||||||
from django.core.validators import ValidationError
|
from django.core.validators import ValidationError
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models import Q
|
|
||||||
from django.db.models.constraints import UniqueConstraint
|
from django.db.models.constraints import UniqueConstraint
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -11,36 +10,7 @@ from django.utils.text import slugify
|
|||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from documents import createPadifNotExists
|
from documents import createPadifNotExists
|
||||||
|
from .managers import TaskManager
|
||||||
|
|
||||||
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):
|
|
||||||
# None ... assigned to all users
|
|
||||||
qs = self.get_queryset().get_ordered().filter(assigned_to__id=user)
|
|
||||||
|
|
||||||
if all_tasks:
|
|
||||||
qs_tmp = (
|
|
||||||
self.get_queryset()
|
|
||||||
.get_ordered()
|
|
||||||
.filter(Q(assigned_to=None) & Q(task_list__users__id__exact=user))
|
|
||||||
)
|
|
||||||
qs = (qs | qs_tmp).distinct()
|
|
||||||
|
|
||||||
if not completed:
|
|
||||||
qs = qs.filter(completed=completed)
|
|
||||||
|
|
||||||
if task_list:
|
|
||||||
qs = qs.filter(task_list=task_list)
|
|
||||||
|
|
||||||
return qs
|
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
return TaskQuerySet(self.model, using=self._db)
|
|
||||||
|
|
||||||
|
|
||||||
class TaskList(models.Model):
|
class TaskList(models.Model):
|
||||||
|
|||||||
Reference in New Issue
Block a user