Miroca_Server
This commit is contained in:
13
home/templates/home/base/base.html
Normal file
13
home/templates/home/base/base.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
{% load static %}
|
||||||
|
<html lang="ru"
|
||||||
|
class="light-style layout-menu-fixed layout-compact"
|
||||||
|
data-theme="theme-default"
|
||||||
|
data-assets-path="{% static 'assets' %}"
|
||||||
|
data-template="vertical-menu-template-free">
|
||||||
|
<head>
|
||||||
|
{% include 'home/base/head.html' %}
|
||||||
|
</head>
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
</html>
|
||||||
163
home/templates/home/base/head.html
Normal file
163
home/templates/home/base/head.html
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
{% load static %}
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <!--metatextblock--> <title>Умный дом под
|
||||||
|
ключ | Заказать системы умного дома: расчет, установка и подключение оборудования, готовые
|
||||||
|
комплекты</title>
|
||||||
|
<meta name="description"
|
||||||
|
content="Умный дом под ключ в Москве и Московской области с гарантией. Заказать систему умный дом от проектирования и расчета стоимости до подключения и установки оборудования и готовых комплектов умного дома.">
|
||||||
|
<meta name="keywords" content="умный дом">
|
||||||
|
<meta property="og:url" content="http://miroca.ru">
|
||||||
|
<meta property="og:title" content="Miroca">
|
||||||
|
<meta property="og:description"
|
||||||
|
content="Установка системы умный дом в Москве и Московской области. От проектирования до монтажа и обслуживания. Рассчитайте свой проект.">
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:image" content="{% static 'file/upanel/img/miroca192' %}">
|
||||||
|
<link rel="canonical" href="https://miroca.ru/"> <!--/metatextblock-->
|
||||||
|
<meta name="format-detection" content="telephone=no">
|
||||||
|
<meta http-equiv="x-dns-prefetch-control" content="on">
|
||||||
|
<link rel="dns-prefetch" href="https://ws.tildacdn.com">
|
||||||
|
<link rel="dns-prefetch" href="https://static.tildacdn.com">
|
||||||
|
<link rel="dns-prefetch" href="https://fonts.tildacdn.com">
|
||||||
|
<link rel="shortcut icon" href="{% static 'file/upanel/img/favicon.ico' %}" type="image/x-icon"> <!-- Assets -->
|
||||||
|
<script src="js/tilda-fallback-1.0.min.js" async="" charset="utf-8"></script>
|
||||||
|
<link rel="stylesheet" href="css/tilda-grid-3.0.min.css" type="text/css" media="all" onerror="this.loaderr='y';">
|
||||||
|
<link rel="stylesheet" href="ws/project1029012/tilda-blocks-page15870540.min.css" type="text/css" media="all"
|
||||||
|
onerror="this.loaderr='y';">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com">
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&subset=latin,cyrillic"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="css/tilda-animation-2.0.min.css" type="text/css" media="all"
|
||||||
|
onerror="this.loaderr='y';">
|
||||||
|
<link rel="stylesheet" href="css/tilda-slds-1.4.min.css" type="text/css" media="print" onload="this.media='all';"
|
||||||
|
onerror="this.loaderr='y';">
|
||||||
|
<noscript>
|
||||||
|
<link rel="stylesheet" href="css/tilda-slds-1.4.min.css" type="text/css" media="all">
|
||||||
|
</noscript>
|
||||||
|
<link rel="stylesheet" href="css/tilda-cards-1.0.min.css" type="text/css" media="all" onerror="this.loaderr='y';">
|
||||||
|
<link rel="stylesheet" href="css/tilda-popup-1.1.min.css" type="text/css" media="print" onload="this.media='all';"
|
||||||
|
onerror="this.loaderr='y';">
|
||||||
|
<noscript>
|
||||||
|
<link rel="stylesheet" href="css/tilda-popup-1.1.min.css" type="text/css" media="all">
|
||||||
|
</noscript>
|
||||||
|
<link rel="stylesheet" href="css/tilda-forms-1.0.min.css" type="text/css" media="all" onerror="this.loaderr='y';">
|
||||||
|
<script type="text/javascript">TildaFonts = ["167", "168", "169", "170"];</script>
|
||||||
|
<script type="text/javascript" src="js/tilda-fonts.min.js" charset="utf-8" onerror="this.loaderr='y';"></script>
|
||||||
|
<script nomodule="" src="js/tilda-polyfill-1.0.min.js" charset="utf-8"></script>
|
||||||
|
<script type="text/javascript">function t_onReady(func) {
|
||||||
|
if (document.readyState != 'loading') {
|
||||||
|
func();
|
||||||
|
} else {
|
||||||
|
document.addEventListener('DOMContentLoaded', func);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function t_onFuncLoad(funcName, okFunc, time) {
|
||||||
|
if (typeof window[funcName] === 'function') {
|
||||||
|
okFunc();
|
||||||
|
} else {
|
||||||
|
setTimeout(function () {
|
||||||
|
t_onFuncLoad(funcName, okFunc, time);
|
||||||
|
}, (time || 100));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function t_throttle(fn, threshhold, scope) {
|
||||||
|
return function () {
|
||||||
|
fn.apply(scope || this, arguments);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function t396_initialScale(t) {
|
||||||
|
var e = document.getElementById("rec" + t);
|
||||||
|
if (e) {
|
||||||
|
var i = e.querySelector(".t396__artboard");
|
||||||
|
if (i) {
|
||||||
|
window.tn_scale_initial_window_width || (window.tn_scale_initial_window_width = document.documentElement.clientWidth);
|
||||||
|
var a = window.tn_scale_initial_window_width, r = [], n, l = i.getAttribute("data-artboard-screens");
|
||||||
|
if (l) {
|
||||||
|
l = l.split(",");
|
||||||
|
for (var o = 0; o < l.length; o++) r[o] = parseInt(l[o], 10)
|
||||||
|
} else r = [320, 480, 640, 960, 1200];
|
||||||
|
for (var o = 0; o < r.length; o++) {
|
||||||
|
var d = r[o];
|
||||||
|
a >= d && (n = d)
|
||||||
|
}
|
||||||
|
var _ = "edit" === window.allrecords.getAttribute("data-tilda-mode"),
|
||||||
|
c = "center" === t396_getFieldValue(i, "valign", n, r),
|
||||||
|
s = "grid" === t396_getFieldValue(i, "upscale", n, r), w = t396_getFieldValue(i, "height_vh", n, r),
|
||||||
|
g = t396_getFieldValue(i, "height", n, r),
|
||||||
|
u = !!window.opr && !!window.opr.addons || !!window.opera || -1 !== navigator.userAgent.indexOf(" OPR/");
|
||||||
|
if (!_ && c && !s && !w && g && !u) {
|
||||||
|
var h = parseFloat((a / n).toFixed(3)),
|
||||||
|
f = [i, i.querySelector(".t396__carrier"), i.querySelector(".t396__filter")],
|
||||||
|
v = Math.floor(parseInt(g, 10) * h) + "px", p;
|
||||||
|
i.style.setProperty("--initial-scale-height", v);
|
||||||
|
for (var o = 0; o < f.length; o++) f[o].style.setProperty("height", "var(--initial-scale-height)");
|
||||||
|
t396_scaleInitial__getElementsToScale(i).forEach((function (t) {
|
||||||
|
t.style.zoom = h
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function t396_scaleInitial__getElementsToScale(t) {
|
||||||
|
return t ? Array.prototype.slice.call(t.children).filter((function (t) {
|
||||||
|
return t && (t.classList.contains("t396__elem") || t.classList.contains("t396__group"))
|
||||||
|
})) : []
|
||||||
|
}
|
||||||
|
|
||||||
|
function t396_getFieldValue(t, e, i, a) {
|
||||||
|
var r, n = a[a.length - 1];
|
||||||
|
if (!(r = i === n ? t.getAttribute("data-artboard-" + e) : t.getAttribute("data-artboard-" + e + "-res-" + i))) for (var l = 0; l < a.length; l++) {
|
||||||
|
var o = a[l];
|
||||||
|
if (!(o <= i) && (r = o === n ? t.getAttribute("data-artboard-" + e) : t.getAttribute("data-artboard-" + e + "-res-" + o))) break
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
window.TN_SCALE_INITIAL_VER = "1.0", window.tn_scale_initial_window_width = null;</script>
|
||||||
|
<script src="{% static 'file/home/js/jquery-1.10.2.min.js' %}" charset="utf-8" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/home/js/home-scripts-3.0.min.js' %}" charset="utf-8" defer="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/home/ws/home-blocks-page.min.js' %}" charset="utf-8" async=""
|
||||||
|
onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-lazyload-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-animation-2.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-zero-1.1.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/hammer.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-slds-1.4.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-cards-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-popup-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-forms-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-menu-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-t862-popupstepform-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-animation-ext-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-animation-sbs-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-zero-scale-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-skiplink-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script src="{% static 'file/js/tilda-events-1.0.min.js' %}" charset="utf-8" async="" onerror="this.loaderr='y';"></script>
|
||||||
|
<script type="text/javascript">window.dataLayer = window.dataLayer || [];</script>
|
||||||
|
<script type="text/javascript">(function () {
|
||||||
|
if ((/bot|google|yandex|baidu|bing|msn|duckduckbot|teoma|slurp|crawler|spider|robot|crawling|facebook/i.test(navigator.userAgent)) === false && typeof (sessionStorage) != 'undefined' && sessionStorage.getItem('visited') !== 'y' && document.visibilityState) {
|
||||||
|
var style = document.createElement('style');
|
||||||
|
style.type = 'text/css';
|
||||||
|
style.innerHTML = '@media screen and (min-width: 980px) {.t-records {opacity: 0;}.t-records_animated {-webkit-transition: opacity ease-in-out .2s;-moz-transition: opacity ease-in-out .2s;-o-transition: opacity ease-in-out .2s;transition: opacity ease-in-out .2s;}.t-records.t-records_visible {opacity: 1;}}';
|
||||||
|
document.getElementsByTagName('head')[0].appendChild(style);
|
||||||
|
|
||||||
|
function t_setvisRecs() {
|
||||||
|
var alr = document.querySelectorAll('.t-records');
|
||||||
|
Array.prototype.forEach.call(alr, function (el) {
|
||||||
|
el.classList.add("t-records_animated");
|
||||||
|
});
|
||||||
|
setTimeout(function () {
|
||||||
|
Array.prototype.forEach.call(alr, function (el) {
|
||||||
|
el.classList.add("t-records_visible");
|
||||||
|
});
|
||||||
|
sessionStorage.setItem("visited", "y");
|
||||||
|
}, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', t_setvisRecs);
|
||||||
|
}
|
||||||
|
})();</script>
|
||||||
4
home/templates/home/content/index.html
Normal file
4
home/templates/home/content/index.html
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{% extends 'home/base/base.html' %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content%}
|
||||||
|
{% endblock content %}
|
||||||
6
home/urls.py
Normal file
6
home/urls.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
from django.urls import path
|
||||||
|
from .import views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('', views.home, name='home'),
|
||||||
|
]
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
def home(request):
|
||||||
|
return render(request, 'home/content/index.html',)
|
||||||
|
|||||||
@@ -138,10 +138,10 @@ USE_TZ = True
|
|||||||
# https://docs.djangoproject.com/en/3.2/howto/static-files/
|
# https://docs.djangoproject.com/en/3.2/howto/static-files/
|
||||||
|
|
||||||
STATIC_URL = '/static/'
|
STATIC_URL = '/static/'
|
||||||
STATIC_ROOT = '/home/c76533/miroca.ru/www/static'
|
STATIC_ROOT = '/home/c76533/miroca.ru/app/www/static'
|
||||||
|
|
||||||
MEDIA_URL = '/media/'
|
MEDIA_URL = '/media/'
|
||||||
MEDIA_ROOT = '/home/c76533/miroca.ru/www/media'
|
MEDIA_ROOT = '/home/c76533/miroca.ru/app/www/media'
|
||||||
|
|
||||||
# Default primary key field type
|
# Default primary key field type
|
||||||
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ from django.urls import path, include
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
# path('admin/', admin.site.urls),
|
# path('admin/', admin.site.urls),
|
||||||
path('', include('upanel.urls')),
|
path('', include('home.urls')),
|
||||||
|
path('admin/', admin.site.urls),
|
||||||
|
path('upanel/', include('upanel.urls')),
|
||||||
path('api/', include('api.urls')),
|
path('api/', include('api.urls')),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ urlpatterns = [
|
|||||||
path('connect/', views.connect, name='connect'),
|
path('connect/', views.connect, name='connect'),
|
||||||
# path('greenhouse/', views.greenhouse, name='greenhouse'),
|
# path('greenhouse/', views.greenhouse, name='greenhouse'),
|
||||||
# path('server_smart/', views.server_smart, name='server_smart'),
|
# path('server_smart/', views.server_smart, name='server_smart'),
|
||||||
path('login/', LoginView.as_view(template_name='upanel/login.html'), name='login'),
|
path('upanel/login/', LoginView.as_view(template_name='upanel/login.html'), name='login'),
|
||||||
path('logout/', LoginView.as_view(template_name='upanel/login.html'), name='logout'),
|
path('logout/', LoginView.as_view(template_name='upanel/login.html'), name='logout'),
|
||||||
path('password_change/', PasswordChangeView.as_view(template_name='upanel/change_password.html'),
|
path('password_change/', PasswordChangeView.as_view(template_name='upanel/change_password.html'),
|
||||||
name='password_change'),
|
name='password_change'),
|
||||||
|
|||||||
Reference in New Issue
Block a user