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,2 @@
# Register your models here.

View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class AccessConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "apps.access"

View File

@@ -0,0 +1,2 @@
# Create your models here.

View File

@@ -0,0 +1,55 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}Permission - Apps{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/datatables-bs5/datatables.bootstrap5.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/datatables-buttons-bs5/buttons.bootstrap5.css' %}" />
<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/datatables-bs5/datatables-bootstrap5.js' %}"></script>
<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_js %}
{{ block.super }}
<script src="{% static 'js/app-access-permission.js' %}"></script>
<script src="{% static 'js/modal-add-permission.js' %}"></script>
<script src="{% static 'js/modal-edit-permission.js' %}"></script>
{% endblock page_js %}
{% block content %}
<!-- Permission Table -->
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-permissions table border-top">
<thead>
<tr>
<th></th>
<th></th>
<th>Name</th>
<th>Assigned To</th>
<th>Created Date</th>
<th>Actions</th>
</tr>
</thead>
</table>
</div>
</div>
<!--/ Permission Table -->
<!-- Modal -->
{% include "partials/_modals/modal_add_permission.html" %}
{% include "partials/_modals/modal_edit_permission.html" %}
<!-- /Modal -->
{% endblock %}

View File

@@ -0,0 +1,243 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}Roles - Apps{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/datatables-bs5/datatables.bootstrap5.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.css' %}" />
<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/datatables-bs5/datatables-bootstrap5.js' %}"></script>
<script src="{% static 'vendor/libs/select2/select2.js' %}"></script>
<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_js %}
{{ block.super }}
<script src="{% static 'js/app-access-roles.js' %}"></script>
<script src="{% static 'js/modal-add-role.js' %}"></script>
{% endblock page_js %}
{% block content %}
<h4 class="mb-1">Roles List</h4>
<p class="mb-6">
A role provided access to predefined menus and features so that depending on <br />
assigned role an administrator can have access to what user needs.
</p>
<!-- Role cards -->
<div class="row g-6">
<div class="col-xl-4 col-lg-6 col-md-6">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-4">
<h6 class="fw-normal mb-0 text-body">Total 4 users</h6>
<ul class="list-unstyled d-flex align-items-center avatar-group mb-0">
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Vinnie Mostowy" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/5.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Allen Rieske" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/12.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Julee Rossignol" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/6.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Kaith D'souza" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/3.png' %}" alt="Avatar" />
</li>
</ul>
</div>
<div class="d-flex justify-content-between align-items-end">
<div class="role-heading">
<h5 class="mb-1">Administrator</h5>
<a href="javascript:;" data-bs-toggle="modal" data-bs-target="#addRoleModal" class="role-edit-modal"><span>Edit Role</span></a>
</div>
<a href="javascript:void(0);"><i class="icon-base ti tabler-copy icon-md text-heading"></i></a>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-4">
<h6 class="fw-normal mb-0 text-body">Total 7 users</h6>
<ul class="list-unstyled d-flex align-items-center avatar-group mb-0">
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Jimmy Ressula" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/4.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="John Doe" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/1.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Kristi Lawker" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/2.png' %}" alt="Avatar" />
</li>
<li class="avatar">
<span class="avatar-initial rounded-circle pull-up" data-bs-toggle="tooltip" data-bs-placement="bottom" title="4 more">+4</span>
</li>
</ul>
</div>
<div class="d-flex justify-content-between align-items-end">
<div class="role-heading">
<h5 class="mb-1">Manager</h5>
<a href="javascript:;" data-bs-toggle="modal" data-bs-target="#addRoleModal" class="role-edit-modal"><span>Edit Role</span></a>
</div>
<a href="javascript:void(0);"><i class="icon-base ti tabler-copy icon-md text-heading"></i></a>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-4">
<h6 class="fw-normal mb-0 text-body">Total 5 users</h6>
<ul class="list-unstyled d-flex align-items-center avatar-group mb-0">
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Andrew Tye" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/6.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Rishi Swaat" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/9.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Rossie Kim" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/12.png' %}" alt="Avatar" />
</li>
<li class="avatar">
<span class="avatar-initial rounded-circle pull-up" data-bs-toggle="tooltip" data-bs-placement="bottom" title="2 more">+2</span>
</li>
</ul>
</div>
<div class="d-flex justify-content-between align-items-end">
<div class="role-heading">
<h5 class="mb-1">Users</h5>
<a href="javascript:;" data-bs-toggle="modal" data-bs-target="#addRoleModal" class="role-edit-modal"><span>Edit Role</span></a>
</div>
<a href="javascript:void(0);"><i class="icon-base ti tabler-copy icon-md text-heading"></i></a>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-4">
<h6 class="fw-normal mb-0 text-body">Total 3 users</h6>
<ul class="list-unstyled d-flex align-items-center avatar-group mb-0">
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Kim Karlos" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/3.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Katy Turner" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/9.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Peter Adward" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/4.png' %}" alt="Avatar" />
</li>
<li class="avatar">
<span class="avatar-initial rounded-circle pull-up" data-bs-toggle="tooltip" data-bs-placement="bottom" title="3 more">+3</span>
</li>
</ul>
</div>
<div class="d-flex justify-content-between align-items-end">
<div class="role-heading">
<h5 class="mb-1">Support</h5>
<a href="javascript:;" data-bs-toggle="modal" data-bs-target="#addRoleModal" class="role-edit-modal"><span>Edit Role</span></a>
</div>
<a href="javascript:void(0);"><i class="icon-base ti tabler-copy icon-md text-heading"></i></a>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-4">
<h6 class="fw-normal mb-0 text-body">Total 2 users</h6>
<ul class="list-unstyled d-flex align-items-center avatar-group mb-0">
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Kim Merchent" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/10.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Sam D'souza" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/13.png' %}" alt="Avatar" />
</li>
<li data-bs-toggle="tooltip" data-popup="tooltip-custom" data-bs-placement="top" title="Nurvi Karlos" class="avatar pull-up">
<img class="rounded-circle" src="{% static 'img/avatars/5.png' %}" alt="Avatar" />
</li>
<li class="avatar">
<span class="avatar-initial rounded-circle pull-up" data-bs-toggle="tooltip" data-bs-placement="bottom" title="7 more">+7</span>
</li>
</ul>
</div>
<div class="d-flex justify-content-between align-items-end">
<div class="role-heading">
<h5 class="mb-1">Restricted User</h5>
<a href="javascript:;" data-bs-toggle="modal" data-bs-target="#addRoleModal" class="role-edit-modal"><span>Edit Role</span></a>
</div>
<a href="javascript:void(0);"><i class="icon-base ti tabler-copy icon-md text-heading"></i></a>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6">
<div class="card h-100">
<div class="row h-100">
<div class="col-sm-5">
<div class="d-flex align-items-end h-100 justify-content-center mt-sm-0 mt-4">
<img src="{% static 'img/illustrations/add-new-roles.png' %}" class="img-fluid" alt="Image" width="83" />
</div>
</div>
<div class="col-sm-7">
<div class="card-body text-sm-end text-center ps-sm-0">
<button data-bs-target="#addRoleModal" data-bs-toggle="modal" class="btn btn-sm btn-primary mb-4 text-nowrap add-new-role">Add New Role</button>
<p class="mb-0">
Add new role, <br />
if it doesn't exist.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-12">
<h4 class="mt-6 mb-1">Total users with their roles</h4>
<p class="mb-0">Find all of your companys administrator accounts and their associate roles.</p>
</div>
<div class="col-12">
<!-- Role Table -->
<div class="card">
<div class="card-datatable">
<table class="datatables-users table border-top">
<thead>
<tr>
<th></th>
<th></th>
<th>User</th>
<th>Role</th>
<th>Plan</th>
<th>Billing</th>
<th>Status</th>
<th>Actions</th>
</tr>
</thead>
</table>
</div>
</div>
<!--/ Role Table -->
</div>
</div>
<!--/ Role cards -->
<!-- Add Role Modal -->
{% include "partials/_modals/modal_add_role.html" %}
<!-- / Add Role Modal -->
{% endblock %}

View File

@@ -0,0 +1,17 @@
from django.urls import path
from .views import AccessView
from django.contrib.auth.decorators import login_required
urlpatterns = [
path(
"app/access/roles/",
login_required(AccessView.as_view(template_name="app_access_roles.html")),
name="app-access-roles",
),
path(
"app/access/permission/",
login_required(AccessView.as_view(template_name="app_access_permission.html")),
name="app-access-permission",
),
]

View File

@@ -0,0 +1,20 @@
from django.views.generic import TemplateView
from web_project import TemplateLayout
from django.contrib.auth.mixins import PermissionRequiredMixin
"""
This file is a view controller for multiple pages as a module.
Here you can override the page view layout.
Refer to access/urls.py file for more pages.
"""
class AccessView(PermissionRequiredMixin, TemplateView):
permission_required = ("permission.view_permission", "permission.delete_permission", "permission.change_permission", "permission.add_permission")
# Predefined function
def get_context_data(self, **kwargs):
# A function to init the global layout. It is defined in web_project/__init__.py file
context = TemplateLayout.init(self, super().get_context_data(**kwargs))
return context