This commit is contained in:
2024-12-20 16:07:11 +07:00
parent 5bdf96851e
commit 1ebf0fda02
8 changed files with 257 additions and 198 deletions

4
product/views.py Normal file → Executable file
View File

@@ -16,10 +16,14 @@ def productFrontPage(request):
return render(request, 'front/main/product.html', context) return render(request, 'front/main/product.html', context)
def productDetail(request, slug): def productDetail(request, slug):
seo = productPageSEO.objects.first()
sliders = sliderSection.objects.all()
product = get_object_or_404(productSection, slug=slug) product = get_object_or_404(productSection, slug=slug)
products = productSection.objects.all() products = productSection.objects.all()
context = { context = {
'sliders' : sliders,
'seo' : seo,
'product' : product, 'product' : product,
'products' : products, 'products' : products,
} }

5
service/views.py Normal file → Executable file
View File

@@ -17,14 +17,17 @@ def serviceFrontPage(request):
def serviceDetail(request, slug): def serviceDetail(request, slug):
service = get_object_or_404(serviceSection, slug=slug) service = get_object_or_404(serviceSection, slug=slug)
seo = servicePageSEO.objects.first()
services = serviceSection.objects.all() services = serviceSection.objects.all()
sliders = sliderSection.objects.all()
context = { context = {
'sliders' : sliders,
'seo' : seo,
'service' : service, 'service' : service,
'services' : services, 'services' : services,
} }
return render(request, 'front/main/partial/service-details.html', context) return render(request, 'front/main/partial/service-details.html', context)
def error_404(request, exception): def error_404(request, exception):
return render(request, 'error/404.html', status=404) return render(request, 'error/404.html', status=404)

95
static/front/assets/css/style.css Normal file → Executable file
View File

@@ -274,7 +274,7 @@ video {
z-index: 99 z-index: 99
} }
.creasoft-wrap { .sectionblock-wrap {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
z-index: 1 z-index: 1
@@ -300,11 +300,11 @@ video {
} }
.line_wrap.layout2 { .line_wrap.layout2 {
border-left: 1px solid rgba(246, 246, 246, .02) border-left: 1px solid rgba(246, 246, 246, .06)
} }
.line_wrap.layout2 .line_item { .line_wrap.layout2 .line_item {
border-right: 1px solid rgba(246, 246, 246, .02) border-right: 1px solid rgba(246, 246, 246, .06)
} }
.line_wrap:before { .line_wrap:before {
@@ -315,8 +315,8 @@ video {
position: absolute; position: absolute;
-webkit-animation: scroll1 15s ease-out infinite; -webkit-animation: scroll1 15s ease-out infinite;
animation: scroll1 15s ease-out infinite; animation: scroll1 15s ease-out infinite;
background-image: -webkit-gradient(linear, left bottom, left top, from(#000000), to(transparent)); background-image: -webkit-gradient(linear, left , right, from(#000000), to(transparent));
background-image: linear-gradient(0deg, #39A5C8, transparent) background-image: linear-gradient(0deg, #fc7a01, transparent)
} }
.line_item { .line_item {
@@ -345,15 +345,15 @@ video {
.line_item:nth-child(odd):before { .line_item:nth-child(odd):before {
-webkit-animation: scroll2 15s ease-out infinite; -webkit-animation: scroll2 15s ease-out infinite;
animation: scroll2 15s ease-out infinite; animation: scroll2 15s ease-out infinite;
background-image: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#000000)); background-image: -webkit-gradient(linear, left , right , from(transparent), to(#000000));
background-image: linear-gradient(0deg, transparent, #39A5C8) background-image: linear-gradient(0deg, transparent, #fc7a01)
} }
.line_item:nth-child(even):before { .line_item:nth-child(even):before {
-webkit-animation: scroll1 15s ease-out infinite; -webkit-animation: scroll1 15s ease-out infinite;
animation: scroll1 15s ease-out infinite; animation: scroll1 15s ease-out infinite;
background-image: -webkit-gradient(linear, left bottom, left top, from(#000000), to(transparent)); background-image: -webkit-gradient(linear, left, right, from(#000000), to(transparent));
background-image: linear-gradient(0deg, #39A5C8, transparent) background-image: linear-gradient(0deg, #fc7a01, transparent)
} }
@-webkit-keyframes scroll1 { @-webkit-keyframes scroll1 {
@@ -414,7 +414,7 @@ video {
.breadcrumbs { .breadcrumbs {
position: relative; position: relative;
height: 480px; height: 380px;
background-size: cover; background-size: cover;
background-position: center center; background-position: center center;
z-index: 1 z-index: 1
@@ -433,7 +433,7 @@ video {
top: 0; top: 0;
height: 100%; height: 100%;
width: 100%; width: 100%;
background-color: #17161a; background-color: #39A5C8;
opacity: .93; opacity: .93;
z-index: -1 z-index: -1
} }
@@ -2234,7 +2234,7 @@ only screen and (min-width:768px) and (max-width:991px) {
.our-partner { .our-partner {
padding: 100px 0; padding: 100px 0;
background-color: #191a1c background-color: #39A5C8
} }
@media(max-width:767px) { @media(max-width:767px) {
@@ -2245,7 +2245,7 @@ only screen and (min-width:768px) and (max-width:991px) {
.our-partner .sec-title { .our-partner .sec-title {
margin-bottom: 10px; margin-bottom: 10px;
border-right: 1px solid #75dab4 border-right: 1px solid #39A5C8
} }
.our-partner .sec-title .swiper-button-next-c, .our-partner .sec-title .swiper-button-next-c,
@@ -2255,7 +2255,7 @@ only screen and (min-width:768px) and (max-width:991px) {
display: inline-block; display: inline-block;
height: 40px; height: 40px;
width: 40px; width: 40px;
background-color: #0d0d0f; background-color: #39A5C8;
border-radius: 50%; border-radius: 50%;
line-height: 40px; line-height: 40px;
text-align: center; text-align: center;
@@ -2266,7 +2266,7 @@ only screen and (min-width:768px) and (max-width:991px) {
.our-partner .sec-title .swiper-button-next-c:hover, .our-partner .sec-title .swiper-button-next-c:hover,
.our-partner .sec-title .swiper-button-prev-c:hover { .our-partner .sec-title .swiper-button-prev-c:hover {
color: #000; color: #000;
background-color: #75dab4 background-color: #39A5C8
} }
.our-partner .sec-title .swiper-button-prev-c { .our-partner .sec-title .swiper-button-prev-c {
@@ -2525,7 +2525,6 @@ only screen and (min-width:768px) and (max-width:991px) {
footer { footer {
position: relative; position: relative;
padding-top: 100px;
margin-top: -100px; margin-top: -100px;
background-size: cover; background-size: cover;
background-position: center center; background-position: center center;
@@ -2903,7 +2902,7 @@ footer.error {
display: none display: none
} }
.creasoft-wrap.layout2 { .sectionblock-wrap.layout2 {
background-repeat: repeat; background-repeat: repeat;
background-color: #39A5C8 background-color: #39A5C8
} }
@@ -5575,4 +5574,66 @@ scrollbar-track {
.swiper-wrapper{ .swiper-wrapper{
margin-top: 35px; margin-top: 35px;
}
.footheader {
position:relative;
text-align:center;
background: #39A5C8;
color:white;
}
.footheaderwaves {
position:relative;
width: 100%;
height:15vh;
margin-bottom:-7px; /*Fix for safari gap*/
min-height:100px;
max-height:150px;
}
.footcontent {
position:relative;
height:20vh;
text-align:center;
background-color: white;
}
.footheaderparallax > use {
animation: move-forever 25s cubic-bezier(.55,.5,.45,.5) infinite;
}
.footheaderparallax > use:nth-child(1) {
animation-delay: -2s;
animation-duration: 7s;
}
.footheaderparallax > use:nth-child(2) {
animation-delay: -3s;
animation-duration: 10s;
}
.footheaderparallax > use:nth-child(3) {
animation-delay: -4s;
animation-duration: 13s;
}
.footheaderparallax > use:nth-child(4) {
animation-delay: -5s;
animation-duration: 20s;
}
@keyframes move-forever {
0% {
transform: translate3d(-90px,0,0);
}
100% {
transform: translate3d(85px,0,0);
}
}
/*Shrinking for mobile*/
@media (max-width: 768px) {
.footheaderwaves {
height:40px;
min-height:40px;
}
.footcontent {
height:30vh;
}
} }

184
templates/front/base.html Normal file → Executable file
View File

@@ -156,99 +156,113 @@
</div> </div>
</div> </div>
</header> </header>
{% block content %}{% endblock content %}
<!--====================== Footer Section ======================-->
{% block content %}{% endblock content %} <!--====================== Wave Section ======================-->
<footer>
<!--====================== Footer Section ======================--> <div class="footheader">
<div>
<footer> <svg class="footheaderwaves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
<div class="container"> viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
<div class="footer-top"> <defs>
<div class="row"> <path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" />
<div class="col-md-3 col-lg-3 col-xl-3"> </defs>
<div class="footer-widget"> <g class="footheaderparallax">
<div class="footer-logo"> <use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(0,0,0,0.7" />
<a href="index.html"><img src="{{ settings.logo_light.url }}" alt></a> <use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(0,0,0,0.5)" />
</div> <use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(0,0,0,0.3)" />
<p>{{ header_footer.footer_col1_description }}</p> <use xlink:href="#gentle-wave" x="48" y="7" fill="#191a1c" />
<ul class="social-media-icons"> </g>
{% if header_footer.social1_icon %} </svg>
<li><a href="{{ header_footer.social1_link }}"><i class="{{ header_footer.social1_icon }}"></i></a></li> </div>
{% endif %} </div>
{% if header_footer.social2_icon %}
<li><a href="{{ header_footer.social2_link }}"><i class="{{ header_footer.social2_icon }}"></i></a></li> <div class="container">
{% endif %} <div class="footer-top">
{% if header_footer.social3_icon %} <div class="row">
<li><a href="{{ header_footer.social3_link }}"><i class="{{ header_footer.social3_icon }}"></i></a></li> <div class="col-md-3 col-lg-3 col-xl-3">
{% endif %} <div class="footer-widget">
{% if header_footer.social4_icon %} <div class="footer-logo">
<li><a href="{{ header_footer.social4_link }}"><i class="{{ header_footer.social4_icon }}"></i></a></li> <a href="{% url "homePageFront" %}"><img src="{{ settings.logo_light.url }}" alt="image"></a>
{% endif %}
</ul>
</div>
</div>
<div class="col-md-3 col-lg-3 col-xl-3">
<div class="footer-widget">
<h4>Our Services</h4>
<ul class="footer-menu">
{% for service in fservices|slice:":6" %}
<li><a href="{% url "serviceDetail" service.slug %}">{{ service.name }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="col-md-3 col-lg-3 col-xl-3">
<div class="footer-widget">
<h4>Recent Projects</h4>
<ul class="footer-menu">
{% for project in fprojects|slice:":6" %}
<li><a href="{% url "projectDetails" project.slug %}">{{ project.title }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="col-md-3 col-lg-3 col-xl-3">
<div class="footer-widget">
<h4>Contacts</h4>
<div class="number">
<div class="num-icon">
<i class="fas fa-phone-alt"></i>
</div>
<div class="phone">
<a href="tel:{{ settings.phone }}">{{ settings.phone }}</a>
</div>
</div>
<div class="office-mail">
<div class="mail-icon">
<i class="far fa-envelope"></i>
</div>
<div class="email">
<a href="mailto:{{ settings.email_address }}"><span class="__cf_email__"
data-cfemail="630a0d050c23061b020e130f064d000c0e">{{ settings.email_address }}</span></a>
</div>
</div>
<div class="address">
<div class="address-icon">
<i class="fas fa-map-marker-alt"></i>
</div>
<p>{{settings.address}}, {{settings.city}}-{{settings.postal}}, {{settings.state}}, {{settings.country}}</p>
</div>
</div> </div>
<p>{{ header_footer.footer_col1_description }}</p>
<ul class="social-media-icons">
{% if header_footer.social1_icon %}
<li><a href="{{ header_footer.social1_link }}"><i class="{{ header_footer.social1_icon }}"></i></a></li>
{% endif %}
{% if header_footer.social2_icon %}
<li><a href="{{ header_footer.social2_link }}"><i class="{{ header_footer.social2_icon }}"></i></a></li>
{% endif %}
{% if header_footer.social3_icon %}
<li><a href="{{ header_footer.social3_link }}"><i class="{{ header_footer.social3_icon }}"></i></a></li>
{% endif %}
{% if header_footer.social4_icon %}
<li><a href="{{ header_footer.social4_link }}"><i class="{{ header_footer.social4_icon }}"></i></a></li>
{% endif %}
</ul>
</div> </div>
</div> </div>
</div> <div class="col-md-3 col-lg-3 col-xl-3">
<div class="footer-bottom"> <div class="footer-widget">
<div class="row align-items-center"> <h4>Our Services</h4>
<div class="col-12 col-md-4 col-lg-4 col-xl-5"> <ul class="footer-menu">
<div class="copy-txt"> {% for service in fservices|slice:":6" %}
<span>{{ header_footer.footer_copyright|safe }}</span> <li><a href="{% url "serviceDetail" service.slug %}">{{ service.name }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="col-md-3 col-lg-3 col-xl-3">
<div class="footer-widget">
<h4>Recent Projects</h4>
<ul class="footer-menu">
{% for project in fprojects|slice:":6" %}
<li><a href="{% url "projectDetails" project.slug %}">{{ project.title }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="col-md-3 col-lg-3 col-xl-3">
<div class="footer-widget">
<h4>Contacts</h4>
<div class="number">
<div class="num-icon">
<i class="fas fa-phone-alt"></i>
</div>
<div class="phone">
<a href="tel:{{ settings.phone }}">{{ settings.phone }}</a>
</div>
</div>
<div class="office-mail">
<div class="mail-icon">
<i class="far fa-envelope"></i>
</div>
<div class="email">
<a href="mailto:{{ settings.email_address }}"><span class="__cf_email__"
data-cfemail="630a0d050c23061b020e130f064d000c0e">{{ settings.email_address }}</span></a>
</div>
</div>
<div class="address">
<div class="address-icon">
<i class="fas fa-map-marker-alt"></i>
</div>
<p>{{settings.address}}, {{settings.city}}-{{settings.postal}}, {{settings.state}}, {{settings.country}}</p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</footer> <div class="footer-bottom">
<div class="row align-items-center">
<div class="col-12 col-md-4 col-lg-4 col-xl-5">
<div class="copy-txt">
<span>{{ header_footer.footer_copyright|safe }}</span>
</div>
</div>
</div>
</div>
</div>
</footer>
</main> </main>

52
templates/front/main/partial/product-details.html Normal file → Executable file
View File

@@ -5,17 +5,8 @@
{% block title2 %} {{product.name}} - {{seo_settings.meta_title}}{% endblock title2 %} {% block title2 %} {{product.name}} - {{seo_settings.meta_title}}{% endblock title2 %}
{% block content %} {% block content %}
<main class="creasoft-wrap"> <main class="sectionblock-wrap layout2">
<div class="line_wrap">
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
</div>
<section class="breadcrumbs"> <section class="breadcrumbs">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
@@ -31,17 +22,33 @@
</div> </div>
</section> </section>
<!--====================== background Section======================-->
<div id="particles-js" class="particles-cls"></div>
<!--====================== =============== ======================-->
{% for slider in sliders %}
<div class="swiper-slide">
{% if settings.slider_particle_is_active %}
<div id="particles-js-{{ forloop.counter }}" class="particles-cls"></div>
{% endif %}
</section>
</div>
<section class="service-details sec-mar-top"> {% endfor %}
<script>
const sliderCounting = {{sliders.count}}
</script>
<section class="services-area layout2 sec-mar">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8"> <div class="col-lg-8">
<div class="service-details-content"> <div class="swiper-slide wow animate fadeInUp" data-wow-delay="400ms" data-wow-duration="1500ms">
<h3><i class="{{ product.fontawesome_icon_class }} "></i>{{ product.name }} </h3>
{% if product.detail_page_image %} {% if product.detail_page_image %}
<img src="{{ product.detail_page_image.url }}" style="border-radius:10px;" alt="product"> <img src="{{ product.detail_page_image.url }}" style="border-radius:10px;" alt="product">
{% endif %} {% endif %}
<h3><i class="{{ product.fontawesome_icon_class }} "></i>{{ product.name }}
</h3>
{{ product.detail_page_description|safe }} {{ product.detail_page_description|safe }}
</div> </div>
</div> </div>
@@ -54,19 +61,6 @@
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% if settings.show_call_now_widget %}
{% if product.show_call_now_widget %}
<div class="sidebar-banner">
<img src="{% static 'front/assets/img/widget-banner-bg.jpg' %}" alt>
<div class="banner-inner">
<h3>Any Project <span>Call Now.</span>
<img class="angle" src="{% static 'front/assets/img/arrow-angle.png' %}" alt>
</h3>
<a href="tel:{{settings.phone}}">{{settings.phone}}</a>
</div>
</div>
{% endif %}
{% endif %}
</div> </div>
</div> </div>

94
templates/front/main/partial/service-details.html Normal file → Executable file
View File

@@ -5,71 +5,69 @@
{% block title2 %} {{service.name}} - {{seo_settings.meta_title}}{% endblock title2 %} {% block title2 %} {{service.name}} - {{seo_settings.meta_title}}{% endblock title2 %}
{% block content %} {% block content %}
<main class="creasoft-wrap">
<div class="line_wrap"> <main class="sectionblock-wrap layout2">
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
</div>
<section class="breadcrumbs">
<section class="breadcrumbs"> <div class="container">
<div class="container"> <div class="row">
<div class="row"> <div class="col-12">
<div class="col-12"> <div class="breadcrumb-wrapper">
<div class="breadcrumb-wrapper"> <div class="breadcrumb-cnt">
<div class="breadcrumb-cnt"> <h1>{{ service.name }}</h1>
<h1>{{ service.name }}</h1> <span><a href="{% url "homePageFront" %}">Home</a><i class="bi bi-arrow-right"></i>Service<i class="bi bi-arrow-right"></i>{{ service.name }}</span>
<span><a href="{% url "homePageFront" %}">Home</a><i class="bi bi-arrow-right"></i>Service<i class="bi bi-arrow-right"></i>{{ service.name }}</span>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
</section>
<!--====================== background Section======================-->
<div id="particles-js" class="particles-cls"></div>
<!--====================== =============== ======================-->
{% for slider in sliders %}
<div class="swiper-slide">
{% if settings.slider_particle_is_active %}
<div id="particles-js-{{ forloop.counter }}" class="particles-cls"></div>
{% endif %}
</section> </section>
</div>
{% endfor %}
<section class="service-details sec-mar-top"> <script>
<div class="container"> const sliderCounting = {{sliders.count}}
<div class="row"> </script>
<div class="col-lg-8">
<section class="services-area layout2 sec-mar">
<div class="container">
<div class="row">
<div class="col-lg-8">
<div class="swiper-slide wow animate fadeInUp" data-wow-delay="400ms" data-wow-duration="1500ms">
<div class="service-details-content"> <div class="service-details-content">
<h3><i class="{{ service.fontawesome_icon_class }} "></i>{{ service.name }}</h3>
{% if service.detail_page_image %} {% if service.detail_page_image %}
<img src="{{ service.detail_page_image.url }}" style="border-radius:10px;" alt="service"> <img src="{{ service.detail_page_image.url }}" style="border-radius:10px;" alt="service">
{% endif %} {% endif %}
<h3><i class="{{ service.fontawesome_icon_class }} "></i>{{ service.name }}
</h3>
{{ service.detail_page_description|safe }} {{ service.detail_page_description|safe }}
</div> </div>
</div> </div>
<div class="col-lg-4"> </div>
<div class="sidebar-widget"> <div class="col-lg-4">
<h4>Other Services</h4> <div class="sidebar-widget">
<ul class="category"> <h4>Other Services</h4>
{% for service in services %} <ul class="category">
<li><a href="{% url "serviceDetail" service.slug %}">{{ service.name }}<i class="bi bi-arrow-right"></i></a></li> {% for service in services %}
{% endfor %} <li><a href="{% url "serviceDetail" service.slug %}">{{ service.name }}<i class="bi bi-arrow-right"></i></a></li>
</ul> {% endfor %}
</div> </ul>
{% if settings.show_call_now_widget %}
{% if service.show_call_now_widget %}
<div class="sidebar-banner">
<img src="{% static 'front/assets/img/widget-banner-bg.jpg' %}" alt>
<div class="banner-inner">
<h3>Any Project <span>Call Now.</span>
<img class="angle" src="{% static 'front/assets/img/arrow-angle.png' %}" alt>
</h3>
<a href="tel:{{settings.phone}}">{{settings.phone}}</a>
</div>
</div>
{% endif %}
{% endif %}
</div> </div>
</div> </div>
</div> </div>
</section>
</div>
</section>
{% endblock %} {% endblock %}

10
templates/front/main/product.html Normal file → Executable file
View File

@@ -5,15 +5,7 @@
{% block title2 %} {{meta.meta_title}} - {{seo_settings.tag_line}} {% endblock title2 %} {% block title2 %} {{meta.meta_title}} - {{seo_settings.tag_line}} {% endblock title2 %}
{% block content %} {% block content %}
<main class="creasoft-wrap layout2"> <main class="sectionblock-wrap layout2">
<div class="line_wrap layout2">
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
</div>
<!--====================== background Section======================--> <!--====================== background Section======================-->
<div id="particles-js" class="particles-cls"></div> <div id="particles-js" class="particles-cls"></div>

11
templates/front/main/service.html Normal file → Executable file
View File

@@ -5,16 +5,9 @@
{% block title2 %} {{meta.meta_title}} - {{seo_settings.tag_line}} {% endblock title2 %} {% block title2 %} {{meta.meta_title}} - {{seo_settings.tag_line}} {% endblock title2 %}
{% block content %} {% block content %}
<main class="creasoft-wrap layout2"> <main class="sectionblock-wrap layout2">
<div class="line_wrap layout2">
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
<div class="line_item"></div>
</div>
<!--====================== background Section======================--> <!--====================== background Section======================-->
<div id="particles-js" class="particles-cls"></div> <div id="particles-js" class="particles-cls"></div>
<!--====================== =============== ======================--> <!--====================== =============== ======================-->