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 }})
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))
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)
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")
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
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 }})
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()}}))
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'] } } })
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')
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)
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))
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) } }
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)
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)
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)
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)})
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)
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)
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)
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 }})
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'] }}, )
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'}
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()
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'}
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)
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