Miroca_Server

This commit is contained in:
Victor Alexandrovich Tsyrenschikov
2026-01-02 15:07:56 +05:00
parent c9ae31bc3d
commit 0df2ccb03c
8 changed files with 194 additions and 4 deletions

View 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>

View 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&amp;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>

View File

@@ -0,0 +1,4 @@
{% extends 'home/base/base.html' %}
{% load static %}
{% block content%}
{% endblock content %}

6
home/urls.py Normal file
View File

@@ -0,0 +1,6 @@
from django.urls import path
from .import views
urlpatterns = [
path('', views.home, name='home'),
]

View File

@@ -1,3 +1,5 @@
from django.shortcuts import render
# Create your views here.
def home(request):
return render(request, 'home/content/index.html',)

View File

@@ -138,10 +138,10 @@ USE_TZ = True
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = '/home/c76533/miroca.ru/www/static'
STATIC_ROOT = '/home/c76533/miroca.ru/app/www/static'
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
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

View File

@@ -18,6 +18,8 @@ from django.urls import path, include
urlpatterns = [
# 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')),
]

View File

@@ -9,7 +9,7 @@ urlpatterns = [
path('connect/', views.connect, name='connect'),
# path('greenhouse/', views.greenhouse, name='greenhouse'),
# 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('password_change/', PasswordChangeView.as_view(template_name='upanel/change_password.html'),
name='password_change'),