HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall_forms/buyercall/buyercall/blueprints/issue/views.py
from flask import (
    Blueprint,
    flash,
    redirect,
    url_for,
    render_template)
from flask_login import current_user, login_required
from flask_babel import gettext as _

from buyercall.blueprints.issue.models import Issue
from buyercall.blueprints.issue.forms import SupportForm
from buyercall.blueprints.user.decorators import role_required

issue = Blueprint('issue', __name__, template_folder='templates')


@issue.route('/support', methods=['GET', 'POST'])
@login_required
@role_required('admin', 'agent')
def support():
    # Pre-populate the email field if the user is signed in.
    form = SupportForm(obj=current_user)

    if form.validate_on_submit():
        i = Issue()
        i.partnership_id = current_user.partnership_id
        i.partnership_account_id = current_user.partnership_account_id

        form.populate_obj(i)
        i.save()

        # This prevents circular imports.
        from buyercall.blueprints.issue.tasks import deliver_support_email

        deliver_support_email.delay(i.id)

        flash(_('Help is on the way, expect a response shortly.'), 'success')
        return redirect(url_for('issue.support'))

    return render_template('issue/support.jinja2', form=form)