first commit. work only astral page
130
.gitignore
vendored
@ -1,129 +1 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
pip-wheel-metadata/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
.DS_Store
|
||||
25
__init__.py
Normal file
@ -0,0 +1,25 @@
|
||||
from flask import Flask, render_template
|
||||
app = Flask(__name__, static_folder='static', static_url_path='')
|
||||
|
||||
menu = [{"name": "ЭЦП + Отчетность", "url": "astral", "active": "active"},
|
||||
{"name": "Программы 1С", "url": "1c", "active": "disabled"},
|
||||
{"name": "Онлайн-кассы", "url": "atol", "active": "disabled"}]
|
||||
|
||||
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": "от 5000", "img": "images/torgi.png", "alt": "ЭЦП для торгов в клину"}]
|
||||
|
||||
|
||||
@app.route("/astral")
|
||||
@app.route("/")
|
||||
def hello():
|
||||
return render_template("new_layout.html", menu=menu, product=product_astral, title="ЭЦП в Клину")
|
||||
|
||||
@app.route("/sitemap")
|
||||
def sitemap():
|
||||
return render_template("4956392_4.xml")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
||||
7
app.py
Normal file
@ -0,0 +1,7 @@
|
||||
from flask import Flask
|
||||
app = Flask(__name__)
|
||||
@app.route("/")
|
||||
def hello():
|
||||
return "Hello, I love Digital Ocean!"
|
||||
if __name__ == "__main__":
|
||||
app.run()
|
||||
14
static/4956392_4.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- created with www.mysitemapgenerator.com -->
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://klintorg.ru/</loc>
|
||||
<lastmod>2021-10-22T08:46:54+01:00</lastmod>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://klintorg.ru/astral</loc>
|
||||
<lastmod>2021-10-22T08:46:54+01:00</lastmod>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
93
static/css/carousel.css
Normal file
@ -0,0 +1,93 @@
|
||||
/* GLOBAL STYLES
|
||||
-------------------------------------------------- */
|
||||
/* Padding below the footer and lighter body text */
|
||||
|
||||
/* body { */
|
||||
/* padding-top: 3rem; */
|
||||
/* padding-bottom: 3rem; */
|
||||
/* color: #5a5a5a; */
|
||||
/* } */
|
||||
|
||||
|
||||
/* CUSTOMIZE THE CAROUSEL
|
||||
-------------------------------------------------- */
|
||||
|
||||
/* Carousel base class */
|
||||
/* .carousel { */
|
||||
/* margin-bottom: 4rem; */
|
||||
/* } */
|
||||
/* /\* Since positioning the image, we need to help out the caption *\/ */
|
||||
/* .carousel-caption { */
|
||||
/* bottom: 3rem; */
|
||||
/* z-index: 10; */
|
||||
/* } */
|
||||
|
||||
/* Declare heights because of positioning of img element */
|
||||
.carousel-item {
|
||||
height: 32rem;
|
||||
}
|
||||
.carousel-item > img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
min-width: 100%;
|
||||
height: 32rem;
|
||||
}
|
||||
|
||||
|
||||
/* MARKETING CONTENT
|
||||
-------------------------------------------------- */
|
||||
|
||||
/* Center align the text within the three columns below the carousel */
|
||||
/* .marketing .col-lg-4 { */
|
||||
/* margin-bottom: 1.5rem; */
|
||||
/* text-align: center; */
|
||||
/* } */
|
||||
/* .marketing h2 { */
|
||||
/* font-weight: 400; */
|
||||
/* } */
|
||||
/* /\* rtl:begin:ignore *\/ */
|
||||
/* .marketing .col-lg-4 p { */
|
||||
/* margin-right: .75rem; */
|
||||
/* margin-left: .75rem; */
|
||||
/* } */
|
||||
/* /\* rtl:end:ignore *\/ */
|
||||
|
||||
|
||||
/* /\* Featurettes */
|
||||
/* ------------------------- *\/ */
|
||||
|
||||
/* .featurette-divider { */
|
||||
/* margin: 5rem 0; /\* Space out the Bootstrap <hr> more *\/ */
|
||||
/* } */
|
||||
|
||||
/* /\* Thin out the marketing headings *\/ */
|
||||
/* .featurette-heading { */
|
||||
/* font-weight: 300; */
|
||||
/* line-height: 1; */
|
||||
/* /\* rtl:remove *\/ */
|
||||
/* letter-spacing: -.05rem; */
|
||||
/* } */
|
||||
|
||||
|
||||
/* /\* RESPONSIVE CSS */
|
||||
/* -------------------------------------------------- *\/ */
|
||||
|
||||
/* @media (min-width: 40em) { */
|
||||
/* /\* Bump up size of carousel content *\/ */
|
||||
/* .carousel-caption p { */
|
||||
/* margin-bottom: 1.25rem; */
|
||||
/* font-size: 1.25rem; */
|
||||
/* line-height: 1.4; */
|
||||
/* } */
|
||||
|
||||
/* .featurette-heading { */
|
||||
/* font-size: 50px; */
|
||||
/* } */
|
||||
/* } */
|
||||
|
||||
/* @media (min-width: 62em) { */
|
||||
/* .featurette-heading { */
|
||||
/* margin-top: 7rem; */
|
||||
/* } */
|
||||
/* } */
|
||||
BIN
static/images/astral.png
Normal file
|
After Width: | Height: | Size: 489 KiB |
BIN
static/images/astral_2.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
static/images/egais.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
static/images/klintorg_logo.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
static/images/ofd.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
static/images/otchet.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
static/images/torgi.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
2
static/robots.txt
Normal file
@ -0,0 +1,2 @@
|
||||
User-Agent: *
|
||||
Allow: /
|
||||
14
templates/4956392_4.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- created with www.mysitemapgenerator.com -->
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://klintorg.ru/</loc>
|
||||
<lastmod>2021-10-22T08:46:54+01:00</lastmod>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://klintorg.ru/astral</loc>
|
||||
<lastmod>2021-10-22T08:46:54+01:00</lastmod>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
4
templates/astral.html
Normal file
@ -0,0 +1,4 @@
|
||||
{% extends "layout.html" %}
|
||||
{% block content %}
|
||||
<h1>Main page</h1>
|
||||
{% endblock content %}
|
||||
137
templates/layout.html
Normal file
@ -0,0 +1,137 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<!-- <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/carousel.css') }}" /> -->
|
||||
<!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" -->
|
||||
<!-- integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous"> -->
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
{% if title %}
|
||||
<title>Klintorg - {{ title }}</title>
|
||||
{% else %}
|
||||
<title>Klintorg</title>
|
||||
{% endif %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||
<a class="navbar-brand" href="#">" #Klintorg"</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Market</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Login</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Register</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom"> -->
|
||||
<!-- <a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none"> -->
|
||||
<!-- <\!-- <svg class="bi me-2" width="40" height="32"><use xlink:href="#bootstrap"/></svg> -\-> -->
|
||||
<!-- <\!-- <span class="fs-4"><img src="{{ url_for('static', filename='images/atomy_logo.png') }}" width="100" height="56" -\-> -->
|
||||
<!-- <\!-- alt="atomy logo" />Atomy russia</span> -\-> -->
|
||||
<!-- <span>Klintorg</span> -->
|
||||
<!-- </a> -->
|
||||
<!-- <ul class="nav nav-pills"> -->
|
||||
<!-- {% for m in menu %} -->
|
||||
<!-- <li class="nav-item"><a href="{{ m.url }}" class="nav-link">{{ m.name }}</a></li> -->
|
||||
<!-- {% endfor %} -->
|
||||
<!-- <\!-- <li class="nav-item"><a href="#" class="nav-link active">Home</a></li> -\-> -->
|
||||
<!-- <\!-- <li class="nav-item"><a href="#" class="nav-link">Features</a></li> -\-> -->
|
||||
<!-- <\!-- <li class="nav-item"><a href="#" class="nav-link">Pricing</a></li> -\-> -->
|
||||
<!-- <\!-- <li class="nav-item"><a href="#" class="nav-link">FAQs</a></li> -\-> -->
|
||||
<!-- <\!-- <li class="nav-item"><a href="#" class="nav-link">About</a></li> -\-> -->
|
||||
<!-- </ul> -->
|
||||
<!-- </header> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div id="myCarousel" class="carousel slide" data-bs-ride="carousel"> -->
|
||||
<!-- <div class="carousel-indicators"> -->
|
||||
<!-- <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active" aria-current="true" -->
|
||||
<!-- aria-label="Slide 1"></button> -->
|
||||
<!-- <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button> -->
|
||||
<!-- <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="carousel-inner"> -->
|
||||
<!-- <div class="carousel-item active"> -->
|
||||
<!-- <svg class="bd-placeholder-img" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" -->
|
||||
<!-- aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"> -->
|
||||
<!-- <rect width="100%" height="100%" fill="#777" /> -->
|
||||
<!-- </svg> -->
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="carousel-caption text-start"> -->
|
||||
<!-- <h1>Example headline.</h1> -->
|
||||
<!-- <p>Some representative placeholder content for the first slide of the carousel.</p> -->
|
||||
<!-- <p><a class="btn btn-lg btn-primary" href="#">Sign up today</a></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="carousel-item"> -->
|
||||
<!-- <svg class="bd-placeholder-img" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" -->
|
||||
<!-- aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"> -->
|
||||
<!-- <rect width="100%" height="100%" fill="#777" /> -->
|
||||
<!-- </svg> -->
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="carousel-caption"> -->
|
||||
<!-- <h1>Another example headline.</h1> -->
|
||||
<!-- <p>Some representative placeholder content for the second slide of the carousel.</p> -->
|
||||
<!-- <p><a class="btn btn-lg btn-primary" href="#">Learn more</a></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="carousel-item"> -->
|
||||
<!-- <svg class="bd-placeholder-img" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" -->
|
||||
<!-- aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"> -->
|
||||
<!-- <rect width="100%" height="100%" fill="#777" /> -->
|
||||
<!-- </svg> -->
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="carousel-caption text-end"> -->
|
||||
<!-- <h1>One more for good measure.</h1> -->
|
||||
<!-- <p>Some representative placeholder content for the third slide of this carousel.</p> -->
|
||||
<!-- <p><a class="btn btn-lg btn-primary" href="#">Browse gallery</a></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev"> -->
|
||||
<!-- <span class="carousel-control-prev-icon" aria-hidden="true"></span> -->
|
||||
<!-- <span class="visually-hidden">Previous</span> -->
|
||||
<!-- </button> -->
|
||||
<!-- <button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next"> -->
|
||||
<!-- <span class="carousel-control-next-icon" aria-hidden="true"></span> -->
|
||||
<!-- <span class="visually-hidden">Next</span> -->
|
||||
<!-- </button> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
|
||||
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- {% block content %}{% endblock %} -->
|
||||
<!-- </div> -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
|
||||
crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
||||
370
templates/new_layout.html
Normal file
@ -0,0 +1,370 @@
|
||||
<!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="#"><h4>klintorg.ru</h4></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/>
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div id="myCarousel" class="carousel slide" data-bs-ride="carousel"> -->
|
||||
<!-- <div class="carousel-indicators"> -->
|
||||
<!-- <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active" aria-current="true" -->
|
||||
<!-- aria-label="Slide 1"></button> -->
|
||||
<!-- <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button> -->
|
||||
<!-- <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="carousel-inner"> -->
|
||||
<!-- <div class="carousel-item active img-fluid"> -->
|
||||
<!-- <\!-- <svg class="bd-placeholder-img" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" -\-> -->
|
||||
<!-- <\!-- aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"> -\-> -->
|
||||
<!-- <\!-- <rect width="100%" height="100%" fill="#777" /> -\-> -->
|
||||
<!-- <\!-- </svg> -\-> -->
|
||||
<!-- <img src="{{ url_for('static', filename='images/astral_2.png') }}" class="d-block w-100" alt="Получите ЭЦП уже сегодня!"> -->
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="carousel-caption text-start"> -->
|
||||
<!-- <h1>Электронная подпись.</h1> -->
|
||||
<!-- <p>Электронная подпись – это аналог собственноручной подписи и печати на документе бумажного формата.</p> -->
|
||||
<!-- <p><a class="btn btn-lg btn-primary" href="/">Тарифы</a></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="carousel-item"> -->
|
||||
<!-- <svg class="bd-placeholder-img" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" -->
|
||||
<!-- aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"> -->
|
||||
<!-- <rect width="100%" height="100%" fill="#777" /> -->
|
||||
<!-- </svg> -->
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="carousel-caption"> -->
|
||||
<!-- <h1>Another example headline.</h1> -->
|
||||
<!-- <p>Some representative placeholder content for the second slide of the carousel.</p> -->
|
||||
<!-- <p><a class="btn btn-lg btn-primary" href="#">Learn more</a></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="carousel-item"> -->
|
||||
<!-- <svg class="bd-placeholder-img" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" -->
|
||||
<!-- aria-hidden="true" preserveAspectRatio="xMidYMid slice" focusable="false"> -->
|
||||
<!-- <rect width="100%" height="100%" fill="#777" /> -->
|
||||
<!-- </svg> -->
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="carousel-caption text-end"> -->
|
||||
<!-- <h1>One more for good measure.</h1> -->
|
||||
<!-- <p>Some representative placeholder content for the third slide of this carousel.</p> -->
|
||||
<!-- <p><a class="btn btn-lg btn-primary" href="#">Browse gallery</a></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev"> -->
|
||||
<!-- <span class="carousel-control-prev-icon" aria-hidden="true"></span> -->
|
||||
<!-- <span class="visually-hidden">Previous</span> -->
|
||||
<!-- </button> -->
|
||||
<!-- <button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next"> -->
|
||||
<!-- <span class="carousel-control-next-icon" aria-hidden="true"></span> -->
|
||||
<!-- <span class="visually-hidden">Next</span> -->
|
||||
<!-- </button> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
|
||||
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- {% block content %}{% endblock %} -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="card text-center"> -->
|
||||
<!-- <div class="card-header"> -->
|
||||
<!-- Featured -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="card-body"> -->
|
||||
<!-- <h5 class="card-title">Special title treatment</h5> -->
|
||||
<!-- <p class="card-text">With supporting text below as a natural lead-in to additional content.</p> -->
|
||||
<!-- <a href="#" class="btn btn-primary">Go somewhere</a> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- {% for m in menu %} -->
|
||||
<!-- <li class="nav-item"><a href="{{ m.url }}" class="nav-link {{ m.active }}">{{ m.name }}</a></li> -->
|
||||
<!-- {% endfor %} -->
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <h1>Все виды ЭЦП в Клину и Клинском районе</h1> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<div class="container">
|
||||
<div class="card text-center bg-info bg-opacity-10">
|
||||
<div class="card-header">
|
||||
klintorg.ru - официальный представитель Астрал-ЭТ в Клину
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Электронная подпись для любых задач</h5>
|
||||
<p class="card-text">Электронная подпись для участия в торгах, работы на государственных порталах и электронного документооборота</p>
|
||||
<!-- <a href="#" class="btn btn-primary">Go somewhere</a> -->
|
||||
</div>
|
||||
<div class="card-footer text-muted">
|
||||
<!-- 2 days ago -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="container d-flex justify-content-center">
|
||||
|
||||
<h3>Тарифы и цены</h3>
|
||||
|
||||
</div>
|
||||
<div class="container d-flex justify-content-center">
|
||||
|
||||
<p>Гибкая тарифная сетка позволит выбрать тот тариф, который оптимален именно для Вас</p>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
<!-- {% for prod in product %} -->
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="card w-100 shadow-sm"> -->
|
||||
<!-- <div class="card-body"> -->
|
||||
<!-- <h3 class="card-title" style="color: #376798;">{{ prod.name }}</h3> -->
|
||||
<!-- <p class="card-text">{{ prod.description }}</p> -->
|
||||
<!-- <p class="card-text" style="font-size: 24px; font-weight: bold;">{{ prod.price }} ₽</p> -->
|
||||
<!-- <\!-- <a href="#" class="btn btn-outline-primary btn-lg">Заказать</a> -\-> -->
|
||||
<!-- <\!-- Button trigger modal -\-> -->
|
||||
<!-- <button type="button" class="btn btn-outline-primary" data-bs-toggle="modal" data-bs-target="#exampleModal"> -->
|
||||
<!-- Заказать -->
|
||||
<!-- </button> -->
|
||||
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <br/> -->
|
||||
<!-- {% endfor %} -->
|
||||
|
||||
|
||||
{% for prod in product %}
|
||||
<div class="container">
|
||||
<div class="card mb-3 shadow-sm">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-8">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title" style="color: #376798;">{{ prod.name }}</h3>
|
||||
<p class="card-text">{{ prod.description }}</p>
|
||||
<p class="card-text" style="font-size: 24px; font-weight: bold;">{{ prod.price }} ₽</p>
|
||||
<!-- <a href="#" class="btn btn-outline-primary btn-lg">Заказать</a> -->
|
||||
<!-- Button trigger modal -->
|
||||
<button type="button" class="btn btn-outline-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
|
||||
Заказать
|
||||
</button>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<img src="{{ url_for('static', filename=prod.img) }}" class="img-fluid rounded-start" alt="prod.alt">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
<!-- <div class="container"> -->
|
||||
<!-- <div class="card mb-3"> -->
|
||||
<!-- <div class="row g-0"> -->
|
||||
<!-- <div class="col-md-8"> -->
|
||||
<!-- <div class="card-body"> -->
|
||||
<!-- <h5 class="card-title">Card title</h5> -->
|
||||
<!-- <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p> -->
|
||||
<!-- <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="col-md-4"> -->
|
||||
<!-- <img src="{{ url_for('static', filename='images/astral_2.png') }}" class="img-fluid rounded-start" alt="..."> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
|
||||
|
||||
<!-- 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>
|
||||
<!-- <button type="button" class="btn btn-primary">Save changes</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>
|
||||
.carousel-caption{
|
||||
color: lightgreen;
|
||||
|
||||
}
|
||||
.carousel-inner > .carousel-item > img {
|
||||
width:50%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
a {text-decoration: none; color: #212121;}
|
||||
a:hover {text-decoration: none; color: #red;}
|
||||
</style>
|
||||
|
||||
</html>
|
||||