示例#1
0
def create_jobs():
    if not request.json:
        return jsonify({'error': 'Empty request'})
    elif not all(key in request.json for key in [
            'job', 'team_leader', 'work_size', 'collaborators',
            'categories_levels'
    ]):
        return jsonify({'error': 'Bad request'})
    session = db_session.create_session()
    ids = list(map(operator.itemgetter(0), session.query(Jobs.id).all()))
    if request.json.get('id') in ids:
        return jsonify({'error': 'Id already exists'})
    try:
        collaborators = get_collaborators(request.json)
    except Exception as e:
        return jsonify({'error': str(e)})
    jobs = Jobs(job=request.json['job'],
                team_leader=request.json['team_leader'],
                work_size=request.json['work_size'],
                collaborators=', '.join(map(str, collaborators)),
                start_date=request.json.get('start_date'),
                end_date=request.json.get('end_date'),
                is_finished=request.json.get('is_finished'),
                id=request.json.get('id'))
    try:
        categories = get_categories(request.json)
    except Exception as e:
        return jsonify({'error': str(e)})
    jobs.categories.extend(categories)
    jobs.author = request.json['team_leader']
    session.add(session.merge(jobs))
    session.commit()
    return jsonify({'success': 'OK'})
示例#2
0
def add_job():
    form = JobsForm()
    if form.validate_on_submit():
        session = create_session()
        job = Jobs()
        job.author = current_user.id
        job.team_leader = form.team_leader.data
        job.job = form.job.data
        job.is_finished = form.is_finished.data
        job.work_size = form.work_size.data
        job.collaborators = form.collaborators.data
        session.add(job)
        session.commit()
        return redirect('/')
    return render_template('jobs.html', title='Добавление работы',
                           form=form)