Set selected class to newly joined or created one

This commit is contained in:
Ramon Wenger 2020-03-19 13:49:29 +01:00
parent d4845f0dd1
commit aa9e72b087
4 changed files with 10 additions and 3 deletions

View File

@ -64,6 +64,11 @@ class User(AbstractUser):
else:
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
def full_name(self):
return self.get_full_name()

View File

@ -100,9 +100,7 @@ class UpdateSetting(relay.ClientIDMutation):
if school_class and school_class not in user.school_classes.all():
raise PermissionDenied('Permission denied: Incorrect school class')
user_settings, created = UserSetting.objects.get_or_create(user=user)
user_settings.selected_class = school_class
user_settings.save()
user.set_selected_class(school_class)
return cls(success=True)
success = graphene.Boolean()
@ -128,6 +126,7 @@ class JoinClass(relay.ClientIDMutation):
user=user,
school_class=school_class
)
user.set_selected_class(school_class)
else:
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)
SchoolClassMember.objects.create(school_class=school_class, user=user)
user.set_selected_class(school_class)
return cls(success=True, school_class=school_class)

View File

@ -41,6 +41,7 @@ class JoinSchoolClassTest(TestCase):
self.assertEqual(result['success'], True)
self.assertEqual(result['schoolClass']['name'], 'Klasse 2B')
self.assertEqual(self.user.school_classes.count(), 2)
self.assertEqual(self.user.selected_class().code, 'YYYY')
def test_class_already_joined(self):
code = 'YYYY'

View File

@ -111,6 +111,7 @@ class ModifySchoolClassTest(TestCase):
school_class = get_object(SchoolClass, id)
self.assertEqual(school_class.name, class_name)
self.assertEqual(school_class.get_teacher(), self.teacher)
self.assertEqual(self.teacher.selected_class().name, class_name)
def test_create_school_class_fail(self):
self.assertEqual(SchoolClass.objects.count(), 2)