Merge branch 'hotfix/restore-objective-order' into develop
This commit is contained in:
commit
c89567d611
|
|
@ -1,5 +1,5 @@
|
|||
import graphene
|
||||
from django.db.models import Q
|
||||
from django.db.models import F, Q
|
||||
from graphene import relay
|
||||
from graphene_django import DjangoObjectType
|
||||
from graphene_django.filter import DjangoFilterConnectionField
|
||||
|
|
@ -55,11 +55,16 @@ class ObjectiveGroupNode(DjangoObjectType, HiddenForMixin):
|
|||
|
||||
# todo
|
||||
# raise NotImplemented('not in correct order')
|
||||
# order_by =
|
||||
owner_last = F('owner').asc(nulls_first=True)
|
||||
order_first = F('order').asc(nulls_last=True)
|
||||
|
||||
if user.has_perm('users.can_manage_school_class_content'): # teacher
|
||||
return base_qs.filter(objectives_from_publisher | objectives_from_user)
|
||||
qs = base_qs.filter(objectives_from_publisher | objectives_from_user)
|
||||
else: # student
|
||||
return base_qs.filter(objectives_from_publisher | objectives_from_teacher)
|
||||
qs = base_qs.filter(objectives_from_publisher | objectives_from_teacher)
|
||||
|
||||
return qs.order_by(owner_last, order_first)
|
||||
|
||||
|
||||
class ObjectivesQuery(object):
|
||||
|
|
|
|||
|
|
@ -29,8 +29,9 @@ class ObjectiveOrderTestCase(TestCase):
|
|||
|
||||
self.client = Client(schema=schema, context_value=request)
|
||||
|
||||
Objective.objects.create(text='first', group=self.objective_group, order=0)
|
||||
Objective.objects.create(text='fifth', group=self.objective_group, owner=user)
|
||||
Objective.objects.create(text='second', group=self.objective_group, order=1)
|
||||
Objective.objects.create(text='first', group=self.objective_group, order=0)
|
||||
Objective.objects.create(text='third', group=self.objective_group)
|
||||
Objective.objects.create(text='fourth', group=self.objective_group)
|
||||
|
||||
|
|
@ -53,10 +54,11 @@ class ObjectiveOrderTestCase(TestCase):
|
|||
self.assertIsNone(result.get('errors'))
|
||||
objective_nodes = result.get('data').get('objectiveGroup').get('objectives')
|
||||
|
||||
objective1, objective2, objective3, objective4 = [node for node in objective_nodes]
|
||||
objective1, objective2, objective3, objective4, objective5 = [node for node in objective_nodes]
|
||||
|
||||
self.assertEqual(objective1.get('text'), 'first')
|
||||
self.assertEqual(objective2.get('text'), 'second')
|
||||
self.assertEqual(objective3.get('text'), 'third')
|
||||
self.assertEqual(objective4.get('text'), 'fourth')
|
||||
self.assertEqual(objective5.get('text'), 'fifth')
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue