Пример #1
0
    def delete(self):
        """Remove a question from the datastore in response to DELETE."""
        key = self.request.get('key')

        if not self.assert_xsrf_token_or_fail(
                self.request, self.XSRF_TOKEN, {'key': key}):
            return

        if not CourseOutlineRights.can_delete(self):
            transforms.send_json_response(
                self, 401, 'Access denied.', {'key': key})
            return

        question = QuestionDAO.load(key)
        if not question:
            transforms.send_json_response(
                self, 404, 'Question not found.', {'key': key})
            return

        used_by = QuestionDAO.used_by(question.id)
        if used_by:
            group_names = ['"%s"' % x for x in used_by]
            transforms.send_json_response(
                self, 403,
                ('Question in use by question groups:\n%s.\nPlease delete it '
                 'from those groups and try again.') % ',\n'.join(group_names),
                {'key': key})
            return

        QuestionDAO.delete(question)
        transforms.send_json_response(self, 200, 'Deleted.')
Пример #2
0
    def delete(self):
        """Remove a question from the datastore in response to DELETE."""
        key = self.request.get('key')

        if not self.assert_xsrf_token_or_fail(self.request, self.XSRF_TOKEN,
                                              {'key': key}):
            return

        if not CourseOutlineRights.can_delete(self):
            transforms.send_json_response(self, 401, 'Access denied.',
                                          {'key': key})
            return

        question = QuestionDAO.load(key)
        if not question:
            transforms.send_json_response(self, 404, 'Question not found.',
                                          {'key': key})
            return

        used_by = QuestionDAO.used_by(question.id)
        if used_by:
            group_names = ['"%s"' % x for x in used_by]
            transforms.send_json_response(
                self, 403,
                ('Question in use by question groups:\n%s.\nPlease delete it '
                 'from those groups and try again.') % ',\n'.join(group_names),
                {'key': key})
            return

        QuestionDAO.delete(question)
        transforms.send_json_response(self, 200, 'Deleted.')
Пример #3
0
    def is_deletion_allowed(self, question):

        used_by = QuestionDAO.used_by(question.id)
        if used_by:
            group_names = sorted(['"%s"' % x.description for x in used_by])
            transforms.send_json_response(
                self, 403,
                ('Question in use by question groups:\n%s.\nPlease delete it '
                 'from those groups and try again.') % ',\n'.join(group_names),
                {'key': question.id})
            return False
        else:
            return True
    def is_deletion_allowed(self, question):

        used_by = QuestionDAO.used_by(question.id)
        if used_by:
            group_names = sorted(['"%s"' % x.description for x in used_by])
            transforms.send_json_response(
                self, 403,
                ('Question in use by question groups:\n%s.\nPlease delete it '
                 'from those groups and try again.') % ',\n'.join(group_names),
                {'key': question.id})
            return False
        else:
            return True