This commit is contained in:
2024-12-13 08:31:39 +07:00
parent 1ead9da097
commit 5bdf96851e
3554 changed files with 400518 additions and 83328 deletions

View File

@@ -13,27 +13,19 @@
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i,700,700i,900&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/font-awesome.css' %}">
<!-- ico-font-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/icofont.css' %}">
<!-- Themify icon-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/themify.css' %}">
<!-- Flag icon-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/flag-icon.css' %}">
<!-- Feather icon-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/feather-icon.css' %}">
<!-- Plugins css start-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/slick.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/slick-theme.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/scrollbar.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/animate.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/datatables.css' %}">
<!-- Plugins css Ends-->
<!-- Bootstrap css-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/vendors/bootstrap.css' %}">
<!-- App css-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/style.css' %}">
<link id="color" rel="stylesheet" href="{% static 'admin/assets/css/color-1.css' %}" media="screen">
<!-- Responsive css-->
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/apexcharts.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'admin/assets/css/responsive.css' %}">
<style>
svg.verify-ico {
@@ -199,6 +191,7 @@
<li><a href="{% url "AdminHomePage" %}">Home Page</a></li>
<li><a href="{% url "AdminAboutPage" %}">About Page</a></li>
<li><a href="{% url "AdminServicePage" %}">Service Page</a></li>
<li><a href="{% url "AdminProductPage" %}">Product Page</a></li>
<li><a href="{% url "AdminProjectPage" %}">Project Page</a></li>
<li><a href="{% url "AdminContactPage" %}">Contact Page</a></li>
</ul>
@@ -250,7 +243,20 @@
<li><a href="{% url 'adminServiceCreate' %}">Create Service</a></li>
</ul>
</li>
<li class="sidebar-list"><a class="sidebar-link sidebar-title" href="#">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-others"></use>
</svg>
<svg class="fill-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#fill-others"></use>
</svg><span>Products</span></a>
<ul class="sidebar-submenu">
<li><a href="{% url 'adminProductList' %}">Product List</a></li>
<li><a href="{% url 'adminProductCreate' %}">Create Product</a></li>
</ul>
</li>
<li class="sidebar-list"><a class="sidebar-link sidebar-title" href="#">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-job-search"></use>
@@ -275,17 +281,6 @@
<li><a href="{% url 'createUser' %}">Create User</a></li>
</ul>
</li>
<li class="sidebar-list"><a class="sidebar-link sidebar-title" href="#">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-form"></use>
</svg>
<svg class="fill-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#fill-form"></use>
</svg><span>Form Data</span></a>
<ul class="sidebar-submenu">
<li><a href="{% url "AdminContactList" %}">Contact Form</a></li>
</ul>
</li>
<li class="sidebar-list"><a class="sidebar-link sidebar-title" href="#">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-learning"></use>
@@ -308,13 +303,7 @@
<li><a href="{% url "AdminSEOSettings" %}">SEO</a></li>
</ul>
</li>
{% endif %}
<li class="sidebar-main-title">
<div>
<h6>Applications</h6>
</div>
</li>
{% endif %}
<li class="sidebar-list">
<a href="sidebar-link sidebar-title link-nav"></a>
</li>
@@ -342,11 +331,11 @@
</div>
</div>
<!-- latest jquery-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="{% static 'admin/assets/js/jquery.js' %}"></script>
<!-- Bootstrap js-->
<script src="{% static 'admin/assets/js/bootstrap/bootstrap.bundle.min.js' %}"></script>
<script src="{% static 'admin/assets/js/bootstrap/bootstrap.bundle.js' %}"></script>
<!-- feather icon js-->
<script src="{% static 'admin/assets/js/icons/feather-icon/feather.min.js' %}"></script>
<script src="{% static 'admin/assets/js/icons/feather-icon/feather.js' %}"></script>
<script src="{% static 'admin/assets/js/icons/feather-icon/feather-icon.js' %}"></script>
<!-- scrollbar js-->
<script src="{% static 'admin/assets/js/scrollbar/simplebar.js' %}"></script>
@@ -354,32 +343,23 @@
<!-- Sidebar jquery-->
<script src="{% static 'admin/assets/js/config.js' %}"></script>
<!-- Plugins JS start-->
<script src="{% static 'admin/assets/js/chart/apex-chart/apexcharts.js' %}"></script>
<script src="{% static 'admin/assets/js/sidebar-menu.js' %}"></script>
<script src="{% static 'admin/assets/js/clock.js' %}"></script>
<script src="{% static 'admin/assets/js/slick/slick.min.js' %}"></script>
<script src="{% static 'admin/assets/js/slick/slick.js' %}"></script>
<script src="{% static 'admin/assets/js/header-slick.js' %}"></script>
<script src="{% static 'admin/assets/js/chart/apex-chart/apex-chart.js' %}"></script>
<script src="{% static 'admin/assets/js/chart/apex-chart/stock-prices.js' %}"></script>
<script src="{% static 'admin/assets/js/chart/apex-chart/moment.min.js' %}"></script>
<script src="{% static 'admin/assets/js/notify/bootstrap-notify.min.js' %}"></script>
<script src="{% static 'admin/assets/js/notify/bootstrap-notify.js' %}"></script>
<script src="{% static 'admin/assets/js/dashboard/default.js' %}"></script>
<script src="{% static 'admin/assets/js/notify/index.js' %}"></script>
<script src="{% static 'admin/assets/js/typeahead/handlebars.js' %}"></script>
<script src="{% static 'admin/assets/js/typeahead/typeahead.bundle.js' %}"></script>
<script src="{% static 'admin/assets/js/typeahead/typeahead.custom.js' %}"></script>
<script src="{% static 'admin/assets/js/typeahead-search/handlebars.js' %}"></script>
<script src="{% static 'admin/assets/js/typeahead-search/typeahead-custom.js' %}"></script>
<script src="{% static 'admin/assets/js/height-equal.js' %}"></script>
<script src="{% static 'admin/assets/js/animation/wow/wow.min.js' %}"></script>
<script src="{% static 'admin/assets/js/datatable/datatables/jquery.dataTables.min.js' %}"></script>
<script src="{% static 'admin/assets/js/animation/wow/wow.js' %}"></script>
<script src="{% static 'admin/assets/js/datatable/datatables/jquery.dataTables.js' %}"></script>
<script src="{% static 'admin/assets/js/datatable/datatables/datatable.custom.js' %}"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- Plugins JS Ends-->
<!-- Theme js-->
<script src="{% static 'admin/assets/js/sweetalert2.js' %}"></script>
<script src="{% static 'admin/assets/js/script.js' %}"></script>
<script src="{% static 'admin/assets/js/theme-customizer/customizer.js' %}"></script>
{% include "error/demo_mode.html" %}
<!-- Plugin used-->
<script>new WOW().init();</script>

View File

@@ -17,7 +17,6 @@
#ww_7b6924a9addc2 {
background-color: #9E9E9E;
background-image: url(https://app1.weatherwidget.org/skin/img/bg/rainy_day.jpg);
height: 337px !important;
background-size: cover;
background-repeat: no-repeat;
@@ -125,6 +124,32 @@
</div>
</div>
</div>
<div class="col-xxl-auto col-xl-3 col-sm-6 box-col-6">
<div class="row">
<div class="col-xl-12">
<div class="col-xl-12">
<div class="card widget-1">
<div class="card-body">
<div class="widget-content">
<div class="widget-round primary">
<div class="bg-round">
<i class="fa fa-laptop" aria-hidden="true"></i>
<svg class="half-circle svg-fill">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#halfcircle"></use>
</svg>
</div>
</div>
<div>
<h4>{{ product.count }}</h4><span class="f-light">Products</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-xxl-auto col-xl-3 col-sm-6 box-col-6">
<div class="row">
<div class="col-xl-12">
@@ -194,96 +219,7 @@
</div>
</div>
</div>
<div class="col-xxl-12 col-xl-12 col-sm-12 box-col-12 lghide1">
<div class="row">
<div class="col-xxl-6 col-xl-6 box-col-12">
<div class="card widget-1 widget-with-chart">
<div class="card-body">
<div class="widget-content">
<div class="widget-round success">
<div class="bg-round">
<i class="fa fa-file-text-o" aria-hidden="true"></i>
<svg class="half-circle svg-fill">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#halfcircle"></use>
</svg>
</div>
</div>
<div>
<h4>{{ contacts.count }}</h4><span class="f-light">Contacts</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endif %}
{% if request.user.role == 'Admin' %}
<div class="col-xxl-8 col-xl-7 col-md-6 col-sm-7 notification box-col-6">
<div class="card height-equal">
<div class="card-header card-no-border">
<div class="header-top">
<h5 class="m-0">Recent Contacts</h5>
<div class="card-header-right-icon">
</div>
</div>
</div>
<div class="card-body pt-0">
{% if contacts %}
<ul>
{% for contact in contacts|slice:":3" %}
<li class="d-flex">
<div class="activity-dot-{{ contact|random_class }}"></div>
<div class="w-100 ms-3">
<p class="d-flex justify-content-between mb-2"><span class="date-content light-background">{{ contact.created_at }} </span>
</p>
<h6><a href="#" data-bs-toggle="modal" data-bs-target="#editcontactModal{{ contact.id }}">{{ contact.name }}</a></h6>
<!-- Bootstrap 4 Modal -->
<div class="modal fade" id="editcontactModal{{ contact.id }}" tabindex="-1" role="dialog" aria-labelledby="editcontactModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="editcontactModalLabel">{{contact.name}}'s Submission</h5>
</div>
<div class="modal-body">
<!-- Include your edit form here -->
<p><strong>Name:</strong> {{ contact.name }}</p>
<p><strong>Email:</strong> <a href="mailto:{{ contact.email }}">{{ contact.email }}</a></p>
<p><strong>Phone:</strong> {{ contact.phone }}</p>
<p><strong>Subject:</strong> {{ contact.subject }}</p>
<p><strong>Message:</strong> {{ contact.message }}</p>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<span class="f-light">{{ contact.message|truncatewords:'12' }}</span>
</div>
</li>
{% endfor %}
</ul>
{% else %}
<ul>
<li class="">
<div class="w-100">
<h6>You don't have any contacts.</h6>
</div>
</li>
</ul>
{% endif %}
</div>
</div>
</div>
{% endif %}
</div>
</div>
<!-- Container-fluid Ends-->

View File

@@ -71,7 +71,7 @@
<h6 class="mb-3">First Section</h6>
<div class="row">
<div class="col-12">
<form method="post">
<form method="POST" enctype="multipart/form-data">
{{form.media}}
{% csrf_token %}
<div class="row mb-2">
@@ -104,7 +104,7 @@
{{ form.years_of_experience }}
</div>
</div>
<div class="row mb-2">
<div class="col-md-4 col-sm-12 mb-2">
<label for="{{ form.feature1.id_for_label }}">Feature 01</label>
@@ -122,8 +122,8 @@
<div class="row mb-2">
<div class="col-md-12 col-sm-12 mb-2">
<label for="{{ form.long_description.id_for_label }}">Description </label>
{{ form.description }}
<label for="{{ form.long_description.id_for_label }}">Description</label>
{{ form.long_description }}
</div>
</div>
<!-- Ensure proper indentation for the closing </form> tag -->
@@ -156,7 +156,7 @@
<h6 class="mb-3">SEO</h6>
<div class="row">
<div class="col-12">
<form method="post">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
<div class="col-md-6 col-sm-12 mb-2">

View File

@@ -97,7 +97,7 @@
<h6 class="mb-3">SEO</h6>
<div class="row">
<div class="col-12">
<form method="post">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
<div class="col-md-6 col-sm-12 mb-2">

View File

@@ -99,7 +99,7 @@
<h6 class="mb-3">About Section</h6>
<div class="row">
<div class="col-12">
<form method="post">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.media}}
<div class="row mb-2">
@@ -170,6 +170,21 @@
</div>
</div>
<div class="row mb-1">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<h6 class="mb-3">Product Section</h6>
<div class="d-flex justify-content-start">
<a href="{% url 'adminProductList' %}" class="btn btn-primary" style='margin-right:5px;'><i class="fa fa-eye"></i> View</a>
<a href="{% url 'adminProductCreate' %}" class="btn btn-primary"><i class="fa fa-plus"></i> Create</a>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col-md-12">
<div class="card">
@@ -205,7 +220,7 @@
<h6 class="mb-3">SEO</h6>
<div class="row">
<div class="col-12">
<form method="post">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
<div class="col-md-6 col-sm-12 mb-2">

View File

@@ -0,0 +1,101 @@
{% extends 'dashboard/base.html' %}
{% load static %}
{% block title %}{{ title }} - {{ seo_settings.meta_title }}{% endblock title %}
{% block content %}
<div class="page-body">
<div class="container-fluid">
<div class="page-title">
<div class="row">
<div class="col-6">
<h3>Product Page</h3>
</div>
<div class="col-6">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'adminHome' %}">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-home"></use>
</svg>
</a>
</li>
<li class="breadcrumb-item">Pages</li>
<li class="breadcrumb-item active">Service Page</li>
</ol>
</div>
</div>
</div>
</div>
<!-- Container-fluid starts-->
<div class="container-fluid">
<div class="row project-cards">
<div class="col-md-12 project-list">
</div>
<div class="container">
{% if SeoForm.errors %}
<div class="alert alert-danger">
<strong>Error:</strong>
<ul>
{% for field, errors in SeoForm.errors.items %}
{% for error in errors %}
<li>{{ field }}: {{ error }}</li>
{% endfor %}
{% endfor %}
</ul>
</div>
{% endif %}
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endfor %}
{% endif %}
<div class="row mb-1">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<h6 class="mb-3">Product Section</h6>
<div class="d-flex justify-content-start">
<a href="{% url 'adminProductList' %}" class="btn btn-primary" style='margin-right:5px;'><i class="fa fa-eye"></i> View</a>
<a href="{% url 'adminProductCreate' %}" class="btn btn-primary"><i class="fa fa-plus"></i> Create</a>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<h6 class="mb-3">SEO</h6>
<div class="row">
<div class="col-12">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
<div class="col-md-6 col-sm-12 mb-2">
<label for="{{ SeoForm.meta_title.id_for_label }}">Meta Title</label>
{{ SeoForm.meta_title }}
</div>
<div class="col-md-6 col-sm-12">
<label for="{{ SeoForm.meta_description.id_for_label }}">Meta Description</label>
{{ SeoForm.meta_description }}
</div>
</div>
<!-- Ensure proper indentation for the closing </form> tag -->
<button type="submit" class="btn btn-primary mt-3 w-100">Save</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Container-fluid Ends-->
{% endblock %}

View File

@@ -73,7 +73,7 @@
<h6 class="mb-3">SEO</h6>
<div class="row">
<div class="col-12">
<form method="post">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
<div class="col-md-6 col-sm-12 mb-2">

View File

@@ -72,7 +72,7 @@
<h6 class="mb-3">SEO</h6>
<div class="row">
<div class="col-12">
<form method="post">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
<div class="col-md-6 col-sm-12 mb-2">

View File

@@ -0,0 +1,126 @@
{% extends 'dashboard/base.html' %}
{% load static %}
{% block title %}{{ title }} - {{ seo_settings.meta_title }}{% endblock title %}
{% block content %}
<style>
label.switch {
margin-top: -35px;
}
@media only screen and (max-width: 600px) {
#ver-pills-tab {
display: -webkit-box;
margin-bottom: 18px;
}
}
</style>
<div class="page-body">
<div class="container-fluid">
<div class="page-title">
<div class="row">
<div class="col-6">
<h3>Create Product</h3>
</div>
<div class="col-6">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'adminHome' %}">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-home"></use>
</svg>
</a>
</li>
<li class="breadcrumb-item">Products</li>
<li class="breadcrumb-item active">Create Product</li>
</ol>
</div>
</div>
</div>
</div>
<!-- Container-fluid starts-->
<div class="container-fluid">
<div class="row project-cards">
<div class="col-md-12 project-list">
</div>
<div class="container">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.media}}
{% if form.errors %}
<div class="alert alert-danger">
<strong>Error:</strong>
<ul>
{% for field, errors in form.errors.items %}
{% for error in errors %}
<li>{{ field }}: {{ error }}</li>
{% endfor %}
{% endfor %}
</ul>
</div>
{% endif %}
<div class="row mb-3">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<label for="{{ form.detail_page_image.id_for_label }}" class="form-label">Product Detail Page Image</label>
{{ form.detail_page_image }}
</div>
</div>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.name.id_for_label }}" class="form-label">Name</label>
{{ form.name }}
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.slug.id_for_label }}" class="form-label">Slug ( Leave blank to auto generate )</label>
{{ form.slug }}
</div>
</div>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.fontawesome_icon_class.id_for_label }}" class="form-label">Font-Awesome Icon Class ( <a href="https://fontawesome.com/v5/search?m=free" target="_blank">Use V5</a> )</label>
{{ form.fontawesome_icon_class }}
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.short_description.id_for_label }}" class="form-label">Short Description</label>
{{ form.short_description }}
</div>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<label for="{{ form.detail_page_description.id_for_label }}" class="form-label">Detail Page Description</label>
<br>
<div class="form-control ckf" style="">{{ form.detail_page_description }}</div>
</div>
</div>
</div>
</div>
<button class="btn btn-primary mb-3" type="submit">Save</button>
</form>
</div>
</div>
</div>
</div>
<!-- Container-fluid Ends-->
{% endblock %}

View File

@@ -0,0 +1,131 @@
{% extends 'dashboard/base.html' %}
{% load static %}
{% block title %}{{ title }} - {{ seo_settings.meta_title }}{% endblock title %}
{% block content %}
<style>
label.switch {
margin-top: -35px;
}
@media only screen and (max-width: 600px) {
#ver-pills-tab {
display: -webkit-box;
margin-bottom: 18px;
}
}
</style>
<div class="page-body">
<div class="container-fluid">
<div class="page-title">
<div class="row">
<div class="col-6">
<h3>Edit Product</h3>
</div>
<div class="col-6">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'adminHome' %}">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-home"></use>
</svg>
</a>
</li>
<li class="breadcrumb-item">Products</li>
<li class="breadcrumb-item active">Edit Product</li>
</ol>
</div>
</div>
</div>
</div>
<!-- Container-fluid starts-->
<div class="container-fluid">
<div class="row project-cards">
<div class="col-md-12 project-list">
</div>
<div class="container">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.media}}
{% if form.errors %}
<div class="alert alert-danger">
<strong>Error:</strong>
<ul>
{% for field, errors in form.errors.items %}
{% for error in errors %}
<li>{{ field }}: {{ error }}</li>
{% endfor %}
{% endfor %}
</ul>
</div>
{% endif %}
<div class="row mb-3">
<div class="col-md-12">
<div class="card">
<div class="card-body">
{% if product.detail_page_image %}
<img class="mb-2" style="border-radius:5px;" src="{{ product.detail_page_image.url }}" width="100" alt="Current Image">
{% endif %}
<br>
<label for="{{ form.detail_page_image.id_for_label }}" class="form-label">Product Detail Page Image</label>
<br>
{{ form.detail_page_image }}
</div>
</div>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.name.id_for_label }}" class="form-label">Name</label>
{{ form.name }}
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.slug.id_for_label }}" class="form-label">Slug ( Leave blank to auto generate )</label>
{{ form.slug }}
</div>
</div>
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.fontawesome_icon_class.id_for_label }}" class="form-label">Font-Awesome Icon Class ( <a href="https://fontawesome.com/v5/search?m=free" target="_blank">Use V5</a> )</label>
{{ form.fontawesome_icon_class }}
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<label for="{{ form.short_description.id_for_label }}" class="form-label">Short Description</label>
{{ form.short_description }}
</div>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<label for="{{ form.detail_page_description.id_for_label }}" class="form-label">Detail Page Description</label>
<br>
<div class="form-control ckf" style="">{{ form.detail_page_description }}</div>
</div>
</div>
</div>
</div>
<button class="btn btn-primary mb-3" type="submit">Save</button>
</form>
</div>
</div>
</div>
</div>
<!-- Container-fluid Ends-->
{% endblock %}

View File

@@ -0,0 +1,116 @@
{% extends 'dashboard/base.html' %}
{% load static %}
{% block title %}{{ title }} - {{ seo_settings.meta_title }}{% endblock title %}
{% block content %}
<div class="page-body">
<div class="container-fluid">
<div class="page-title">
<div class="row">
<div class="col-6">
<h3>Products</h3>
</div>
<div class="col-6">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'adminHome' %}">
<svg class="stroke-icon">
<use href="{% static 'admin/assets/svg/icon-sprite.svg' %}#stroke-home"></use>
</svg></a></li>
<li class="breadcrumb-item">Products</li>
<li class="breadcrumb-item active">Product List</li>
</ol>
</div>
</div>
</div>
</div>
<!-- Container-fluid starts-->
<div class="container-fluid">
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endfor %}
{% endif %}
<div class="col-md-12 project-list">
<div class="card">
<div class="row">
<div class="col-md-6 p-0 d-flex">
<ul class="nav nav-tabs border-tab" id="top-tab" role="tablist">
<li class="nav-item"><a class="nav-link active" id="top-home-tab" data-bs-toggle="tab" href="#top-home" role="tab" aria-controls="top-home" aria-selected="true"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-target"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="6"></circle><circle cx="12" cy="12" r="2"></circle></svg>All Products</a></li>
</ul>
</div>
<div class="col-md-6 p-0">
<div class="form-group mb-0 me-0"></div><a class="btn btn-primary" href="{% url 'adminProductCreate' %}"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus-square"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>Create New Blog</a>
</div>
</div>
</div>
</div>
<div class="row">
<!-- Zero Configuration Starts-->
<div class="col-sm-12">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<table class="display" id="basic-1">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Slug</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{% for product in products %}
<tr>
<td>{{ forloop.counter }}</td>
<td><a href="{% url 'adminProductEdit' product.slug %}">{{ product.name }}</a></td>
<td>{{ product.slug }}</td>
<td>
<ul class="action">
<li class="edit"> <a href="{% url 'adminProductEdit' product.slug %}"><i class="icon-pencil-alt"></i></a></li>
<li class="delete"><a href="#" data-slug="{{ product.slug }}"><i class="icon-trash"></i></a></li>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
var deleteButtons = document.querySelectorAll('.icon-trash');
deleteButtons.forEach(function(button) {
button.addEventListener('click', function (event) {
event.preventDefault();
var url = "{% url 'adminProductDelete' id=product.id %}";
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
window.location.href = url;
}
})
});
});
});
</script>
</ul>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- Zero Configuration Ends-->
</div>
</div>
</div>
{% endblock %}