def put(self, request, *args, **kwargs): permissions.check_course_permission(request.user.pk, request.data['course']) if 'category' in request.data: permissions.check_category_permission(request.user.pk, request.data['category']) for material_id in request.data.get('materials', []): permissions.check_material_permission(request.user.pk, material_id) response = self.update(request, *args, **kwargs) logger.info(f"Homework {kwargs['pk']} updated for user {request.user.get_username()}") return response
def post(self, request, *args, **kwargs): if 'category' in request.data: permissions.check_category_permission(request.user.pk, request.data['category']) for material_id in request.data.get('materials', []): permissions.check_material_permission(request.user.pk, material_id) response = self.create(request, *args, **kwargs) logger.info('Category {} created in Course {} for user {}'.format(response.data['id'], kwargs['course'], request.user.get_username())) return response
def patch(self, request, *args, **kwargs): if 'course' in request.data: permissions.check_course_permission(request.user.pk, request.data['course']) if 'category' in request.data: permissions.check_category_permission(request.user.pk, request.data['category']) for material_id in request.data.get('materials', []): permissions.check_material_permission(request.user.pk, material_id) response = self.partial_update(request, *args, **kwargs) logger.info('Homework {} patched for user {}'.format( kwargs['pk'], request.user.get_username())) return response