Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -28,6 +28,6 @@ urlpatterns = [
|
|||||||
path('change_profile_confirm/', change_profile_confirm_ajax, name='change_profile_confirm_ajax'),
|
path('change_profile_confirm/', change_profile_confirm_ajax, name='change_profile_confirm_ajax'),
|
||||||
path('change_avatar_confirm/', change_avatar_confirm_ajax, name='change_avatar_confirm_ajax'),
|
path('change_avatar_confirm/', change_avatar_confirm_ajax, name='change_avatar_confirm_ajax'),
|
||||||
|
|
||||||
path('request_offer/', request_offer_ajax, name='request_offer_ajax')
|
path('send_message/', send_message_ajax, name='send_message_ajax')
|
||||||
|
|
||||||
]
|
]
|
||||||
@@ -31,53 +31,95 @@ import base64
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def request_offer_ajax(request):
|
def send_message_ajax(request):
|
||||||
if request.method != 'POST':
|
if request.method != 'POST':
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
data = request.POST
|
try:
|
||||||
if not data and request.body:
|
|
||||||
data = request.body
|
|
||||||
|
|
||||||
from GeneralApp.funcs_options import get_options_by_opt_types, get_mail_send_options
|
data = request.POST
|
||||||
sets = get_options_by_opt_types(['domain', 'project_name'], only_vals=True)
|
if not data and request.body:
|
||||||
|
data = request.body
|
||||||
|
|
||||||
request_type = None
|
from GeneralApp.funcs_options import get_options_by_opt_types, get_mail_send_options
|
||||||
subject = _('Получен запрос')
|
sets = get_options_by_opt_types(['domain', 'project_name'], only_vals=True)
|
||||||
if 'form_name' in data:
|
|
||||||
if data['form_name'] == 'msg_from_advertisement':
|
request_type = None
|
||||||
subject = _('Получен запрос на рекламу')
|
subject = _('Получен запрос')
|
||||||
request_type = _('запрос на рекламу')
|
if 'form_name' in data:
|
||||||
|
if data['form_name'] == 'msg_from_advertisement':
|
||||||
|
subject = _('Получен запрос на рекламу')
|
||||||
|
request_type = _('запрос на рекламу')
|
||||||
|
if data['form_name'] == 'msg_from_partners':
|
||||||
|
subject = _('Получен запрос на подключение к партнерской сети')
|
||||||
|
request_type = _('запрос на партнерство')
|
||||||
|
if data['form_name'] == 'msg_from_customer_service':
|
||||||
|
subject = _('Получен запрос в службу техподдержки')
|
||||||
|
request_type = _('запрос в техподдержку')
|
||||||
|
if data['form_name'] == 'msg_from_contacts':
|
||||||
|
subject = _('Получен запрос со страницы контактов')
|
||||||
|
request_type = _('запрос со страницы контактов')
|
||||||
|
if data['form_name'] == 'msg_from_about_service':
|
||||||
|
subject = _('Получен запрос со страницы О сервисе')
|
||||||
|
request_type = _('запрос со страницы о сервисе')
|
||||||
|
if data['form_name'] == 'footer':
|
||||||
|
subject = _('Получен запрос на рассылку')
|
||||||
|
request_type = _('запрос на рассылку')
|
||||||
|
|
||||||
if request_type:
|
|
||||||
request_type_str = f'<b>{_("Тип запроса")}:</b> {request_type}<br>'
|
|
||||||
else:
|
|
||||||
request_type_str = ''
|
request_type_str = ''
|
||||||
|
name_str = ''
|
||||||
|
phone_str = ''
|
||||||
|
email_str = ''
|
||||||
|
msg_str = ''
|
||||||
|
if request_type:
|
||||||
|
request_type_str = f'<b>{_("Тип запроса")}:</b> {request_type}<br>'
|
||||||
|
if 'name' in data:
|
||||||
|
name_str = f'<b>{_("Имя")}:</b> {data["name"]}<br>'
|
||||||
|
if 'phone' in data:
|
||||||
|
phone_str = f'<b>{_("Телефон")}:</b> {data["phone"]}<br>'
|
||||||
|
if 'email' in data:
|
||||||
|
email_str = f'<b>{_("email")}:</b> {data["email"]}<br>'
|
||||||
|
if 'text_msg' in data:
|
||||||
|
msg_str = (f'<b>{_("Сообщение")}:</b><br>'
|
||||||
|
f'<div style="margin-left: 40px; line-height: 20px;">{data["text_msg"]}</div><br>')
|
||||||
|
|
||||||
Dict = {
|
|
||||||
'logo': f'{request.scheme}://{sets["domain"]}/static/img/svg/LogoMobile.svg',
|
|
||||||
'project_name': sets['project_name'],
|
|
||||||
'message_title': subject,
|
|
||||||
'message_text': f'<p><b>{_("ДАННЫЕ ЗАПРОСА")}</b></p>'
|
|
||||||
f'<p style="padding-left: 20px; line-height: 30px;">'
|
|
||||||
f'{request_type_str}'
|
|
||||||
f'<b>{_("Имя")}:</b> {data["name"]}<br>'
|
|
||||||
f'<b>{_("Телефон")}:</b> {data["phone"]}'
|
|
||||||
f'</p>'
|
|
||||||
}
|
|
||||||
|
|
||||||
html = render_to_string('mail/m_request_offer.html', Dict, request)
|
Dict = {
|
||||||
from BaseModels.mailSender import admin_send_mail_by_SMTPlib
|
'logo': f'{request.scheme}://{sets["domain"]}/static/img/svg/LogoMobile.svg',
|
||||||
mail_sets = get_mail_send_options()
|
'project_name': sets['project_name'],
|
||||||
to = [mail_sets['sender_email'], 'web@syncsystems.net']
|
'message_title': subject,
|
||||||
res = admin_send_mail_by_SMTPlib(
|
'message_text': f'<p><b>{_("ДАННЫЕ ЗАПРОСА")}</b></p>'
|
||||||
mail_sets,
|
f'<p style="padding-left: 20px; line-height: 30px;">'
|
||||||
subject=subject,
|
f'{request_type_str}'
|
||||||
from_email=mail_sets['sender_email'], to=to,
|
f'{name_str}'
|
||||||
html_content=html
|
f'{phone_str}'
|
||||||
)
|
f'{email_str}'
|
||||||
|
f'{msg_str}'
|
||||||
|
f'</p>'
|
||||||
|
}
|
||||||
|
|
||||||
return JsonResponse({'status': 'sended'})
|
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()
|
||||||
|
to = [mail_sets['sender_email'], 'web@syncsystems.net']
|
||||||
|
res = admin_send_mail_by_SMTPlib(
|
||||||
|
mail_sets,
|
||||||
|
subject=subject,
|
||||||
|
from_email=mail_sets['sender_email'], to=to,
|
||||||
|
html_content=html
|
||||||
|
)
|
||||||
|
|
||||||
|
html = render_to_string('widgets/w_msg_send_success.html', Dict, request)
|
||||||
|
|
||||||
|
return JsonResponse({
|
||||||
|
'status': 'sended',
|
||||||
|
'html': html
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
return JsonResponse({
|
||||||
|
'status': 'error',
|
||||||
|
'error': str(e)
|
||||||
|
}, status=400)
|
||||||
|
|
||||||
|
|
||||||
@login_required(login_url='/profile/login/')
|
@login_required(login_url='/profile/login/')
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
@media (max-width: 1280px){
|
@media (max-width: 1280px){
|
||||||
|
|
||||||
button#remove_route{
|
.remove_route{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
@@ -1018,7 +1018,9 @@
|
|||||||
margin: unset;
|
margin: unset;
|
||||||
}
|
}
|
||||||
.cargo_type_trans{
|
.cargo_type_trans{
|
||||||
float: right;
|
display: block;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
float: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
.from-to-country-container-carrier{
|
.from-to-country-container-carrier{
|
||||||
|
|||||||
@@ -1774,6 +1774,7 @@ input#id_extra_phone
|
|||||||
}
|
}
|
||||||
.route_info_about{
|
.route_info_about{
|
||||||
margin-bottom: 30px;
|
margin-bottom: 30px;
|
||||||
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.route_info_point {
|
.route_info_point {
|
||||||
@@ -1825,10 +1826,13 @@ input#id_extra_phone
|
|||||||
|
|
||||||
.cargo_type_disp{
|
.cargo_type_disp{
|
||||||
background: url("/static/img/png/Tag.png") left center no-repeat;
|
background: url("/static/img/png/Tag.png") left center no-repeat;
|
||||||
margin: 0 20px 0 20px;
|
margin-right: 20px;
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.cargo_type_trans{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
.cargo_weight{
|
.cargo_weight{
|
||||||
background: url("/static/img/png/Scales.png") left center no-repeat;
|
background: url("/static/img/png/Scales.png") left center no-repeat;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
@@ -1870,13 +1874,28 @@ button#edit_route {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
button#remove_route {
|
.remove_route {
|
||||||
height: 44px;
|
height: 44px;
|
||||||
width: 285px;
|
width: 285px;
|
||||||
color: rgba(39, 36, 36, 0.60);
|
color: rgba(39, 36, 36, 0.60);
|
||||||
}
|
}
|
||||||
|
.remove_route.hide{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.msg_send{
|
||||||
|
font-size: 24px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 700;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: -1px 4px 10px 0px rgba(198, 199, 203, 0.20), 0px -1px 10px 0px rgba(198, 199, 203, 0.20);
|
||||||
|
}
|
||||||
|
.msg_send.hide{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
button.confirm_remove{
|
button.confirm_remove{
|
||||||
width: 49.5%;
|
width: 48.5%;
|
||||||
border: 1px solid #ff0000a8;
|
border: 1px solid #ff0000a8;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
color: #ff0000a8;
|
color: #ff0000a8;
|
||||||
@@ -1886,6 +1905,7 @@ button.confirm_remove{
|
|||||||
/*padding: 5px 0px 5px 0px;*/
|
/*padding: 5px 0px 5px 0px;*/
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
height: 44px;
|
height: 44px;
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.cancel_remove{
|
button.cancel_remove{
|
||||||
@@ -1898,9 +1918,14 @@ button.cancel_remove{
|
|||||||
/*padding: 5px 0px 5px 0px;*/
|
/*padding: 5px 0px 5px 0px;*/
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
height: 44px;
|
height: 44px;
|
||||||
|
display: none;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button.cancel_remove.show, button.confirm_remove.show{
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*Static_pages*/
|
/*Static_pages*/
|
||||||
#title_static{
|
#title_static{
|
||||||
|
|||||||
@@ -146,9 +146,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
function removeRoute(el) {
|
function removeRoute(el,route_id ) {
|
||||||
let data = el.currentTarget.closest('.carrier-card');
|
let remove_item = route_id
|
||||||
let remove_item = data.dataset.numberOfRoute
|
|
||||||
let remove_data = {}
|
let remove_data = {}
|
||||||
let name_route = 'route_id'
|
let name_route = 'route_id'
|
||||||
remove_data[name_route] = remove_item
|
remove_data[name_route] = remove_item
|
||||||
@@ -176,7 +175,7 @@ function removeRoute(el) {
|
|||||||
// el.classList.add('selected')
|
// el.classList.add('selected')
|
||||||
|
|
||||||
//updating the url without reloading
|
//updating the url without reloading
|
||||||
window.history.pushState(null, null, '/ru/profile/page/change_profile/')
|
window.history.pushState(null, null, '/ru/profile/page/my_routes/')
|
||||||
|
|
||||||
middleWareJS()
|
middleWareJS()
|
||||||
},
|
},
|
||||||
@@ -189,46 +188,35 @@ function removeRoute(el) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function cancelRemove() {
|
function cancelRemove(route_id) {
|
||||||
let parent_cancel_button = document.querySelector('.button_remove_route')
|
let confirm_remove = document.getElementById('confirm_remove_'+ route_id);
|
||||||
let cancel_button = document.querySelector('.cancel_remove')
|
let cancel_remove = document.getElementById('cancel_remove_'+ route_id);
|
||||||
parent_cancel_button.removeChild(cancel_button)
|
|
||||||
|
|
||||||
let remove_button = document.querySelector('.confirm_remove');
|
confirm_remove.classList.remove('show');
|
||||||
remove_button.classList.remove('confirm_remove');
|
cancel_remove.classList.remove('show');
|
||||||
remove_button.innerText = 'Удалить';
|
|
||||||
remove_button.setAttribute("id", "remove_route");
|
|
||||||
|
|
||||||
remove_button.removeEventListener('click', removeRoute);
|
let remove_btn = document.getElementById('remove_route_'+route_id);
|
||||||
|
remove_btn.classList.remove('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideBlock(el) {
|
||||||
|
|
||||||
|
el.classList.add('hide')
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function confirmRemove(el) {
|
function confirmRemove(el, route_id) {
|
||||||
|
|
||||||
el.setAttribute("id", "select-remove");
|
let confirm_remove = document.getElementById('confirm_remove_'+ route_id);
|
||||||
let btn = document.querySelector("#select-remove");
|
let cancel_remove = document.getElementById('cancel_remove_'+ route_id);
|
||||||
|
confirm_remove.classList.add('show');
|
||||||
if (!btn.classList.contains('confirm_remove')) {
|
cancel_remove.classList.add('show');
|
||||||
btn.classList.add('confirm_remove');
|
|
||||||
btn.innerText = 'Подтвердить удаление';
|
|
||||||
btn.addEventListener('click', removeRoute, { once: true });
|
|
||||||
|
|
||||||
let cancel_button = document.createElement('button');
|
|
||||||
cancel_button.className = "cancel_remove";
|
|
||||||
cancel_button.innerText = "Отменить удаление";
|
|
||||||
cancel_button.addEventListener('click', cancelRemove)
|
|
||||||
|
|
||||||
|
|
||||||
let place = btn.closest(".button_remove_route");
|
|
||||||
place.insertBefore(cancel_button, btn.nextSibling);
|
|
||||||
|
|
||||||
btn.removeAttribute( "select-remove");
|
|
||||||
|
|
||||||
|
let remove_btn = document.getElementById('remove_route_'+route_id);
|
||||||
|
remove_btn.classList.add('hide');
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function loader_place_ins_boris (el,type=null){
|
function loader_place_ins_boris (el,type=null){
|
||||||
if (el && !window.location.href.includes("profile")){
|
if (el && !window.location.href.includes("profile")){
|
||||||
@@ -820,7 +808,7 @@ function RequestCommercialOffer (el){
|
|||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
|
headers: { "X-CSRFToken": $('input[name=csrfmiddlewaretoken]').val() },
|
||||||
url: '/user_account/request_offer/',
|
url: '/user_account/send_message/',
|
||||||
type: "POST",
|
type: "POST",
|
||||||
// async: true,
|
// async: true,
|
||||||
cache: false,
|
cache: false,
|
||||||
@@ -830,7 +818,7 @@ function RequestCommercialOffer (el){
|
|||||||
data: formData,
|
data: formData,
|
||||||
success: function(data){
|
success: function(data){
|
||||||
|
|
||||||
alert("Сообщение отправлено")
|
$(data.html).insertBefore(document.querySelector(".feedback_form"))
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="inputs_l">
|
<div class="inputs_l">
|
||||||
<input name="phone" type="number" placeholder="{% translate 'Телефон' %}"{% if form.data.tel %} value="{{ form.data.tel }}"{% endif %}>
|
<input name="phone" type="tel" placeholder="{% translate 'Телефон' %}"{% if form.data.tel %} value="{{ form.data.tel }}"{% endif %}>
|
||||||
{% if form.tel and form.errors.tel %}
|
{% if form.tel and form.errors.tel %}
|
||||||
<span>{{ form.errors.tel }}</span>
|
<span>{{ form.errors.tel }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
>
|
>
|
||||||
<div class="left_inputs_form">
|
<div class="left_inputs_form">
|
||||||
<div class="inputs_l">
|
<div class="inputs_l">
|
||||||
<input name="username" type="text" placeholder="{% translate 'Имя' %}" {% if form.data.username %} value="{{ form.data.username }}"{% endif %}>
|
<input name="name" type="text" placeholder="{% translate 'Имя' %}" {% if form.data.username %} value="{{ form.data.username }}"{% endif %}>
|
||||||
{% if form.username and form.errors.username %}
|
{% if form.username and form.errors.username %}
|
||||||
<span>{{ form.errors.username }}</span>
|
<span>{{ form.errors.username }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="inputs_l">
|
<div class="inputs_l">
|
||||||
<input name="tel" type="number" placeholder="{% translate 'Телефон' %}"{% if form.data.tel %} value="{{ form.data.tel }}"{% endif %}>
|
<input name="phone" type="tel" placeholder="{% translate 'Телефон' %}"{% if form.data.tel %} value="{{ form.data.tel }}"{% endif %}>
|
||||||
{% if form.tel and form.errors.tel %}
|
{% if form.tel and form.errors.tel %}
|
||||||
<span>{{ form.errors.tel }}</span>
|
<span>{{ form.errors.tel }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
<div class="counter-box">
|
<div class="counter-box">
|
||||||
<label for="id_text"></label>
|
<label for="id_text"></label>
|
||||||
<textarea
|
<textarea
|
||||||
name="text"
|
name="text_msg"
|
||||||
onFocus="this.select()"
|
onFocus="this.select()"
|
||||||
oninput="counterText(this)"
|
oninput="counterText(this)"
|
||||||
id="id_text" class="feedback_form_message"
|
id="id_text" class="feedback_form_message"
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="button_feedback_form">
|
<div class="button_feedback_form">
|
||||||
<button onclick="SendFeedbackForm(this)" id="send_feedback_form">{% translate 'Отправить сообщение' %}</button>
|
<button onclick="RequestCommercialOffer(this)" id="send_feedback_form">{% translate 'Отправить сообщение' %}</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -35,14 +35,14 @@
|
|||||||
<span id="sub_title_static">{% translate "Оставь заявку и получи пресональное предложение о партнерстве" %}</span>
|
<span id="sub_title_static">{% translate "Оставь заявку и получи пресональное предложение о партнерстве" %}</span>
|
||||||
<form data-name="msg_from_partners">
|
<form data-name="msg_from_partners">
|
||||||
<div class="inputs_l">
|
<div class="inputs_l">
|
||||||
<input name="username" type="text" placeholder="{% translate 'Имя' %}" {% if form.data.username %} value="{{ form.data.username }}"{% endif %}>
|
<input name="name" type="text" placeholder="{% translate 'Имя' %}" {% if form.data.username %} value="{{ form.data.username }}"{% endif %}>
|
||||||
{% if form.username and form.errors.username %}
|
{% if form.username and form.errors.username %}
|
||||||
<span>{{ form.errors.username }}</span>
|
<span>{{ form.errors.username }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="inputs_l">
|
<div class="inputs_l">
|
||||||
<input name="tel" type="number" placeholder="{% translate 'Телефон' %}"{% if form.data.tel %} value="{{ form.data.tel }}"{% endif %}>
|
<input name="phone" type="tel" placeholder="{% translate 'Телефон' %}"{% if form.data.tel %} value="{{ form.data.tel }}"{% endif %}>
|
||||||
{% if form.tel and form.errors.tel %}
|
{% if form.tel and form.errors.tel %}
|
||||||
<span>{{ form.errors.tel }}</span>
|
<span>{{ form.errors.tel }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,15 +1,23 @@
|
|||||||
|
|
||||||
<div style="font-family:Calibri,Candara,Segoe,'Segoe UI',Optima,Arial,sans-serif; padding:10px; background-color: #F8F8F8;">
|
<div style="font-family:Calibri,Candara,Segoe,'Segoe UI',Optima,Arial,sans-serif;
|
||||||
<div style="line-height:1.0em;width: 660px">
|
padding:10px; background-color: #F8F8F8;"
|
||||||
|
>
|
||||||
|
<div style="line-height:1.0em; width: 660px">
|
||||||
<div style="padding:5px; text-align: center;">
|
<div style="padding:5px; text-align: center;">
|
||||||
<img src="{{ logo }}" alt="{{ project_name }}" style="margin:0;padding:0;">
|
<img src="{{ logo }}" alt="{{ project_name }}" style="margin:0;padding:0;">
|
||||||
</div>
|
</div>
|
||||||
<p style="font-weight:700;font-size:25px;text-align:center;padding:0;line-height:1em; text-transform: uppercase; color: #ff613a;">
|
<p style="font-weight:700; font-size:25px; text-align:center;
|
||||||
|
padding:0; line-height:1em; text-transform: uppercase; color: #ff613a;
|
||||||
|
margin: auto; max-width: 90%;
|
||||||
|
">
|
||||||
{{ message_title|safe }}
|
{{ message_title|safe }}
|
||||||
</p>
|
</p>
|
||||||
<div style="line-height:1.0em;font-size:18px;margin-top: 5px; margin-left: 30px; box-shadow: -1px 4px 10px 0 rgba(198, 199, 203, 0.20), 0 -1px 10px 0 rgba(198, 199, 203, 0.20); padding: 30px; border-radius: 10px; background-color: #FFF;">
|
<div style="line-height:1.0em; font-size:18px; margin: 5px 30px;
|
||||||
|
box-shadow: -1px 4px 10px 0 rgba(198, 199, 203, 0.20), 0 -1px 10px 0 rgba(198, 199, 203, 0.20);
|
||||||
|
padding: 30px; border-radius: 10px; background-color: #FFF;"
|
||||||
|
>
|
||||||
{# <p style="line-height:1.0em;font-size:18px;margin-top: 5px; margin-left: 80px">#}
|
{# <p style="line-height:1.0em;font-size:18px;margin-top: 5px; margin-left: 80px">#}
|
||||||
{{ message_text|safe }}
|
{{ message_text|safe|linebreaksbr }}
|
||||||
{# </p>#}
|
{# </p>#}
|
||||||
</div>
|
</div>
|
||||||
{% for button in message_buttons %}
|
{% for button in message_buttons %}
|
||||||
|
|||||||
@@ -2,21 +2,48 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
<div class="carrier-card" data-number-of-route="{{ route.id }}">
|
<div class="carrier-card" data-number-of-route="{{ route.id }}">
|
||||||
<div class="left-part-carrier-card">
|
<div class="left-part-carrier-card">
|
||||||
<div class="first-line-card-carrier">
|
|
||||||
<div class="carrier-title">
|
|
||||||
{% translate "Перевозчик:" %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="type_transportation_carrier">
|
{% if route.owner_type == 'mover' %}
|
||||||
{% if route.type_transport == 'road' %}
|
<div class="first-line-card-carrier">
|
||||||
<img class="inf_carrier_icon" src="{% static "/img/svg/Car.svg" %}"/>
|
<div class="carrier-title">
|
||||||
{% elif route.type_transport == 'avia'%}
|
{% translate "Перевозчик:" %}
|
||||||
<img class="inf_carrier_icon" src="{% static "/img/svg/Airplane.svg" %}"/>
|
</div>
|
||||||
{% endif %}
|
|
||||||
{{ route.get_type_transport_display }}
|
<div class="type_transportation_carrier">
|
||||||
|
{% if route.type_transport == 'road' %}
|
||||||
|
<img class="inf_carrier_icon" src="{% static "/img/svg/Car.svg" %}"/>
|
||||||
|
{% elif route.type_transport == 'avia'%}
|
||||||
|
<img class="inf_carrier_icon" src="{% static "/img/svg/Airplane.svg" %}"/>
|
||||||
|
{% endif %}
|
||||||
|
{{ route.get_type_transport_display }}
|
||||||
|
</div>
|
||||||
|
<div class="clear_both"></div>
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if route.owner_type == 'customer' %}
|
||||||
|
<div class="route_info_about">
|
||||||
|
<span class="cargo_type_disp">
|
||||||
|
{% translate "Тип: " %}{{ route.get_cargo_type_display }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="cargo_weight">
|
||||||
|
{% translate "Вес: " %}{{ route.weight }} {% translate "кг" %}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="cargo_type_trans">
|
||||||
|
|
||||||
|
{% if route.type_transport == 'road' %}
|
||||||
|
<img class="inf_carrier_icon" src="{% static "/img/svg/Car.svg" %}"/>
|
||||||
|
{% elif route.type_transport == 'avia'%}
|
||||||
|
<img class="inf_carrier_icon" src="{% static "/img/svg/Airplane.svg" %}"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ route.get_type_transport_display }}
|
||||||
|
</span>
|
||||||
<div class="clear_both"></div>
|
<div class="clear_both"></div>
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<div class="from-to-country-container-carrier">
|
<div class="from-to-country-container-carrier">
|
||||||
<div class="from-to-country-text left fl-left txt-al-right" title="{{ route.from_country_n_city_str }}">
|
<div class="from-to-country-text left fl-left txt-al-right" title="{{ route.from_country_n_city_str }}">
|
||||||
{{ route.from_country_n_city_str }}
|
{{ route.from_country_n_city_str }}
|
||||||
@@ -31,7 +58,16 @@
|
|||||||
</div>
|
</div>
|
||||||
{# <div class="splliter-left-right-part-carrier-card"></div>#}
|
{# <div class="splliter-left-right-part-carrier-card"></div>#}
|
||||||
<div class="inf_carrier_container">
|
<div class="inf_carrier_container">
|
||||||
<div class="title_container_inf_carrier">{% translate "Контакты отправителия:" %}</div>
|
<div class="title_container_inf_carrier">
|
||||||
|
{% translate 'Контакты' %}
|
||||||
|
{% if route.owner_type == 'mover' %}
|
||||||
|
{% translate "перевозчика" %}
|
||||||
|
<img class="inf_carrier_icon" src="{% static "/img/svg/mover.svg" %}"/>
|
||||||
|
{% elif route.owner_type == 'customer'%}
|
||||||
|
{% translate "отправителя" %}
|
||||||
|
<img class="inf_carrier_icon" src="{% static "/img/svg/cargo.svg" %}"/>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<img src="{% static "/delete_later/Avatar.png" %}">
|
<img src="{% static "/delete_later/Avatar.png" %}">
|
||||||
<span class="name_carrier">{{ route.owner.last_name }} {{ route.owner.first_name }}</span>
|
<span class="name_carrier">{{ route.owner.last_name }} {{ route.owner.first_name }}</span>
|
||||||
|
|||||||
9
templates/widgets/w_msg_send_success.html
Normal file
9
templates/widgets/w_msg_send_success.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{% load static %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
<div
|
||||||
|
onclick="hideBlock(this)"
|
||||||
|
class="msg_send">
|
||||||
|
|
||||||
|
{% translate 'Ваше сообщение отправлено' %}
|
||||||
|
</div>
|
||||||
@@ -15,13 +15,13 @@
|
|||||||
{# </div>#}
|
{# </div>#}
|
||||||
{# <div class="clear_both"></div>#}
|
{# <div class="clear_both"></div>#}
|
||||||
{# </div>#}
|
{# </div>#}
|
||||||
<div class="route_info_about">
|
<div class="route_info_about">
|
||||||
<span class="cargo_type_disp">
|
<span class="cargo_type_disp">
|
||||||
{% translate "Тип:" %}{{ route.get_cargo_type_display }}
|
{% translate "Тип: " %}{{ route.get_cargo_type_display }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="cargo_weight">
|
<span class="cargo_weight">
|
||||||
{% translate "Вес:" %}{{ route.weight }} {% translate "кг" %}
|
{% translate "Вес: " %}{{ route.weight }} {% translate "кг" %}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="cargo_type_trans">
|
<span class="cargo_type_trans">
|
||||||
@@ -85,12 +85,29 @@
|
|||||||
{% translate "Редактировать" %}
|
{% translate "Редактировать" %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="button_remove_route">
|
<div class="button_remove_route">
|
||||||
<button
|
<button
|
||||||
onclick="confirmRemove(this)"
|
onclick="confirmRemove(this, {{ route.id }})"
|
||||||
id="remove_route">
|
class="remove_route"
|
||||||
|
id="remove_route_{{ route.id }}">
|
||||||
{% translate "Удалить" %}
|
{% translate "Удалить" %}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
onclick="removeRoute(this,{{ route.id }},{once: true})"
|
||||||
|
class="confirm_remove"
|
||||||
|
id="confirm_remove_{{ route.id }}">
|
||||||
|
{% translate "Подтвердить удаление" %}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
onclick="cancelRemove({{ route.id }})"
|
||||||
|
class="cancel_remove"
|
||||||
|
id="cancel_remove_{{ route.id }}">
|
||||||
|
{% translate "Отменить удаление" %}
|
||||||
|
</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if route.owner != user %}
|
{% if route.owner != user %}
|
||||||
|
|||||||
Reference in New Issue
Block a user