{% extends "base.html" %} {% block title %}My Profile{% endblock %} {% block content %}

My Profile

Manage your account information and review your activity.

{{ current_user.display_name }}

{% if current_user.full_name %}

@{{ current_user.username }}

{% endif %}

{{ current_user.email }}

{{ current_user.role | title }}
Member since {{ current_user.created_at.strftime('%B %d, %Y') }}
Activity Summary
{{ total_inspections }}
Total Inspections
{{ completed_inspections }}
Completed
{{ open_issues }}
Open Issues
{% if total_inspections > 0 %}
{{ ((completed_inspections / total_inspections) * 100) | int }}%
{% else %}
{% endif %} Completion Rate
Edit Profile
{{ form.hidden_tag() }}
{{ form.full_name.label(class="form-label fw-semibold") }} {{ form.full_name(class="form-control", placeholder="e.g. Jane Smith") }} {% for error in form.full_name.errors %}
{{ error }}
{% endfor %}
{{ form.email.label(class="form-label fw-semibold") }} {{ form.email(class="form-control" + (" is-invalid" if form.email.errors else ""), placeholder="your@email.com") }} {% for error in form.email.errors %}
{{ error }}
{% endfor %}

Leave the password fields blank to keep your current password.

{{ form.current_password.label(class="form-label fw-semibold") }} {{ form.current_password(class="form-control" + (" is-invalid" if form.current_password.errors else ""), autocomplete="current-password") }} {% for error in form.current_password.errors %}
{{ error }}
{% endfor %}
{{ form.new_password.label(class="form-label fw-semibold") }} {{ form.new_password(class="form-control" + (" is-invalid" if form.new_password.errors else ""), autocomplete="new-password") }} {% for error in form.new_password.errors %}
{{ error }}
{% endfor %}
Minimum 6 characters.
{{ form.confirm_password.label(class="form-label fw-semibold") }} {{ form.confirm_password(class="form-control" + (" is-invalid" if form.confirm_password.errors else ""), autocomplete="new-password") }} {% for error in form.confirm_password.errors %}
{{ error }}
{% endfor %}
{% if current_user.role in ['admin', 'director'] %}
Two-Factor Authentication
{% if current_user.mfa_enabled %} Enabled {% else %} Disabled {% endif %}
{% if current_user.mfa_enabled %}

Your account is protected with an authenticator app. You'll be asked for a 6-digit code each time you sign in.

{% else %}

Add a second layer of security. After entering your password you'll confirm a one-time code from an authenticator app.

Enable Two-Factor {% endif %}
{% endif %}
Recent Inspections
View All
{% if recent_inspections %}
{% for insp in recent_inspections %} {% endfor %}
Date Facility Template Score Status
{{ insp.inspection_date.strftime('%Y-%m-%d') }} {{ insp.facility.name if insp.facility else '—' }} {{ insp.template.name if insp.template else '—' }} {% if insp.overall_score is not none %} {{ "%.1f"|format(insp.overall_score) }}% {% else %} {% endif %} {{ insp.status | replace('_', ' ') | title }}
{% else %}
No inspections recorded yet.
{% endif %}
{% endblock %}