def get_work_order_question(work_order_id, question_slug): try: work_order = data_api_client.get_work_order(work_order_id)['workOrder'] except APIError as e: abort(e.status_code) brief = data_api_client.get_brief(work_order['briefId'])["briefs"] if not is_brief_associated_with_user( brief, current_user.id ): abort(404) if questions.get(question_slug, None) is None: abort(404) form = FormFactory(question_slug) value = work_order.get(question_slug, None) if value is not None: if questions[question_slug].get('type') == 'address': form.abn.data = value['abn'] form.contact.data = value['contact'] form.name.data = value['name'] else: form[question_slug].data = value return render_template_with_csrf( 'workorder/work-order-question.html', work_order_id=work_order_id, question_slug=question_slug, form=form )
def get_work_order(work_order_id): try: work_order = data_api_client.get_work_order(work_order_id)['workOrder'] except APIError as e: abort(e.status_code) brief = data_api_client.get_brief(work_order['briefId'])["briefs"] if not is_brief_associated_with_user( brief, current_user.id ): abort(404) return render_template_with_csrf('workorder/work-order-instruction-list.html', work_order=work_order, questions=questions)
def update_work_order_question(work_order_id, question_slug): try: work_order = data_api_client.get_work_order(work_order_id)['workOrder'] except APIError as e: abort(e.status_code) brief = data_api_client.get_brief(work_order['briefId'])["briefs"] if not is_brief_associated_with_user(brief, current_user.id): abort(404) if questions.get(question_slug, None) is None: abort(404) form = FormFactory(question_slug, formdata=request.form) if not form.validate(): return render_template_with_csrf( 'workorder/work-order-question.html', status_code=400, work_order_id=work_order_id, question_slug=question_slug, form=form ) if questions[question_slug].get("type") == 'address': data = {question_slug: { 'abn': request.form['abn'], 'name': request.form['name'], 'contact': request.form['contact']} } else: data = {question_slug: request.form[question_slug]} data_api_client.update_work_order(work_order_id, data) return redirect( url_for( 'buyers.get_work_order', work_order_id=work_order_id, ) )
def test_is_brief_associated_with_user(self): brief = api_stubs.brief(user_id=123)['briefs'] assert buyers_helpers.is_brief_associated_with_user(brief, 123) is True assert buyers_helpers.is_brief_associated_with_user(brief, 234) is False