Compare commits
18 Commits
4c28c17088
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| f6f4bfa2ab | |||
| f625537b6f | |||
| 794d5e810d | |||
| a5c0985093 | |||
| 70b481480f | |||
| a37e009109 | |||
| 191ceaca36 | |||
| 53ec69d27c | |||
| 26f29e4353 | |||
| e1f239d6ee | |||
| 355abb1add | |||
| a3795dd267 | |||
| 90ffcd090c | |||
| acb52aef73 | |||
| fa04e5275f | |||
| 0288c05e2b | |||
| 9c96d8c253 | |||
| 423394a9d9 |
@@ -203,8 +203,6 @@ 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
|
||||||
|
|
||||||
@@ -313,18 +311,14 @@ 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,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,
|
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'
|
||||||
@@ -124,11 +123,7 @@ 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()
|
||||||
|
|
||||||
print(f'connect to mail server smtp_server={str(smtp_server)} smtp_port={str(smtp_port)}')
|
mail_lib = smtplib.SMTP(smtp_server, smtp_port)
|
||||||
|
|
||||||
mail_lib = smtplib.SMTP(smtp_server, smtp_port, timeout=60)
|
|
||||||
|
|
||||||
print('connection established')
|
|
||||||
|
|
||||||
res = mail_lib.ehlo()
|
res = mail_lib.ehlo()
|
||||||
|
|
||||||
@@ -144,13 +139,9 @@ 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):
|
||||||
@@ -168,8 +159,6 @@ 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')
|
||||||
@@ -179,8 +168,6 @@ 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
|
||||||
@@ -205,17 +192,13 @@ 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:
|
||||||
import traceback
|
msg = 'send_mail_by_SMTPlib error = {0}'.format(str(e))
|
||||||
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()
|
||||||
|
|||||||
14
SubscribesApp/migrations/0008_merge_20250217_1748.py
Normal file
14
SubscribesApp/migrations/0008_merge_20250217_1748.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# 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: *
|
||||||
Allow: /
|
Disallow: /
|
||||||
Disallow: */admin/*
|
Disallow: */admin/*
|
||||||
|
|
||||||
Host: tripwb.com
|
Host: dev.tripwb.com
|
||||||
@@ -27,11 +27,12 @@ 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,5 +87,3 @@ function SendRegistrationForm(el, user_id){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -94,5 +94,15 @@
|
|||||||
<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,7 @@
|
|||||||
<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>
|
||||||
|
|
||||||
<!-- Meta Pixel Code -->
|
<!-- Meta Pixel Code -->
|
||||||
<script>
|
<script>
|
||||||
!function(f,b,e,v,n,t,s)
|
!function(f,b,e,v,n,t,s)
|
||||||
@@ -24,6 +25,22 @@ fbq('track', 'PageView');
|
|||||||
src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
|
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 %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
<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>
|
||||||
|
|
||||||
<!-- Meta Pixel Code -->
|
<!-- Meta Pixel Code -->
|
||||||
<script>
|
<script>
|
||||||
!function(f,b,e,v,n,t,s)
|
!function(f,b,e,v,n,t,s)
|
||||||
@@ -17,14 +18,28 @@ n.queue=[];t=b.createElement(e);t.async=!0;
|
|||||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||||
'https://connect.facebook.net/en_US/fbevents.js');
|
'https://connect.facebook.net/en_US/fbevents.js');
|
||||||
fbq('init', '515019467819670');
|
fbq('init', '1009253847591455');
|
||||||
fbq('track', 'PageView');
|
fbq('track', 'PageView');
|
||||||
</script>
|
</script>
|
||||||
<noscript><img height="1" width="1" style="display:none"
|
<noscript><img height="1" width="1" style="display:none"
|
||||||
src="https://www.facebook.com/tr?id=515019467819670&ev=PageView&noscript=1"
|
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 -->
|
||||||
|
<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" />
|
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
{% 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 %}
|
||||||
|
|||||||
@@ -33,6 +33,27 @@
|
|||||||
|
|
||||||
|
|
||||||
<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,6 +17,14 @@
|
|||||||
{% 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