示例#1
0
    def delete(self, node_id):

        exam = Exam.get(Exam.node_id == node_id)

        os.remove('uploads/' + exam.json_file)

        exam.delete_instance()

        return f"Deleted ID {exam.id}."
示例#2
0
    def put(self, node_id):

        parser = reqparse.RequestParser()

        parser.add_argument('name', required=False)
        parser.add_argument('description', required=False)
        parser.add_argument('roles', type=str, required=False)
        parser.add_argument('time', type=int, required=False)
        parser.add_argument('attempts', type=int, required=False)
        parser.add_argument('file',
                            location='files',
                            required=False,
                            type=werkzeug.datastructures.FileStorage)

        parser.add_argument('locked', required=False, type=int)

        exam = Exam.get(Exam.node_id == node_id)
        args = parser.parse_args()

        if args['locked'] is not None:
            exam.locked = args['locked']

        else:
            exam.name = args['name']
            exam.description = args['description']
            exam.time = args['time']
            exam.attempts = args['attempts']
            exam.roles = args['roles'].strip(",").replace(" ", "")

            file = args['file']
            if file is not None:

                # Check if file exists, rename if so
                filename = werkzeug.utils.secure_filename(file.filename)

                if os.path.isfile(f'uploads/{filename}'):
                    filename = str(int(
                        datetime.now().timestamp())) + "-" + filename

                exam.json_file = filename
                file.save(f"uploads/{filename}")

        exam.save()

        return exam