def edit_contact_details(respondent_id):
    edit_contact_details_form = EditContactDetailsForm(form=request.form)
    if not edit_contact_details_form.validate():
        contact_details = party_controller.get_respondent_by_party_id(
            respondent_id)

        return render_template('edit-contact-details.html',
                               form=edit_contact_details_form,
                               tab='respondents',
                               respondent_id=respondent_id,
                               errors=edit_contact_details_form.errors,
                               respondent_details=contact_details)

    logger.info('Updating respondent details', respondent_id=respondent_id)
    form = request.form
    contact_details_changed = party_controller.update_contact_details(
        respondent_id, form)

    if 'emailAddress' in contact_details_changed:
        flash(
            f'Contact details changed and verification email sent to {form.get("email")}'
        )
    elif len(contact_details_changed) > 0:
        flash('Contact details changed')
    else:
        flash('No updates were necessary')

    return redirect(
        url_for('respondent_bp.respondent_details',
                respondent_id=respondent_id,
                message_key='details_changed'))
Ejemplo n.º 2
0
def edit_contact_details(ru_ref, respondent_id):
    edit_contact_details_form = EditContactDetailsForm(form=request.form)
    if not edit_contact_details_form.validate():
        contact_details = party_controller.get_respondent_by_party_id(respondent_id)

        return render_template(
            "edit-contact-details.html",
            form=edit_contact_details_form,
            tab="reporting_units",
            ru_ref=ru_ref,
            respondent_id=respondent_id,
            errors=edit_contact_details_form.errors,
            respondent_details=contact_details,
        )

    logger.info("Updating respondent details", ru_ref=ru_ref, respondent_id=respondent_id)
    form = request.form
    contact_details_changed = party_controller.update_contact_details(respondent_id, form, ru_ref)

    if "emailAddress" in contact_details_changed:
        flash(f'Contact details changed and verification email sent to {form.get("email")}')
    elif len(contact_details_changed) > 0:
        flash("Contact details changed")
    else:
        flash("No updates were necessary")

    return redirect(url_for("reporting_unit_bp.view_reporting_unit", ru_ref=ru_ref))
Ejemplo n.º 3
0
def update_contact_details(respondent_id, form, ru_ref='NOT DEFINED'):
    logger.info('Updating respondent details', respondent_id=respondent_id, ru_ref=ru_ref)

    new_contact_details = {
        "firstName": form.get('first_name'),
        "lastName": form.get('last_name'),
        "email_address": form.get('hidden_email'),
        "new_email_address": form.get('email').strip(),
        "telephone": form.get('telephone')
    }

    old_contact_details = get_respondent_by_party_id(respondent_id)
    contact_details_changed = _compare_contact_details(new_contact_details, old_contact_details)

    if len(contact_details_changed) > 0:
        url = f'{app.config["PARTY_URL"]}/party-api/v1/respondents/id/{respondent_id}'
        response = requests.put(url, json=new_contact_details, auth=app.config['BASIC_AUTH'])

        if response.status_code != 200:
            raise UpdateContactDetailsException(ru_ref, EditContactDetailsForm(form),
                                                old_contact_details, response.status_code)

        logger.info('Respondent details updated', respondent_id=respondent_id,
                    status_code=response.status_code, ru_ref=ru_ref)

    return contact_details_changed
def view_contact_details(respondent_id):
    respondent_details = party_controller.get_respondent_by_party_id(
        respondent_id)

    form = EditContactDetailsForm(form=request.form,
                                  default_values=respondent_details)

    return render_template('edit-contact-details.html',
                           respondent_details=respondent_details,
                           form=form,
                           tab='respondents',
                           respondent_id=respondent_id)
Ejemplo n.º 5
0
def view_contact_details(ru_ref, respondent_id):
    respondent_details = party_controller.get_respondent_by_party_id(respondent_id)

    form = EditContactDetailsForm(form=request.form, default_values=respondent_details)

    return render_template(
        "edit-contact-details.html",
        ru_ref=ru_ref,
        respondent_details=respondent_details,
        form=form,
        tab="reporting_units",
    )