File indexing completed on 2026-08-12 09:36:21
0001 {% extends "base.html" %}
0002
0003 {% block title %}Login — ePIC Production Monitor{% endblock %}
0004
0005 {% block content %}
0006 <div class="container" style="max-width: 400px; margin-top: 80px;">
0007 <h2>Login</h2>
0008 {% if form.errors %}
0009 <div class="alert alert-danger">Invalid username or password.</div>
0010 {% endif %}
0011
0012 <form method="post" action="{% url 'github_login' %}">
0013 {% csrf_token %}
0014 <input type="hidden" name="process" value="login">
0015 <input type="hidden" name="next" value="{{ next }}">
0016 <button type="submit" class="btn w-100 d-flex align-items-center justify-content-center gap-2"
0017 style="background:#24292f; color:#fff; border:1px solid #57606a; padding:.6rem;">
0018 <svg height="20" width="20" viewBox="0 0 16 16" fill="#fff" aria-hidden="true">
0019 <path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38
0020 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01
0021 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95
0022 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27
0023 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82
0024 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0
0025 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path>
0026 </svg>
0027 Sign in with GitHub
0028 </button>
0029 </form>
0030
0031 <div class="d-flex align-items-center my-3" style="color:#adb5bd;">
0032 <hr class="flex-grow-1" style="border-color:#495057;">
0033 <span class="px-2">or</span>
0034 <hr class="flex-grow-1" style="border-color:#495057;">
0035 </div>
0036
0037 <form method="post">
0038 {% csrf_token %}
0039 <div class="mb-3">
0040 <label for="id_username" class="form-label">Username</label>
0041 <input type="text" name="username" id="id_username" class="form-control" autofocus required>
0042 </div>
0043 <div class="mb-3">
0044 <label for="id_password" class="form-label">Password</label>
0045 <input type="password" name="password" id="id_password" class="form-control" required>
0046 </div>
0047 <button type="submit" class="btn btn-primary w-100">Log in</button>
0048 <input type="hidden" name="next" value="{{ next }}">
0049 </form>
0050 </div>
0051 {% endblock %}