Set selected class to newly joined or created one
This commit is contained in:
parent
d4845f0dd1
commit
aa9e72b087
|
|
@ -64,6 +64,11 @@ class User(AbstractUser):
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def set_selected_class(self, school_class):
|
||||||
|
user_settings, created = UserSetting.objects.get_or_create(user=self)
|
||||||
|
user_settings.selected_class = school_class
|
||||||
|
user_settings.save()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def full_name(self):
|
def full_name(self):
|
||||||
return self.get_full_name()
|
return self.get_full_name()
|
||||||
|
|
|
||||||
|
|
@ -100,9 +100,7 @@ class UpdateSetting(relay.ClientIDMutation):
|
||||||
if school_class and school_class not in user.school_classes.all():
|
if school_class and school_class not in user.school_classes.all():
|
||||||
raise PermissionDenied('Permission denied: Incorrect school class')
|
raise PermissionDenied('Permission denied: Incorrect school class')
|
||||||
|
|
||||||
user_settings, created = UserSetting.objects.get_or_create(user=user)
|
user.set_selected_class(school_class)
|
||||||
user_settings.selected_class = school_class
|
|
||||||
user_settings.save()
|
|
||||||
return cls(success=True)
|
return cls(success=True)
|
||||||
|
|
||||||
success = graphene.Boolean()
|
success = graphene.Boolean()
|
||||||
|
|
@ -128,6 +126,7 @@ class JoinClass(relay.ClientIDMutation):
|
||||||
user=user,
|
user=user,
|
||||||
school_class=school_class
|
school_class=school_class
|
||||||
)
|
)
|
||||||
|
user.set_selected_class(school_class)
|
||||||
else:
|
else:
|
||||||
raise CodeNotFoundException('[CAJ] Schüler ist bereits in Klasse') # CAJ = Class Already Joined
|
raise CodeNotFoundException('[CAJ] Schüler ist bereits in Klasse') # CAJ = Class Already Joined
|
||||||
|
|
||||||
|
|
@ -206,6 +205,7 @@ class CreateSchoolClass(relay.ClientIDMutation):
|
||||||
|
|
||||||
school_class = SchoolClass.objects.create(name=name)
|
school_class = SchoolClass.objects.create(name=name)
|
||||||
SchoolClassMember.objects.create(school_class=school_class, user=user)
|
SchoolClassMember.objects.create(school_class=school_class, user=user)
|
||||||
|
user.set_selected_class(school_class)
|
||||||
return cls(success=True, school_class=school_class)
|
return cls(success=True, school_class=school_class)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ class JoinSchoolClassTest(TestCase):
|
||||||
self.assertEqual(result['success'], True)
|
self.assertEqual(result['success'], True)
|
||||||
self.assertEqual(result['schoolClass']['name'], 'Klasse 2B')
|
self.assertEqual(result['schoolClass']['name'], 'Klasse 2B')
|
||||||
self.assertEqual(self.user.school_classes.count(), 2)
|
self.assertEqual(self.user.school_classes.count(), 2)
|
||||||
|
self.assertEqual(self.user.selected_class().code, 'YYYY')
|
||||||
|
|
||||||
def test_class_already_joined(self):
|
def test_class_already_joined(self):
|
||||||
code = 'YYYY'
|
code = 'YYYY'
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,7 @@ class ModifySchoolClassTest(TestCase):
|
||||||
school_class = get_object(SchoolClass, id)
|
school_class = get_object(SchoolClass, id)
|
||||||
self.assertEqual(school_class.name, class_name)
|
self.assertEqual(school_class.name, class_name)
|
||||||
self.assertEqual(school_class.get_teacher(), self.teacher)
|
self.assertEqual(school_class.get_teacher(), self.teacher)
|
||||||
|
self.assertEqual(self.teacher.selected_class().name, class_name)
|
||||||
|
|
||||||
def test_create_school_class_fail(self):
|
def test_create_school_class_fail(self):
|
||||||
self.assertEqual(SchoolClass.objects.count(), 2)
|
self.assertEqual(SchoolClass.objects.count(), 2)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue