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,15 @@
<footer class="content-footer footer bg-footer-theme">
<div class="{{container_class}}">
<div class="footer-container d-flex align-items-center justify-content-between py-4 flex-md-row flex-column">
<div class="text-body">
© <script>
document.write(new Date().getFullYear())
</script>, made with ❤️ by <a href="{% get_theme_variables 'creator_url' %}" target="_blank" class="footer-link">{% get_theme_variables 'creator_name' %}</a>
</div>
<div class="d-none d-lg-inline-block">
<a href="{% get_theme_variables 'documentation' %}" target="_blank" class="footer-link me-4">Documentation</a>
</div>
</div>
</div>
</footer>

View File

@@ -0,0 +1,10 @@
<aside id="layout-menu" class="layout-menu-horizontal menu-horizontal menu flex-grow-0">
<div class="{{container_class}} d-flex h-100">
<ul class="menu-inner">
{% for item in menu_data.menu %}
{% comment %} Menu Item {% endcomment %}
{% include './partials/menu_item_template.html' with item=item %}
{% endfor %}
</ul>
</div>
</aside>

View File

@@ -0,0 +1,16 @@
{
"menu": [
{
"url": "index",
"icon": "menu-icon icon-base ti tabler-smart-home",
"name": "Page 1",
"slug": "index"
},
{
"url": "page-2",
"icon": "menu-icon icon-base ti tabler-app-window",
"name": "Page 2",
"slug": "page-2"
}
]
}

View File

@@ -0,0 +1,17 @@
{% load i18n %}
{% with is_group=item.submenu|filter_by_url:request %}
{% if not item.permission or request.user|has_permission:item.permission %}
<li class="menu-item {% if is_group %}active{% endif %}">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="{{ item.icon }}"></i>
<div>{% trans item.name %}</div>
</a>
<ul class="menu-sub">
{% for sub_item in item.submenu %}
{% include './menu_item_template.html' with item=sub_item %}
{% endfor %}
</ul>
</li>
{% endif %}
{% endwith %}

View File

@@ -0,0 +1,7 @@
{% if item.submenu %}
{% comment %} Menu Item has Submenu (Collapsible) {% endcomment %}
{% include './menu_collapsible_template.html' with item=item %}
{% else %}
{% comment %} Menu Item has link {% endcomment %}
{% include './menu_link_template.html' with item=item %}
{% endif %}

View File

@@ -0,0 +1,12 @@
{% load i18n %}
{% if item %}
{% if not item.permission or request.user|has_permission:item.permission %}
<li class="menu-item {% if item.url == request.resolver_match.url_name or item.url == request.path %}active{% endif %}">
<a href="{% if item.external == True %}{{ item.url }}{% else %}{% url item.url %}{% endif %}" class="menu-link" {% if item.target == "_blank" %}target="_blank" {% endif %}>
<i class="{{ item.icon }}"></i>
<div>{% trans item.name %}</div>
</a>
</li>
{% endif %}
{% endif %}

View File

@@ -0,0 +1,16 @@
{
"menu": [
{
"url": "index",
"icon": "menu-icon icon-base ti tabler-smart-home",
"name": "Page 1",
"slug": "index"
},
{
"url": "page-2",
"icon": "menu-icon icon-base ti tabler-app-window",
"name": "Page 2",
"slug": "page-2"
}
]
}

View File

@@ -0,0 +1,20 @@
{% load i18n %}
{% with is_group=item.submenu|filter_by_url:request %}
{% if not item.permission or request.user|has_permission:item.permission %}
<li class="menu-item {% if is_group %}active open{% endif %}">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="{{ item.icon }}"></i>
<div>{% trans item.name %}</div>
{% if item.badge %}
<div class="badge bg-{{ item.badge.0 }} rounded-pill ms-auto">{{ item.badge.1 }}</div>
{% endif %}
</a>
<ul class="menu-sub">
{% for sub_item in item.submenu %}
{% include './menu_item_template.html' with item=sub_item %}
{% endfor %}
</ul>
</li>
{% endif %}
{% endwith %}

View File

@@ -0,0 +1,7 @@
{% load i18n %}
{% if not item.permission or request.user|has_permission:item.permission %}
<li class="menu-header small text-uppercase">
<span class="menu-header-text">{% trans header_text %}</span>
</li>
{% endif %}

View File

@@ -0,0 +1,7 @@
{% if item.submenu %}
{% comment %} Menu Item has Submenu (Collapsible) {% endcomment %}
{% include './menu_collapsible_template.html' with item=item %}
{% else %}
{% comment %} Menu Item has link{% endcomment %}
{% include './menu_link_template.html' with item=item %}
{% endif %}

View File

@@ -0,0 +1,15 @@
{% load i18n %}
{% if item %}
{% if not item.permission or request.user|has_permission:item.permission %}
<li class="menu-item {% if item.url == request.resolver_match.url_name or item.url == request.path %}active{% endif %}">
<a href="{% if item.external == True %}{{ item.url }}{% else %}{% url item.url %}{% endif %}" class="menu-link" {% if item.target == "_blank" %}target="_blank" {% endif %}>
<i class="{{ item.icon }}"></i>
<div>{% trans item.name %}</div>
{% if item.badge %}
<div class="badge bg-{{ item.badge.0 }} rounded-pill ms-auto">{{ item.badge.1 }}</div>
{% endif %}
</a>
</li>
{% endif %}
{% endif %}

View File

@@ -0,0 +1,37 @@
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme">
<!-- ! Hide app brand if navbar-full -->
{% if not navbar_full %}
<div class="app-brand demo">
<a href="{% url 'index' %}" class="app-brand-link">
<span class="app-brand-logo demo">
{% include 'partials/logo.html' %}
</span>
<span class="app-brand-text demo menu-text fw-bold ms-3">{% get_theme_variables 'template_name' %}</span>
</a>
<a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large ms-auto">
<i class="icon-base ti menu-toggle-icon d-none d-xl-block"></i>
<i class="icon-base ti tabler-x d-block d-xl-none"></i>
</a>
</div>
{% endif %}
<div class="menu-inner-shadow"></div>
<ul class="menu-inner py-1">
{% for item in menu_data.menu %}
{% comment %} Menu Header {% endcomment %}
{% if "menu_header" in item %}
{% include './partials/menu_header_template.html' with header_text=item.menu_header %}
{% else %}
{% comment %} Menu Item {% endcomment %}
{% include './partials/menu_item_template.html' with item=item %}
{% endif %}
{% endfor %}
</ul>
</aside>

View File

@@ -0,0 +1,135 @@
{% load i18n %}
{% load static %}
{% if navbar_detached %}
<nav class="layout-navbar {{container_class}} navbar navbar-expand-xl {{navbar_detached_class}} align-items-center bg-navbar-theme" id="layout-navbar">
{% endif %}
{# Horizontal layout (navbar not detached) #}
{% if not navbar_detached %}
<nav class="layout-navbar navbar navbar-expand-xl align-items-center" id="layout-navbar">
<div class="{{container_class}}">
{% endif %}
<!-- Brand demo (display only for navbar-full and hide on below xl) -->
{% if navbar_full %}
<div class="navbar-brand app-brand demo d-none d-xl-flex py-0 me-4 ms-0">
<a href="{% url 'index' %}" class="app-brand-link">
<span class="app-brand-logo demo">
{% include 'partials/logo.html' %}
</span>
<span class="app-brand-text demo menu-text fw-bold text-heading">{% get_theme_variables 'template_name' %}</span>
</a>
{% if menu_horizontal %}
<a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large ms-auto d-xl-none">
<i class="icon-base ti tabler-x icon-sm d-flex align-items-center justify-content-center"></i>
</a>
{% endif %}
</div>
{% endif %}
<!-- ! Not required for layout-without-menu -->
{% if not navbar_hide_toggle %}
<div class="layout-menu-toggle navbar-nav align-items-xl-center me-3 me-xl-0 {{ menu_horizontal|yesno:'d-xl-none,' }} {{ content_navbar|yesno:'d-xl-none,' }}">
<a class="nav-item nav-link px-0 me-xl-6" href="javascript:void(0)">
<i class="icon-base ti tabler-menu-2 icon-md"></i>
</a>
</div>
{% endif %}
<div class="navbar-nav-right d-flex align-items-center" id="navbar-collapse">
<!-- Style Switcher -->
<div class="navbar-nav align-items-center">
<div class="nav-item dropdown-style-switcher dropdown me-2 me-xl-0">
<a class="nav-link dropdown-toggle hide-arrow btn btn-icon btn-text-secondary rounded-pill" id="nav-theme" href="javascript:void(0);" data-bs-toggle="dropdown">
<i class="icon-base ti tabler-sun icon-22px theme-icon-active text-heading"></i>
<span class="d-none ms-2" id="nav-theme-text">Toggle theme</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-theme-text">
<li>
<button type="button" class="dropdown-item align-items-center active" data-bs-theme-value="light" aria-pressed="false">
<span><i class="icon-base ti tabler-sun icon-22px me-3" data-icon="sun"></i>Light</span>
</button>
</li>
<li>
<button type="button" class="dropdown-item align-items-center" data-bs-theme-value="dark" aria-pressed="true">
<span><i class="icon-base ti tabler-moon-stars icon-22px me-3" data-icon="moon-stars"></i>Dark</span>
</button>
</li>
<li>
<button type="button" class="dropdown-item align-items-center" data-bs-theme-value="system" aria-pressed="false">
<span><i class="icon-base ti tabler-device-desktop-analytics icon-22px me-3" data-icon="device-desktop-analytics"></i>System</span>
</button>
</li>
</ul>
</div>
</div>
<!-- / Style Switcher-->
<ul class="navbar-nav flex-row align-items-center ms-auto">
<!-- User -->
<li class="nav-item navbar-dropdown dropdown-user dropdown">
<a class="nav-link dropdown-toggle hide-arrow p-0" href="javascript:void(0);" data-bs-toggle="dropdown">
<div class="avatar avatar-online">
<img src="{% static 'img/avatars/1.png' %}" alt class="rounded-circle" />
</div>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li>
<a class="dropdown-item mt-0" href="javascript:void(0);">
<div class="d-flex align-items-center">
<div class="flex-shrink-0 me-2">
<div class="avatar avatar-online">
<img src="{% static 'img/avatars/1.png' %}" alt class="rounded-circle" />
</div>
</div>
<div class="flex-grow-1">
<h6 class="mb-0">John Doe</h6>
<small class="text-body-secondary">Admin</small>
</div>
</div>
</a>
</li>
<li>
<div class="dropdown-divider my-1 mx-n2"></div>
</li>
<li>
<a class="dropdown-item" href="javascript:void(0);"> <i class="icon-base ti tabler-user me-3 icon-md"></i><span class="align-middle">My Profile</span> </a>
</li>
<li>
<a class="dropdown-item" href="javascript:void(0);"> <i class="icon-base ti tabler-settings me-3 icon-md"></i><span class="align-middle">Settings</span> </a>
</li>
<li>
<a class="dropdown-item" href="javascript:void(0);">
<span class="d-flex align-items-center align-middle">
<i class="flex-shrink-0 icon-base ti tabler-file-dollar me-3 icon-md"></i><span class="flex-grow-1 align-middle">Billing</span>
<span class="flex-shrink-0 badge bg-danger d-flex align-items-center justify-content-center">4</span>
</span>
</a>
</li>
<li>
<div class="dropdown-divider my-1 mx-n2"></div>
</li>
<li>
<div class="d-grid px-2 pt-2 pb-1">
<a class="btn btn-sm btn-danger d-flex" href="javascript:void(0);" type="submit">
<small class="align-middle">Logout</small>
<i class="icon-base ti tabler-logout ms-2 icon-14px"></i>
</a>
</div>
</li>
</ul>
</li>
<!--/ User -->
</ul>
</div>
{% if not navbar_detached %}
</div>
</nav>
{% endif %}
{% if navbar_detached %}
</nav>
{% endif %}

View File

@@ -0,0 +1,17 @@
{% load static %}
<!--Core Javascript-->
{% if has_customizer %}
<script src="{% static 'vendor/libs/pickr/pickr.js' %}"></script>
{% endif %}
<script src="{% static 'vendor/libs/jquery/jquery.js' %}"></script>
<script src="{% static 'vendor/libs/popper/popper.js' %}"></script>
<script src="{% static 'vendor/js/bootstrap.js' %}"></script>
<script src="{% static 'vendor/libs/@algolia/autocomplete-js.js' %}"></script>
<script src="{% static 'vendor/libs/perfect-scrollbar/perfect-scrollbar.js' %}"></script>
<script src="{% static 'vendor/libs/node-waves/node-waves.js' %}"></script>
<script src="{% static 'vendor/libs/hammer/hammer.js' %}"></script>
<script src="{% static 'vendor/js/menu.js' %}"></script>
<script src="{% static 'js/main.js' %}"></script>

View File

@@ -0,0 +1,14 @@
{% load static %}
<!--Core Javascript-->
{% if has_customizer %}
<script src="{% static 'vendor/libs/pickr/pickr.js' %}"></script>
{% endif %}
<!--Vendors Javascript-->
<script src="{% static 'vendor/js/dropdown-hover.js' %}"></script>
<script src="{% static 'vendor/js/mega-dropdown.js' %}"></script>
<script src="{% static 'vendor/libs/popper/popper.js' %}"></script>
<script src="{% static 'vendor/js/bootstrap.js' %}"></script>
<script src="{% static 'vendor/libs/node-waves/node-waves.js' %}"></script>
<script src="{% static 'js/front-main.js' %}"></script>

View File

@@ -0,0 +1,29 @@
{% load static %} {% load i18n %}
<!-- Helpers -->
<!--! Template customizer & Theme config files MUST be included after core stylesheets and helpers.js in the <head> section -->
<script src="{% static 'vendor/js/helpers.js' %}"></script>
<!--? Template customizer: To hide customizer set display_customizer value false in config.js. -->
{% if has_customizer %}
<script src="{% static 'vendor/js/template-customizer.js' %}"></script>
{% endif %}
<!--? Config: Mandatory theme config file contain global vars & default theme options, Set your preferred theme option in this file. -->
<script src="{% static 'js/config.js' %}"></script>
<!-- beautify ignore:start -->
{% if has_customizer %}
<script>
if (typeof TemplateCustomizer !== 'undefined') {
window.templateCustomizer = new TemplateCustomizer({
defaultTheme: "{{theme}}", // Required as system style can't decided without JS
{% if primary_color %}
defaultPrimaryColor: "{{ primary_color }}",
{% endif %}
defaultTextDir: '{% if rtl_mode %}rtl{% else %}ltr{% endif %}',
defaultSemiDark: {{ semi_dark_value }},
defaultShowDropdownOnHover: {{ show_dropdown_onhover_value }},
lang: '{{LANGUAGE_CODE}}',
controls: {{ customizer_controls | safe }}
});
}
</script>
{% endif %}
<!-- beautify ignore:end -->

View File

@@ -0,0 +1,26 @@
{% load static %}
<!-- Helpers -->
<!--! Template customizer & Theme config files MUST be included after core stylesheets and helpers.js in the <head> section -->
<script src="{% static 'vendor/js/helpers.js' %}"></script>
<!--? Template customizer: To hide customizer set display_customizer value false in config.js. -->
{% if has_customizer %}
<script src="{% static 'vendor/js/template-customizer.js' %}"></script>
{% endif %}
<!--? Config: Mandatory theme config file contain global vars & default theme options, Set your preferred theme option in this file. -->
<script src="{% static 'js/config.js' %}"></script>
<!-- beautify ignore:start -->
{% if has_customizer %}
<script>
if (typeof TemplateCustomizer !== 'undefined') {
window.templateCustomizer = new TemplateCustomizer({
{% if primary_color %}
defaultPrimaryColor: "{{ primary_color }}",
{% endif %}
defaulttheme: "{{theme}}", // Required as system style can't decided without JS
controls: ['rtl', 'theme', 'color'],
});
}
</script>
{% endif %}
<!-- beautify ignore:end -->

View File

@@ -0,0 +1,25 @@
{% load static %}
<!--Fonts-->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&ampdisplay=swap" rel="stylesheet" />
<!-- Icons -->
<link rel="stylesheet" href="{% static 'vendor/fonts/iconify-icons.css' %}" />
<!-- Vendors -->
<link rel="stylesheet" href="{% static 'vendor/libs/node-waves/node-waves.css' %}" />
{% if has_customizer %}
<link rel="stylesheet" href="{% static 'vendor/libs/pickr/pickr-themes.css' %}" />
{% endif %}
<!--Core CSS-->
<link rel="stylesheet" href="{% static 'vendor/css/core.css' %}" />
<link rel="stylesheet" href="{% static 'css/demo.css' %}" />
<!-- Vendors -->
<link rel="stylesheet" href="{% static 'vendor/libs/perfect-scrollbar/perfect-scrollbar.css' %}" />

View File

@@ -0,0 +1,20 @@
{% load static %}
<!--Fonts-->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&ampdisplay=swap" rel="stylesheet" />
<!-- Icons -->
<link rel="stylesheet" href="{% static 'vendor/fonts/iconify-icons.css' %}" />
<!--Vendor CSS-->
<link rel="stylesheet" href="{% static 'vendor/libs/node-waves/node-waves.css' %}" />
{% if has_customizer %}
<link rel="stylesheet" href="{% static 'vendor/libs/pickr/pickr-themes.css' %}" />
{% endif %}
<!--Core CSS -->
<link rel="stylesheet" href="{% static 'vendor/css/core.css' %}" />
<link rel="stylesheet" href="{% static 'css/demo.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/css/pages/front-page.css' %}" />