update
This commit is contained in:
@@ -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-->
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
101
templates/dashboard/main/pages/product.html
Normal file
101
templates/dashboard/main/pages/product.html
Normal 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 %}
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
126
templates/dashboard/main/product/create.html
Normal file
126
templates/dashboard/main/product/create.html
Normal 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 %}
|
||||
131
templates/dashboard/main/product/edit.html
Normal file
131
templates/dashboard/main/product/edit.html
Normal 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 %}
|
||||
116
templates/dashboard/main/product/products.html
Normal file
116
templates/dashboard/main/product/products.html
Normal 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 %}
|
||||
Reference in New Issue
Block a user