Exemple #1
0
    def post(self, assignment_id):
        current_user = get_jwt_identity()
        answer = request.json
        for i in answer['answers']:
            i['question_id'] = ObjectId(i['question_id'])

        if db.peer_review.find({
                '$and': [{
                    'assignment_id': ObjectId(assignment_id),
                }, {
                    'reviews.reviewee': answer['reviewee']
                }, {
                    'reviews.reviewer': current_user
                }]
        }).count() == 0:
            db.peer_review.update_one(
                {'assignment_id': ObjectId(assignment_id)},
                {'$addToSet': {
                    'reviews': answer
                }},
                upsert=True,
            )
        else:
            print("already reviewd")

        db.peer_review.update_one({'assignment_id': ObjectId(assignment_id)},
                                  {'$addToSet': {
                                      'reviews': answer
                                  }})
Exemple #2
0
def flag(game_id, x, y):
    """
    Place a flag in a cell in a game.
    ---
    tags:
      - game
    parameters:
      - in: path
        name: game_id
        description: Id of the game to check a cell in.
        required: true
        type: string
      - in: path
        name: x
        description: X coordinate of the cell to place the flag.
        required: true
        type: integer
      - in: path
        name: y
        description: Y coordinate of the cell to place the flag.
        required: true
        type: integer
    responses:
      200:
        description: Game
        schema:
          $ref: '#/definitions/Game'
    """
    game = games_col.find_one({'_id': ObjectId(game_id)})
    if not game:
        abort(404)
    flag_cell(game, int(x), int(y))
    games_col.replace_one({'_id': ObjectId(game_id)}, game)
    return dumps(create_view(game))
Exemple #3
0
def editrole(roleid):
    if (not session.get('logged_in')):
        return redirect(url_for('login'))
    if (check_access('users') != 'rw'):
        abort(403)

    if (request.method == 'POST'):
        role_json = {
            'rolename': request.form['rolename'],
            'description': request.form['description'],
            'rights': {}
        }
        for right in rights:
            role_json['rights'][right] = request.form[right]

        result = mongodb.db.roles.update_one(
            {
                '_id': ObjectId(request.form['_id'])
            }, {
                '$set': role_json
            }).raw_result
        if (result['ok'] > 0):
            flash(u'Changes saved!', 'success')
        else:
            flash(u'Changes not saved!', 'danger')

    role = mongodb.db.roles.find_one({'_id': ObjectId(roleid)})
    return render_template('role_details.html', role=role, rights=rights)
Exemple #4
0
def add_plugin():
    from pymongo import MongoClient
    from bson.json_util import ObjectId
    metadata = json.loads(request.form['form'])
    source, extension = upload_file(request, ALLOWED_EXTENSIONS_ICON, metadata)
    plugin_name = secure_filename(source.filename)
    source.save(
        os.path.join(
            "/Users/titusebbecke/Documents/Work/Helmholtz/2020/Experiments/2003_Hiri_VueBootstrap/hzi_vis_03/public/src/assets",
            plugin_name))
    metadata['filename'] = plugin_name
    db_plugin_entry_id = db.plugins.insert_one(metadata).inserted_id
    if metadata['db_entry_id'] == '':
        import copy
        db_entry = copy.deepcopy(DB_ENTRY_MOCKUP)
        db_entry['plugins_id'].append(db_plugin_entry_id)
        db_entry['locked'] = False
        db_entry_id = db.visualizations.insert_one(db_entry).inserted_id
        print('db_entry_id empty url:', db_entry_id)
    else:
        db_entry = db.visualizations.find_one(
            {"_id": ObjectId(metadata['db_entry_id'])}, {'_id': False})
        plugins_id = db_entry['plugins_id']
        plugins_id.append(db_plugin_entry_id)
        db.visualizations.update_one(
            {'_id': ObjectId(metadata['db_entry_id'])},
            {'$push': {
                'plugins_id': db_plugin_entry_id
            }})
        print("metadata['db_entry']", metadata['db_entry_id'])
        db_entry_id = ObjectId(metadata['db_entry_id'])
        print('db_entry_id filled id: ', db_entry_id)
    print('db_plugins_id: ', db_plugin_entry_id)
    return Response(dumps({'db_entry_id': db_entry_id}, allow_nan=True),
                    mimetype="application/json")
Exemple #5
0
def getTestCases():
    print(request.json)
    print(request.args)
    if request.method == 'GET':
        # pid=request.args.get('problem_id',type=str)
        pid = request.json['problem_id']
        print("pid", pid)
        ab = db.problem.find_one({"problem_id": pid})
        ab1 = json.loads(json_util.dumps(ab))
        cd = ab1["Test_cases"]
        #print(cd['test_case_no_0']['input_file'])
        #print(cd['test_case_no_1']['input_file'])
        test_cases = {}
        for key, value in cd.items():
            temp = {
                'input_file':
                fs.get(ObjectId(
                    cd[key]['input_file']['$oid'])).read().decode('ascii'),
                'output_file':
                fs.get(ObjectId(
                    cd[key]['output_file']['$oid'])).read().decode('ascii'),
                'score':
                cd['test_case_no_0']['score']
            }
            test_cases[key[-1]] = temp
        print(test_cases)
        # content = fs.get(ObjectId(cd['test_case_no_0']['input_file']['$oid'])).read()
        # print(content)
        return jsonify(test_cases), 200
    else:
        return jsonify({}), 405
Exemple #6
0
 def put(self, assignment_id, task_id):
     data = request.json
     index = db.tasks.aggregate([{
         '$match': {
             'assignment_id': ObjectId(assignment_id)
         }
     }, {
         '$project': {
             'index': {
                 '$indexOfArray': ['$tasks._id',
                                   ObjectId(task_id)]
             }
         }
     }])
     index = (list(index))[0]
     db.tasks.update_one(
         {
             'assignment_id':
             ObjectId(assignment_id),
             'tasks.' + str(index['index']) + '.reviews._id':
             ObjectId(data['_id'])
         }, {
             '$set': {
                 'tasks.' + str(index['index']) + '.reviews.$.approval':
                 data['approval']
             }
         })
    def put(self, code):
        current_user = get_jwt_identity()
        data = request.json

        data['_id'] = ObjectId(data['_id'])
        for assignments in data['assignments']:
            if assignments['_id'] is "":
                assignments['_id'] = ObjectId()
            else:
                assignments['_id'] = ObjectId(assignments['_id'])
            for task in assignments['tasks']:
                if task['_id'] is "":
                    task['_id'] = ObjectId()
                else:
                    task['_id'] = ObjectId(task['_id'])

        db.courses.update_one(
            {
                'code': code,
                'templates.supervisor': current_user
            }, {'$pull': {
                'templates.$.template': {
                    '_id': data['_id']
                }
            }})

        db.courses.update_one(
            {
                'code': code,
                'templates.supervisor': current_user
            }, {'$addToSet': {
                'templates.$.template': data
            }})
Exemple #8
0
def update_user(user):
    if(user['pwd'] == None):
        return str(db.users.update_one({'_id': ObjectId(user['_id'])},{'$set':{'name': user['name'],'surname': user['surname'],'email': user['email'],'address': user['address']}}))
    else:
        pwd = str(user["pwd"]).encode()
        hash_pwd = hashlib.sha512(pwd)
        return str(db.users.update_one({'_id': ObjectId(user['_id'])},{'$set':{'name': user['name'],'surname': user['surname'],'email': user['email'],'address': user['address'],'pwd': hash_pwd.hexdigest()}}))
Exemple #9
0
    def put(self, assignment_id, task_id):

        task = request.json

        db.tasks.update_one(
            {
                'assignment_id': ObjectId(assignment_id),
                'tasks._id': ObjectId(task_id)
            }, {
                '$set': {
                    'tasks.$': {
                        '_id': ObjectId(task['_id']),
                        'creator': task['creator'],
                        'assign_to': task['assign_to'],
                        'task': task['task'],
                        'description': task['description'],
                        'created_date': task['created_date'],
                        'due_date': task['due_date'],
                        'assign_date': task['assign_date'],
                        'last_updated': task['last_updated'],
                        'priority': task['priority'],
                        'status': task['status'],
                        'seq': task['seq']
                    }
                }
            })
Exemple #10
0
    def put(self, group_id):
        current_user = get_jwt_identity()
        status = request.json['status']
        assignment_id = request.json['assignment_id']
        assignment_link = request.json['assignment_link']
        db.groupworks.update_one(
            {
                '_id': ObjectId(group_id),
                'assignments._id': ObjectId(assignment_id),
            }, {
                '$set': {
                    'assignments.$.status': status,
                    'assignments.$.assignment_link': assignment_link,
                    'assignments.$.submitted_date': datetimestring
                }
            },
            upsert=True)

        supervisor = db.groupworks.find_one({'_id': ObjectId(group_id)}, {
            '_id': False,
            'supervisor': True
        })

        db.notify.update_one({'email': supervisor['supervisor']}, {
            '$addToSet': {
                'supervisor_notify': {
                    '_id': ObjectId(),
                    'title': 'Assignment Submitted!',
                    'body':
                    'A student submit your assignment at' + datetimestring,
                    'notified': False,
                }
            }
        },
                             upsert=True)
    def get(self, group_id, assignment_id):
        current_user = get_jwt_identity()
        data = db.timelines.aggregate([{
            '$match': {
                'group_id': ObjectId(group_id)
            },
        }, {
            '$project': {
                'contributions': {
                    '$filter': {
                        'input': '$contributions',
                        'as': 'contribution',
                        'cond': {
                            '$eq': [
                                '$$contribution.assignment_id',
                                ObjectId(assignment_id)
                            ]
                        }
                    }
                }
            }
        }, {
            '$unwind': '$contributions'
        }, {
            '$replaceRoot': {
                'newRoot': '$contributions'
            }
        }], )

        return Response(json_util.dumps(data), mimetype='application/json')
Exemple #12
0
    def put(self):
        current_user = get_jwt_identity()
        group_id = request.json["group_id"]
        request_date = request.json["request_date"]

        user_id = db.users.find_one(
            {'email': current_user},
            {'_id': True},
        )

        if db.groupworks.find({
                '_id': ObjectId(group_id),
                'members.email': current_user
        }).count() == 0:

            db.inbox.update_one({'user_id': user_id['_id']}, {
                '$addToSet': {
                    'active_group_requests': {
                        'group_id': ObjectId(group_id),
                        'created_date': request_date,
                    }
                }
            },
                                upsert=True),
            db.groupworks.update_one({'_id': ObjectId(group_id)}, {
                '$addToSet': {
                    'requests': {
                        'email': current_user,
                        'created_date': request_date,
                    }
                }
            },
                                     upsert=True)
Exemple #13
0
def make_vis_link():
    try:
        plugin = json.loads(request.form['plugin'])
        url = json.loads(request.form['url'])
        print('url: ', url, 'plugin: ', plugin)
        db_entry = db.visualizations.find_one({"_id": ObjectId(url)},
                                              {'_id': False})
        # CHANGE: Right now every new visualization creates a new MongoDB entry
        if len(db_entry['filtered_dataframe']) > 0:
            vis_link = visualize.route(
                db.plugins,
                pd.read_parquet(BytesIO(db_entry['filtered_dataframe'])),
                plugin, ObjectId(url))
        else:
            vis_link = visualize.route(
                db.plugins,
                pd.read_parquet(BytesIO(db_entry['transformed_dataframe'])),
                plugin, ObjectId(url))
        db.visualizations.update_one({'_id': ObjectId(url)},
                                     {'$push': {
                                         'vis_links': vis_link
                                     }})
        print(vis_link)
        return Response(dumps({'vis_link': vis_link}, allow_nan=True),
                        mimetype="application/json")
    except Exception as e:
        print(str(e))
        return respond_error(
            ERROR_MESSAGES['visualization_error']['expected']['type'], str(e))
Exemple #14
0
def update_user(data, user_id):
    try:
        data = {"$set": data}
        user = users_collection.find_one({"_id": ObjectId(user_id)})
        users_collection.update_one(user, data)
        return users_collection.find_one({"_id": ObjectId(user_id)})
    except Exception as e:
        raise e
def save_assets():
    req_json = request.get_json()
    try:
        account = get_account()
        user_id = account.get('id', None)
        if user_id is None:
            raise RuntimeError('로그인을 해주세요.')

        if 'code' not in req_json:
            raise RuntimeError('카테고리 코드를 입력해주세요.')

        if 'amount' not in req_json:
            raise RuntimeError('자산의 양을 입력해주세요.')

        if 'complete' not in req_json:
            raise RuntimeError('재배 상태를 선택해주세요.')

        req_json['datetime'] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        req_json['id'] = str(uuid.uuid4())

        result = mongo3.db.user.update_one({'_id': ObjectId(user_id)}, {'$push': {'assets': req_json}})

        live = []
        ns = []

        assets_result = mongo3.db.user.find_one({'_id': ObjectId(user_id)}, {'assets': True, '_id': False})
        for asset in assets_result.get('assets', None):
            is_live = False
            for item in ['beef', 'pork001', 'pork002', 'egg001', 'egg002', 'chicken']:
                if asset.get('code', None) == item:
                    is_live = True

            if is_live:
                live.append(asset)
            else:
                ns.append(asset)

        return {
            'success': True,
            'result': {
                'modified_count': result.modified_count,
                'matched_count': result.matched_count,
                'assets': {
                    'live': live,
                    'ns': ns
                }
            }
        }

    except Exception as ex:
        return {
            'success': False,
            'result': {
                'action': 'ERR0002',
                'msg': '에러가 발생했어요.\n에러 내용: %s' % str(ex)
            }

        }
Exemple #16
0
def get_order(data):
    cart = loads(dumps(db.buyed.find_one({'_id': ObjectId(data['id'])})))
    print(cart['items'])
    i=0
    while i < len(cart['items']):
        cart['items'][i] = ObjectId(cart['items'][i])
        i=i+1
    
    return dumps(db.clothes.find({'_id':{'$in': cart['items']}}))
 def post(self, group_id):
     data = request.json
     data['assignment_id'] = ObjectId(data['assignment_id'])
     data['task_id'] = ObjectId(data['task_id'])
     data.pop('room', None)
     db.timelines.update_one({'group_id': ObjectId(group_id)},
                             {'$addToSet': {
                                 'contributions': data
                             }},
                             upsert=True)
Exemple #18
0
 def post(self, group_id):
     data = request.json['data']
     data['_id'] = ObjectId()
     data['email'] = get_jwt_identity()
     group_id = request.json['group_id']
     db.groupworks.update_one({'_id': ObjectId(group_id)},
                              {'$addToSet': {
                                  'supervisor_messages': data
                              }},
                              upsert=True)
Exemple #19
0
def borrar_curso_de_carrera(json):
    return str(
        db.carreras.update_one({
            '_id': ObjectId(json['id_carrera'])
        }, {
            '$pull': {
                'cursos': {
                    '_id': ObjectId(json['id_curso'])
                }
            }
        }).modified_count)
Exemple #20
0
    def put(self, group_id):
        assingment_id = request.json['assignment_id']
        db.groupworks.update_one(
            {'_id': ObjectId(group_id)},
            {'$pull': {
                'assignments': {
                    '_id': ObjectId(assingment_id)
                }
            }})

        db.peer_review.delete_one({'assignment_id': ObjectId(assingment_id)})
Exemple #21
0
 def post(self, assignment_id, task_id):
     data = request.json
     data['_id'] = ObjectId()
     db.tasks.update_one(
         {
             'assignment_id': ObjectId(assignment_id),
             'tasks._id': ObjectId(task_id)
         }, {'$addToSet': {
             'tasks.$.items': data,
         }},
         upsert=True)
Exemple #22
0
def borrar_curso_de_carrera(json):
    return str(
        db.carreras.update_one({
            "_id": ObjectId(json["id_carrera"])
        }, {
            "$pull": {
                "cursos": {
                    "_id": ObjectId(json["id_curso"])
                }
            }
        }).modified_count)
Exemple #23
0
def delete_course_from_carreer(json):
    return str(
        db.carreras.update_one({
            '_id': ObjectId(json['id_carrera'])
        }, {
            '$pull': {
                'cursos': {
                    '_id': ObjectId(json['id_curso'])
                }
            }
        }).modified_count)
Exemple #24
0
 def post(self, assignment_id):
     _id = ObjectId()
     current_user = get_jwt_identity()
     task = request.json
     task['_id'] = _id
     task['requester'] = current_user
     task['task_id'] = ObjectId(task['task_id'])
     db.tasks.update_one({'assignment_id': ObjectId(assignment_id)},
                         {'$addToSet': {
                             'requests': task
                         }})
Exemple #25
0
 def put(self, assignment_id):
     tasks = request.json['tasks']
     for task in tasks:
         db.tasks.update_one(
             {
                 'assignment_id': ObjectId(assignment_id),
                 'tasks._id': ObjectId(task['id'])
             },
             {'$set': {
                 'tasks.$.status': task['status']
             }},
         )
Exemple #26
0
    def post(self, group_id):
        data = request.json
        data['_id'] = ObjectId()
        data['assignment_id'] = ObjectId(data['assignment_id'])

        db.groupworks.update_one({'_id': ObjectId(group_id)},
                                 {'$addToSet': {
                                     'complaints': data
                                 }},
                                 upsert=True)

        return {'message': 'Complaints Submiited'}
Exemple #27
0
    def delete(self, assignment_id, task_id):
        try:
            db.tasks.update_one({
                'assignment_id': ObjectId(assignment_id),
            }, {'$pull': {
                'tasks': {
                    '_id': ObjectId(task_id)
                }
            }})
        except:
            abort(400, message="Cannot Delete")

        return Response()
Exemple #28
0
    def post(self, assignment_id, task_id):
        data = request.json
        data['_id'] = ObjectId()
        db.tasks.update_one(
            {
                'assignment_id': ObjectId(assignment_id),
                'tasks._id': ObjectId(task_id)
            }, {'$addToSet': {
                'tasks.$.reviews': data,
            }},
            upsert=True)

        return {'message': 'suggestion submitted'}
Exemple #29
0
 def post(self, course, discussion):
     current_user = get_jwt_identity()
     reply = request.json
     reply['_id'] = ObjectId()
     reply['by'] = current_user
     db.collaborate.update_one(
         {
             'course': course,
             'discussions._id': ObjectId(discussion)
         }, {'$addToSet': {
             'discussions.$.replies': reply
         }},
         upsert=True)
Exemple #30
0
    def post(self, group_id):
        try:
            reference = request.json
            reference['_id'] = ObjectId()
            reference.pop('room', None)
            db.stash.update_one({'group_id': ObjectId(group_id)},
                                {'$addToSet': {
                                    'references': reference
                                }},
                                upsert=True)
        except:
            abort(400, message="something went wrong")

        return {'message': 'references inserted'}, 200