Fix incorrect module level mutation

This commit is contained in:
Ramon Wenger 2023-08-31 14:59:43 +02:00
parent e6dbe06ca9
commit 8e226e1187
1 changed files with 19 additions and 13 deletions

View File

@ -21,11 +21,14 @@ class UpdateSolutionVisibility(relay.ClientIDMutation):
@classmethod @classmethod
def mutate_and_get_payload(cls, root, info, **args): def mutate_and_get_payload(cls, root, info, **args):
try: try:
slug = args.get('slug') slug = args.get("slug")
enabled = args.get('enabled') enabled = args.get("enabled")
user = info.context.user user = info.context.user
selected_class = user.selected_class selected_class = user.selected_class
if 'users.can_manage_school_class_content' not in user.get_role_permissions(): if (
"users.can_manage_school_class_content"
not in user.get_role_permissions()
):
raise PermissionError() raise PermissionError()
module = Module.objects.get(slug=slug) module = Module.objects.get(slug=slug)
@ -40,7 +43,7 @@ class UpdateSolutionVisibility(relay.ClientIDMutation):
except PermissionError: except PermissionError:
errors = ["You don't have the permission to do that."] errors = ["You don't have the permission to do that."]
except Exception as e: except Exception as e:
errors = ['Error: {}'.format(e)] errors = ["Error: {}".format(e)]
return cls(success=False, solutions_enabled=None, errors=errors) return cls(success=False, solutions_enabled=None, errors=errors)
@ -55,7 +58,7 @@ class UpdateLastModule(relay.ClientIDMutation):
@classmethod @classmethod
def mutate_and_get_payload(cls, root, info, **args): def mutate_and_get_payload(cls, root, info, **args):
user = info.context.user user = info.context.user
id = args.get('id') id = args.get("id")
module = get_object(Module, id) module = get_object(Module, id)
if not module: if not module:
@ -88,17 +91,19 @@ class SyncModuleVisibility(relay.ClientIDMutation):
def mutate_and_get_payload(cls, root, info, **args): def mutate_and_get_payload(cls, root, info, **args):
user = info.context.user user = info.context.user
if not user.is_teacher(): if not user.is_teacher():
raise Exception('Permission denied') raise Exception("Permission denied")
module_slug = args.get('module') module_slug = args.get("module")
template_id = args.get('template_school_class') template_id = args.get("template_school_class")
school_class_id = args.get('school_class') school_class_id = args.get("school_class")
module = Module.objects.get(slug=module_slug) module = Module.objects.get(slug=module_slug)
template = get_object(SchoolClass, template_id) template = get_object(SchoolClass, template_id)
school_class = get_object(SchoolClass, school_class_id) school_class = get_object(SchoolClass, school_class_id)
if not template.is_user_in_schoolclass(user) or not school_class.is_user_in_schoolclass(user): if not template.is_user_in_schoolclass(
raise Exception('Permission denied') user
) or not school_class.is_user_in_schoolclass(user):
raise Exception("Permission denied")
module.sync_from_school_class(template, school_class) module.sync_from_school_class(template, school_class)
@ -114,8 +119,9 @@ class UpdateLastModuleLevel(relay.ClientIDMutation):
@classmethod @classmethod
def mutate_and_get_payload(cls, root, info, **args): def mutate_and_get_payload(cls, root, info, **args):
user = info.context.user user = info.context.user
id = args.get('id') id = args.get("id")
module_level = get_object(ModuleLevel, id) module_level = get_object(ModuleLevel, id)
User.objects.filter(pk=user.id).update(last_module_level_id=module_level.id) user.last_module_level = module_level
user.save()
return cls(user=user) return cls(user=user)