3 Commits

Author SHA1 Message Date
SDE
b6c56b4890 2.0.0 DB for v2 2024-12-05 15:20:22 +03:00
SDE
ab767233ec 1.8.12 DB for v2 2024-12-05 15:19:56 +03:00
4b13a7ed02 v2 activation 2024-12-05 15:07:55 +03:00
21 changed files with 95 additions and 275 deletions

View File

@@ -203,8 +203,6 @@ def mailing_subscribe_ajax(request):
def send_message_ajax(request):
print('send_message_ajax')
if request.method != 'POST':
raise Http404
@@ -313,18 +311,10 @@ def send_message_ajax(request):
f'</p>'
}
print('render html for mail')
html = render_to_string('mail/m_request_offer.html', Dict, request)
from BaseModels.mailSender import admin_send_mail_by_SMTPlib
mail_sets = get_mail_send_options()
opts = get_options_by_opt_types('support_email', only_vals=True)
print(f'options: {str(opts)}')
if opts and 'support_email' in opts:
to = [opts['support_email']]
else:
to = [mail_sets['sender_email']]
print(f'to: {str(to)}')
to = [mail_sets['sender_email']]
res = admin_send_mail_by_SMTPlib(
mail_sets,
subject=subject,

View File

@@ -105,7 +105,6 @@ 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,
attachments=None):
print('send_mail_by_SMTPlib')
to = to_init
# if not settings.prod_server:
# to = 'web@syncsystems.net'
@@ -124,11 +123,7 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
try:
# context = ssl.create_default_context()
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')
mail_lib = smtplib.SMTP(smtp_server, smtp_port)
res = mail_lib.ehlo()
@@ -144,18 +139,14 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
res = mail_lib.esmtp_features['auth'] = 'LOGIN PLAIN'
# print('mail_lib.esmtp_features = {0}'.format(str(res)))
print('try to login')
res = mail_lib.login(smtp_login, smtp_password)
# print('mail_lib.login = {0}'.format(str(res)))
print('login')
res = None
if type(to) in (list, tuple):
# if sets['sender_email'] in to:
# to.remove(sets['sender_email'])
if sets['sender_email'] in to:
to.remove(sets['sender_email'])
if len(to) > 1:
to_str = u', '.join(to)
@@ -168,8 +159,6 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
to = []
to.append(to_str)
print(f'send mail to {str(to)}')
if type(subject) != str:
try:
subject = subject.decode('utf-8')
@@ -179,8 +168,6 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
except:
pass
print(f'add context')
msg = MIMEMultipart()
from email.headerregistry import Address
msg['From'] = from_email
@@ -205,17 +192,13 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
res = msg.attach(attachments)
# print('else attach file complete = {0}'.format(str(res)))
print(f'send mail')
res = mail_lib.sendmail(from_email, to, msg.as_string())
msg = mail_lib.quit()
# print('mail_lib.quit = {0}'.format(str(msg)))
except Exception as e:
import traceback
msg = (f'send_mail_by_SMTPlib error = {str(e)}\n<br>'
f'{str(traceback.format_exc())}')
msg = 'send_mail_by_SMTPlib error = {0}'.format(str(e))
print(msg)
try:
mail_lib.quit()

View File

@@ -1,6 +1,6 @@
import json
from django.http import HttpResponse, Http404, FileResponse, HttpResponseRedirect
from django.http import HttpResponse, Http404, FileResponse
from django.template import loader, RequestContext
from django.contrib.auth.decorators import login_required
@@ -15,7 +15,6 @@ from django.views.decorators.csrf import csrf_exempt
from webpush import send_user_notification
import json
from datetime import datetime, timedelta
from django.urls import reverse
def generate_routes(request, routes_count):
if (not request.user
@@ -74,7 +73,7 @@ def test_code(request):
from RoutesApp.search_matches import search_matches
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.models import Route
@@ -249,12 +248,6 @@ def StaticPageView(request, url):
'route_form': RouteForm(),
'owner_type': 'mover'
})
elif url in ['landing_customer', 'landing_mover']:
raise Http404
# return HttpResponseRedirect(reverse('customer_landing_page'))
# elif url == 'landing_mover':
# return HttpResponseRedirect(reverse('mover_landing_page'))
# elif url == 'works':
# return WorksPage(request)
elif url in ['main']:

View File

@@ -30,6 +30,6 @@ class Admin_Route(Admin_Trans_BaseModel):
search_fields = [
'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)

View File

@@ -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}')
Dict = {
@@ -67,9 +67,7 @@ def send_mail_found_matches_routes(route, matched_route, data_Dict):
from_email=mail_sets['sender_email'], to=to,
html_content=html
)
subject = f'route matches {route.id} <> {matched_route.id} send to {route.owner.email}'
to = ['web@syncsystems.net', 'sa@a3-global.com']
to = ['web@syncsystems.net']
res = admin_send_mail_by_SMTPlib(
mail_sets,
subject=subject,
@@ -80,56 +78,6 @@ def send_mail_found_matches_routes(route, matched_route, data_Dict):
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):
print('search_matches')
@@ -199,9 +147,39 @@ def search_matches(for_routes=None):
if found_routes:
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:
msg = f'<br>\n! search_matches Error = {str(e)}'

View File

@@ -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 = [
]

View File

@@ -202,7 +202,7 @@ CHANNEL_LAYERS = {
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'twbDB',
'NAME': 'twbDBv2',
'USER': 'test_user',
'PASSWORD': 'test_db_pass',
'HOST': '127.0.0.1',
@@ -211,6 +211,7 @@ DATABASES = {
}
# Password validation
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators

View File

@@ -1,5 +1,5 @@
User-agent: *
Allow: /
Disallow: /
Disallow: */admin/*
Host: tripwb.com
Host: dev.tripwb.com

View File

@@ -27,12 +27,11 @@ function SendLoginForm(el){
if(url === '/user_account/login/') {
localStorage.setItem('needed_fbq', true)
if(url === '/user_account/login/'){
location.href = data.redirect_url//`/profile/page/dashboard/`
window.sessionStorage.removeItem('mailingSubscribeRequired')
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
}

View File

@@ -36,26 +36,26 @@ function SendRegistrationForm(el, user_id){
window.sessionStorage.removeItem('mailingSubscribeRequired')
window.sessionStorage.removeItem('email')
fbq('track', 'Contact');
// fbq('track', 'Contact');
// 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.
// "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.
// });
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.
"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.
});
// ttq.track('CompleteRegistration', {
// "contents": [
// {
// "content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
// "content_type": "<content_type>", // string. Either product or product_group.
// "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.
// "currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
// });
ttq.track('CompleteRegistration', {
"contents": [
{
"content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
"content_type": "<content_type>", // string. Either product or product_group.
"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.
"currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
});
@@ -87,3 +87,5 @@ function SendRegistrationForm(el, user_id){
}
});
}

View File

@@ -22,7 +22,7 @@
<a href="https://vk.com/club226251027" target="_blank"><img class="svg" src="/static/img/svg/vk.svg"></a>
<a href="https://www.tiktok.com/@tripwithbonus?_t=8qHingfQWNq" target="_blank"><img class="svg" src="/static/img/svg/tiktok.svg"></a>
<a href="https://youtube.com/@tripwb?si=oiNZrtiOqx6OePJv" target="_blank"><img class="svg" src="/static/img/svg/Youtube.svg"></a>
<a href="https://t.me/tripWB" target="_blank"><img class="svg" src="/static/img/svg/Telegram.svg"></a>
<a href="https://t.me/+XA6A8Ls7fYw2Yzli" target="_blank"><img class="svg" src="/static/img/svg/Telegram.svg"></a>
</div>
</div>
<div class="second-column">

View File

@@ -18,7 +18,7 @@
<span id="sub_title_static">{% trans "Быстро, без посредников, без ограничений" %}</span>
{% endif %}
{% if page.url == 'for_movers' %}
<span id="sub_title_static">{% trans "Общайся, перевози посылки и получай бонусы" %}</span>
<span id="sub_title_static">{% trans "Общайся, перевози послылки и получай бонусы" %}</span>
{% endif %}
<div class="button_container">

View File

@@ -94,15 +94,5 @@
<option value="last" {% if route_form.initial.sort == item.0 %} selected{% endif %}>{% translate "По последним" %}</option>
</select>
</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>#}

View File

@@ -649,7 +649,7 @@
<meta property="og:type" content="website">
<meta property="og:title" content="Партнерская программа доставки посылок в СНГ | TWB">
<meta property="og:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнером">
<meta property="og:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнерам">
<meta property="og:url" content="https://tripwb.com/ru/page/partners/">
<meta property="og:image" content="https://tripwb.com/static/img/png/finlogo.png">
<meta property="og:site_name" content="TWB">
@@ -657,7 +657,7 @@
<meta property="fb:app_id" content="tripwithbonus">
<meta name="twitter:title" content="Партнерская программа доставки посылок в СНГ | TWB">
<meta name="twitter:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнером">
<meta name="twitter:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнерам">
<meta name="twitter:card" content="summary">
<script type="application/ld+json">

View File

@@ -7,6 +7,9 @@
<link rel="stylesheet" href="{% static "css/slick.css" %}">
<script src="{% static "js/slick.min.js" %}"></script>
<script src="{% static "js/push/lazyload.min.js" %}"></script>
{% endblock %}
{% block content %}
<!-- Meta Pixel Code -->
<script>
@@ -26,44 +29,6 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<!-- 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 -->
<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();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
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(97070898, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
ecommerce:"dataLayer"
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/97070898" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<section class="presentation">
<div class="presentation__top">
<h1 class="presentation__title">
@@ -219,7 +184,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="subtitle">
{% translate "Чтобы разместить объявление - зарегистрируйтесь" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="easy__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
@@ -237,9 +202,9 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="h3">
{% translate "Хотите перевезти посылку и окупить стоимость дороги, топлива?" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__btn btn btn--primary">{% translate "Найти посылку" %}</a>
<a href="{% url "registration_page" %}" class="use__btn btn btn--primary">{% translate "Найти посылку" %}</a>
<br/>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__link">{% translate "Зарегистрироваться" %}</a>
<a href="{% url "registration_page" %}" class="use__link">{% translate "Зарегистрироваться" %}</a>
</section>
<section class="benefits" id="benefits">
@@ -434,7 +399,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="subtitle">
{% translate "Зарегистрируйся на&nbsp;<a href='https://tripwb.com/' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и&nbsp;получи отклики от&nbsp;людей с&nbsp;посылками" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
<script>
document.addEventListener("DOMContentLoaded", () => {
@@ -517,7 +482,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="title">
{% translate "Размести свое объявление какую посылку ты можешь перевезти прямо сейчас " %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
@@ -538,7 +503,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="h3">
{% translate "Зарегистрируйся бесплатно прямо сейчас и начни размещать объявления о перевозки посылки" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="sore__btn btn btn--primary">{% translate "Зарегистрироваться" %}</a>
<br/>
</div>

View File

@@ -9,8 +9,6 @@
{% endblock %}
{% block content %}
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
<div class="top_block_static_wrapper_main">
<div class="top_block_static">

View File

@@ -7,8 +7,11 @@
<link rel="stylesheet" href="{% static "css/slick.css" %}">
<script src="{% static "js/slick.min.js" %}"></script>
<script src="{% static "js/push/lazyload.min.js" %}"></script>
{% endblock %}
<!-- Meta Pixel Code -->
{% block content %}
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
@@ -26,44 +29,6 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
/></noscript>
<!-- 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('CVE2H93C77U83BE8I4U0');
ttq.page();
}(window, document, 'ttq');
</script>
<!-- TikTok Pixel Code End -->
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
{% endblock %}
{% block content %}
<!-- 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();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
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(97070898, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
ecommerce:"dataLayer"
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/97070898" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<section class="presentation">
<div class="presentation__top">
@@ -221,7 +186,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="subtitle">
{% translate "Чтобы разместить объявление - зарегистрируйтесь" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="easy__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
<section class="use">
@@ -239,9 +204,9 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="h3">
{% translate "Нужно отправить посылку партнеру, родителям или знакомым?" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__btn btn btn--primary">{% translate "Найти перевозчика" %}</a>
<a href="{% url "registration_page" %}" class="use__btn btn btn--primary">{% translate "Найти перевозчика" %}</a>
<br/>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__link">{% translate "Зарегистрироваться" %}</a>
<a href="{% url "registration_page" %}" class="use__link">{% translate "Зарегистрироваться" %}</a>
</section>
<section class="diff">
<div class="title">{% translate "Чем мы отличаемся от классических почтовых сервисов" %}</div>
@@ -447,7 +412,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="subtitle">
{% translate "Зарегистрируйся на <a href='https://tripwb.com/' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и получи запросы на перевозку твоей посылки" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
<script>
document.addEventListener("DOMContentLoaded", () => {
@@ -524,11 +489,11 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
</div>
<div class="benefits__third">
<div class="benefits__item">
<h2>{% translate "Удобный поиск" %}</h2>
<h2>{% translate "Уведомления" %}</h2>
<p>{% translate "Можешь самостоятельно найти перевозчиков или разместить объявление на&nbsp;сайте." %}</p>
</div>
<div class="benefits__item">
<h2>{% translate "Уведомления" %}</h2>
<h2>{% translate "Удобный поиск" %}</h2>
<p>{% translate "Как только по&nbsp;твоему объявлению найдется перевозчик мы&nbsp;сообщим на&nbsp;E-mail." %}</p>
</div>
<div class="benefits__item">
@@ -587,7 +552,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="subtitle">
{% translate "Достаточно просто зайти на сайт, разместить объявление в пару кликов и дождаться откликов от попутчиков." %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
<section class="sore">
@@ -607,7 +572,7 @@ var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n
<div class="h3">
{% translate "Зарегистрируйте бесплатно прямо сейчас и&nbsp;размести свое первое объявление об&nbsp;отправке посылки" %}
</div>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
<a href="{% url "registration_page" %}"
class="sore__btn btn btn--primary">{% translate "Зарегистрироваться и разместить" %}</a>
<br/>
</div>

View File

@@ -5,6 +5,7 @@
{% block meta %}
<script src='{% static "js/authorization.js" %}'></script>
<script src='{% static "js/registration.js" %}'></script>
{% endblock %}
{% block content %}

View File

@@ -3,7 +3,6 @@
{% block meta %}
<script src='{% static "js/registration.js" %}'></script>
<script>fbq('track', 'Contact');</script>
{% endblock %}
{% block content %}
@@ -26,6 +25,5 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
{% include 'forms/f_registration.html' %}
{% endblock %}

View File

@@ -33,27 +33,6 @@
<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 %}

View File

@@ -17,14 +17,6 @@
{% webpush_header %}
<meta name="google-site-verification" content="4V4upJSK2_4MBrr5ZXjcCLw3bBwXc4_gsnKudJAaWqI" />
<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" %}