From 11cdf582564ac72685a098db936ed00343e64c75 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Tue, 24 Mar 2020 15:13:53 +0000 Subject: [PATCH] Use the same form for problems and questions --- app/__init__.py | 2 ++ app/main/forms.py | 6 +----- app/main/views/feedback.py | 15 ++++----------- app/url_converters.py | 5 +++++ 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 79c315225..759b82b11 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -92,6 +92,7 @@ from app.url_converters import ( LetterFileExtensionConverter, SimpleDateTypeConverter, TemplateTypeConverter, + TicketTypeConverter, ) from app.utils import format_thousands, get_logo_cdn_domain, id_safe @@ -227,6 +228,7 @@ def init_app(application): application.url_map.converters['uuid'].to_python = lambda self, value: value application.url_map.converters['template_type'] = TemplateTypeConverter + application.url_map.converters['ticket_type'] = TicketTypeConverter application.url_map.converters['letter_file_extension'] = LetterFileExtensionConverter application.url_map.converters['simple_date'] = SimpleDateTypeConverter diff --git a/app/main/forms.py b/app/main/forms.py index c0e9e1b24..cb2eabcb7 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -903,16 +903,12 @@ class SupportRedirect(StripWhitespaceForm): ) -class Feedback(StripWhitespaceForm): +class FeedbackOrProblem(StripWhitespaceForm): name = StringField('Name (optional)') email_address = email_address(label='Email address', gov_user=False, required=True) feedback = TextAreaField('Your message', validators=[DataRequired(message="Cannot be empty")]) -class Problem(Feedback): - email_address = email_address(label='Email address', gov_user=False) - - class Triage(StripWhitespaceForm): severe = RadioField( 'Is it an emergency?', diff --git a/app/main/views/feedback.py b/app/main/views/feedback.py index 0f386d2b6..e2b4316fb 100644 --- a/app/main/views/feedback.py +++ b/app/main/views/feedback.py @@ -1,15 +1,14 @@ from datetime import datetime import pytz -from flask import abort, redirect, render_template, request, session, url_for +from flask import redirect, render_template, request, session, url_for from flask_login import current_user from app import convert_to_boolean, current_service, service_api_client from app.extensions import zendesk_client from app.main import main from app.main.forms import ( - Feedback, - Problem, + FeedbackOrProblem, SupportRedirect, SupportType, Triage, @@ -79,15 +78,9 @@ def triage(): ) -@main.route('/support/', methods=['GET', 'POST']) +@main.route('/support/', methods=['GET', 'POST']) def feedback(ticket_type): - try: - form = { - QUESTION_TICKET_TYPE: Feedback, - PROBLEM_TICKET_TYPE: Problem, - }[ticket_type]() - except KeyError: - abort(404) + form = FeedbackOrProblem() if not form.feedback.data: form.feedback.data = session.pop('feedback_message', '') diff --git a/app/url_converters.py b/app/url_converters.py index 9dc649b5a..bee034727 100644 --- a/app/url_converters.py +++ b/app/url_converters.py @@ -6,6 +6,11 @@ class TemplateTypeConverter(BaseConverter): regex = '(?:email|sms|letter)' +class TicketTypeConverter(BaseConverter): + + regex = '(?:ask-question-give-feedback|report-problem)' + + class LetterFileExtensionConverter(BaseConverter): regex = '(?:pdf|png)'