feat: initial commit - Band Management application

This commit is contained in:
2026-01-06 03:11:46 +01:00
commit 34e12e00b3
24543 changed files with 3991790 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}Forgot Password - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/@form-validation/form-validation.css' %}" />
{% endblock vendor_css %}
{% block vendor_js %}
{{ block.super }}
<script src="{% static 'vendor/libs/@form-validation/popular.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/bootstrap5.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/auto-focus.js' %}"></script>
{% endblock vendor_js %}
{% block page_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/css/pages/page-auth.css' %}" />
{% endblock page_css %}
{% block page_js %}
{{ block.super }}
<script src="{% static 'js/authentication.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="authentication-wrapper authentication-cover">
<!-- Logo -->
<a href="{% url 'index' %}" class="app-brand auth-cover-brand">
<span class="app-brand-logo demo">{% include 'partials/logo.html' %}</span>
<span class="app-brand-text demo text-heading fw-bold">{% get_theme_variables 'template_name' %}</span>
</a>
<!-- /Logo -->
<div class="authentication-inner row m-0">
<!-- /Left Text -->
<div class="d-none d-xl-flex col-xl-8 p-0">
<div class="auth-cover-bg d-flex justify-content-center align-items-center">
<img src="{% static 'img/illustrations/auth-forgot-password-illustration-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-forgot-password-cover" class="my-5 auth-illustration d-lg-block d-none" data-app-light-img="illustrations/auth-forgot-password-illustration-light.png" data-app-dark-img="illustrations/auth-forgot-password-illustration-dark.png" />
<img src="{% static 'img/illustrations/bg-shape-image-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-forgot-password-cover" class="platform-bg" data-app-light-img="illustrations/bg-shape-image-light.png" data-app-dark-img="illustrations/bg-shape-image-dark.png" />
</div>
</div>
<!-- /Left Text -->
<!-- Forgot Password -->
<div class="d-flex col-12 col-xl-4 align-items-center authentication-bg p-sm-12 p-6">
<div class="w-px-400 mx-auto mt-12 mt-5">
<h4 class="mb-1">Forgot Password? 🔒</h4>
<p class="mb-6">Enter your email and we'll send you instructions to reset your password</p>
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags == 'success' %}alert-success{% elif message.tags == 'error' %}alert-danger{% else %}alert-warning{% endif %}" role="alert">
{{ message }}
</div>
{% endfor %}
{% endif %}
<form id="formAuthentication" class="mb-6" action="{% url 'forgot-password' %}" method="post">
{% csrf_token %}
<div class="mb-6 form-control-validation">
<label for="email" class="form-label">Email</label>
<input type="text" class="form-control" id="email" name="email" placeholder="Enter your email" autofocus />
</div>
<button id="btnSubmit" class="btn btn-primary w-100" type="submit">
<span id="btnText" class="me-1">Send Reset Link</span>
<span id="btnLoader" class="spinner-border spinner-border visually-hidden" role="status" aria-hidden="true"></span>
</button>
</form>
<div class="text-center">
<a href="{% url 'login' %}" class="d-flex justify-content-center">
<i class="icon-base ti tabler-chevron-left scaleX-n1-rtl me-1_5"></i>
Back to login
</a>
</div>
</div>
</div>
<!-- /Forgot Password -->
</div>
</div>
{% endblock content %}

View File

@@ -0,0 +1,114 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}Login - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/@form-validation/form-validation.css' %}" />
{% endblock vendor_css %}
{% block vendor_js %}
{{ block.super }}
<script src="{% static 'vendor/libs/@form-validation/popular.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/bootstrap5.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/auto-focus.js' %}"></script>
{% endblock vendor_js %}
{% block page_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/css/pages/page-auth.css' %}" />
{% endblock page_css %}
{% block page_js %}
{{ block.super }}
<script src="{% static 'js/authentication.js' %}"></script>
<script src="{% static 'js/ui-popover.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="authentication-wrapper authentication-cover">
<!-- Logo -->
<a href="{% url 'index' %}" class="app-brand auth-cover-brand">
<span class="app-brand-logo demo">{% include 'partials/logo.html' %}</span>
<span class="app-brand-text demo text-heading fw-bold">{% get_theme_variables 'template_name' %}</span>
</a>
<!-- /Logo -->
<div class="authentication-inner row m-0">
<!-- /Left Text -->
<div class="d-none d-xl-flex col-xl-8 p-0">
<div class="auth-cover-bg d-flex justify-content-center align-items-center">
<img src="{% static 'img/illustrations/auth-login-illustration-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-login-cover" class="my-5 auth-illustration" data-app-light-img="illustrations/auth-login-illustration-light.png" data-app-dark-img="illustrations/auth-login-illustration-dark.png" />
<img src="{% static 'img/illustrations/bg-shape-image-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-login-cover" class="platform-bg" data-app-light-img="illustrations/bg-shape-image-light.png" data-app-dark-img="illustrations/bg-shape-image-dark.png" />
</div>
</div>
<!-- /Left Text -->
<!-- Login -->
<div class="d-flex col-12 col-xl-4 align-items-center authentication-bg p-sm-12 p-6">
<div class="w-px-400 mx-auto mt-12 pt-5">
<h4 class="mb-1">Welcome to {% get_theme_variables 'template_name' %}! 👋</h4>
<p class="mb-6">Please sign-in to your account and start the adventure</p>
<div class="alert alert-primary small">
<p class="text-caption mb-1"> Admin Email: <strong>admin@demo.com</strong> / Username: <strong>admin</strong>
<span class="cursor-pointer" id="admin-user"><i class="icon-base ti tabler-help icon-xs text-body mb-1" data-bs-toggle="popover" data-bs-placement="top" data-bs-trigger="hover focus" title="Admin User" data-bs-content="Can access User, Roles, and Permissions pages. Possesses permissions to View, Update, Delete, and Create transactions on the Transaction Page."></i></span>
</p>
<p class="text-caption mb-1"> Client Email: <strong>client@demo.com</strong> / Username: <strong>client</strong>
<span class="cursor-pointer" id="client-user"><i class="icon-base ti tabler-help icon-xs text-body mb-1" data-bs-toggle="popover" data-bs-placement="top" data-bs-trigger="hover focus" title="Client User" data-bs-content="Unable to access User, Roles, and Permissions pages. Limited to viewing the Transaction page exclusively."></i></span>
</p>
<p class="text-caption mb-0">Password: <strong>Pwd_1234</strong></p>
</div>
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags == 'success' %}alert-success{% elif message.tags == 'error' %}alert-danger{% else %}alert-warning{% endif %}" role="alert">
{{ message }}
</div>
{% endfor %}
{% endif %}
<form id="formAuthentication" class="mb-6" action="{% url 'login' %}" method="post">
{% csrf_token %}
<div class="mb-6 form-control-validation">
<label for="email" class="form-label">Email or Username</label>
<input type="email" class="form-control" id="email" name="email-username" value="admin@demo.com" placeholder="Email/Username" autofocus />
</div>
<div class="mb-6 form-password-toggle form-control-validation">
<label class="form-label" for="password">Password</label>
<div class="input-group input-group-merge">
<input type="password" id="password" class="form-control" name="password" value="Pwd_1234" placeholder="&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;" aria-describedby="password" />
<span class="input-group-text cursor-pointer"><i class="icon-base ti tabler-eye-off"></i></span>
</div>
</div>
<div class="my-8">
<div class="d-flex justify-content-between">
<div class="form-check mb-0 ms-2">
<input class="form-check-input" type="checkbox" id="remember-me">
<label class="form-check-label" for="remember-me">
Remember Me
</label>
</div>
<a href="{% url 'forgot-password' %}">
<p class="mb-0">Forgot Password?</p>
</a>
</div>
</div>
{% if request.GET.next %}
<input type="hidden" name="next" value="{{request.GET.next}}">
{% endif %}
<button class="btn btn-primary d-grid w-100" type="submit">Sign in</button>
</form>
<p class="text-center">
<span>New on our platform?</span>
<a href="{% url 'register' %}">
<span>Create an account</span>
</a>
</p>
</div>
</div>
<!-- /Login -->
</div>
</div>
{% endblock content %}

View File

@@ -0,0 +1,105 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}Register - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/@form-validation/form-validation.css' %}" />
{% endblock vendor_css %}
{% block vendor_js %}
{{ block.super }}
<script src="{% static 'vendor/libs/@form-validation/popular.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/bootstrap5.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/auto-focus.js' %}"></script>
{% endblock vendor_js %}
{% block page_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/css/pages/page-auth.css' %}" />
{% endblock page_css %}
{% block page_js %}
{{ block.super }}
<script src="{% static 'js/authentication.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="authentication-wrapper authentication-cover">
<!-- Logo -->
<a href="{% url 'index' %}" class="app-brand auth-cover-brand">
<span class="app-brand-logo demo">{% include 'partials/logo.html' %}</span>
<span class="app-brand-text demo text-heading fw-bold">{% get_theme_variables 'template_name' %}</span>
</a>
<!-- /Logo -->
<div class="authentication-inner row m-0">
<!-- /Left Text -->
<div class="d-none d-xl-flex col-xl-8 p-0">
<div class="auth-cover-bg d-flex justify-content-center align-items-center">
<img src="{% static 'img/illustrations/auth-register-illustration-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-register-cover" class="my-5 auth-illustration" data-app-light-img="illustrations/auth-register-illustration-light.png" data-app-dark-img="illustrations/auth-register-illustration-dark.png" />
<img src="{% static 'img/illustrations/bg-shape-image-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-register-cover" class="platform-bg" data-app-light-img="illustrations/bg-shape-image-light.png" data-app-dark-img="illustrations/bg-shape-image-dark.png" />
</div>
</div>
<!-- /Left Text -->
<!-- Register -->
<div class="d-flex col-12 col-xl-4 align-items-center authentication-bg p-sm-12 p-6">
<div class="w-px-400 mx-auto mt-12 pt-5">
<h4 class="mb-1">Adventure starts here 🚀</h4>
<p class="mb-6">Make your app management easy and fun!</p>
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags == 'success' %}alert-success{% elif message.tags == 'error' %}alert-danger{% else %}alert-warning{% endif %}" role="alert">
{{ message }}
</div>
{% endfor %}
{% endif %}
<form id="formAuthentication" class="mb-6" action="{% url 'register' %}" method="post">
{% csrf_token %}
<div class="mb-6 form-control-validation">
<label for="username" class="form-label">Username</label>
<input type="text" class="form-control" id="username" name="username" placeholder="Enter your username" autofocus />
</div>
<div class="mb-6 form-control-validation">
<label for="email" class="form-label">Email</label>
<input type="text" class="form-control" id="email" name="email" placeholder="Enter your email" />
</div>
<div class="mb-6 form-password-toggle form-control-validation">
<label class="form-label" for="password">Password</label>
<div class="input-group input-group-merge">
<input type="password" id="password" class="form-control" name="password" placeholder="&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;" aria-describedby="password" />
<span class="input-group-text cursor-pointer"><i class="icon-base ti tabler-eye-off"></i></span>
</div>
</div>
<div class="mb-6 mt-8">
<div class="form-check mb-8 ms-2 form-control-validation">
<input class="form-check-input" type="checkbox" id="terms-conditions" name="terms" />
<label class="form-check-label" for="terms-conditions">
I agree to
<a href="javascript:void(0);">privacy policy & terms</a>
</label>
</div>
</div>
<button id="btnSubmit" class="btn btn-primary w-100" type="submit">
<span id="btnText" class="me-1">Sign up</span>
<span id="btnLoader" class="spinner-border spinner-border-sm visually-hidden" role="status" aria-hidden="true"></span>
</button>
</form>
<p class="text-center">
<span>Already have an account?</span>
<a href="{% url 'login' %}">
<span>Sign in instead</span>
</a>
</p>
</div>
</div>
<!-- /Register -->
</div>
</div>
{% endblock content %}

View File

@@ -0,0 +1,89 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}Reset Password - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/@form-validation/form-validation.css' %}" />
{% endblock vendor_css %}
{% block vendor_js %}
{{ block.super }}
<script src="{% static 'vendor/libs/@form-validation/popular.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/bootstrap5.js' %}"></script>
<script src="{% static 'vendor/libs/@form-validation/auto-focus.js' %}"></script>
{% endblock vendor_js %}
{% block page_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/css/pages/page-auth.css' %}" />
{% endblock page_css %}
{% block page_js %}
{{ block.super }}
<script src="{% static 'js/authentication.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="authentication-wrapper authentication-cover">
<!-- Logo -->
<a href="{% url 'index' %}" class="app-brand auth-cover-brand">
<span class="app-brand-logo demo">{% include 'partials/logo.html' %}</span>
<span class="app-brand-text demo text-heading fw-bold">{% get_theme_variables 'template_name' %}</span>
</a>
<!-- /Logo -->
<div class="authentication-inner row m-0">
<!-- /Left Text -->
<div class="d-none d-xl-flex col-xl-8 p-0">
<div class="auth-cover-bg d-flex justify-content-center align-items-center">
<img src="{% static 'img/illustrations/auth-reset-password-illustration-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-reset-password-cover" class="my-5 auth-illustration" data-app-light-img="illustrations/auth-reset-password-illustration-light.png" data-app-dark-img="illustrations/auth-reset-password-illustration-dark.png" />
<img src="{% static 'img/illustrations/bg-shape-image-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-reset-password-cover" class="platform-bg" data-app-light-img="illustrations/bg-shape-image-light.png" data-app-dark-img="illustrations/bg-shape-image-dark.png" />
</div>
</div>
<!-- /Left Text -->
<!-- Reset Password -->
<div class="d-flex col-12 col-xl-4 align-items-center authentication-bg p-6 p-sm-12">
<div class="w-px-400 mx-auto mt-12 pt-5">
<h4 class="mb-1">Reset Password 🔒</h4>
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags == 'success' %}alert-success{% elif message.tags == 'error' %}alert-danger{% else %}alert-warning{% endif %}" role="alert">
{{ message }}
</div>
{% endfor %}
{% endif %}
<p class="mb-6"><span class="fw-medium">Your new password must be different from previously used passwords</span></p>
<form id="formAuthentication" class="mb-6" method="post">
{% csrf_token %}
<div class="mb-6 form-password-toggle form-control-validation">
<label class="form-label" for="password">New Password</label>
<div class="input-group input-group-merge">
<input type="password" id="password" class="form-control" name="password" placeholder="&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;" aria-describedby="password" />
<span class="input-group-text cursor-pointer"><i class="icon-base ti tabler-eye-off"></i></span>
</div>
</div>
<div class="mb-6 form-password-toggle form-control-validation">
<label class="form-label" for="confirm-password">Confirm Password</label>
<div class="input-group input-group-merge">
<input type="password" id="confirm-password" class="form-control" name="confirm-password" placeholder="&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;" aria-describedby="password" />
<span class="input-group-text cursor-pointer"><i class="icon-base ti tabler-eye-off"></i></span>
</div>
</div>
<button class="btn btn-primary d-grid w-100 mb-6" type="submit">Set new password</button>
<div class="text-center">
<a href="{% url 'login' %}">
<i class="icon-base ti tabler-chevron-left scaleX-n1-rtl me-1_5"></i>
Back to login
</a>
</div>
</form>
</div>
</div>
<!-- /Reset Password -->
</div>
</div>
{% endblock content %}

View File

@@ -0,0 +1,81 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}Verify Email - Pages{% endblock %}
{% block page_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/css/pages/page-auth.css' %}" />
{% endblock page_css %}
{% block page_js %}
{{ block.super }}
<script src="{% static 'js/auth-click-loader.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="authentication-wrapper authentication-cover">
<!-- Logo -->
<a href="{% url 'index' %}" class="app-brand auth-cover-brand">
<span class="app-brand-logo demo">{% include 'partials/logo.html' %}</span>
<span class="app-brand-text demo text-heading fw-bold">{% get_theme_variables 'template_name' %}</span>
</a>
<!-- /Logo -->
<div class="authentication-inner row m-0">
<!-- /Left Text -->
<div class="d-none d-xl-flex col-xl-8 p-0">
<div class="auth-cover-bg d-flex justify-content-center align-items-center">
<img src="{% static 'img/illustrations/auth-verify-email-illustration-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-verify-email-cover" class="my-5 auth-illustration" data-app-light-img="illustrations/auth-verify-email-illustration-light.png" data-app-dark-img="illustrations/auth-verify-email-illustration-dark.png" />
<img src="{% static 'img/illustrations/bg-shape-image-' %}{{ COOKIES.theme|default:theme }}.png" alt="auth-verify-email-cover" class="platform-bg" data-app-light-img="illustrations/bg-shape-image-light.png" data-app-dark-img="illustrations/bg-shape-image-dark.png" />
</div>
</div>
<!-- /Left Text -->
<!-- Verify email -->
<div class="d-flex col-12 col-xl-4 align-items-center authentication-bg p-6 p-sm-12">
<div class="w-px-400 mx-auto mt-12 mt-5">
<h4 class="mb-1">Verify your email ✉️</h4>
{% if request.user.is_authenticated %}
<p class="text-start mb-4">
Verification link will be send to this email: {{request.user.email}}.
</p>
{% else %}
<p class="text-start">
Verification link send to your email address.
</p>
{% endif %}
{% if messages %}
{% for message in messages %}
<div class="alert {% if message.tags == 'success' %}alert-success{% elif message.tags == 'error' %}alert-danger{% else %}alert-warning{% endif %}" role="alert">
{{ message }}
</div>
{% endfor %}
{% endif %}
{% if request.user.is_authenticated %}
<a id="btnSubmit" class="btn btn-primary w-100 my-2" href="{% url 'send-verification' %}">
<span id="btnText" class="me-1">Verify Email</span>
<span id="btnLoader" class="spinner-border spinner-border-sm visually-hidden" role="status" aria-hidden="true"></span>
</a>
<a class="btn btn-primary w-100 my-2" href="{% url 'index' %}">
Back
</a>
{% else %}
<a class="btn btn-primary w-100 my-3" href="{% url 'login' %}">
Skip for now & Login
</a>
<p class="text-center">Didn't get the mail?
<a id="btnSubmit" class="text-center" href="{% url 'send-verification' %}">
<span id="btnText" class="me-1">Resend</span>
<span id="btnLoader" class="spinner-border spinner-border-sm visually-hidden" role="status" aria-hidden="true"></span>
</a>
</p>
{% endif %}
</div>
</div>
<!-- / Verify email -->
</div>
</div>
{% endblock content %}