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'})
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)