예제 #1
0
 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')
예제 #2
0
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()
예제 #3
0
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
예제 #4
0
        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()