add data base, change header and footer
This commit is contained in:
parent
f9fbd6f0d2
commit
beedab344b
106
__init__.py
106
__init__.py
@ -1,43 +1,31 @@
|
||||
from flask import Flask, render_template
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
|
||||
|
||||
app = Flask(__name__, static_folder='static', static_url_path='')
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///product.db'
|
||||
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||
db = SQLAlchemy(app)
|
||||
|
||||
|
||||
class Product(db.Model):
|
||||
"""Class for products."""
|
||||
|
||||
id = db.Column(db.Integer(), primary_key=True)
|
||||
name = db.Column(db.String(length=50), nullable=False, unique=True)
|
||||
description = db.Column(db.String(), nullable=False)
|
||||
price = db.Column(db.String(length=10), nullable=False)
|
||||
img = db.Column(db.String(length=50), nullable=False)
|
||||
alt = db.Column(db.String(length=50), nullable=False)
|
||||
group = db.Column(db.String(length=25), nullable=False)
|
||||
|
||||
|
||||
menu = [
|
||||
{"name": "Главная", "url": "home", "active": "active"},
|
||||
{"name": "ЭЦП + Отчетность", "url": "astral", "active": "active"},
|
||||
{"name": "Программы 1С", "url": "1c", "active": "active"},
|
||||
{"name": "Онлайн-кассы", "url": "online-kassa", "active": "active"},
|
||||
{"name": "Контакты", "url": "contacts", "active": "active"}
|
||||
]
|
||||
|
||||
product_astral = [{"name": "Для регистрации ККТ", "description": "Для регистрации ККТ на сайте налоговой инспекции и для государственных порталов", "price": "от 900", "img": "images/ofd.png", "alt": "Регистрация ККТ клин, эцп налоговая клин"},
|
||||
{"name": "Для ЕГАИС", "description": "Квалифицированная ЭП для работы на портале ЕГАИС", "price": "от 2 000", "img": "images/egais.png", "alt": "ЭЦП для ЕГАИС Клин"},
|
||||
{"name": "Для отчетности", "description": "Квалифицированная ЭП для сдачи отчетности", "price": "от 1 800", "img": "images/otchet.png", "alt": "ЭЦП сдача отчетности Клин"},
|
||||
{"name": "Для торгов", "description": "Для участия в электронных торгах", "price": "от 5 000", "img": "images/torgi.png", "alt": "ЭЦП для торгов в клину, эцп клин"}]
|
||||
|
||||
|
||||
product_1c = [
|
||||
{"name": "1С: Бухгалтерия 8", "description": "Программный продукт «1С:Бухгалтерия 8» для автоматизации бухгалтерского и налогового учета в соответствии с действующим законодательством Российской Федерации.", "price": "от 3 300", "img": "images/buh8prof.png", "alt": "1С бухгалтерия в Клину", "group": "buh"},
|
||||
{"name": "1С: Зарплата и управление персоналом 8", "description": "Программа, позволяющая в комплексе автоматизировать задачи, связанные с расчетом заработной платы персонала и реализацией кадровой политики, с учетом требований законодательства и реальной практики работы предприятий.", "price": "от 7 400", "img": "images/zup8.png", "alt": "1С зарплата в клину", "group": "buh"},
|
||||
{"name": "1С: Fresh (1С через интернет)", "description": "Современный инструмент для создания онлайн-сервисов, обеспечивающих работу пользователей в прикладных решениях на платформе «1С:Предприятие» через Интернет (в «облаке»).", "price": "от 13 029", "img": "images/1c_fresh.png", "alt": "1С через интернет в клину", "group": "cloud"},
|
||||
{"name": "1С: ИТС (Информационно-технологическое сопровождение)", "description": "Информационно-технологическое сопровождение (1С:ИТС) – это комплексная поддержка пользователей, оказываемая фирмой «1С» совместно с партнерами.", "price": "от 14 280", "img": "images/1c_its.png", "alt": "обновления и сервисы 1с в клину", "group": "cloud"},
|
||||
{"name": "1С: Управление торговлей", "description": "Современный инструмент для повышения эффективности бизнеса торгового предприятия. Программа позволяет в комплексе автоматизировать задачи оперативного и управленческого учета, анализа и планирования торговых операций, обеспечивая тем самым эффективное управление современным торговым предприятием.", "price": "от 7 400", "img": "images/1c_ut.png", "alt": "1с ут в клину, торговля и склад в клину", "group": "trade"},
|
||||
{"name": "1С: Розница", "description": "Универсальное решение для управления розничной торговлей. Полностью автоматизирует все основные бизнес-процессы как отдельного магазина, так и крупной розничной сети.", "price": "от 3 300", "img": "images/1c_roznica.png", "alt": "1с розница в клину", "group": "trade"},
|
||||
{"name": "1С: УНФ (Управление нашей фирмой)", "description": "Все, что нужно, в одной программе Торговля и склад, услуги и работы, закупки и резервы, банк и касса, кадры и расчет зарплаты, производство и сборочные операции, аналитические отчеты и CRM. Строгое соответствие законодательству: печатные формы, 54-ФЗ, ЕГАИС и т. д. Уплата налогов и сдача отчетность для ИП, для остальных — штатная интеграция с «1С:Бухгалтерией 8».", "price": "от 5 400", "img": "images/1c_unf.png", "alt": "1с унф в клину, 1с для всего", "group": "trade"}
|
||||
]
|
||||
|
||||
|
||||
product_kkt = [
|
||||
{"name": "Автономные кассы", "description": "Бюджетный ньюджер для предприятий микро- и малого бизнеса в сфере торговли и услуг, который позволяет соответствовать требованиям 54-ФЗ без дорогостоящей полной автоматизации с широким набором функционала.", "price": "от 6 500", "img": "images/92f.png", "alt": "Автономные онлайн-кассы в Клину"},
|
||||
{"name": "Фискальные регистраторы", "description": "Фискальные регистраторы применяются для учета проданных товаров и оказанных услуг, формирования чеков различных видов, а также выполнения других операций, необходимых для полноценной работы кафе, магазинов и других организаций. ККТ этого типа универсальны, совместимы с различными видами торгового оборудования и просты в использовании, что обеспечивает им чрезвычайно широкое распространение.", "price": "от 10 000", "img": "images/1f.png", "alt": "Фискальные регистраторы в Клину"},
|
||||
{"name": "Смарт-терминалы", "description": "Смарт-терминал - это умная онлайн-касса с функцией формирования и передачи фискальных данных в налоговую инспекцию в режиме онлайн, с возможностью ведения управленческого учета и поддержки работы с ЕГАИС. Такое устройство состоит из планшета и принтера для печати кассовых чеков с фискальным накопителем. Устройство оснащается несколькими USB портами, которые позволяют подключать необходимые периферийные устройства – сканер штрих-кодов, пин-пад для банковских или бонусных карт, денежный ящик, весы и прочее. В том числе подключение может проходить по беспроводным каналам связи (wi-fi, bluetooth).", "price": "от 17 900", "img": "images/S8.png", "alt": "Смарт-терминалы в Клину"}
|
||||
]
|
||||
|
||||
|
||||
product_fn = [
|
||||
{"name": "Фискальный накопитель ФН-1.1М на 15 месяцев", "description": "ФН или Фискальный накопитель – это устройство, которое вставляется в онлайн-кассу. Он получает, обрабатывает и передаёт данные об операциях на кассе оператору фискальных данных (ОФД), а тот – в налоговую инспекцию. Кроме того, в случае отключения интернета, онлайн-касса с ФН будет хранить информацию о всех транзакциях на протяжении 30 дней. ФН на 15 месяцев можно использовать только если у Вас общая система налогообложения или Вы торгуете подакцизными/маркируемыми товарами, или у Вас сезонный характер работы.", "price": "8 500", "img": "images/fn15.png", "alt": "Фискальные накопители в Клину на 15 месяцев"},
|
||||
{"name": "Фискальный накопитель ФН-1.1М на 36 месяцев", "description": "ФН или Фискальный накопитель – это устройство, которое вставляется в онлайн-кассу. Он получает, обрабатывает и передаёт данные об операциях на кассе оператору фискальных данных (ОФД), а тот – в налоговую инспекцию. Кроме того, в случае отключения интернета, онлайн-касса с ФН будет хранить информацию о всех транзакциях на протяжении 30 дней.", "price": "13 500", "img": "images/fn36.png", "alt": "Фискальные накопители в Клину на 36 месяцев"}
|
||||
{"name": "Главная", "url": "home", "active": "", "aria": ""},
|
||||
{"name": "ЭЦП + Отчетность", "url": "astral", "active": "", "aria": ""},
|
||||
{"name": "Программы 1С", "url": "1c", "active": "", "aria": ""},
|
||||
{"name": "Онлайн-кассы", "url": "online-kassa", "active": "", "aria": ""},
|
||||
{"name": "Контакты", "url": "contacts", "active": "", "aria": ""}
|
||||
]
|
||||
|
||||
|
||||
@ -45,30 +33,74 @@ product_fn = [
|
||||
@app.route("/home")
|
||||
def home():
|
||||
"""Render home page."""
|
||||
return render_template("home.html", menu=menu, product=product_astral,
|
||||
for m in menu:
|
||||
m["active"] = ""
|
||||
m['aria'] = ''
|
||||
|
||||
menu[0]['active'] = 'active'
|
||||
menu[0]['aria'] = 'page'
|
||||
return render_template("home.html", menu=menu,
|
||||
title="ЭЦП, Программы 1С, Онлайн-кассы в Клину")
|
||||
|
||||
|
||||
@app.route("/astral")
|
||||
def astral_page():
|
||||
"""Render astral page."""
|
||||
for m in menu:
|
||||
m['active'] = ''
|
||||
m['aria'] = ''
|
||||
|
||||
menu[1]['active'] = 'active'
|
||||
menu[1]['aria'] = 'page'
|
||||
|
||||
product_astral = Product.query.filter_by(group="astral")
|
||||
return render_template("astral.html", menu=menu, product=product_astral,
|
||||
title="ЭЦП в Клину")
|
||||
|
||||
|
||||
@app.route("/1c")
|
||||
def one_c_page():
|
||||
"""Render 1c page."""
|
||||
return render_template("1c.html", menu=menu, title="1С-франчайзи в Клину", product_1c=product_1c)
|
||||
for m in menu:
|
||||
m['active'] = ''
|
||||
m['aria'] = ''
|
||||
|
||||
menu[2]['active'] = 'active'
|
||||
menu[2]['aria'] = 'page'
|
||||
|
||||
product_1c = Product.query.filter(Product
|
||||
.group.in_(["buh", "cloud", "trade"]))
|
||||
return render_template("1c.html", menu=menu,
|
||||
title="1С-франчайзи в Клину", product_1c=product_1c)
|
||||
|
||||
|
||||
@app.route("/online-kassa")
|
||||
def kassa_page():
|
||||
"""Render kassa page."""
|
||||
return render_template("online-kassa.html", menu=menu, title="Онлайн кассы в Клину", product_kkt=product_kkt, product_fn=product_fn)
|
||||
for m in menu:
|
||||
m['active'] = ''
|
||||
m['aria'] = ''
|
||||
|
||||
menu[3]['active'] = 'active'
|
||||
menu[3]['aria'] = 'page'
|
||||
|
||||
product_kkt = Product.query.filter_by(group="kkt")
|
||||
product_fn = Product.query.filter_by(group="fn")
|
||||
return render_template("online-kassa.html", menu=menu,
|
||||
title="Онлайн кассы в Клину",
|
||||
product_kkt=product_kkt, product_fn=product_fn)
|
||||
|
||||
|
||||
@app.route("/contacts")
|
||||
def contacts_page():
|
||||
"""Render contact page."""
|
||||
for m in menu:
|
||||
m['active'] = ''
|
||||
m['aria'] = ''
|
||||
|
||||
menu[4]['active'] = 'active'
|
||||
menu[4]['aria'] = 'page'
|
||||
|
||||
return render_template("contacts.html", menu=menu, title="Контакты")
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
click==7.1.2
|
||||
Flask==1.1.2
|
||||
Flask-SQLAlchemy==2.5.1
|
||||
greenlet==1.1.2
|
||||
itsdangerous==1.1.0
|
||||
Jinja2==2.11.3
|
||||
MarkupSafe==1.1.1
|
||||
SQLAlchemy==1.4.26
|
||||
Werkzeug==1.0.1
|
||||
|
||||
@ -1,181 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="yandex-verification" content="8ba3940ada64923a" />
|
||||
<meta name="google-site-verification" content="D_8sVdIKQn8tZo-oZ6qhf2hbkjeyKmFTqwo2u1siSfw" />
|
||||
|
||||
|
||||
|
||||
<!-- Yandex.Metrika counter -->
|
||||
<script type="text/javascript" >
|
||||
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
||||
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
|
||||
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
|
||||
|
||||
ym(86042102, "init", {
|
||||
clickmap:true,
|
||||
trackLinks:true,
|
||||
accurateTrackBounce:true
|
||||
});
|
||||
</script>
|
||||
<noscript><div><img src="https://mc.yandex.ru/watch/86042102" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
||||
<!-- /Yandex.Metrika counter -->
|
||||
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.6.1/font/bootstrap-icons.css">
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/carousel.css') }}" />
|
||||
<link rel="icon" href="{{ url_for('static', filename='images/klintorg_logo.png')}}" type="image/png" />
|
||||
|
||||
|
||||
{% if title %}
|
||||
<title>klintorg - {{ title }}</title>
|
||||
{% else %}
|
||||
<title>klintorg</title>
|
||||
{% endif %}
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/home">
|
||||
<img src="{{ url_for('static', filename='images/main_logo_klintorg.png') }}" alt="klintorg.ru эцп клин" class="d-inline-block align-text-top" style="width: 35%; height: 35%;">
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||
{% for m in menu %}
|
||||
<li class="nav-item"><a href="{{ m.url }}" class="nav-link {{ m.active }}">{{ m.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<span class="navbar-text">
|
||||
Срочный выпуск ЭЦП!
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<!-- <br/> -->
|
||||
<!-- <br/> -->
|
||||
|
||||
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Позвоните нам прямо сейчас!</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<a href="tel:+79096861756"><i class="bi bi-telephone"></i> +7(909)686-17-56</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="https://wa.me/79096861756"><i class="bi bi-whatsapp"></i> Написать в Whatsapp</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="tg://resolve?domain=@TanyaPetrovaa"><i class="bi bi-telegram"></i> Написать в Telegram</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<p>Ваш персональный менеджер Татьяна!</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="bg-light text-center text-lg-start">
|
||||
<!-- Grid container -->
|
||||
<div class="container p-4">
|
||||
<!--Grid row-->
|
||||
<div class="row">
|
||||
<!--Grid column-->
|
||||
<div class="col-lg-6 col-md-12 mb-4 mb-md-0">
|
||||
<h5 class="text-uppercase">Наш адрес</h5>
|
||||
|
||||
<p>
|
||||
141602, г.Клин, Ленинградское ш., д. 8А
|
||||
</p>
|
||||
</div>
|
||||
<!--Grid column-->
|
||||
|
||||
<!--Grid column-->
|
||||
<div class="col-lg-6 col-md-12 mb-4 mb-md-0">
|
||||
<h5 class="text-uppercase">Контакты</h5>
|
||||
|
||||
<p>
|
||||
<a href="tel:+79096861756"><i class="bi bi-telephone"></i> +7(909)686-17-56</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="https://wa.me/79096861756"><i class="bi bi-whatsapp"></i> Написать в Whatsapp</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="tg://resolve?domain=@TanyaPetrovaa"><i class="bi bi-telegram"></i> Написать в Telegram</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="mailto:manager@klintorg.ru"><i class="bi bi-envelope"></i> manager@klintorg.ru</a>
|
||||
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<!--Grid column-->
|
||||
</div>
|
||||
<!--Grid row-->
|
||||
</div>
|
||||
<!-- Grid container -->
|
||||
|
||||
<!-- Copyright -->
|
||||
<div class="text-center p-3" style="background-color: rgba(0, 0, 0, 0.2);">
|
||||
© 2021 Copyright:
|
||||
<a class="text-dark" href="http://klintorg.ru">klintorg.ru</a>
|
||||
</div>
|
||||
<!-- Copyright -->
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
<!-- Optional JavaScript; choose one of the two! -->
|
||||
|
||||
<!-- Option 1: Bootstrap Bundle with Popper -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- <script>var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')) -->
|
||||
<!-- var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { -->
|
||||
<!-- return new bootstrap.Popover(popoverTriggerEl) -->
|
||||
<!-- }) </script> -->
|
||||
<script>var myModal = document.getElementById('myModal')
|
||||
var myInput = document.getElementById('myInput')
|
||||
|
||||
myModal.addEventListener('shown.bs.modal', function () {
|
||||
myInput.focus()
|
||||
})</script>
|
||||
|
||||
<!-- Option 2: Separate Popper and Bootstrap JS -->
|
||||
<!--
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
|
||||
-->
|
||||
</body>
|
||||
<style>
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #212121;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
color: #red;
|
||||
}
|
||||
</style>
|
||||
|
||||
</html>
|
||||
@ -18,10 +18,6 @@
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="container">
|
||||
<h2 class="text-center">Мы предлагаем</h2><br/>
|
||||
<div class="row row-cols-1 row-cols-md-3 g-4">
|
||||
|
||||
@ -4,24 +4,24 @@
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<meta name="yandex-verification" content="8ba3940ada64923a" />
|
||||
<meta name="google-site-verification" content="D_8sVdIKQn8tZo-oZ6qhf2hbkjeyKmFTqwo2u1siSfw" />
|
||||
|
||||
|
||||
<!-- Yandex.Metrika counter -->
|
||||
<script type="text/javascript" >
|
||||
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
||||
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
|
||||
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
|
||||
<script type="text/javascript" >
|
||||
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
||||
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
|
||||
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
|
||||
|
||||
ym(86042102, "init", {
|
||||
clickmap:true,
|
||||
trackLinks:true,
|
||||
accurateTrackBounce:true
|
||||
});
|
||||
</script>
|
||||
<noscript><div><img src="https://mc.yandex.ru/watch/86042102" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
||||
<!-- /Yandex.Metrika counter -->
|
||||
ym(86042102, "init", {
|
||||
clickmap:true,
|
||||
trackLinks:true,
|
||||
accurateTrackBounce:true
|
||||
});
|
||||
</script>
|
||||
<noscript><div><img src="https://mc.yandex.ru/watch/86042102" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
||||
<!-- /Yandex.Metrika counter -->
|
||||
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
@ -30,7 +30,6 @@
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/carousel.css') }}" />
|
||||
<link rel="icon" href="{{ url_for('static', filename='images/klintorg_logo.png')}}" type="image/png" />
|
||||
|
||||
|
||||
{% if title %}
|
||||
<title>klintorg - {{ title }}</title>
|
||||
{% else %}
|
||||
@ -39,10 +38,10 @@
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-secondary bg-gradient sticky-top">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/home">
|
||||
<img src="{{ url_for('static', filename='images/main_logo_klintorg.png') }}" alt="klintorg.ru эцп клин" class="d-inline-block align-text-top" style="width: 35%; height: 35%;">
|
||||
<img src="{{ url_for('static', filename='images/main_logo_klintorg_gray.png') }}" alt="klintorg.ru эцп клин" class="d-inline-block align-text-top" style="width: 35%; height: 35%;">
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
@ -50,97 +49,98 @@
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||
{% for m in menu %}
|
||||
<li class="nav-item"><a href="{{ m.url }}" class="nav-link {{ m.active }}">{{ m.name }}</a></li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ m.url }}" class="nav-link {{ m.active }}" aria-current="{{ aria }}">{{ m.name }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<span class="navbar-text">
|
||||
Срочный выпуск ЭЦП!
|
||||
</span>
|
||||
<!-- <span class="navbar-text">
|
||||
Срочный выпуск ЭЦП!
|
||||
</span> -->
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<!-- <br/> -->
|
||||
<!-- <br/> -->
|
||||
|
||||
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Позвоните нам прямо сейчас!</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<a href="tel:+79096861756"><i class="bi bi-telephone"></i> +7(909)686-17-56</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="https://wa.me/79096861756"><i class="bi bi-whatsapp"></i> Написать в Whatsapp</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="tg://resolve?domain=@TanyaPetrovaa"><i class="bi bi-telegram"></i> Написать в Telegram</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<p>Ваш персональный менеджер Татьяна!</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Позвоните нам прямо сейчас!</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<a href="tel:+79096861756"><i class="bi bi-telephone"></i> +7(909)686-17-56</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="https://wa.me/79096861756"><i class="bi bi-whatsapp"></i> Написать в Whatsapp</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="tg://resolve?domain=@TanyaPetrovaa"><i class="bi bi-telegram"></i> Написать в Telegram</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="mailto:manager@klintorg.ru"><i class="bi bi-envelope"></i> manager@klintorg.ru</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<p>Ваш персональный менеджер: Татьяна.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="bg-light text-center text-lg-start">
|
||||
<!-- Grid container -->
|
||||
<div class="container p-4">
|
||||
<!--Grid row-->
|
||||
<div class="row">
|
||||
<!--Grid column-->
|
||||
<div class="col-lg-6 col-md-12 mb-4 mb-md-0">
|
||||
<h5 class="text-uppercase">Наш адрес</h5>
|
||||
<footer class="text-center text-lg-start text-black" style="background-color: #caced1;">
|
||||
<!-- Grid container -->
|
||||
<div class="container p-4">
|
||||
<!--Grid row-->
|
||||
<div class="row">
|
||||
<!--Grid column-->
|
||||
<div class="col-lg-6 col-md-12 mb-4 mb-md-0">
|
||||
<h5 class="text-uppercase">Наш адрес</h5>
|
||||
|
||||
<p>
|
||||
141602, г.Клин, Ленинградское ш., д. 8А
|
||||
</p>
|
||||
<p>
|
||||
141602, г.Клин, Ленинградское ш., д. 8А
|
||||
</p>
|
||||
</div>
|
||||
<!--Grid column-->
|
||||
|
||||
<!--Grid column-->
|
||||
<div class="col-lg-6 col-md-12 mb-4 mb-md-0 ">
|
||||
<h5 class="text-uppercase">Контакты</h5>
|
||||
|
||||
<p>
|
||||
<a href="tel:+79096861756"><i class="bi bi-telephone"></i> +7(909)686-17-56</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="https://wa.me/79096861756"><i class="bi bi-whatsapp"></i> Написать в Whatsapp</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="tg://resolve?domain=@TanyaPetrovaa"><i class="bi bi-telegram"></i> Написать в Telegram</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="mailto:manager@klintorg.ru"><i class="bi bi-envelope"></i> manager@klintorg.ru</a>
|
||||
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<!--Grid column-->
|
||||
</div>
|
||||
<!--Grid row-->
|
||||
</div>
|
||||
<!--Grid column-->
|
||||
<!-- Grid container -->
|
||||
|
||||
<!--Grid column-->
|
||||
<div class="col-lg-6 col-md-12 mb-4 mb-md-0">
|
||||
<h5 class="text-uppercase">Контакты</h5>
|
||||
|
||||
<p>
|
||||
<a href="tel:+79096861756"><i class="bi bi-telephone"></i> +7(909)686-17-56</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="https://wa.me/79096861756"><i class="bi bi-whatsapp"></i> Написать в Whatsapp</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="tg://resolve?domain=@TanyaPetrovaa"><i class="bi bi-telegram"></i> Написать в Telegram</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="mailto:manager@klintorg.ru"><i class="bi bi-envelope"></i> manager@klintorg.ru</a>
|
||||
|
||||
|
||||
</p>
|
||||
<!-- Copyright -->
|
||||
<div class="text-center p-3" style="background-color: rgba(0, 0, 0, 0.2);">
|
||||
© 2021 Copyright:
|
||||
<a class="text-dark" href="http://klintorg.ru">klintorg.ru</a>
|
||||
</div>
|
||||
<!--Grid column-->
|
||||
</div>
|
||||
<!--Grid row-->
|
||||
</div>
|
||||
<!-- Grid container -->
|
||||
|
||||
<!-- Copyright -->
|
||||
<div class="text-center p-3" style="background-color: rgba(0, 0, 0, 0.2);">
|
||||
© 2021 Copyright:
|
||||
<a class="text-dark" href="http://klintorg.ru">klintorg.ru</a>
|
||||
</div>
|
||||
<!-- Copyright -->
|
||||
</footer>
|
||||
<!-- Copyright -->
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
@ -149,22 +149,13 @@
|
||||
<!-- Option 1: Bootstrap Bundle with Popper -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- <script>var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')) -->
|
||||
<!-- var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { -->
|
||||
<!-- return new bootstrap.Popover(popoverTriggerEl) -->
|
||||
<!-- }) </script> -->
|
||||
<script>var myModal = document.getElementById('myModal')
|
||||
var myInput = document.getElementById('myInput')
|
||||
var myInput = document.getElementById('myInput')
|
||||
|
||||
myModal.addEventListener('shown.bs.modal', function () {
|
||||
myInput.focus()
|
||||
})</script>
|
||||
|
||||
<!-- Option 2: Separate Popper and Bootstrap JS -->
|
||||
<!--
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
|
||||
-->
|
||||
myModal.addEventListener('shown.bs.modal', function () {
|
||||
myInput.focus()
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
<style>
|
||||
a {
|
||||
@ -173,8 +164,11 @@ myModal.addEventListener('shown.bs.modal', function () {
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
color: #red;
|
||||
color: #212121;
|
||||
}
|
||||
/* .foot a:link{
|
||||
color: white;
|
||||
} */
|
||||
</style>
|
||||
|
||||
</html>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user