first commit. work only astral page
130
.gitignore
vendored
@ -1,129 +1 @@
|
|||||||
# Byte-compiled / optimized / DLL files
|
.DS_Store
|
||||||
__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/
|
|
||||||
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>
|
||||||