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 UsersConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "apps.users"

View File

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

View File

@@ -0,0 +1,226 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}User List - Pages{% 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/select2/select2.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/moment/moment.js' %}"></script>
<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>
<script src="{% static 'vendor/libs/cleave-zen/cleave-zen.js' %}"></script>
{% endblock vendor_js %}
{% block page_js %}
{{ block.super }}
<script src="{% static 'js/app-user-list.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="row g-6 mb-6">
<div class="col-sm-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-start justify-content-between">
<div class="content-left">
<span class="text-heading">Session</span>
<div class="d-flex align-items-center my-1">
<h4 class="mb-0 me-2">21,459</h4>
<p class="text-success mb-0">(+29%)</p>
</div>
<small class="mb-0">Total Users</small>
</div>
<div class="avatar">
<span class="avatar-initial rounded bg-label-primary">
<i class="icon-base ti tabler-users icon-26px"></i>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-start justify-content-between">
<div class="content-left">
<span class="text-heading">Paid Users</span>
<div class="d-flex align-items-center my-1">
<h4 class="mb-0 me-2">4,567</h4>
<p class="text-success mb-0">(+18%)</p>
</div>
<small class="mb-0">Last week analytics </small>
</div>
<div class="avatar">
<span class="avatar-initial rounded bg-label-danger">
<i class="icon-base ti tabler-user-plus icon-26px"></i>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-start justify-content-between">
<div class="content-left">
<span class="text-heading">Active Users</span>
<div class="d-flex align-items-center my-1">
<h4 class="mb-0 me-2">19,860</h4>
<p class="text-danger mb-0">(-14%)</p>
</div>
<small class="mb-0">Last week analytics</small>
</div>
<div class="avatar">
<span class="avatar-initial rounded bg-label-success">
<i class="icon-base ti tabler-user-check icon-26px"></i>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-xl-3">
<div class="card">
<div class="card-body">
<div class="d-flex align-items-start justify-content-between">
<div class="content-left">
<span class="text-heading">Pending Users</span>
<div class="d-flex align-items-center my-1">
<h4 class="mb-0 me-2">237</h4>
<p class="text-success mb-0">(+42%)</p>
</div>
<small class="mb-0">Last week analytics</small>
</div>
<div class="avatar">
<span class="avatar-initial rounded bg-label-warning">
<i class="icon-base ti tabler-user-search icon-26px"></i>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Users List Table -->
<div class="card">
<div class="card-header border-bottom">
<h5 class="card-title mb-0">Filters</h5>
<div class="d-flex justify-content-between align-items-center row pt-4 gap-4 gap-md-0">
<div class="col-md-4 user_role"></div>
<div class="col-md-4 user_plan"></div>
<div class="col-md-4 user_status"></div>
</div>
</div>
<div class="card-datatable">
<table class="datatables-users table">
<thead class="border-top">
<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>
<!-- Offcanvas to add new user -->
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasAddUser" aria-labelledby="offcanvasAddUserLabel">
<div class="offcanvas-header border-bottom">
<h5 id="offcanvasAddUserLabel" class="offcanvas-title">Add User</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body mx-0 flex-grow-0 p-6 h-100">
<form class="add-new-user pt-0" id="addNewUserForm" onsubmit="return false">
<div class="mb-6 form-control-validation">
<label class="form-label" for="add-user-fullname">Full Name</label>
<input type="text" class="form-control" id="add-user-fullname" placeholder="John Doe" name="userFullname" aria-label="John Doe" />
</div>
<div class="mb-6 form-control-validation">
<label class="form-label" for="add-user-email">Email</label>
<input type="text" id="add-user-email" class="form-control" placeholder="john.doe@example.com" aria-label="john.doe@example.com" name="userEmail" />
</div>
<div class="mb-6">
<label class="form-label" for="add-user-contact">Contact</label>
<input type="text" id="add-user-contact" class="form-control phone-mask" placeholder="+1 (609) 988-44-11" aria-label="john.doe@example.com" name="userContact" />
</div>
<div class="mb-6">
<label class="form-label" for="add-user-company">Company</label>
<input type="text" id="add-user-company" class="form-control" placeholder="Web Developer" aria-label="jdoe1" name="companyName" />
</div>
<div class="mb-6">
<label class="form-label" for="country">Country</label>
<select id="country" class="select2 form-select">
<option value="">Select</option>
<option value="Australia">Australia</option>
<option value="Bangladesh">Bangladesh</option>
<option value="Belarus">Belarus</option>
<option value="Brazil">Brazil</option>
<option value="Canada">Canada</option>
<option value="China">China</option>
<option value="France">France</option>
<option value="Germany">Germany</option>
<option value="India">India</option>
<option value="Indonesia">Indonesia</option>
<option value="Israel">Israel</option>
<option value="Italy">Italy</option>
<option value="Japan">Japan</option>
<option value="Korea">Korea, Republic of</option>
<option value="Mexico">Mexico</option>
<option value="Philippines">Philippines</option>
<option value="Russia">Russian Federation</option>
<option value="South Africa">South Africa</option>
<option value="Thailand">Thailand</option>
<option value="Turkey">Turkey</option>
<option value="Ukraine">Ukraine</option>
<option value="United Arab Emirates">United Arab Emirates</option>
<option value="United Kingdom">United Kingdom</option>
<option value="United States">United States</option>
</select>
</div>
<div class="mb-6">
<label class="form-label" for="user-role">User Role</label>
<select id="user-role" class="form-select">
<option value="subscriber">Subscriber</option>
<option value="editor">Editor</option>
<option value="maintainer">Maintainer</option>
<option value="author">Author</option>
<option value="admin">Admin</option>
</select>
</div>
<div class="mb-6">
<label class="form-label" for="user-plan">Select Plan</label>
<select id="user-plan" class="form-select">
<option value="basic">Basic</option>
<option value="enterprise">Enterprise</option>
<option value="company">Company</option>
<option value="team">Team</option>
</select>
</div>
<button type="submit" class="btn btn-primary me-3 data-submit">Submit</button>
<button type="reset" class="btn btn-label-danger" data-bs-dismiss="offcanvas">Cancel</button>
</form>
</div>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,307 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}User View - Pages{% 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/animate-css/animate.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/sweetalert2/sweetalert2.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/select2/select2.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/moment/moment.js' %}"></script>
<script src="{% static 'vendor/libs/datatables-bs5/datatables-bootstrap5.js' %}"></script>
<script src="{% static 'vendor/libs/sweetalert2/sweetalert2.js' %}"></script>
<script src="{% static 'vendor/libs/cleave-zen/cleave-zen.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_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/css/pages/page-user-view.css' %}" />
{% endblock page_css %}
{% block page_js %}
{{ block.super }}
<script src="{% static 'js/modal-edit-user.js' %}"></script>
<script src="{% static 'js/app-user-view.js' %}"></script>
<script src="{% static 'js/app-user-view-account.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="row">
<!-- User Sidebar -->
<div class="col-xl-4 col-lg-5 order-1 order-md-0">
<!-- User Card -->
<div class="card mb-6">
<div class="card-body pt-12">
<div class="user-avatar-section">
<div class=" d-flex align-items-center flex-column">
<img class="img-fluid rounded mb-4" src="{% static 'img/avatars/1.png' %}" height="120" width="120" alt="User avatar" />
<div class="user-info text-center">
<h5>Violet Mendoza</h5>
<span class="badge bg-label-secondary">Author</span>
</div>
</div>
</div>
<div class="d-flex justify-content-around flex-wrap my-6 gap-0 gap-md-3 gap-lg-4">
<div class="d-flex align-items-center me-5 gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-checkbox icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">1.23k</h5>
<span>Task Done</span>
</div>
</div>
<div class="d-flex align-items-center gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-briefcase icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">568</h5>
<span>Project Done</span>
</div>
</div>
</div>
<h5 class="pb-4 border-bottom mb-4">Details</h5>
<div class="info-container">
<ul class="list-unstyled mb-6">
<li class="mb-2">
<span class="h6">Username:</span>
<span>@violet.dev</span>
</li>
<li class="mb-2">
<span class="h6">Email:</span>
<span>vafgot@vultukir.org</span>
</li>
<li class="mb-2">
<span class="h6">Status:</span>
<span>Active</span>
</li>
<li class="mb-2">
<span class="h6">Role:</span>
<span>Author</span>
</li>
<li class="mb-2">
<span class="h6">Tax id:</span>
<span>Tax-8965</span>
</li>
<li class="mb-2">
<span class="h6">Contact:</span>
<span>(123) 456-7890</span>
</li>
<li class="mb-2">
<span class="h6">Languages:</span>
<span>French</span>
</li>
<li class="mb-2">
<span class="h6">Country:</span>
<span>England</span>
</li>
</ul>
<div class="d-flex justify-content-center">
<a href="javascript:;" class="btn btn-primary me-4" data-bs-target="#editUser" data-bs-toggle="modal">Edit</a>
<a href="javascript:;" class="btn btn-label-danger suspend-user">Suspend</a>
</div>
</div>
</div>
</div>
<!-- /User Card -->
<!-- Plan Card -->
<div class="card mb-6 border border-2 border-primary rounded primary-shadow">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start">
<span class="badge bg-label-primary">Standard</span>
<div class="d-flex justify-content-center">
<sub class="h5 pricing-currency mb-auto mt-1 text-primary">$</sub>
<h1 class="mb-0 text-primary">99</h1>
<sub class="h6 pricing-duration mt-auto mb-3 fw-normal">month</sub>
</div>
</div>
<ul class="list-unstyled g-2 my-6">
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>10 Users</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Up to 10 GB storage</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Basic Support</span></li>
</ul>
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="h6 mb-0">Days</span>
<span class="h6 mb-0">26 of 30 Days</span>
</div>
<div class="progress mb-1 bg-label-primary" style="height: 6px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<small>4 days remaining</small>
<div class="d-grid w-100 mt-6">
<button class="btn btn-primary" data-bs-target="#upgradePlanModal" data-bs-toggle="modal">Upgrade Plan</button>
</div>
</div>
</div>
<!-- /Plan Card -->
</div>
<!--/ User Sidebar -->
<!-- User Content -->
<div class="col-xl-8 col-lg-7 order-0 order-md-1">
<!-- User Pills -->
<div class="nav-align-top">
<ul class="nav nav-pills flex-column flex-md-row flex-wrap mb-6 row-gap-2">
<li class="nav-item">
<a class="nav-link active" href="javascript:void(0);"><i class="icon-base ti tabler-user-check icon-sm me-1_5"></i>Account</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-security' %}"><i class="icon-base ti tabler-lock icon-sm me-1_5"></i>Security</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-billing' %}"><i class="icon-base ti tabler-bookmark icon-sm me-1_5"></i>Billing & Plans</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-notifications' %}"><i class="icon-base ti tabler-bell icon-sm me-1_5"></i>Notifications</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-connections' %}"><i class="icon-base ti tabler-link icon-sm me-1_5"></i>Connections</a>
</li>
</ul>
</div>
<!--/ User Pills -->
<!-- Project table -->
<div class="card mb-6">
<div class="table-responsive mb-4">
<table class="table datatable-project">
<thead class="border-top">
<tr>
<th></th>
<th></th>
<th>Project</th>
<th>Leader</th>
<th>Team</th>
<th class="w-px-200">Progress</th>
<th>Action</th>
</tr>
</thead>
</table>
</div>
</div>
<!-- /Project table -->
<!-- Activity Timeline -->
<div class="card mb-6">
<h5 class="card-header">User Activity Timeline</h5>
<div class="card-body pt-1">
<ul class="timeline mb-0">
<li class="timeline-item timeline-item-transparent">
<span class="timeline-point timeline-point-primary"></span>
<div class="timeline-event">
<div class="timeline-header mb-3">
<h6 class="mb-0">12 Invoices have been paid</h6>
<small class="text-body-secondary">12 min ago</small>
</div>
<p class="mb-2">Invoices have been paid to the company</p>
<div class="d-flex align-items-center mb-2">
<div class="badge bg-lighter rounded d-flex align-items-center">
<img src="{% static 'img/icons/misc/pdf.png' %}" alt="img" width="15" class="me-2" />
<span class="h6 mb-0 text-body">invoices.pdf</span>
</div>
</div>
</div>
</li>
<li class="timeline-item timeline-item-transparent">
<span class="timeline-point timeline-point-success"></span>
<div class="timeline-event">
<div class="timeline-header mb-3">
<h6 class="mb-0">Client Meeting</h6>
<small class="text-body-secondary">45 min ago</small>
</div>
<p class="mb-2">Project meeting with john @10:15am</p>
<div class="d-flex justify-content-between flex-wrap gap-2 mb-2">
<div class="d-flex flex-wrap align-items-center mb-50">
<div class="avatar avatar-sm me-2">
<img src="{% static 'img/avatars/1.png' %}" alt="Avatar" class="rounded-circle" />
</div>
<div>
<p class="mb-0 small fw-medium">Lester McCarthy (Client)</p>
<small>CEO of {% get_theme_variables 'creator_name' %}</small>
</div>
</div>
</div>
</div>
</li>
<li class="timeline-item timeline-item-transparent">
<span class="timeline-point timeline-point-info"></span>
<div class="timeline-event">
<div class="timeline-header mb-3">
<h6 class="mb-0">Create a new project for client</h6>
<small class="text-body-secondary">2 Day Ago</small>
</div>
<p class="mb-2">6 team members in a project</p>
<ul class="list-group list-group-flush">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap border-top-0 p-0">
<div class="d-flex flex-wrap align-items-center">
<ul class="list-unstyled users-list d-flex align-items-center avatar-group m-0 me-2">
<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 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>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
<!-- /Activity Timeline -->
<!-- Invoice table -->
<div class="card mb-4">
<div class="card-datatable table-responsive">
<table class="table datatable-invoice">
<thead>
<tr>
<th></th>
<th>#</th>
<th>Status</th>
<th>Total</th>
<th>Issued Date</th>
<th>Action</th>
</tr>
</thead>
</table>
</div>
</div>
<!-- /Invoice table -->
</div>
<!--/ User Content -->
</div>
<!-- Modal -->
{% include "partials/_modals/modal_edit_user.html" %}
{% include "partials/_modals/modal_upgrade_plan.html" %}
<!-- /Modal -->
{% endblock %}

View File

@@ -0,0 +1,350 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}User View - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/sweetalert2/sweetalert2.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/select2/select2.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/sweetalert2/sweetalert2.js' %}"></script>
<script src="{% static 'vendor/libs/cleave-zen/cleave-zen.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/modal-edit-user.js' %}"></script>
<script src="{% static 'js/modal-edit-cc.js' %}"></script>
<script src="{% static 'js/modal-add-new-cc.js' %}"></script>
<script src="{% static 'js/modal-add-new-address.js' %}"></script>
<script src="{% static 'js/app-user-view.js' %}"></script>
<script src="{% static 'js/app-user-view-billing.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="row">
<!-- User Sidebar -->
<div class="col-xl-4 col-lg-5 order-1 order-md-0">
<!-- User Card -->
<div class="card mb-6">
<div class="card-body pt-12">
<div class="user-avatar-section">
<div class=" d-flex align-items-center flex-column">
<img class="img-fluid rounded mb-4" src="{% static 'img/avatars/1.png' %}" height="120" width="120" alt="User avatar" />
<div class="user-info text-center">
<h5>Violet Mendoza</h5>
<span class="badge bg-label-secondary">Author</span>
</div>
</div>
</div>
<div class="d-flex justify-content-around flex-wrap my-6 gap-0 gap-md-3 gap-lg-4">
<div class="d-flex align-items-center me-5 gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-checkbox icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">1.23k</h5>
<span>Task Done</span>
</div>
</div>
<div class="d-flex align-items-center gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-briefcase icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">568</h5>
<span>Project Done</span>
</div>
</div>
</div>
<h5 class="pb-4 border-bottom mb-4">Details</h5>
<div class="info-container">
<ul class="list-unstyled mb-6">
<li class="mb-2">
<span class="h6">Username:</span>
<span>@violet.dev</span>
</li>
<li class="mb-2">
<span class="h6">Email:</span>
<span>vafgot@vultukir.org</span>
</li>
<li class="mb-2">
<span class="h6">Status:</span>
<span>Active</span>
</li>
<li class="mb-2">
<span class="h6">Role:</span>
<span>Author</span>
</li>
<li class="mb-2">
<span class="h6">Tax id:</span>
<span>Tax-8965</span>
</li>
<li class="mb-2">
<span class="h6">Contact:</span>
<span>(123) 456-7890</span>
</li>
<li class="mb-2">
<span class="h6">Languages:</span>
<span>French</span>
</li>
<li class="mb-2">
<span class="h6">Country:</span>
<span>England</span>
</li>
</ul>
<div class="d-flex justify-content-center">
<a href="javascript:;" class="btn btn-primary me-4" data-bs-target="#editUser" data-bs-toggle="modal">Edit</a>
<a href="javascript:;" class="btn btn-label-danger suspend-user">Suspend</a>
</div>
</div>
</div>
</div>
<!-- /User Card -->
<!-- Plan Card -->
<div class="card mb-6 border border-2 border-primary rounded primary-shadow">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start">
<span class="badge bg-label-primary">Standard</span>
<div class="d-flex justify-content-center">
<sub class="h5 pricing-currency mb-auto mt-1 text-primary">$</sub>
<h1 class="mb-0 text-primary">99</h1>
<sub class="h6 pricing-duration mt-auto mb-3 fw-normal">month</sub>
</div>
</div>
<ul class="list-unstyled g-2 my-6">
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>10 Users</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Up to 10 GB storage</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Basic Support</span></li>
</ul>
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="h6 mb-0">Days</span>
<span class="h6 mb-0">26 of 30 Days</span>
</div>
<div class="progress mb-1 bg-label-primary" style="height: 6px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<small>4 days remaining</small>
<div class="d-grid w-100 mt-6">
<button class="btn btn-primary" data-bs-target="#upgradePlanModal" data-bs-toggle="modal">Upgrade Plan</button>
</div>
</div>
</div>
<!-- /Plan Card -->
</div>
<!--/ User Sidebar -->
<!-- User Content -->
<div class="col-xl-8 col-lg-7 order-0 order-md-1">
<!-- User Pills -->
<div class="nav-align-top">
<ul class="nav nav-pills flex-column flex-md-row mb-6 row-gap-2">
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-account' %}"><i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Account</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-security' %}"><i class="icon-base ti tabler-lock me-1_5 icon-sm"></i>Security</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="javascript:void(0);"><i class="icon-base ti tabler-bookmark me-1_5 icon-sm"></i>Billing & Plans</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-notifications' %}"><i class="icon-base ti tabler-bell me-1_5 icon-sm"></i>Notifications</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-connections' %}"><i class="icon-base ti tabler-link me-1_5 icon-sm"></i>Connections</a>
</li>
</ul>
</div>
<!--/ User Pills -->
<!-- Current Plan -->
<div class="card mb-6">
<h5 class="card-header">Current Plan</h5>
<div class="card-body">
<div class="row row-gap-4 row-gap-xl-0">
<div class="col-xl-6 order-1 order-xl-0">
<div class="mb-4">
<h6 class="mb-1">Your Current Plan is Basic</h6>
<p>A simple start for everyone</p>
</div>
<div class="mb-4">
<h6 class="mb-1">Active until Dec 09, 2021</h6>
<p>We will send you a notification upon Subscription expiration</p>
</div>
<div class="mb-xl-6">
<h6 class="mb-1"><span class="me-1">$199 Per Month</span> <span class="badge bg-label-primary rounded-pill">Popular</span></h6>
<p class="mb-0">Standard plan for small to medium businesses</p>
</div>
</div>
<div class="col-xl-6 order-0 order-xl-0">
<div class="alert alert-warning" role="alert">
<h5 class="alert-heading mb-2">We need your attention!</h5>
<span>Your plan requires update</span>
</div>
<div class="plan-statistics">
<div class="d-flex justify-content-between">
<h6 class="mb-1">Days</h6>
<h6 class="mb-1">26 of 30 Days</h6>
</div>
<div class="progress mb-1 bg-label-primary" style="height: 10px;">
<div class="progress-bar w-75" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<small>Your plan requires update</small>
</div>
</div>
<div class="col-12 order-2 order-xl-0 d-flex flex-wrap row-gap-4">
<button class="btn btn-primary me-4" data-bs-toggle="modal" data-bs-target="#upgradePlanModal">Upgrade Plan</button>
<button class="btn btn-label-danger cancel-subscription">Cancel Subscription</button>
</div>
</div>
</div>
</div>
<!-- /Current Plan -->
<!-- Payment Methods -->
<div class="card card-action mb-6">
<div class="card-header align-items-center">
<h5 class="card-action-title mb-0">Payment Methods</h5>
<div class="card-action-element">
<button class="btn btn-primary btn-sm" type="button" data-bs-toggle="modal" data-bs-target="#addNewCCModal"><i class="icon-base ti tabler-plus icon-14px me-1_5"></i>Add Card</button>
</div>
</div>
<div class="card-body">
<div class="added-cards">
<div class="cardMaster border p-6 rounded mb-4">
<div class="d-flex justify-content-between flex-sm-row flex-column">
<div class="card-information">
<img class="mb-2 img-fluid" src="{% static 'img/icons/payments/mastercard.png' %}" alt="Master Card" />
<div class="d-flex align-items-center mb-2">
<h6 class="mb-0 me-2">Kaith Morrison</h6>
<span class="badge bg-label-primary me-1">Popular</span>
</div>
<span class="card-number">&#8727;&#8727;&#8727;&#8727; &#8727;&#8727;&#8727;&#8727; &#8727;&#8727;&#8727;&#8727; 9856</span>
</div>
<div class="d-flex flex-column text-start text-lg-end">
<div class="d-flex order-sm-0 order-1">
<button class="btn btn-sm btn-label-primary me-4" data-bs-toggle="modal" data-bs-target="#editCCModal">Edit</button>
<button class="btn btn-sm btn-label-danger">Delete</button>
</div>
<small class="mt-sm-4 mt-2 order-sm-1 order-0 text-sm-end mb-2">Card expires at 12/24</small>
</div>
</div>
</div>
<div class="cardMaster border p-6 rounded mb-4">
<div class="d-flex justify-content-between flex-sm-row flex-column">
<div class="card-information">
<img class="mb-2 img-fluid" src="{% static 'img/icons/payments/visa.png' %}" alt="Master Card" />
<h6 class="mb-2 me-2">Tom McBride</h6>
<span class="card-number">&#8727;&#8727;&#8727;&#8727; &#8727;&#8727;&#8727;&#8727; &#8727;&#8727;&#8727;&#8727; 6542</span>
</div>
<div class="d-flex flex-column text-start text-lg-end">
<div class="d-flex order-sm-0 order-1">
<button class="btn btn-sm btn-label-primary me-4" data-bs-toggle="modal" data-bs-target="#editCCModal">Edit</button>
<button class="btn btn-sm btn-label-danger">Delete</button>
</div>
<small class="mt-sm-4 mt-2 order-sm-1 order-0 text-sm-end mb-2">Card expires at 02/24</small>
</div>
</div>
</div>
<div class="cardMaster border p-6 rounded">
<div class="d-flex justify-content-between flex-sm-row flex-column">
<div class="card-information">
<img class="mb-2 img-fluid" src="{% static 'img/icons/payments/american-express-logo.png' %}" alt="Visa Card" />
<div class="d-flex align-items-center mb-2">
<h6 class="mb-0 me-2">Mildred Wagner</h6>
<span class="badge bg-label-danger me-1">Expired</span>
</div>
<span class="card-number">&#8727;&#8727;&#8727;&#8727; &#8727;&#8727;&#8727;&#8727; &#8727;&#8727;&#8727;&#8727; 5896</span>
</div>
<div class="d-flex flex-column text-start text-lg-end">
<div class="d-flex order-sm-0 order-1">
<button class="btn btn-sm btn-label-primary me-4" data-bs-toggle="modal" data-bs-target="#editCCModal">Edit</button>
<button class="btn btn-sm btn-label-danger">Delete</button>
</div>
<small class="mt-sm-4 mt-2 order-sm-1 order-0 text-sm-end mb-2">Card expires at 08/20</small>
</div>
</div>
</div>
</div>
</div>
</div>
<!--/ Payment Methods -->
<!-- Billing Address -->
<div class="card card-action mb-4">
<div class="card-header align-items-center flex-wrap gap-2">
<h5 class="card-action-title mb-0">Billing Address</h5>
<div class="card-action-element">
<button class="btn btn-sm btn-primary edit-address" type="button" data-bs-toggle="modal" data-bs-target="#addNewAddress"><i class="icon-base ti tabler-plus icon-14px me-1_5"></i>Edit address</button>
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-xl-7 col-12">
<dl class="row mb-0 gx-2">
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">Company Name:</dt>
<dd class="col-sm-8">Kelly Group</dd>
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">Billing Email:</dt>
<dd class="col-sm-8">user@ex.com</dd>
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">Tax ID:</dt>
<dd class="col-sm-8">TAX-357378</dd>
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">VAT Number:</dt>
<dd class="col-sm-8">SDF754K77</dd>
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading mb-0">Billing Address:</dt>
<dd class="col-sm-8 mb-0">
100 Water Plant <br />Avenue, Building 1303<br />
Wake Island
</dd>
</dl>
</div>
<div class="col-xl-5 col-12">
<dl class="row mb-0 gx-2">
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">Contact:</dt>
<dd class="col-sm-8">+1 (605) 977-32-65</dd>
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">Country:</dt>
<dd class="col-sm-8">Wake Island</dd>
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">State:</dt>
<dd class="col-sm-8">Capholim</dd>
<dt class="col-sm-4 mb-sm-2 text-nowrap fw-medium text-heading">Zipcode:</dt>
<dd class="col-sm-8">403114</dd>
</dl>
</div>
</div>
</div>
</div>
<!--/ Billing Address -->
</div>
<!--/ User Content -->
</div>
<!-- Modal -->
{% include "partials/_modals/modal_edit_user.html" %}
{% include "partials/_modals/modal_edit_cc.html" %}
{% include "partials/_modals/modal_add_new_address.html" %}
{% include "partials/_modals/modal_add_new_cc.html" %}
{% include "partials/_modals/modal_upgrade_plan.html" %}
<!-- /Modal -->
{% endblock %}

View File

@@ -0,0 +1,350 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}User View - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/sweetalert2/sweetalert2.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/select2/select2.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/sweetalert2/sweetalert2.js' %}"></script>
<script src="{% static 'vendor/libs/cleave-zen/cleave-zen.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/modal-edit-user.js' %}"></script>
<script src="{% static 'js/app-user-view.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="row">
<!-- User Sidebar -->
<div class="col-xl-4 col-lg-5 order-1 order-md-0">
<!-- User Card -->
<div class="card mb-6">
<div class="card-body pt-12">
<div class="user-avatar-section">
<div class=" d-flex align-items-center flex-column">
<img class="img-fluid rounded mb-4" src="{% static 'img/avatars/1.png' %}" height="120" width="120" alt="User avatar" />
<div class="user-info text-center">
<h5>Violet Mendoza</h5>
<span class="badge bg-label-secondary">Author</span>
</div>
</div>
</div>
<div class="d-flex justify-content-around flex-wrap my-6 gap-0 gap-md-3 gap-lg-4">
<div class="d-flex align-items-center me-5 gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-checkbox icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">1.23k</h5>
<span>Task Done</span>
</div>
</div>
<div class="d-flex align-items-center gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-briefcase icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">568</h5>
<span>Project Done</span>
</div>
</div>
</div>
<h5 class="pb-4 border-bottom mb-4">Details</h5>
<div class="info-container">
<ul class="list-unstyled mb-6">
<li class="mb-2">
<span class="h6">Username:</span>
<span>@violet.dev</span>
</li>
<li class="mb-2">
<span class="h6">Email:</span>
<span>vafgot@vultukir.org</span>
</li>
<li class="mb-2">
<span class="h6">Status:</span>
<span>Active</span>
</li>
<li class="mb-2">
<span class="h6">Role:</span>
<span>Author</span>
</li>
<li class="mb-2">
<span class="h6">Tax id:</span>
<span>Tax-8965</span>
</li>
<li class="mb-2">
<span class="h6">Contact:</span>
<span>(123) 456-7890</span>
</li>
<li class="mb-2">
<span class="h6">Languages:</span>
<span>French</span>
</li>
<li class="mb-2">
<span class="h6">Country:</span>
<span>England</span>
</li>
</ul>
<div class="d-flex justify-content-center">
<a href="javascript:;" class="btn btn-primary me-4" data-bs-target="#editUser" data-bs-toggle="modal">Edit</a>
<a href="javascript:;" class="btn btn-label-danger suspend-user">Suspend</a>
</div>
</div>
</div>
</div>
<!-- /User Card -->
<!-- Plan Card -->
<div class="card mb-6 border border-2 border-primary rounded primary-shadow">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start">
<span class="badge bg-label-primary">Standard</span>
<div class="d-flex justify-content-center">
<sub class="h5 pricing-currency mb-auto mt-1 text-primary">$</sub>
<h1 class="mb-0 text-primary">99</h1>
<sub class="h6 pricing-duration mt-auto mb-3 fw-normal">month</sub>
</div>
</div>
<ul class="list-unstyled g-2 my-6">
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>10 Users</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Up to 10 GB storage</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Basic Support</span></li>
</ul>
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="h6 mb-0">Days</span>
<span class="h6 mb-0">26 of 30 Days</span>
</div>
<div class="progress mb-1 bg-label-primary" style="height: 6px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<small>4 days remaining</small>
<div class="d-grid w-100 mt-6">
<button class="btn btn-primary" data-bs-target="#upgradePlanModal" data-bs-toggle="modal">Upgrade Plan</button>
</div>
</div>
</div>
<!-- /Plan Card -->
</div>
<!--/ User Sidebar -->
<!-- User Content -->
<div class="col-xl-8 col-lg-7 order-0 order-md-1">
<!-- User Pills -->
<div class="nav-align-top">
<ul class="nav nav-pills flex-column flex-md-row mb-6 flex-wrap row-gap-2">
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-account' %}"><i class="icon-base ti tabler-user-check icon-sm me-1_5"></i>Account</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-security' %}"><i class="icon-base ti tabler-lock icon-sm me-1_5"></i>Security</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-billing' %}"><i class="icon-base ti tabler-bookmark icon-sm me-1_5"></i>Billing & Plans</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-notifications' %}"><i class="icon-base ti tabler-bell icon-sm me-1_5"></i>Notifications</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="javascript:void(0);"><i class="icon-base ti tabler-link icon-sm me-1_5"></i>Connections</a>
</li>
</ul>
</div>
<!--/ User Pills -->
<!-- Connected Accounts -->
<div class="card mb-6">
<div class="card-header">
<h5 class="mb-0">Connected Accounts</h5>
<p class="my-0 card-subtitle">Display content from your connected accounts on your site</p>
</div>
<div class="card-body pt-0">
<div class="d-flex mb-4">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/google.png' %}" alt="google" class="me-4" height="36" />
</div>
<div class="flex-grow-1 d-flex align-items-center justify-content-between">
<div class="mb-sm-0 mb-2">
<h6 class="mb-50">Google</h6>
<span class="small">Calendar and contacts</span>
</div>
<div>
<div class="form-check form-switch mb-0">
<input type="checkbox" class="form-check-input" checked />
</div>
</div>
</div>
</div>
<div class="d-flex mb-4 align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/slack.png' %}" alt="slack" class="me-4" height="36" />
</div>
<div class="flex-grow-1 d-flex align-items-center justify-content-between">
<div class="mb-sm-0 mb-2">
<h6 class="mb-50">Slack</h6>
<span class="small">Communication</span>
</div>
<div>
<div class="form-check form-switch mb-0">
<input type="checkbox" class="form-check-input" />
</div>
</div>
</div>
</div>
<div class="d-flex mb-4 align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/github.png' %}" alt="github" class="me-4" height="36" />
</div>
<div class="flex-grow-1 d-flex align-items-center justify-content-between">
<div class="mb-sm-0 mb-2">
<h6 class="mb-50">Github</h6>
<span class="small">Manage your Git repositories</span>
</div>
<div>
<div class="form-check form-switch mb-0">
<input type="checkbox" class="form-check-input" checked />
</div>
</div>
</div>
</div>
<div class="d-flex mb-4 align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/mailchimp.png' %}" alt="mailchimp" class="me-4" height="36" />
</div>
<div class="flex-grow-1 d-flex align-items-center justify-content-between">
<div class="mb-sm-0 mb-2">
<h6 class="mb-50">Mailchimp</h6>
<span class="small">Email marketing service</span>
</div>
<div>
<div class="form-check form-switch mb-0">
<input type="checkbox" class="form-check-input" checked />
</div>
</div>
</div>
</div>
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/asana.png' %}" alt="asana" class="me-4" height="36" />
</div>
<div class="flex-grow-1 d-flex align-items-center justify-content-between">
<div class="mb-sm-0 mb-2">
<h6 class="mb-50">Asana</h6>
<span class="small">Communication</span>
</div>
<div>
<div class="form-check form-switch mb-0">
<input type="checkbox" class="form-check-input" />
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /Connected Accounts -->
<!-- Social Accounts -->
<div class="card mb-6">
<div class="card-header">
<h5 class="mb-0">Social Accounts</h5>
<p class="my-0 card-subtitle">Display content from social accounts on your site</p>
</div>
<div class="card-body pt-0">
<div class="d-flex mb-4 align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/facebook.png' %}" alt="facebook" class="me-4" height="36" />
</div>
<div class="flex-grow-1 row align-items-center me-n1">
<div class="col-7 mb-sm-0 mb-2">
<h6 class="mb-50">Facebook</h6>
<span class="small">Not Connected</span>
</div>
<div class="col-5 text-end">
<button class="btn btn-label-secondary btn-icon"><i class="icon-base ti tabler-link icon-22px"></i></button>
</div>
</div>
</div>
<div class="d-flex mb-4 align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/twitter-' %}{{ COOKIES.theme|default:theme }}.png" alt="twitter" class="me-4" height="36" data-app-dark-img="icons/brands/twitter-dark.png" data-app-light-img="icons/brands/twitter-light.png" />
</div>
<div class="flex-grow-1 row align-items-center me-n1">
<div class="col-7 mb-sm-0 mb-2">
<h6 class="mb-1">Twitter</h6>
<a href="{% get_theme_variables 'twitter_url' %}" class="small" target="_blank">@{% get_theme_variables 'creator_name' %}</a>
</div>
<div class="col-5 text-end">
<button class="btn btn-label-danger btn-icon"><i class="icon-base ti tabler-trash icon-22px"></i></button>
</div>
</div>
</div>
<div class="d-flex mb-4 align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/linkedin.png' %}" alt="linkedin" class="me-4" height="36" />
</div>
<div class="flex-grow-1 row align-items-center me-n1">
<div class="col-7 mb-sm-0 mb-2">
<h6 class="mb-1">linkedin</h6>
<a href="javascript:void(0);" class="small" target="_blank">@{% get_theme_variables 'creator_name' %}</a>
</div>
<div class="col-5 text-end">
<button class="btn btn-label-danger btn-icon"><i class="icon-base ti tabler-trash icon-22px"></i></button>
</div>
</div>
</div>
<div class="d-flex mb-4 align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/dribbble.png' %}" alt="dribbble" class="me-4" height="36" />
</div>
<div class="flex-grow-1 row align-items-center me-n1">
<div class="col-7 mb-sm-0 mb-2">
<h6 class="mb-50">Dribbble</h6>
<span class="small">Not Connected</span>
</div>
<div class="col-5 text-end">
<button class="btn btn-label-secondary btn-icon"><i class="icon-base ti tabler-link icon-22px"></i></button>
</div>
</div>
</div>
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<img src="{% static 'img/icons/brands/behance.png' %}" alt="behance" class="me-4" height="36" />
</div>
<div class="flex-grow-1 row align-items-center me-n1">
<div class="col-7 mb-sm-0 mb-2">
<h6 class="mb-50">Behance</h6>
<span class="small">Not Connected</span>
</div>
<div class="col-5 text-end">
<button class="btn btn-label-secondary btn-icon"><i class="icon-base ti tabler-link icon-22px"></i></button>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /Social Accounts -->
</div>
<!-- Modals -->
{% include "partials/_modals/modal_edit_user.html" %}
{% include "partials/_modals/modal_upgrade_plan.html" %}
<!-- /Modals -->
{% endblock %}

View File

@@ -0,0 +1,280 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}User View - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/sweetalert2/sweetalert2.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/select2/select2.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/sweetalert2/sweetalert2.js' %}"></script>
<script src="{% static 'vendor/libs/cleave-zen/cleave-zen.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/modal-edit-user.js' %}"></script>
<script src="{% static 'js/app-user-view.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="row">
<!-- User Sidebar -->
<div class="col-xl-4 col-lg-5 order-1 order-md-0">
<!-- User Card -->
<div class="card mb-6">
<div class="card-body pt-12">
<div class="user-avatar-section">
<div class=" d-flex align-items-center flex-column">
<img class="img-fluid rounded mb-4" src="{% static 'img/avatars/1.png' %}" height="120" width="120" alt="User avatar" />
<div class="user-info text-center">
<h5>Violet Mendoza</h5>
<span class="badge bg-label-secondary">Author</span>
</div>
</div>
</div>
<div class="d-flex justify-content-around flex-wrap my-6 gap-0 gap-md-3 gap-lg-4">
<div class="d-flex align-items-center me-5 gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-checkbox icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">1.23k</h5>
<span>Task Done</span>
</div>
</div>
<div class="d-flex align-items-center gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-briefcase icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">568</h5>
<span>Project Done</span>
</div>
</div>
</div>
<h5 class="pb-4 border-bottom mb-4">Details</h5>
<div class="info-container">
<ul class="list-unstyled mb-6">
<li class="mb-2">
<span class="h6">Username:</span>
<span>@violet.dev</span>
</li>
<li class="mb-2">
<span class="h6">Email:</span>
<span>vafgot@vultukir.org</span>
</li>
<li class="mb-2">
<span class="h6">Status:</span>
<span>Active</span>
</li>
<li class="mb-2">
<span class="h6">Role:</span>
<span>Author</span>
</li>
<li class="mb-2">
<span class="h6">Tax id:</span>
<span>Tax-8965</span>
</li>
<li class="mb-2">
<span class="h6">Contact:</span>
<span>(123) 456-7890</span>
</li>
<li class="mb-2">
<span class="h6">Languages:</span>
<span>French</span>
</li>
<li class="mb-2">
<span class="h6">Country:</span>
<span>England</span>
</li>
</ul>
<div class="d-flex justify-content-center">
<a href="javascript:;" class="btn btn-primary me-4" data-bs-target="#editUser" data-bs-toggle="modal">Edit</a>
<a href="javascript:;" class="btn btn-label-danger suspend-user">Suspend</a>
</div>
</div>
</div>
</div>
<!-- /User Card -->
<!-- Plan Card -->
<div class="card mb-6 border border-2 border-primary rounded primary-shadow">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start">
<span class="badge bg-label-primary">Standard</span>
<div class="d-flex justify-content-center">
<sub class="h5 pricing-currency mb-auto mt-1 text-primary">$</sub>
<h1 class="mb-0 text-primary">99</h1>
<sub class="h6 pricing-duration mt-auto mb-3 fw-normal">month</sub>
</div>
</div>
<ul class="list-unstyled g-2 my-6">
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>10 Users</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Up to 10 GB storage</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Basic Support</span></li>
</ul>
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="h6 mb-0">Days</span>
<span class="h6 mb-0">26 of 30 Days</span>
</div>
<div class="progress mb-1 bg-label-primary" style="height: 6px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<small>4 days remaining</small>
<div class="d-grid w-100 mt-6">
<button class="btn btn-primary" data-bs-target="#upgradePlanModal" data-bs-toggle="modal">Upgrade Plan</button>
</div>
</div>
</div>
<!-- /Plan Card -->
</div>
<!--/ User Sidebar -->
<!-- User Content -->
<div class="col-xl-8 col-lg-7 order-0 order-md-1">
<!-- User Pills -->
<div class="nav-align-top">
<ul class="nav nav-pills flex-column flex-md-row mb-6 row-gap-2">
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-account' %}"><i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Account</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-security' %}"><i class="icon-base ti tabler-lock me-1_5 icon-sm"></i>Security</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-billing' %}"><i class="icon-base ti tabler-bookmark me-1_5 icon-sm"></i>Billing & Plans</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="javascript:void(0);"><i class="icon-base ti tabler-bell me-1_5 icon-sm"></i>Notifications</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-connections' %}"><i class="icon-base ti tabler-link me-1_5 icon-sm"></i>Connections</a>
</li>
</ul>
</div>
<!--/ User Pills -->
<!-- Project table -->
<div class="card mb-6">
<!-- Notifications -->
<div class="card-header">
<h5 class="mb-0">Notifications</h5>
<span class="card-subtitle">Change to notification settings, the user will get the update</span>
</div>
<div class="table-responsive">
<table class="table">
<thead class="border-top">
<tr>
<th class="text-nowrap">Type</th>
<th class="text-nowrap text-center">Email</th>
<th class="text-nowrap text-center">Browser</th>
<th class="text-nowrap text-center">App</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-nowrap text-heading">New for you</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck1" checked />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck2" checked />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck3" checked />
</div>
</td>
</tr>
<tr>
<td class="text-nowrap text-heading">Account activity</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck4" checked />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck5" checked />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck6" checked />
</div>
</td>
</tr>
<tr>
<td class="text-nowrap text-heading">A new browser used to sign in</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck7" checked />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck8" checked />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck9" />
</div>
</td>
</tr>
<tr>
<td class="text-nowrap text-heading">A new device is linked</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck10" checked />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck11" />
</div>
</td>
<td>
<div class="form-check d-flex justify-content-center mb-0">
<input class="form-check-input" type="checkbox" id="defaultCheck12" />
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="card-body">
<button type="submit" class="btn btn-primary me-3">Save changes</button>
<button type="reset" class="btn btn-label-secondary">Discard</button>
</div>
<!-- /Notifications -->
</div>
<!-- /Project table -->
</div>
<!--/ User Content -->
</div>
<!-- Modals -->
{% include "partials/_modals/modal_edit_user.html" %}
{% include "partials/_modals/modal_upgrade_plan.html" %}
<!-- /Modals -->
{% endblock %}

View File

@@ -0,0 +1,285 @@
{% extends layout_path %}
{% load static %}
{% load i18n %}
{% block title %}User View - Pages{% endblock %}
{% block vendor_css %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'vendor/libs/sweetalert2/sweetalert2.css' %}" />
<link rel="stylesheet" href="{% static 'vendor/libs/select2/select2.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/sweetalert2/sweetalert2.js' %}"></script>
<script src="{% static 'vendor/libs/cleave-zen/cleave-zen.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/modal-edit-user.js' %}"></script>
<script src="{% static 'js/modal-enable-otp.js' %}"></script>
<script src="{% static 'js/app-user-view.js' %}"></script>
<script src="{% static 'js/app-user-view-security.js' %}"></script>
{% endblock page_js %}
{% block content %}
<div class="row">
<!-- User Sidebar -->
<div class="col-xl-4 col-lg-5 order-1 order-md-0">
<!-- User Card -->
<div class="card mb-6">
<div class="card-body pt-12">
<div class="user-avatar-section">
<div class=" d-flex align-items-center flex-column">
<img class="img-fluid rounded mb-4" src="{% static 'img/avatars/1.png' %}" height="120" width="120" alt="User avatar" />
<div class="user-info text-center">
<h5>Violet Mendoza</h5>
<span class="badge bg-label-secondary">Author</span>
</div>
</div>
</div>
<div class="d-flex justify-content-around flex-wrap my-6 gap-0 gap-md-3 gap-lg-4">
<div class="d-flex align-items-center me-5 gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-checkbox icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">1.23k</h5>
<span>Task Done</span>
</div>
</div>
<div class="d-flex align-items-center gap-4">
<div class="avatar">
<div class="avatar-initial bg-label-primary rounded">
<i class="icon-base ti tabler-briefcase icon-lg"></i>
</div>
</div>
<div>
<h5 class="mb-0">568</h5>
<span>Project Done</span>
</div>
</div>
</div>
<h5 class="pb-4 border-bottom mb-4">Details</h5>
<div class="info-container">
<ul class="list-unstyled mb-6">
<li class="mb-2">
<span class="h6">Username:</span>
<span>@violet.dev</span>
</li>
<li class="mb-2">
<span class="h6">Email:</span>
<span>vafgot@vultukir.org</span>
</li>
<li class="mb-2">
<span class="h6">Status:</span>
<span>Active</span>
</li>
<li class="mb-2">
<span class="h6">Role:</span>
<span>Author</span>
</li>
<li class="mb-2">
<span class="h6">Tax id:</span>
<span>Tax-8965</span>
</li>
<li class="mb-2">
<span class="h6">Contact:</span>
<span>(123) 456-7890</span>
</li>
<li class="mb-2">
<span class="h6">Languages:</span>
<span>French</span>
</li>
<li class="mb-2">
<span class="h6">Country:</span>
<span>England</span>
</li>
</ul>
<div class="d-flex justify-content-center">
<a href="javascript:;" class="btn btn-primary me-4" data-bs-target="#editUser" data-bs-toggle="modal">Edit</a>
<a href="javascript:;" class="btn btn-label-danger suspend-user">Suspend</a>
</div>
</div>
</div>
</div>
<!-- /User Card -->
<!-- Plan Card -->
<div class="card mb-6 border border-2 border-primary rounded primary-shadow">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start">
<span class="badge bg-label-primary">Standard</span>
<div class="d-flex justify-content-center">
<sub class="h5 pricing-currency mb-auto mt-1 text-primary">$</sub>
<h1 class="mb-0 text-primary">99</h1>
<sub class="h6 pricing-duration mt-auto mb-3 fw-normal">month</sub>
</div>
</div>
<ul class="list-unstyled g-2 my-6">
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>10 Users</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Up to 10 GB storage</span></li>
<li class="mb-2 d-flex align-items-center"><i class="icon-base ti tabler-circle-filled icon-10px text-secondary me-2"></i><span>Basic Support</span></li>
</ul>
<div class="d-flex justify-content-between align-items-center mb-1">
<span class="h6 mb-0">Days</span>
<span class="h6 mb-0">26 of 30 Days</span>
</div>
<div class="progress mb-1 bg-label-primary" style="height: 6px;">
<div class="progress-bar" role="progressbar" style="width: 65%;" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<small>4 days remaining</small>
<div class="d-grid w-100 mt-6">
<button class="btn btn-primary" data-bs-target="#upgradePlanModal" data-bs-toggle="modal">Upgrade Plan</button>
</div>
</div>
</div>
<!-- /Plan Card -->
</div>
<!--/ User Sidebar -->
<!-- User Content -->
<div class="col-xl-8 col-lg-7 order-0 order-md-1">
<!-- User Pills -->
<div class="nav-align-top">
<ul class="nav nav-pills flex-column flex-md-row mb-6 row-gap-2">
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-account' %}"><i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Account</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="javascript:void(0);"><i class="icon-base ti tabler-lock me-1_5 icon-sm"></i>Security</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-billing' %}"><i class="icon-base ti tabler-bookmark me-1_5 icon-sm"></i>Billing & Plans</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-notifications' %}"><i class="icon-base ti tabler-bell me-1_5 icon-sm"></i>Notifications</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'app-user-view-connections' %}"><i class="icon-base ti tabler-link me-1_5 icon-sm"></i>Connections</a>
</li>
</ul>
</div>
<!--/ User Pills -->
<!-- Change Password -->
<div class="card mb-6">
<h5 class="card-header">Change Password</h5>
<div class="card-body">
<form id="formChangePassword" method="GET" onsubmit="return false">
<div class="alert alert-warning alert-dismissible" role="alert">
<h5 class="alert-heading mb-1">Ensure that these requirements are met</h5>
<span>Minimum 8 characters long, uppercase & symbol</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<div class="row gx-6">
<div class="mb-4 col-12 col-sm-6 form-password-toggle form-control-validation">
<label class="form-label" for="newPassword">New Password</label>
<div class="input-group input-group-merge">
<input class="form-control" type="password" id="newPassword" name="newPassword" placeholder="&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;" />
<span class="input-group-text cursor-pointer"><i class="icon-base ti tabler-eye-off"></i></span>
</div>
</div>
<div class="mb-4 col-12 col-sm-6 form-password-toggle form-control-validation">
<label class="form-label" for="confirmPassword">Confirm New Password</label>
<div class="input-group input-group-merge">
<input class="form-control" type="password" name="confirmPassword" id="confirmPassword" placeholder="&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;&#xb7;" />
<span class="input-group-text cursor-pointer"><i class="icon-base ti tabler-eye-off"></i></span>
</div>
</div>
<div>
<button type="submit" class="btn btn-primary me-2">Change Password</button>
</div>
</div>
</form>
</div>
</div>
<!--/ Change Password -->
<!-- Two-steps verification -->
<div class="card mb-6">
<div class="card-header">
<h5 class="mb-0">Two-steps verification</h5>
<span class="card-subtitle mt-0">Keep your account secure with authentication step.</span>
</div>
<div class="card-body pt-0">
<h6 class="mb-1">SMS</h6>
<div class="mb-4">
<div class="d-flex w-100 action-icons">
<input id="defaultInput" class="form-control me-4" type="text" placeholder="+1(968) 945-8832" />
<a href="javascript:;" class="btn btn-icon btn-text-secondary" data-bs-target="#enableOTP" data-bs-toggle="modal"><i class="icon-base ti tabler-edit icon-22px"></i></a>
<a href="javascript:;" class="btn btn-icon btn-text-secondary"><i class="icon-base ti tabler-trash icon-22px"></i></a>
</div>
</div>
<p class="mb-0">
Two-factor authentication adds an additional layer of security to your account by requiring more than just a password to log in.
<a href="javascript:void(0);" class="text-primary">Learn more.</a>
</p>
</div>
</div>
<!--/ Two-steps verification -->
<!-- Recent Devices -->
<div class="card mb-6">
<h5 class="card-header">Recent Devices</h5>
<div class="table-responsive table-border-bottom-0">
<table class="table">
<thead>
<tr>
<th class="text-truncate">Browser</th>
<th class="text-truncate">Device</th>
<th class="text-truncate">Location</th>
<th class="text-truncate">Recent Activities</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-truncate"><i class="icon-base ti tabler-brand-windows icon-md text-info me-4"></i> <span class="text-heading">Chrome on Windows</span></td>
<td class="text-truncate">HP Spectre 360</td>
<td class="text-truncate">Switzerland</td>
<td class="text-truncate">10, July 2021 20:07</td>
</tr>
<tr>
<td class="text-truncate"><i class="icon-base ti tabler-device-mobile icon-md text-danger me-4"></i> <span class="text-heading">Chrome on iPhone</span></td>
<td class="text-truncate">iPhone 12x</td>
<td class="text-truncate">Australia</td>
<td class="text-truncate">13, July 2021 10:10</td>
</tr>
<tr>
<td class="text-truncate"><i class="icon-base ti tabler-brand-android icon-md text-success me-4"></i> <span class="text-heading">Chrome on Android</span></td>
<td class="text-truncate">Oneplus 9 Pro</td>
<td class="text-truncate">Dubai</td>
<td class="text-truncate">14, July 2021 15:15</td>
</tr>
<tr>
<td class="text-truncate"><i class="icon-base ti tabler-brand-apple icon-md me-4"></i> <span class="text-heading">Chrome on MacOS</span></td>
<td class="text-truncate">Apple iMac</td>
<td class="text-truncate">India</td>
<td class="text-truncate">16, July 2021 16:17</td>
</tr>
</tbody>
</table>
</div>
</div>
<!--/ Recent Devices -->
</div>
<!--/ User Content -->
</div>
<!-- Modals -->
{% include "partials/_modals/modal_edit_user.html" %}
{% include "partials/_modals/modal_enable_otp.html" %}
{% include "partials/_modals/modal_upgrade_plan.html" %}
<!-- /Modals -->
{% endblock %}

View File

@@ -0,0 +1,37 @@
from django.urls import path
from .views import UsersView
from django.contrib.auth.decorators import login_required
urlpatterns = [
path(
"app/user/list/",
login_required(UsersView.as_view(template_name="app_user_list.html")),
name="app-user-list",
),
path(
"app/user/view/account/",
login_required(UsersView.as_view(template_name="app_user_view_account.html")),
name="app-user-view-account",
),
path(
"app/user/view/security/",
login_required(UsersView.as_view(template_name="app_user_view_security.html")),
name="app-user-view-security",
),
path(
"app/user/view/billing/",
login_required(UsersView.as_view(template_name="app_user_view_billing.html")),
name="app-user-view-billing",
),
path(
"app/user/view/notifications/",
login_required(UsersView.as_view(template_name="app_user_view_notifications.html")),
name="app-user-view-notifications",
),
path(
"app/user/view/connections/",
login_required(UsersView.as_view(template_name="app_user_view_connections.html")),
name="app-user-view-connections",
),
]

View File

@@ -0,0 +1,21 @@
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 users/urls.py file for more pages.
"""
class UsersView(PermissionRequiredMixin, TemplateView):
permission_required = ("user.view_user", "user.delete_user", "user.change_user", "user.add_user")
# 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