Compare commits
44 Commits
dev
...
d1c3e68d6d
| Author | SHA1 | Date | |
|---|---|---|---|
| d1c3e68d6d | |||
| d816733b0d | |||
| 168ae345d6 | |||
| d071458032 | |||
| 7102af7d2d | |||
| 495cc43246 | |||
| 360493e564 | |||
| faac300903 | |||
| a6d7a8c8e0 | |||
| 2f94bf20be | |||
| ee1107c976 | |||
| b4c8ffe95d | |||
| 86e6a2acc1 | |||
| 432409b3d8 | |||
| fca75a30aa | |||
| 6e342ca021 | |||
| d89619fe61 | |||
| b0387362b5 | |||
| c284c1a784 | |||
| a7dd676a76 | |||
| dd4134f2d7 | |||
| c1398284c7 | |||
| a9b4fd95c3 | |||
| 0fe7aa189c | |||
| 9133bfd8fa | |||
| aa1657bd10 | |||
| 10411dd714 | |||
| 4be3686d2b | |||
| 70e1fa2a10 | |||
| 3a14430cd5 | |||
| 73621de710 | |||
| 5cbae093e9 | |||
| fdaa18c0e6 | |||
| ff6ee93497 | |||
| d62261066f | |||
| 2a852cbb51 | |||
| f561c32526 | |||
| cd36747b5c | |||
| d020bdf9d0 | |||
| cd323ab66c | |||
| 0ac236d2ff | |||
| 769a42ec8b | |||
| 60ff29b23f | |||
| 15ff3d37fc |
@@ -203,6 +203,8 @@ def mailing_subscribe_ajax(request):
|
|||||||
|
|
||||||
|
|
||||||
def send_message_ajax(request):
|
def send_message_ajax(request):
|
||||||
|
print('send_message_ajax')
|
||||||
|
|
||||||
if request.method != 'POST':
|
if request.method != 'POST':
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
@@ -311,14 +313,18 @@ def send_message_ajax(request):
|
|||||||
f'</p>'
|
f'</p>'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print('render html for mail')
|
||||||
|
|
||||||
html = render_to_string('mail/m_request_offer.html', Dict, request)
|
html = render_to_string('mail/m_request_offer.html', Dict, request)
|
||||||
from BaseModels.mailSender import admin_send_mail_by_SMTPlib
|
from BaseModels.mailSender import admin_send_mail_by_SMTPlib
|
||||||
mail_sets = get_mail_send_options()
|
mail_sets = get_mail_send_options()
|
||||||
opts = get_options_by_opt_types('support_email', only_vals=True)
|
opts = get_options_by_opt_types('support_email', only_vals=True)
|
||||||
|
print(f'options: {str(opts)}')
|
||||||
if opts and 'support_email' in opts:
|
if opts and 'support_email' in opts:
|
||||||
to = [opts['support_email']]
|
to = [opts['support_email']]
|
||||||
else:
|
else:
|
||||||
to = [mail_sets['sender_email']]
|
to = [mail_sets['sender_email']]
|
||||||
|
print(f'to: {str(to)}')
|
||||||
res = admin_send_mail_by_SMTPlib(
|
res = admin_send_mail_by_SMTPlib(
|
||||||
mail_sets,
|
mail_sets,
|
||||||
subject=subject,
|
subject=subject,
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ def admin_send_mail_by_SMTPlib(sets, subject, from_email, to, html_content, atta
|
|||||||
|
|
||||||
def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_server, smtp_port, smtp_login, smtp_password,
|
def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_server, smtp_port, smtp_login, smtp_password,
|
||||||
attachments=None):
|
attachments=None):
|
||||||
|
print('send_mail_by_SMTPlib')
|
||||||
to = to_init
|
to = to_init
|
||||||
# if not settings.prod_server:
|
# if not settings.prod_server:
|
||||||
# to = 'web@syncsystems.net'
|
# to = 'web@syncsystems.net'
|
||||||
@@ -123,7 +124,11 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
|
|||||||
try:
|
try:
|
||||||
# context = ssl.create_default_context()
|
# context = ssl.create_default_context()
|
||||||
|
|
||||||
mail_lib = smtplib.SMTP(smtp_server, smtp_port)
|
print(f'connect to mail server smtp_server={str(smtp_server)} smtp_port={str(smtp_port)}')
|
||||||
|
|
||||||
|
mail_lib = smtplib.SMTP(smtp_server, smtp_port, timeout=60)
|
||||||
|
|
||||||
|
print('connection established')
|
||||||
|
|
||||||
res = mail_lib.ehlo()
|
res = mail_lib.ehlo()
|
||||||
|
|
||||||
@@ -139,9 +144,13 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
|
|||||||
res = mail_lib.esmtp_features['auth'] = 'LOGIN PLAIN'
|
res = mail_lib.esmtp_features['auth'] = 'LOGIN PLAIN'
|
||||||
# print('mail_lib.esmtp_features = {0}'.format(str(res)))
|
# print('mail_lib.esmtp_features = {0}'.format(str(res)))
|
||||||
|
|
||||||
|
print('try to login')
|
||||||
|
|
||||||
res = mail_lib.login(smtp_login, smtp_password)
|
res = mail_lib.login(smtp_login, smtp_password)
|
||||||
# print('mail_lib.login = {0}'.format(str(res)))
|
# print('mail_lib.login = {0}'.format(str(res)))
|
||||||
|
|
||||||
|
print('login')
|
||||||
|
|
||||||
res = None
|
res = None
|
||||||
|
|
||||||
if type(to) in (list, tuple):
|
if type(to) in (list, tuple):
|
||||||
@@ -159,6 +168,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
|
|||||||
to = []
|
to = []
|
||||||
to.append(to_str)
|
to.append(to_str)
|
||||||
|
|
||||||
|
print(f'send mail to {str(to)}')
|
||||||
|
|
||||||
if type(subject) != str:
|
if type(subject) != str:
|
||||||
try:
|
try:
|
||||||
subject = subject.decode('utf-8')
|
subject = subject.decode('utf-8')
|
||||||
@@ -168,6 +179,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
print(f'add context')
|
||||||
|
|
||||||
msg = MIMEMultipart()
|
msg = MIMEMultipart()
|
||||||
from email.headerregistry import Address
|
from email.headerregistry import Address
|
||||||
msg['From'] = from_email
|
msg['From'] = from_email
|
||||||
@@ -192,13 +205,17 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
|
|||||||
res = msg.attach(attachments)
|
res = msg.attach(attachments)
|
||||||
# print('else attach file complete = {0}'.format(str(res)))
|
# print('else attach file complete = {0}'.format(str(res)))
|
||||||
|
|
||||||
|
print(f'send mail')
|
||||||
|
|
||||||
res = mail_lib.sendmail(from_email, to, msg.as_string())
|
res = mail_lib.sendmail(from_email, to, msg.as_string())
|
||||||
|
|
||||||
msg = mail_lib.quit()
|
msg = mail_lib.quit()
|
||||||
# print('mail_lib.quit = {0}'.format(str(msg)))
|
# print('mail_lib.quit = {0}'.format(str(msg)))
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
msg = 'send_mail_by_SMTPlib error = {0}'.format(str(e))
|
import traceback
|
||||||
|
msg = (f'send_mail_by_SMTPlib error = {str(e)}\n<br>'
|
||||||
|
f'{str(traceback.format_exc())}')
|
||||||
print(msg)
|
print(msg)
|
||||||
try:
|
try:
|
||||||
mail_lib.quit()
|
mail_lib.quit()
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ def test_code(request):
|
|||||||
|
|
||||||
from RoutesApp.search_matches import search_matches
|
from RoutesApp.search_matches import search_matches
|
||||||
from RoutesApp.models import Route
|
from RoutesApp.models import Route
|
||||||
search_matches(Route.objects.filter(id=17158))
|
search_matches(Route.objects.filter(id=16))
|
||||||
|
|
||||||
# from RoutesApp.funcs import get_city_by_type_transport_and_address_point
|
# from RoutesApp.funcs import get_city_by_type_transport_and_address_point
|
||||||
# from RoutesApp.models import Route
|
# from RoutesApp.models import Route
|
||||||
|
|||||||
@@ -30,6 +30,6 @@ class Admin_Route(Admin_Trans_BaseModel):
|
|||||||
search_fields = [
|
search_fields = [
|
||||||
'owner__first_name', 'owner__last_name', 'from_city__name', 'to_city__name', 'owner__email'
|
'owner__first_name', 'owner__last_name', 'from_city__name', 'to_city__name', 'owner__email'
|
||||||
]
|
]
|
||||||
raw_id_fields = ['from_city', 'to_city', 'owner']
|
raw_id_fields = ['from_city', 'to_city']
|
||||||
|
|
||||||
admin.site.register(Route, Admin_Route)
|
admin.site.register(Route,Admin_Route)
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ def send_push_message_for_found_matches_routes(route, data_Dict):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def send_mail_found_matches_routes(route, matched_route, data_Dict):
|
def send_mail_found_matches_routes(route, data_Dict):
|
||||||
print(f'send_mail_found_matches_routes to route id = {route.id}')
|
print(f'send_mail_found_matches_routes to route id = {route.id}')
|
||||||
|
|
||||||
Dict = {
|
Dict = {
|
||||||
@@ -67,9 +67,7 @@ def send_mail_found_matches_routes(route, matched_route, data_Dict):
|
|||||||
from_email=mail_sets['sender_email'], to=to,
|
from_email=mail_sets['sender_email'], to=to,
|
||||||
html_content=html
|
html_content=html
|
||||||
)
|
)
|
||||||
|
to = ['web@syncsystems.net']
|
||||||
subject = f'route matches {route.id} <> {matched_route.id} send to {route.owner.email}'
|
|
||||||
to = ['web@syncsystems.net', 'sa@a3-global.com']
|
|
||||||
res = admin_send_mail_by_SMTPlib(
|
res = admin_send_mail_by_SMTPlib(
|
||||||
mail_sets,
|
mail_sets,
|
||||||
subject=subject,
|
subject=subject,
|
||||||
@@ -80,56 +78,6 @@ def send_mail_found_matches_routes(route, matched_route, data_Dict):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
def user_notify_by_result_search_matches(route_for_send, founded_route, params):
|
|
||||||
log = ''
|
|
||||||
|
|
||||||
data_Dict = None
|
|
||||||
try:
|
|
||||||
data_Dict = get_Dict_for_send_msgs(params, founded_route.owner_type)
|
|
||||||
except Exception as e:
|
|
||||||
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
|
|
||||||
print(msg)
|
|
||||||
log += msg
|
|
||||||
|
|
||||||
if data_Dict and check_option_in_cur_user_subscribe(
|
|
||||||
route_for_send.owner, 'push уведомления'
|
|
||||||
):
|
|
||||||
try:
|
|
||||||
msg = send_push_message_for_found_matches_routes(route_for_send, data_Dict)
|
|
||||||
if msg:
|
|
||||||
log += msg
|
|
||||||
except Exception as e:
|
|
||||||
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
|
|
||||||
print(msg)
|
|
||||||
log += msg
|
|
||||||
|
|
||||||
if data_Dict and check_option_in_cur_user_subscribe(
|
|
||||||
route_for_send.owner,
|
|
||||||
'уведомление на e-mail о появлении перевозчика по заданным критериям'
|
|
||||||
):
|
|
||||||
try:
|
|
||||||
msg = send_mail_found_matches_routes(route_for_send, founded_route, data_Dict)
|
|
||||||
if msg:
|
|
||||||
log += msg
|
|
||||||
except Exception as e:
|
|
||||||
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
|
|
||||||
print(msg)
|
|
||||||
log += msg
|
|
||||||
|
|
||||||
return log
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def users_notify_by_result_search_matches(source_route, found_routes, params):
|
|
||||||
log = ''
|
|
||||||
log += user_notify_by_result_search_matches(source_route, found_routes[0], params)
|
|
||||||
|
|
||||||
for route in found_routes:
|
|
||||||
log += user_notify_by_result_search_matches(route, source_route, params)
|
|
||||||
|
|
||||||
return log
|
|
||||||
|
|
||||||
|
|
||||||
def search_matches(for_routes=None):
|
def search_matches(for_routes=None):
|
||||||
print('search_matches')
|
print('search_matches')
|
||||||
|
|
||||||
@@ -199,9 +147,39 @@ def search_matches(for_routes=None):
|
|||||||
|
|
||||||
if found_routes:
|
if found_routes:
|
||||||
msg = f'found routes for send messages = {found_routes.count()}'
|
msg = f'found routes for send messages = {found_routes.count()}'
|
||||||
print(msg)
|
|
||||||
|
|
||||||
log += users_notify_by_result_search_matches(route, found_routes, params)
|
data_Dict = None
|
||||||
|
try:
|
||||||
|
data_Dict = get_Dict_for_send_msgs(params, found_routes[0].owner_type)
|
||||||
|
except Exception as e:
|
||||||
|
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
|
||||||
|
print(msg)
|
||||||
|
log += msg
|
||||||
|
|
||||||
|
if data_Dict and check_option_in_cur_user_subscribe(
|
||||||
|
route.owner, 'push уведомления'
|
||||||
|
):
|
||||||
|
try:
|
||||||
|
msg = send_push_message_for_found_matches_routes(route, data_Dict)
|
||||||
|
if msg:
|
||||||
|
log += msg
|
||||||
|
except Exception as e:
|
||||||
|
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
|
||||||
|
print(msg)
|
||||||
|
log += msg
|
||||||
|
|
||||||
|
if data_Dict and check_option_in_cur_user_subscribe(
|
||||||
|
route.owner,
|
||||||
|
'уведомление на e-mail о появлении перевозчика по заданным критериям'
|
||||||
|
):
|
||||||
|
try:
|
||||||
|
msg = send_mail_found_matches_routes(route, data_Dict)
|
||||||
|
if msg:
|
||||||
|
log += msg
|
||||||
|
except Exception as e:
|
||||||
|
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
|
||||||
|
print(msg)
|
||||||
|
log += msg
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
msg = f'<br>\n! search_matches Error = {str(e)}'
|
msg = f'<br>\n! search_matches Error = {str(e)}'
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
# Generated by Django 4.2.2 on 2025-02-17 17:48
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('SubscribesApp', '0004_alter_subscribe_bg_color_alter_subscribe_text_color'),
|
|
||||||
('SubscribesApp', '0007_subscribeoption_route_highlight_hours'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
]
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
User-agent: *
|
User-agent: *
|
||||||
Disallow: /
|
Allow: /
|
||||||
Disallow: */admin/*
|
Disallow: */admin/*
|
||||||
|
|
||||||
Host: dev.tripwb.com
|
Host: tripwb.com
|
||||||
@@ -27,12 +27,11 @@ function SendLoginForm(el){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(url === '/user_account/login/') {
|
if(url === '/user_account/login/'){
|
||||||
localStorage.setItem('needed_fbq', true)
|
|
||||||
location.href = data.redirect_url//`/profile/page/dashboard/`
|
location.href = data.redirect_url//`/profile/page/dashboard/`
|
||||||
window.sessionStorage.removeItem('mailingSubscribeRequired')
|
window.sessionStorage.removeItem('mailingSubscribeRequired')
|
||||||
window.sessionStorage.removeItem('email')
|
window.sessionStorage.removeItem('email')
|
||||||
} else if (url === '/user_account/password_recovery/'){
|
} else if(url === '/user_account/password_recovery/'){
|
||||||
document.getElementById('password_recovery').innerHTML = data.message
|
document.getElementById('password_recovery').innerHTML = data.message
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,26 +36,26 @@ function SendRegistrationForm(el, user_id){
|
|||||||
window.sessionStorage.removeItem('mailingSubscribeRequired')
|
window.sessionStorage.removeItem('mailingSubscribeRequired')
|
||||||
window.sessionStorage.removeItem('email')
|
window.sessionStorage.removeItem('email')
|
||||||
|
|
||||||
fbq('track', 'Contact');
|
// fbq('track', 'Contact');
|
||||||
|
|
||||||
|
|
||||||
// ttq.identify({
|
ttq.identify({
|
||||||
// "email": "<hashed_email_address>", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
|
"email": "<hashed_email_address>", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
|
||||||
// "phone_number": "<hashed_phone_number>", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
|
"phone_number": "<hashed_phone_number>", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
|
||||||
// "external_id": "<hashed_extenal_id>" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
|
"external_id": "<hashed_extenal_id>" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
|
||||||
// });
|
});
|
||||||
|
|
||||||
// ttq.track('CompleteRegistration', {
|
ttq.track('CompleteRegistration', {
|
||||||
// "contents": [
|
"contents": [
|
||||||
// {
|
{
|
||||||
// "content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
|
"content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
|
||||||
// "content_type": "<content_type>", // string. Either product or product_group.
|
"content_type": "<content_type>", // string. Either product or product_group.
|
||||||
// "content_name": "<content_name>" // string. The name of the page or product. Example: "shirt".
|
"content_name": "<content_name>" // string. The name of the page or product. Example: "shirt".
|
||||||
// }
|
}
|
||||||
// ],
|
],
|
||||||
// "value": "<content_value>", // number. Value of the order or items sold. Example: 100.
|
"value": "<content_value>", // number. Value of the order or items sold. Example: 100.
|
||||||
// "currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
|
"currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
|
||||||
// });
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -87,3 +87,5 @@ function SendRegistrationForm(el, user_id){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -94,15 +94,5 @@
|
|||||||
<option value="last" {% if route_form.initial.sort == item.0 %} selected{% endif %}>{% translate "По последним" %}</option>
|
<option value="last" {% if route_form.initial.sort == item.0 %} selected{% endif %}>{% translate "По последним" %}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div><!-- Yandex.RTB R-A-14631137-1 -->
|
|
||||||
<div id="yandex_rtb_R-A-14631137-1"></div>
|
|
||||||
<script>
|
|
||||||
window.yaContextCb.push(() => {
|
|
||||||
Ya.Context.AdvManager.render({
|
|
||||||
"blockId": "R-A-14631137-1",
|
|
||||||
"renderTo": "yandex_rtb_R-A-14631137-1"
|
|
||||||
})
|
|
||||||
})
|
|
||||||
</script></div>
|
|
||||||
|
|
||||||
{#</div>#}
|
{#</div>#}
|
||||||
@@ -7,6 +7,9 @@
|
|||||||
<link rel="stylesheet" href="{% static "css/slick.css" %}">
|
<link rel="stylesheet" href="{% static "css/slick.css" %}">
|
||||||
<script src="{% static "js/slick.min.js" %}"></script>
|
<script src="{% static "js/slick.min.js" %}"></script>
|
||||||
<script src="{% static "js/push/lazyload.min.js" %}"></script>
|
<script src="{% static "js/push/lazyload.min.js" %}"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
<!-- Meta Pixel Code -->
|
<!-- Meta Pixel Code -->
|
||||||
<script>
|
<script>
|
||||||
@@ -26,25 +29,6 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
|
|||||||
/></noscript>
|
/></noscript>
|
||||||
<!-- End Meta Pixel Code -->
|
<!-- End Meta Pixel Code -->
|
||||||
|
|
||||||
<!-- TikTok Pixel Code Start -->
|
|
||||||
<script>
|
|
||||||
!function (w, d, t) {
|
|
||||||
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(
|
|
||||||
var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script")
|
|
||||||
;n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
|
|
||||||
|
|
||||||
|
|
||||||
ttq.load('CVE2FBRC77U60E3J820G');
|
|
||||||
ttq.page();
|
|
||||||
}(window, document, 'ttq');
|
|
||||||
</script>
|
|
||||||
<!-- TikTok Pixel Code End -->
|
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
|
|
||||||
<!-- Yandex.Metrika counter -->
|
<!-- Yandex.Metrika counter -->
|
||||||
<script type="text/javascript" >
|
<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)};
|
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
||||||
|
|||||||
@@ -7,8 +7,14 @@
|
|||||||
<link rel="stylesheet" href="{% static "css/slick.css" %}">
|
<link rel="stylesheet" href="{% static "css/slick.css" %}">
|
||||||
<script src="{% static "js/slick.min.js" %}"></script>
|
<script src="{% static "js/slick.min.js" %}"></script>
|
||||||
<script src="{% static "js/push/lazyload.min.js" %}"></script>
|
<script src="{% static "js/push/lazyload.min.js" %}"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
<!-- Meta Pixel Code -->
|
{% block content %}
|
||||||
|
|
||||||
|
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Meta Pixel Code -->
|
||||||
<script>
|
<script>
|
||||||
!function(f,b,e,v,n,t,s)
|
!function(f,b,e,v,n,t,s)
|
||||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||||
@@ -26,24 +32,43 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
|
|||||||
/></noscript>
|
/></noscript>
|
||||||
<!-- End Meta Pixel Code -->
|
<!-- End Meta Pixel Code -->
|
||||||
|
|
||||||
<!-- TikTok Pixel Code Start -->
|
<!-- Meta Pixel Code -->
|
||||||
<script>
|
<script>
|
||||||
!function (w, d, t) {
|
!function(f,b,e,v,n,t,s)
|
||||||
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(
|
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||||
var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script")
|
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||||
;n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
|
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||||
|
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||||
|
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||||
ttq.load('CVE2H93C77U83BE8I4U0');
|
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||||
ttq.page();
|
'https://connect.facebook.net/en_US/fbevents.js');
|
||||||
}(window, document, 'ttq');
|
fbq('init', '600144342749399');
|
||||||
|
fbq('track', 'PageView');
|
||||||
</script>
|
</script>
|
||||||
<!-- TikTok Pixel Code End -->
|
<noscript><img height="1" width="1" style="display:none"
|
||||||
|
src="https://www.facebook.com/tr?id=600144342749399&ev=PageView&noscript=1"
|
||||||
|
/></noscript>
|
||||||
|
<!-- End Meta Pixel Code -->
|
||||||
|
|
||||||
|
<!-- Meta Pixel Code -->
|
||||||
|
<script>
|
||||||
|
!function(f,b,e,v,n,t,s)
|
||||||
|
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||||
|
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||||
|
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||||
|
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||||
|
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||||
|
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||||
|
'https://connect.facebook.net/en_US/fbevents.js');
|
||||||
|
fbq('init', '600144342749399');
|
||||||
|
fbq('track', 'PageView');
|
||||||
|
</script>
|
||||||
|
<noscript><img height="1" width="1" style="display:none"
|
||||||
|
src="https://www.facebook.com/tr?id=600144342749399&ev=PageView&noscript=1"
|
||||||
|
/></noscript>
|
||||||
|
<!-- End Meta Pixel Code -->
|
||||||
|
|
||||||
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
|
|
||||||
<!-- Yandex.Metrika counter -->
|
<!-- Yandex.Metrika counter -->
|
||||||
<script type="text/javascript" >
|
<script type="text/javascript" >
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
{% block meta %}
|
{% block meta %}
|
||||||
<script src='{% static "js/authorization.js" %}'></script>
|
<script src='{% static "js/authorization.js" %}'></script>
|
||||||
<script src='{% static "js/registration.js" %}'></script>
|
<script src='{% static "js/registration.js" %}'></script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
{% block meta %}
|
{% block meta %}
|
||||||
<script src='{% static "js/registration.js" %}'></script>
|
<script src='{% static "js/registration.js" %}'></script>
|
||||||
<script>fbq('track', 'Contact');</script>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
@@ -26,6 +25,5 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
|
|||||||
/></noscript>
|
/></noscript>
|
||||||
<!-- End Meta Pixel Code -->
|
<!-- End Meta Pixel Code -->
|
||||||
|
|
||||||
|
|
||||||
{% include 'forms/f_registration.html' %}
|
{% include 'forms/f_registration.html' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -33,27 +33,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<script defer src='{% static "js/check_new_messages.js" %}'></script>
|
<script defer src='{% static "js/check_new_messages.js" %}'></script>
|
||||||
<script>
|
|
||||||
!function(f,b,e,v,n,t,s)
|
|
||||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
|
||||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
|
||||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
|
||||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
|
||||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
|
||||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
|
||||||
'https://connect.facebook.net/en_US/fbevents.js');
|
|
||||||
fbq('init', '1123814969330706');
|
|
||||||
fbq('track', 'PageView');
|
|
||||||
</script>
|
|
||||||
<noscript><img height="1" width="1" style="display:none"
|
|
||||||
src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
|
|
||||||
/></noscript>
|
|
||||||
<script>
|
|
||||||
if (localStorage.getItem("needed_fbq")){
|
|
||||||
fbq('track', 'Contact');
|
|
||||||
localStorage.removeItem("needed_fbq")
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -17,14 +17,6 @@
|
|||||||
{% webpush_header %}
|
{% webpush_header %}
|
||||||
<meta name="google-site-verification" content="4V4upJSK2_4MBrr5ZXjcCLw3bBwXc4_gsnKudJAaWqI" />
|
<meta name="google-site-verification" content="4V4upJSK2_4MBrr5ZXjcCLw3bBwXc4_gsnKudJAaWqI" />
|
||||||
<meta name="yandex-verification" content="b8a976575e41fbbc" />
|
<meta name="yandex-verification" content="b8a976575e41fbbc" />
|
||||||
<meta name="google-adsense-account" content="ca-pub-3479005276839542">
|
|
||||||
|
|
||||||
<!-- Yandex.RTB -->
|
|
||||||
<script>window.yaContextCb=window.yaContextCb||[]</script>
|
|
||||||
<script src="https://yandex.ru/ads/system/context.js" async></script>
|
|
||||||
|
|
||||||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3479005276839542"
|
|
||||||
crossorigin="anonymous"></script>
|
|
||||||
|
|
||||||
{% include "inter/meta_OpenGraph_Schema.html" %}
|
{% include "inter/meta_OpenGraph_Schema.html" %}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user