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,22 @@
from web_project.template_helpers.theme import TemplateHelper
"""
This is an entry and Bootstrap class for the theme level.
The init() function will be called in web_project/__init__.py
"""
class TemplateBootstrapLayoutBlank:
def init(context):
context.update(
{
"layout": "blank",
"content_layout": "wide",
"display_customizer": False,
}
)
# map_context according to updated context values
TemplateHelper.map_context(context)
return context

View File

@@ -0,0 +1,23 @@
from web_project.template_helpers.theme import TemplateHelper
"""
This is an entry and Bootstrap class for the theme level.
The init() function will be called in web_project/__init__.py
"""
class TemplateBootstrapLayoutFront:
def init(context):
context.update(
{
"layout": "front",
"is_front": True,
"display_customizer": True,
"content_layout": "wide",
"navbar_type": "fixed",
}
)
# map_context according to updated context values
TemplateHelper.map_context(context)
return context

View File

@@ -0,0 +1,42 @@
from django.conf import settings
import json
from web_project.template_helpers.theme import TemplateHelper
menu_file_path = settings.BASE_DIR / "templates" / "layout" / "partials" / "menu" / "horizontal" / "json" / "horizontal_menu.json"
"""
This is an entry and Bootstrap class for the theme level.
The init() function will be called in web_project/__init__.py
"""
class TemplateBootstrapLayoutHorizontal:
def init(context):
context.update(
{
"layout": "horizontal",
"is_navbar": True,
"navbar_full": True,
"is_menu": True,
"menu_horizontal": True,
"is_footer": True,
"navbar_detached": False,
}
)
# map_context according to updated context values
TemplateHelper.map_context(context)
# Init menu data and update context
TemplateBootstrapLayoutHorizontal.init_menu_data(context)
return context
def init_menu_data(context):
# Load the menu data from the JSON file
menu_data = json.load(menu_file_path.open()) if menu_file_path.exists() else []
# Updated context with menu_data
context.update({"menu_data": menu_data})

View File

@@ -0,0 +1,40 @@
from django.conf import settings
import json
from web_project.template_helpers.theme import TemplateHelper
menu_file_path = settings.BASE_DIR / "templates" / "layout" / "partials" / "menu" / "vertical" / "json" / "vertical_menu.json"
"""
This is an entry and Bootstrap class for the theme level.
The init() function will be called in web_project/__init__.py
"""
class TemplateBootstrapLayoutVertical:
def init(context):
context.update(
{
"layout": "vertical",
"content_navbar": True,
"is_navbar": True,
"is_menu": True,
"is_footer": True,
"navbar_detached": True,
}
)
# map_context according to updated context values
TemplateHelper.map_context(context)
TemplateBootstrapLayoutVertical.init_menu_data(context)
return context
def init_menu_data(context):
# Load the menu data from the JSON file
menu_data = json.load(menu_file_path.open()) if menu_file_path.exists() else []
# Updated context with menu_data
context.update({"menu_data": menu_data})

View File

@@ -0,0 +1,21 @@
from web_project.template_helpers.theme import TemplateHelper
"""
This is an entry and Bootstrap class for the theme level.
The init() function will be called in web_project/__init__.py
"""
class TemplateBootstrapSystem:
def init(context):
context.update(
{
"layout": "blank",
"content_layout": "wide",
"display_customizer": False,
}
)
# map_context according to updated context values
TemplateHelper.map_context(context)
return context

View File

@@ -0,0 +1,11 @@
{% extends 'layout/master.html' %}
{% block layout %}
<!-- Content: Start -->
{% block content %}
{% endblock content %}
<!-- Content: End -->
{% endblock layout %}

View File

@@ -0,0 +1,23 @@
{% extends 'layout/master.html' %}
{% block layout %}
{% if is_navbar %}
<!-- Navbar: Start -->
{% include "../layout/partials/navbar/navbar_front.html" %}
<!-- Navbar: End -->
{% endif %}
<!-- Content:Start -->
{% block content %}
{% endblock content %}
<!-- Content: End -->
{% if is_footer %}
<!-- Footer: Start -->
{% include "../layout/partials/footer/footer_front.html" %}
<!-- Footer: End -->
{% endif %}
{% endblock layout %}

View File

@@ -0,0 +1,65 @@
{% extends 'layout/master.html' %}
{% block layout %}
<!-- Layout wrapper: Start -->
<div class="layout-wrapper layout-navbar-full layout-horizontal layout-without-menu">
<div class="layout-container">
{% if is_navbar %}
<!-- Navbar: Start -->
{% include "../layout/partials/navbar/navbar.html" %}
<!-- Navbar: End -->
{% endif %}
<!-- Layout page: Start -->
<div class="layout-page">
<!-- Content wrapper: Start -->
<div class="content-wrapper">
{% if is_menu %}
<!-- Menu: Start -->
{% include "../layout/partials/menu/horizontal/horizontal_menu.html" %}
<!-- Menu: End -->
{% endif %}
<!-- Content: Start -->
{% if is_flex %}
<div class="{{container_class}} d-flex align-items-stretch flex-grow-1 p-0">
{% else %}
<div class="{{container_class}} flex-grow-1 container-p-y">
{% endif %}
{% block content %}
{% endblock content %}
</div>
<!-- / Content: End -->
{% if is_footer %}
<!-- Footer: Start -->
{% include "../layout/partials/footer/footer.html" %}
<!-- Footer: End -->
{% endif %}
<div class="content-backdrop fade"></div>
</div>
<!--/ Content wrapper: End -->
</div>
<!-- / Layout page: End -->
</div>
{% if is_menu %}
<!-- Overlay -->
<div class="layout-overlay layout-menu-toggle"></div>
{% endif %}
<!-- Drag Target Area To SlideIn Menu On Small Screens -->
<div class="drag-target"></div>
</div>
<!-- Layout wrapper: End -->
{% endblock layout %}

View File

@@ -0,0 +1,61 @@
{% extends 'layout/master.html' %}
{% block layout %}
<!-- Layout wrapper: Start -->
<div class="layout-wrapper layout-content-navbar {{ is_menu|yesno:',layout-without-menu' }}">
<div class="layout-container">
{% if is_menu %}
<!-- Menu: Start -->
{% include "../layout/partials/menu/vertical/vertical_menu.html" %}
<!-- Menu: End -->
{% endif %}
<!-- Layout page: Start -->
<div class="layout-page">
{% if is_navbar %}
<!-- Navbar: Start -->
{% include "../layout/partials/navbar/navbar.html" %}
<!-- Navbar: End -->
{% endif %}
<!-- Content wrapper: Start -->
<div class="content-wrapper">
<!-- Content: Start -->
{% if is_flex %}
<div class="{{container_class}} d-flex align-items-stretch flex-grow-1 p-0">
{% else %}
<div class="{{container_class}} flex-grow-1 container-p-y">
{% endif %}
{% block content %}
{% endblock content %}
</div>
<!-- / Content: End -->
{% if is_footer %}
<!-- Footer: Start -->
{% include "../layout/partials/footer/footer.html" %}
<!-- Footer: End -->
{% endif %}
<div class="content-backdrop fade"></div>
</div>
<!--/ Content wrapper: End -->
</div>
<!-- / Layout page: End -->
</div>
{% if is_menu %}
<!-- Overlay -->
<div class="layout-overlay layout-menu-toggle"></div>
{% endif %}
<!-- Drag Target Area To SlideIn Menu On Small Screens -->
<div class="drag-target"></div>
</div>
<!-- Layout wrapper: End -->
{% endblock layout %}

View File

@@ -0,0 +1,49 @@
{% load static %}
<!DOCTYPE html>
<html lang="en" class="{{navbar_type_class}} {{header_type_class}} {{menu_fixed_class}} {{menu_collapsed_class}} {{footer_fixed_class}} {{display_customizer_class}} {{content_layout_class}}" dir="{{text_direction_value}}" data-skin="{{skins}}" data-bs-theme="{{theme}}" data-assets-path="{% static '/' %}" data-base-url="{{url}}" data-framework="django" data-template="{{ menu_horizontal|yesno:'horizontal,vertical' }}-menu-{{ is_front|yesno:'front,' }}-{{ skins }}-{{ theme}}">
<head>
<title>{% block title %}{% endblock title %} | {% get_theme_variables 'template_name' %} - {% get_theme_variables 'template_suffix' %}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="description" content="" />
<!-- Favicon -->
<link rel="shortcut icon" type="image/x-icon" href="{% static 'img/favicon/favicon.ico' %}" />
<!-- Include the styles partial -->
{% include is_front|yesno:"./partials/styles_front.html,./partials/styles.html" %}
{% block vendor_css %}{% endblock vendor_css %}
<!--Page CSS-->
{% block page_css %}{% endblock page_css %}
<!-- Include the scripts partial (required ) -->
{% include is_front|yesno:"./partials/scripts_includes_front.html,./partials/scripts_includes.html" %}
</head>
<body>
<!-- beautify ignore:end -->
{% block layout %}
{% endblock layout %}
{% include is_front|yesno:"./partials/scripts_front.html,./partials/scripts.html" %}
<!--Vendors Javascript-->
{% block vendor_js %} {% endblock vendor_js %}
<!--Page Javascript-->
{% block page_js %} {% endblock page_js %}
</body>
</html>

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' %}" />

View File

@@ -0,0 +1,11 @@
{% extends 'layout/master.html' %}
{% block layout %}
<!-- Content: Start -->
{% block content %}
{% endblock content %}
<!-- Content: End -->
{% endblock layout %}