def post(self): per_page = app.config['SEARCH_RESULTS_PER_PAGE'] args = search_parser.parse_args() args = dict([(key, value) for (key, value) in args.items() if key is not None]) if 'page' not in args: abort(400, message="must specify page") if not any(key in args for key in ['student_id', 'team_id', 'project_id']): abort(400, message="must have at least one query field") students = Student.objects( db.Q(team_id=args.get('team_id')) | db.Q(guc_id=args.get('guc_id'))) if 'project_id' in args: if len(students) > 0: subs = (Submission.objects( submitter__in=students, project=Project.objects(id=args['project_id'])).order_by( '-created_at').paginate(args['page'], per_page)) else: subs = (Submission.objects(project=Project.objects( id=args['project_id'])).order_by('-created_at').paginate( args['page'], per_page)) else: subs = Submission.objects( submitter__in=students).order_by('-created_at').paginate( args['page'], per_page) return mongo_paginate_to_dict(subs, 'submissions')
def deleteProject(project_id): project = Project.objects(_id = project_id).first() if project: deleted_project = DeletedProject(previous_id=project_id, project_name=project.project_name, description=project.description, user_id=project.user_id) deleted_project.save() new_project_id = deleted_project._id deleted_calcs = CalcInput.objects(project_id = project_id) for calc in deleted_calcs: deleteCalculation(calc._id, new_project_id=new_project_id) Project.objects(_id = project_id).delete()
def landing(): if not session.get('username'): return redirect(url_for('index')) my_projects = getUserProjects(session.get('user_id')) if selected_project_id := request.form.get('selected_project_id'): session['current_project_id'] = selected_project_id selected_project = Project.objects(_id=selected_project_id).first() session['current_p_name'] = selected_project.project_name session['current_p_description'] = selected_project.description
project = Project( project_name=project_name, description=description, user_id=session.get('user_id')) # user_id=ObjectId(), project.save() flash(f"You have saved {project_name}", "success") return redirect(url_for('landing')) ############------------CHANGE PROJECT NAME FORM-----------############## pnameform = ChangeProjectForm() if pnameform.validate_on_submit(): new_project_name = pnameform.new_project_name.data new_description = pnameform.new_description.data project = Project.objects(_id=session['current_project_id']).first() project.project_name = new_project_name project.description = new_description project.save() flash(f"You have updated {new_project_name}", "success") return redirect(url_for('landing')) ############------------ADD calc FORM-----------############## cform = CalcForm() if cform.validate_on_submit(): calc_name = cform.calc_name.data description = cform.description.data calc_type_name = cform.calc_type.data calc_type = CalcType.objects(type_name=calc_type_name).first()