repos
/ status-django master

status-django

mirror archived upstream

Self-hostable uptime monitor and status page on Django: HTTP checks, Lighthouse audits, SEO crawls, and email and Discord alerts.

djangodockerhandcodedpythonself-hostedsqlitestatus-pageuptime-monitoringvite

2.5 KB · 53 lines · HTML Raw History
 1{% extends "base.html" %}
 2
 3
 4{% block breadcrumbs %}
 5<nav aria-label="breadcrumb">
 6  <ol class="breadcrumb mb-0">
 7    <li class="breadcrumb-item"><a href="/">Home</a></li>
 8    <li class="breadcrumb-item"><a href="{% url 'profile' %}">Profile</a></li>
 9    <li class="breadcrumb-item active" aria-current="page">{{ title }}</li>
10  </ol>
11</nav>
12{% endblock %}
13
14
15{% block main %}
16<div class="container my-5">
17  <div class="row">
18    <div class="col-lg-6 offset-lg-3 col-md-8 offset-md-2">
19      <div class="section-label mb-2">rotate credentials</div>
20      <h1 class="fw-bolder text-white" style="letter-spacing: -0.01em;">{{ title }}</h1>
21      <p class="text-muted small mb-4">Confirm your existing password, then set a new one.</p>
22
23      {% if form.errors %}
24      <div class="alert alert-warning py-2 small">{% if form.errors.items|length == 1 %}Please correct the error below.{% else %}Please correct the errors below.{% endif %}</div>
25      {% endif %}
26
27      <form method="POST">
28        {% csrf_token %}
29        <div class="form-floating mb-3">
30          <input type="password" class="form-control {% if form.old_password.errors %}is-invalid{% endif %}" name="old_password" id="id_old_password" placeholder="Old password" autocomplete="current-password" required autofocus />
31          <label for="id_old_password">Old password</label>
32          {{ form.old_password.errors }}
33        </div>
34        <div class="form-floating mb-3">
35          <input type="password" class="form-control {% if form.new_password1.errors %}is-invalid{% endif %}" name="new_password1" id="id_new_password1" placeholder="New password" autocomplete="new-password" required />
36          <label for="id_new_password1">New password</label>
37          {% if form.new_password1.help_text %}
38          <div class="border border-subtle py-2 px-3 rounded mt-2 small text-muted">{{ form.new_password1.help_text|safe }}</div>
39          {% endif %}
40          {{ form.new_password1.errors }}
41        </div>
42        <div class="form-floating mb-3">
43          <input type="password" class="form-control {% if form.new_password2.errors %}is-invalid{% endif %}" name="new_password2" id="id_new_password2" placeholder="Confirm new password" autocomplete="new-password" required />
44          <label for="id_new_password2">New password confirmation</label>
45          {{ form.new_password2.errors }}
46        </div>
47        <button type="submit" class="btn btn-primary">Change password →</button>
48      </form>
49    </div>
50  </div>
51</div>
52{% endblock %}