1 Commits

Author SHA1 Message Date
15ff3d37fc Merge pull request 'dev' (#14) from dev into main
Reviewed-on: #14
2024-10-02 13:52:51 +03:00
158 changed files with 176 additions and 6623 deletions

4
.gitignore vendored
View File

@@ -415,7 +415,3 @@ fabric.properties
# Android studio 3.1+ serialized cache file # Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser .idea/caches/build_file_checksums.ser
# packages for node
package.json
package-lock.json

View File

@@ -1,4 +1,3 @@
from django.http import QueryDict
from django.template.loader import render_to_string from django.template.loader import render_to_string
from SubscribesApp.funcs import check_option_in_cur_user_subscribe from SubscribesApp.funcs import check_option_in_cur_user_subscribe
@@ -57,7 +56,7 @@ def get_profile_page_content_html(request, page_name, data):
return None return None
def get_profile_change_page_content_html(request, data=None): def get_profile_change_page_content_html(request):
init_Dict = { init_Dict = {
'firstname': request.user.first_name, 'firstname': request.user.first_name,
@@ -67,25 +66,6 @@ def get_profile_change_page_content_html(request, data=None):
'country': request.user.user_profile.country, 'country': request.user.user_profile.country,
'city': request.user.user_profile.city, 'city': request.user.user_profile.city,
} }
if data:
if type(data) == QueryDict:
data = data.dict()
init_Dict.update(data)
# if 'firstname' in data:
# init_Dict.update({'first_name': data['firstname']})
# if 'lastname' in data:
# init_Dict.update({'last_name': data['lastname']})
# if 'email' in data:
# init_Dict.update({'email': data['email']})
# init_Dict.update({'username': data['email']})
# if 'country' in data:
# init_Dict.update({'country': data['country']})
# if 'city' in data:
# init_Dict.update({'city': data['city']})
# if 'tel' in data:
# init_Dict.update({'tel': data['tel']})
from .forms import RegistrationForm from .forms import RegistrationForm
form = RegistrationForm(initial=init_Dict) form = RegistrationForm(initial=init_Dict)

View File

@@ -78,10 +78,9 @@ def password_recovery_ajax(request):
try: try:
user = User.objects.get(email=email) user = User.objects.get(email=email)
except User.DoesNotExist: except User.DoesNotExist:
msg = _('Пользователь с указанным email не зарегистрирован на сайте')
return JsonResponse({ return JsonResponse({
'status': 'error', 'status': 'error',
'error': msg 'error': _('Пользователь с указанным email не зарегистрирован на сайте')
}, status=400) }, status=400)
user.user_profile.authMailCode = uuid1().hex user.user_profile.authMailCode = uuid1().hex
@@ -138,7 +137,7 @@ def password_recovery_ajax(request):
return JsonResponse({ return JsonResponse({
'status': 'sended', 'status': 'sended',
'message': _('На email') + ' ' + email + ' ' 'message': _('На email') + ' ' + email + ' '
+ _('отправлено письмо с инструкциями для восстановления пароля. Если не пришло письмо, проверьте папку СПАМ') + _('отправлено письмо с инструкциями для восстановления пароля')
}) })
except Exception as e: except Exception as e:
@@ -314,10 +313,6 @@ def send_message_ajax(request):
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)
if opts and 'support_email' in opts:
to = [opts['support_email']]
else:
to = [mail_sets['sender_email']] to = [mail_sets['sender_email']]
res = admin_send_mail_by_SMTPlib( res = admin_send_mail_by_SMTPlib(
mail_sets, mail_sets,
@@ -506,7 +501,7 @@ def change_profile_confirm_ajax(request):
if data_for_save: if data_for_save:
user_profiles.update(**data_for_save) user_profiles.update(**data_for_save)
html = get_profile_change_page_content_html(request, data) html = get_profile_change_page_content_html(request)
from GeneralApp.funcs import get_add_to_ajax_response_Dict from GeneralApp.funcs import get_add_to_ajax_response_Dict
res_Dict = {'html': html} res_Dict = {'html': html}
res_Dict.update(get_add_to_ajax_response_Dict(request.user)) res_Dict.update(get_add_to_ajax_response_Dict(request.user))
@@ -715,7 +710,6 @@ def registration_ajax(request):
} }
res = send_check_email_after_registration(mail_Dict, user) res = send_check_email_after_registration(mail_Dict, user)
print(str(res))
# res = send_registration_mail(mail_Dict, user) # res = send_registration_mail(mail_Dict, user)
res_Dict = { res_Dict = {

View File

@@ -29,31 +29,12 @@ class BaseModel(models.Model):
json_data = models.JSONField(verbose_name=_('Дополнительные данные'), default=dict, blank=True) json_data = models.JSONField(verbose_name=_('Дополнительные данные'), default=dict, blank=True)
media_items = GenericRelation('GeneralApp.MediaItem', related_query_name='grel_%(class)s_for_media_item')
def __str__(self): def __str__(self):
if self.name: if self.name:
return self.name return self.name
else: else:
return str(self.id) return str(self.id)
def get_media_items(self, exclude_kwargs=None):
if not exclude_kwargs:
exclude_kwargs = {}
return self.media_items.exclude(
**exclude_kwargs
).filter(
enable=True
).order_by('order')
def get_video_items(self):
exclude_kwargs = {'video': None}
return self.get_media_items(exclude_kwargs=exclude_kwargs)
def get_picture_items(self):
exclude_kwargs = {'picture': None}
return self.get_media_items(exclude_kwargs=exclude_kwargs)
def pop_node_by_name(self, node_name): def pop_node_by_name(self, node_name):
if not self.json_data or not node_name in self.json_data: if not self.json_data or not node_name in self.json_data:
return None return None
@@ -127,6 +108,7 @@ class BaseModelViewPage(BaseModel):
FAQ_title = models.CharField(max_length=250, verbose_name=_(u'FAQ Заголовок'), null=True, blank=True) FAQ_title = models.CharField(max_length=250, verbose_name=_(u'FAQ Заголовок'), null=True, blank=True)
FAQ_items = GenericRelation('GeneralApp.FAQitem', related_query_name='grel_%(class)s_for_faq_item') FAQ_items = GenericRelation('GeneralApp.FAQitem', related_query_name='grel_%(class)s_for_faq_item')
class Meta: class Meta:
abstract = True abstract = True

View File

@@ -145,8 +145,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
res = None res = None
if type(to) in (list, tuple): if type(to) in (list, tuple):
# if sets['sender_email'] in to: if sets['sender_email'] in to:
# to.remove(sets['sender_email']) to.remove(sets['sender_email'])
if len(to) > 1: if len(to) > 1:
to_str = u', '.join(to) to_str = u', '.join(to)

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.2 on 2024-07-12 17:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('BillingApp', '0005_subscribeorder_last_operation_status'),
]
operations = [
migrations.AlterField(
model_name='subscribeorder',
name='currency',
field=models.CharField(default='KZT', max_length=3, verbose_name='Валюта'),
),
]

View File

@@ -3,8 +3,6 @@ from .models import *
from django.contrib import admin from django.contrib import admin
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
class Admin_StaticPage(Admin_Trans_BaseModelViewPage): class Admin_StaticPage(Admin_Trans_BaseModelViewPage):
fieldsets = [ fieldsets = [

View File

@@ -1,41 +0,0 @@
# Generated by Django 4.2.2 on 2024-11-15 14:50
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('contenttypes', '0002_remove_content_type_name'),
('GeneralApp', '0005_option_name_en_option_name_ru_option_prefix_en_and_more'),
]
operations = [
migrations.CreateModel(
name='MediaItem',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
('name_ru', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
('name_en', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
('object_id', models.PositiveIntegerField()),
('picture', models.ImageField(blank=True, null=True, upload_to='media/', verbose_name='Фото')),
('video', models.FileField(blank=True, null=True, upload_to='media/video/', verbose_name='Видео')),
('comment', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
('comment_ru', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
('comment_en', models.TextField(blank=True, null=True, verbose_name='Комментарий')),
('content_type', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='contenttypes.contenttype')),
],
options={
'verbose_name': 'Медиа элемент',
'verbose_name_plural': 'Медиа элементы',
},
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.2 on 2024-11-15 15:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('GeneralApp', '0006_mediaitem'),
]
operations = [
migrations.AlterField(
model_name='mediaitem',
name='picture',
field=models.ImageField(blank=True, null=True, upload_to='uploads/', verbose_name='Фото'),
),
migrations.AlterField(
model_name='mediaitem',
name='video',
field=models.FileField(blank=True, null=True, upload_to='uploads/video/', verbose_name='Видео'),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 4.2.2 on 2024-11-15 15:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('GeneralApp', '0007_alter_mediaitem_picture_alter_mediaitem_video'),
]
operations = [
migrations.AlterField(
model_name='mediaitem',
name='picture',
field=models.ImageField(blank=True, null=True, upload_to='media_items/photo/', verbose_name='Фото'),
),
migrations.AlterField(
model_name='mediaitem',
name='video',
field=models.FileField(blank=True, null=True, upload_to='media_items/video/', verbose_name='Видео'),
),
]

View File

@@ -3,26 +3,6 @@ from BaseModels.base_models import BaseModelViewPage, BaseModel
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
# from ckeditor.fields import RichTextField # from ckeditor.fields import RichTextField
from ckeditor_uploader.fields import RichTextUploadingField from ckeditor_uploader.fields import RichTextUploadingField
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes.fields import GenericForeignKey
class MediaItem(BaseModel):
content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL, null=True)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
picture = models.ImageField(upload_to='media_items/photo/', verbose_name=_('Фото'), null=True, blank=True)
video = models.FileField(upload_to='media_items/video/', verbose_name=_('Видео'), null=True, blank=True)
comment = models.TextField(verbose_name=_('Комментарий'), null=True, blank=True)
class Meta:
verbose_name = _('Медиа элемент')
verbose_name_plural = _('Медиа элементы')
class StaticPage(BaseModelViewPage): class StaticPage(BaseModelViewPage):
promo_header = models.BooleanField(verbose_name=_('Промо-хэдер'), default=False) promo_header = models.BooleanField(verbose_name=_('Промо-хэдер'), default=False)
@@ -49,6 +29,9 @@ class Option(BaseModel):
class FAQitem(BaseModel): class FAQitem(BaseModel):
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes.fields import GenericForeignKey
content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL, null=True) content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL, null=True)
object_id = models.PositiveIntegerField() object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id') content_object = GenericForeignKey('content_type', 'object_id')

View File

@@ -27,9 +27,3 @@ class FAQitem_TranslationOptions(TranslationOptions):
) )
translator.register(FAQitem, FAQitem_TranslationOptions) translator.register(FAQitem, FAQitem_TranslationOptions)
class MediaItem_TranslationOptions(TranslationOptions):
fields = (
'name', 'comment',
)
translator.register(MediaItem, MediaItem_TranslationOptions)

View File

@@ -6,11 +6,6 @@ from .views import *
urlpatterns = [ urlpatterns = [
path('', MainPage, name='main'), path('', MainPage, name='main'),
path('mover_landing_page/', LandingMoverPage, name='mover_landing_page'),
path('customer_landing_page/', LandingCustomerPage, name='customer_landing_page'),
path('page/<str:url>/', StaticPageView, name='static_page'), path('page/<str:url>/', StaticPageView, name='static_page'),
path('test_code', test_code, name='test_code'), path('test_code', test_code, name='test_code'),
path('generate_routes/<int:routes_count>/', generate_routes, name='generate_routes'),
] ]

View File

@@ -1,9 +1,8 @@
import json 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.template import loader, RequestContext
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from .models import * from .models import *
from django.conf import settings from django.conf import settings
from .funcs import get_inter_http_response from .funcs import get_inter_http_response
@@ -15,9 +14,9 @@ from django.views.decorators.csrf import csrf_exempt
from webpush import send_user_notification from webpush import send_user_notification
import json import json
from datetime import datetime, timedelta from datetime import datetime, timedelta
from django.urls import reverse
def generate_routes(request, routes_count): def test_code(request):
if (not request.user if (not request.user
or not request.user.is_active or not request.user.is_active
or not request.user.is_authenticated or not request.user.is_authenticated
@@ -46,60 +45,9 @@ def generate_routes(request, routes_count):
weight=item, weight=item,
phone='0987654321', phone='0987654321',
owner=request.user owner=request.user
) for item in range(routes_count) ) for item in range(1000)
] ]
Route.objects.bulk_create(routes)
if res:
if type(res) == str:
return HttpResponse(res)
else:
return res
return HttpResponse('finished')
def test_code(request):
if (not request.user
or not request.user.is_active
or not request.user.is_authenticated
or not request.user.is_staff
):
raise Http404
res = ''
from RoutesApp.search_matches import search_matches
from RoutesApp.models import Route
search_matches(Route.objects.filter(id=17158))
# from RoutesApp.funcs import get_city_by_type_transport_and_address_point
# from RoutesApp.models import Route
# from ReferenceDataApp.models import Airport, City
#
# res = None
#
# from_air = Airport.objects.get(iata_code='MSQ')
# to_air = Airport.objects.get(iata_code='SVO')
#
# routes = [
# Route(
# type_transport='road',
# departure_DT=datetime.now() + timedelta(days=7),
# arrival_DT=datetime.now() + timedelta(days=8),
# from_address_point=to_air.city.id,
# to_address_point=from_air.city.id,
# from_city=to_air.city,
# to_city=from_air.city,
# weight=item,
# phone='0987654321',
# owner=request.user
# ) for item in range(100)
# ]
# routes = [ # routes = [
# Route( # Route(
# type_transport='avia', # type_transport='avia',
@@ -114,8 +62,8 @@ def test_code(request):
# owner = request.user # owner = request.user
# ) for item in range(1000) # ) for item in range(1000)
# ] # ]
#
# Route.objects.bulk_create(routes) Route.objects.bulk_create(routes)
# from RoutesApp.search_matches import search_matches # from RoutesApp.search_matches import search_matches
@@ -149,52 +97,7 @@ def Page404(request, exeption=None):
except Exception as e: except Exception as e:
return HttpResponse(str(e)) return HttpResponse(str(e))
def LandingMoverPage(request):
from .init_options import init_options
init_options()
print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}')
page, is_created = StaticPage.objects.get_or_create(url='landing_mover')
Dict = {
'page': page,
}
breadcrumbs_Dict = {
}
Dict.update({'breadcrumbs': breadcrumbs_Dict})
t = loader.get_template('pages/p_mover_landing_page.html')
return get_inter_http_response(t, Dict, request)
def LandingCustomerPage(request):
from .init_options import init_options
init_options()
print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}')
page, is_created = StaticPage.objects.get_or_create(url='landing_customer')
Dict = {
'page': page,
}
breadcrumbs_Dict = {
}
Dict.update({'breadcrumbs': breadcrumbs_Dict})
t = loader.get_template('pages/p_customer_landing_page.html')
return get_inter_http_response(t, Dict, request)
def MainPage(request): def MainPage(request):
@@ -249,12 +152,6 @@ def StaticPageView(request, url):
'route_form': RouteForm(), 'route_form': RouteForm(),
'owner_type': 'mover' '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': # elif url == 'works':
# return WorksPage(request) # return WorksPage(request)
elif url in ['main']: elif url in ['main']:

View File

@@ -3,10 +3,7 @@ from .models import *
from django.contrib import admin from django.contrib import admin
class Admin_Route(Admin_Trans_BaseModel): class Admin_Route(Admin_Trans_BaseModel):
readonly_fields = [ readonly_fields = ['highlight_end_DT', 'rising_DT']
# 'highlight_end_DT',
'rising_DT'
]
list_display = [ list_display = [
'id', 'owner_type', 'id', 'owner_type',
'rising_DT', 'rising_DT',
@@ -28,8 +25,8 @@ 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'
] ]
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

@@ -1,5 +1,3 @@
from BaseModels.mailSender import techSendMail
from GeneralApp.funcs_options import get_mail_send_options
from .models import * from .models import *
from .forms import * from .forms import *
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
@@ -172,7 +170,6 @@ def get_routes_Dict(user=None, data=None):
'owner': user 'owner': user
}) })
from_el = None from_el = None
to_el = None to_el = None

View File

@@ -305,14 +305,6 @@ def get_my_routes_ajax(request):
data = json.loads(request.body) data = json.loads(request.body)
try: try:
if not request.user or request.user.is_anonymous:
msg = (f'get_my_routes_ajax not have user - user={str(request.user)}<br>'
f'data={str(data)}<br>'
f'request={str(request)}')
mail_sets = get_mail_send_options()
techSendMail(mail_sets, msg)
routes_Dict = get_routes_Dict(request.user, data) routes_Dict = get_routes_Dict(request.user, data)
if 'errors' in routes_Dict: if 'errors' in routes_Dict:
return JsonResponse(routes_Dict, status=400) return JsonResponse(routes_Dict, status=400)

View File

@@ -1,18 +0,0 @@
# Generated by Django 4.2.2 on 2024-11-12 10:51
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('RoutesApp', '0008_route_highlight_end_dt'),
]
operations = [
migrations.AlterField(
model_name='route',
name='phone',
field=models.CharField(blank=True, null=True, verbose_name='Укажите номер для связи'),
),
]

View File

@@ -57,7 +57,7 @@ class Route(BaseModel):
verbose_name=_('Куда можете доставить?')) verbose_name=_('Куда можете доставить?'))
cargo_type = models.CharField(choices=cargo_type_choices, default='parcel', verbose_name=_('Могу перевезти')) cargo_type = models.CharField(choices=cargo_type_choices, default='parcel', verbose_name=_('Могу перевезти'))
weight = models.IntegerField(verbose_name=_('Укажите вес до (кг)')) weight = models.IntegerField(verbose_name=_('Укажите вес до (кг)'))
phone = models.CharField(verbose_name=_('Укажите номер для связи'), blank=True, null=True) phone = models.CharField(verbose_name=_('Укажите номер для связи'))
extra_phone = models.CharField(verbose_name=_('Дополнительный номер'), blank=True, null=True) extra_phone = models.CharField(verbose_name=_('Дополнительный номер'), blank=True, null=True)
receive_msg_by_email = models.BooleanField(default=False, verbose_name=_('Получать уведомления по E-mail')) receive_msg_by_email = models.BooleanField(default=False, verbose_name=_('Получать уведомления по E-mail'))
receive_msg_by_sms = models.BooleanField(default=False, verbose_name=_('Получать уведомления по SMS')) receive_msg_by_sms = models.BooleanField(default=False, verbose_name=_('Получать уведомления по SMS'))

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}') 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')
@@ -143,11 +91,8 @@ def search_matches(for_routes=None):
) )
check_fields = [ check_fields = [
'type_transport', 'departure_DT', 'arrival_DT', 'type_transport', 'departure_DT', 'arrival_DT', 'from_address_point', 'to_address_point',
# 'from_address_point', 'to_address_point', 'from_place', 'to_place', 'cargo_type', 'weight'
'from_place', 'to_place',
'cargo_type', 'weight',
'from_city', 'to_city',
] ]
if for_routes: if for_routes:
@@ -168,20 +113,11 @@ def search_matches(for_routes=None):
kwargs.update({f"{field_name}__date": field_val.date()}) kwargs.update({f"{field_name}__date": field_val.date()})
elif field_name == 'weight': elif field_name == 'weight':
# print(field_name) # print(field_name)
params.update({f"{field_name}": field_val})
if route.owner_type == 'mover': if route.owner_type == 'mover':
# params.update({f"{field_name}__lte": field_val})
kwargs.update({f"{field_name}__lte": field_val}) kwargs.update({f"{field_name}__lte": field_val})
else: else:
# params.update({f"{field_name}__gte": field_val})
kwargs.update({f"{field_name}__gte": field_val}) kwargs.update({f"{field_name}__gte": field_val})
elif field_name == 'from_city':
params.update({'from_address_point': field_val.id})
kwargs.update({field_name: field_val})
elif field_name == 'to_city':
params.update({'to_address_point': field_val.id})
kwargs.update({field_name: field_val})
# elif field_name in ['from_address_point', 'to_address_point']:
# kwargs.update({field_name: field_val})
else: else:
kwargs.update({field_name: field_val}) kwargs.update({field_name: field_val})
params.update({field_name: field_val}) params.update({field_name: field_val})
@@ -199,9 +135,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)}'

View File

@@ -99,6 +99,6 @@ class Admin_SubscribeForUser(Admin_Trans_BaseModel):
'modifiedDT', 'createDT' 'modifiedDT', 'createDT'
] ]
list_editable = ['enable'] list_editable = ['enable']
search_fields = ['name', 'id', 'user__email', 'user__first_name', 'user__last_name'] search_fields = ['name']
admin.site.register(SubscribeForUser,Admin_SubscribeForUser) admin.site.register(SubscribeForUser,Admin_SubscribeForUser)

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

@@ -1,10 +1,6 @@
from BaseModels.admin_utils import ( from BaseModels.admin_utils import Admin_GenericBaseIconStackedInline, Admin_BaseIconModel, GenericStackedInline
Admin_GenericBaseIconStackedInline, Admin_BaseIconModel, GenericStackedInline,
AdminImageWidget, get_image_thumb
)
from copy import deepcopy from copy import deepcopy
from django.db import models
from django.utils.translation import gettext as _
class Admin_BaseModel(Admin_BaseIconModel): class Admin_BaseModel(Admin_BaseIconModel):
@@ -90,69 +86,24 @@ class AdminTranslationBase(TranslationAdmin):
'screen': ('modeltranslation/css/tabbed_translation_fields.css',), 'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
} }
from modeltranslation.admin import TranslationGenericStackedInline, TranslationGenericTabularInline from modeltranslation.admin import TranslationGenericStackedInline
class TranslationGenericTabularInlineCustom(TranslationGenericTabularInline): class AdminStacked_FAQitem(TranslationGenericStackedInline):
formfield_overrides = {
models.ImageField: {'widget': AdminImageWidget},
}
def image_thumb(self, obj):
return get_image_thumb(self, obj)
image_thumb.short_description = _('Миниатюра')
image_thumb.allow_tags = True
class Media:
js = (
'modeltranslation/js/force_jquery.js',
'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js',
'modeltranslation/js/tabbed_translation_fields.js',
)
css = {
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
}
class TranslationGenericStackedInlineCustom(TranslationGenericStackedInline):
formfield_overrides = {
models.ImageField: {'widget': AdminImageWidget},
}
def image_thumb(self, obj):
return get_image_thumb(self, obj)
image_thumb.short_description = _('Миниатюра')
image_thumb.allow_tags = True
class Media:
js = (
'modeltranslation/js/force_jquery.js',
'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js',
'modeltranslation/js/tabbed_translation_fields.js',
)
css = {
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
}
class AdminStacked_FAQitem(TranslationGenericStackedInlineCustom):
from GeneralApp.models import FAQitem from GeneralApp.models import FAQitem
model = FAQitem model = FAQitem
extra = 0 extra = 0
fields = ['order', 'question', 'answer'] fields = ['order', 'question', 'answer']
class Media:
js = (
class AdminTabular_Mediaitem(TranslationGenericTabularInlineCustom): 'modeltranslation/js/force_jquery.js',
from GeneralApp.models import MediaItem 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
model = MediaItem 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js',
extra = 0 'modeltranslation/js/tabbed_translation_fields.js',
fields = ['order', 'video', 'picture'] )
css = {
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
}
class Admin_BaseModelViewPage(Admin_BaseIconModel): class Admin_BaseModelViewPage(Admin_BaseIconModel):
pass pass
@@ -178,7 +129,7 @@ class Admin_BaseModelViewPage(Admin_BaseIconModel):
# else: # else:
# return {} # return {}
# #
inlines = [AdminStacked_FAQitem, AdminTabular_Mediaitem] inlines = [AdminStacked_FAQitem]

File diff suppressed because one or more lines are too long

View File

@@ -1,178 +0,0 @@
.about {
margin-bottom: 168px;
}
@media (min-width: 1720px) {
.about {
margin-bottom: 188px;
}
}
@media (max-width: 1304.98px) {
.about {
margin-bottom: 138px;
}
}
@media (max-width: 991.98px) {
.about {
margin-bottom: 110px;
}
}
.about .title {
margin-bottom: 60px;
}
@media (min-width: 1720px) {
.about .title {
margin-bottom: 49px;
}
}
@media (max-width: 1304.98px) {
.about .title {
margin-bottom: 39px;
}
}
@media (max-width: 991.98px) {
.about .title {
margin-bottom: 48px;
}
}
@media (max-width: 479.98px) {
.about .title {
margin-bottom: 37px;
}
}
.about__grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 991.98px) {
.about__grid {
display: block;
}
}
.about__img {
box-shadow: inset 18.19px 1.21px 18.19px 0 #FFFFFFCC, inset -18.19px -1.21px 18.19px 0 #4052801A, 48.5px 36.38px 36.38px 0 #6B7F9933;
border-radius: 31px;
margin-left: -20px;
margin-top: 8px;
}
@media (min-width: 1720px) {
.about__img {
margin-top: 19px;
}
}
@media (max-width: 1304.98px) {
.about__img {
margin-left: -10px;
}
}
@media (max-width: 991.98px) {
.about__img {
margin-left: 0;
margin-bottom: 49px;
display: block;
}
}
@media (max-width: 479.98px) {
.about__img {
margin-bottom: 38px;
}
}
.about__right {
text-align: left;
padding-top: 43px;
padding-left: 50px;
}
@media (min-width: 1720px) {
.about__right {
padding-top: 90px;
padding-left: 21px;
}
}
@media (max-width: 1304.98px) {
.about__right {
padding-left: 11px;
padding-top: 19px;
}
}
@media (max-width: 991.98px) {
.about__right {
padding: 0 8px;
text-align: center;
}
}
@media (max-width: 479.98px) {
.about__right {
padding: 0;
}
}
.about__right::after {
content: '';
display: block;
clear: both;
}
.about__half {
max-width: 50%;
float: left;
}
@media (max-width: 991.98px) {
.about__half {
max-width: initial;
}
}
.about__half:last-child {
padding-left: 16px;
max-width: 47%;
}
@media (max-width: 991.98px) {
.about__half:last-child {
max-width: initial;
padding-left: 0;
}
}
.about b {
letter-spacing: 0.4px;
}
@media (min-width: 1720px) {
.about b {
font-weight: 700;
letter-spacing: 0;
}
}
@media (max-width: 479.98px) {
.about b {
letter-spacing: 0.9px;
}
}
@media (min-width: 1720px) {
.about p {
margin-bottom: 39px;
}
}

View File

@@ -1 +0,0 @@
.animate{padding:60px 40px 49px;opacity:0;background-color:var(--color-black2);border-radius:30px;color:white;margin-bottom:160px}@media (min-width: 1720px){.animate{padding-top:100px;padding-bottom:89px;margin-bottom:180px}}@media (max-width: 1304.98px){.animate{margin-bottom:141px}}@media (max-width: 991.98px){.animate{padding-top:40px;padding-bottom:29px;margin-bottom:121px}}@media (max-width: 479.98px){.animate{padding:30px 7px 19px}}.animate.left{transform:scale(0);opacity:0}.animate.right{opacity:0;transform:scale(0)}.animate.right .title{margin-bottom:17px}@media (min-width: 1720px){.animate.right .title{max-width:80%;margin-bottom:40px}}@media (max-width: 1304.98px){.animate.right .title{margin-bottom:25px}}@media (max-width: 991.98px){.animate.right .title{margin-bottom:31px}}@media (max-width: 479.98px){.animate.right .title{margin-bottom:20px}}@media (max-width: 991.98px){.animate.right .subtitle{margin-bottom:31px}}@media (max-width: 479.98px){.animate.right .use__btn{margin-top:-11px}}.animate__link{color:var(--color-orange);text-decoration:underline !important}.animate .title{margin-bottom:25px;max-width:87%}@media (min-width: 1720px){.animate .title{margin-bottom:40px}}@media (max-width: 1304.98px){.animate .title{max-width:99%}}@media (max-width: 991.98px){.animate .title{max-width:85%;font-size:24px;line-height:29.05px}}@media (max-width: 767.98px){.animate .title{max-width:100%;margin-bottom:14px}}.animate .subtitle{width:47%;margin:0 auto 23px}@media (min-width: 1720px){.animate .subtitle{line-height:26px;letter-spacing:0.1px;margin-bottom:40px}}@media (max-width: 1304.98px){.animate .subtitle{width:54%}}@media (max-width: 991.98px){.animate .subtitle{width:102%;margin-bottom:26px}}@media (max-width: 479.98px){.animate .use__btn{margin-top:-6px;padding-left:15px;padding-right:15px;display:flex}}

View File

@@ -1,157 +0,0 @@
.benefits {
margin-bottom: 132px;
}
@media (min-width: 1720px) {
.benefits {
margin-bottom: 147px;
}
}
@media (max-width: 1304.98px) {
.benefits {
margin-bottom: 101px;
}
}
@media (max-width: 991.98px) {
.benefits {
margin-bottom: 93px;
}
}
@media (max-width: 479.98px) {
.benefits {
margin-bottom: 103px;
}
}
.benefits__grid {
text-align: left;
display: grid;
grid-template-columns: 1.5fr 3fr 1.5fr;
}
@media (max-width: 991.98px) {
.benefits__grid {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 479.98px) {
.benefits__grid {
grid-template-columns: 1fr;
text-align: center;
}
}
.benefits__item {
min-height: 122px;
padding-right: 7px;
margin-bottom: 22px;
}
@media (min-width: 1720px) {
.benefits__item {
min-height: 145px;
}
}
@media (max-width: 991.98px) {
.benefits__item {
padding-right: 25px;
}
}
@media (max-width: 479.98px) {
.benefits__item {
padding-right: 0;
margin-bottom: 19px;
min-height: 90px;
}
}
@media (max-width: 991.98px) {
.benefits__second {
grid-column: 1 / 3;
order: -1;
margin-bottom: 56px;
}
}
@media (max-width: 479.98px) {
.benefits__second {
grid-column: 1/2;
margin-bottom: 31px;
}
}
.benefits__third {
padding-left: 16px;
}
@media (min-width: 1720px) {
.benefits__third {
padding-left: 31px;
margin-right: 5px;
}
}
@media (max-width: 991.98px) {
.benefits__third {
padding-left: 11px;
}
}
@media (max-width: 479.98px) {
.benefits__third {
padding-left: 0;
}
}
.benefits .title {
margin-bottom: 76px;
}
@media (min-width: 1720px) {
.benefits .title {
margin-bottom: 93px;
}
}
@media (max-width: 991.98px) {
.benefits .title {
margin-bottom: 19px;
}
}
.benefits img {
position: relative;
top: 14px;
right: -11px;
}
@media (min-width: 1720px) {
.benefits img {
top: -33px;
}
}
@media (max-width: 1304.98px) {
.benefits img {
top: 20px;
right: 0;
}
}
@media (min-width: 1720px) {
.benefits h2 {
margin-bottom: 10px;
}
}
@media (max-width: 479.98px) {
.benefits p {
margin-bottom: 13px;
}
}

View File

@@ -1,194 +0,0 @@
.cards__list {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
.cards__item {
position: relative;
}
@media (max-width: 991.98px) {
.cards__item {
max-width: 270px;
}
}
@media (max-width: 767.98px) {
.cards__item {
max-width: 251px;
margin-right: 18px;
}
}
.slick-active .cards__item .cards__desc, .cards__item:hover .cards__desc, .cards__item:focus .cards__desc {
-webkit-line-clamp: initial;
/* number of lines to show */
line-clamp: initial;
max-height: 17em;
}
.cards__img {
margin-bottom: 5px;
}
@media (min-width: 1720px) {
.cards__img {
width: 100%;
margin-bottom: 15px;
}
}
@media (max-width: 1304.98px) {
.cards__img {
margin-bottom: 8px;
}
}
@media (max-width: 991.98px) {
.cards__img {
margin-bottom: 8px;
}
}
@media (max-width: 767.98px) {
.cards__img {
margin-bottom: 10px;
}
}
.cards__img:hover {
scale: 1.05;
transition: scale 0.15s linear;
}
.cards__desc {
font-weight: 500;
line-height: 22px;
padding: 0 5px;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 7;
/* number of lines to show */
line-clamp: 7;
-webkit-box-orient: vertical;
transition: all 0.3s ease-in-out;
max-height: 10em;
}
@media (min-width: 1720px) {
.cards__desc {
font-size: 20px;
line-height: 26px;
padding-left: 20px;
padding-right: 20px;
}
}
@media (max-width: 1279.98px) {
.cards__desc {
padding-left: 5px;
padding-right: 5px;
margin-bottom: 3px;
}
}
@media (max-width: 991.98px) {
.cards__desc {
padding-left: 8px;
padding-right: 8px;
}
}
.slick-active .cards__desc, .cards__desc:hover, .cards__desc:focus {
-webkit-line-clamp: initial;
/* number of lines to show */
line-clamp: initial;
max-height: 999em;
}
.cards__desc a {
color: var(--color-orange);
}
.cards__arrow {
width: 62px;
height: 20px;
position: absolute;
right: -30px;
top: -21px;
background-image: url("/static/img/svg/Arrow23.svg");
}
@media (min-width: 1720px) {
.cards__arrow {
right: -45px;
top: -29px;
}
}
@media (max-width: 1304.98px) {
.cards__arrow {
top: -8%;
}
}
@media (max-width: 991.98px) {
.cards__arrow {
display: none;
}
}
.cards .slick-list {
overflow: visible;
}
@media (max-width: 767.98px) {
.cards .slick-list {
margin-bottom: 1px;
padding-left: 58px;
}
}
.cards .slick-dots {
display: flex;
justify-content: center;
margin: 0;
padding: 1rem 0;
list-style-type: none;
}
.cards .slick-dots li {
margin: 0 0.25rem;
}
@media (max-width: 767.98px) {
.cards .slick-dots li {
margin: 0 0.31rem;
}
}
.cards .slick-dots button {
display: block;
width: 8px;
height: 8px;
padding: 0;
border: none;
border-radius: 100%;
background-color: #D9D9D9;
text-indent: -9999px;
}
.cards .slick-dots li.slick-active button {
background-color: var(--color-orange);
}
.cards--cstmr .cards__desc {
padding: 0 50px;
}
@media (max-width: 1304.98px) {
.cards--cstmr .cards__desc {
padding-left: 10px;
padding-right: 10px;
}
}

View File

@@ -1 +0,0 @@
.chatterbox{margin-bottom:160px}@media (min-width: 1720px){.chatterbox{margin-bottom:180px}}@media (max-width: 1304.98px){.chatterbox{margin-bottom:142px}}@media (max-width: 991.98px){.chatterbox{margin-left:-50vw;margin-right:-50vw;margin-bottom:122px}}@media (max-width: 767.98px){.chatterbox{max-width:100vw;margin:0 auto 121px;position:relative}}.chatterbox__slider{max-width:1200px;margin:0 auto}@media (min-width: 1720px){.chatterbox__slider{max-width:1640px}}@media (max-width: 1304.98px){.chatterbox__slider{max-width:1100px}}@media (max-width: 991.98px){.chatterbox__slider{max-width:720px}}@media (max-width: 767.98px){.chatterbox__slider{max-width:830px;width:830px;left:50%;transform:translateX(-50%)}}@media (max-width: 479.98px){.chatterbox__slider{max-width:initial}}.chatterbox__slide{width:335px;height:615px;background:url("/static/img/webp/phone-border.webp") center no-repeat;transition:scale 0.2s ease-in-out;margin:auto;position:relative}@media (min-width: 1720px){.chatterbox__slide{width:456px;height:836px;background-size:456px 836px}}@media (max-width: 1304.98px){.chatterbox__slide{width:308px;height:565px;background-size:308px 565px}}@media (max-width: 991.98px){.chatterbox__slide{width:206px;height:377px;background-size:206px 377px}}@media (max-width: 767.98px){.chatterbox__slide{width:234px;height:429px;background-size:234px 429px}}.chatterbox__slide.loaded video{opacity:1}.chatterbox__slide.loaded img{z-index:-10}.chatterbox__slide video{max-width:100%;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none;position:relative}@media (min-width: 1720px){.chatterbox__slide video{top:-2px}}@media (max-width: 1304.98px){.chatterbox__slide video{top:10px}}@media (max-width: 991.98px){.chatterbox__slide video{top:-4px}}@media (max-width: 767.98px){.chatterbox__slide video{top:22px}}.chatterbox__slide img{position:absolute;scale:1.32;top:11%}.chatterbox__wrap{position:absolute;left:8px;right:8px;top:8px;bottom:8px;border-radius:25px;background-color:grey;overflow:hidden}@media (min-width: 1720px){.chatterbox__wrap{border-radius:50px}}.chatterbox__vbtn{position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none}.loaded .chatterbox__vbtn{display:none}.chatterbox__vbtn::before{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border:0;border-radius:50%;transition:opacity 100ms linear}@media (min-width: 1720px){.chatterbox__vbtn::before{width:109px;height:109px}}@media (max-width: 991.98px){.chatterbox__vbtn::before{width:48px;height:48px}}@media (max-width: 767.98px){.chatterbox__vbtn::before{width:55px;height:55px}}.chatterbox__vbtn::before,.chatterbox__vbtn::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);cursor:pointer}.chatterbox__vbtn::after{border-color:transparent transparent transparent #ffffff;border-style:solid;border-width:15px 0 15px 25px;display:inline-block;margin-left:2px}@media (min-width: 1720px){.chatterbox__vbtn::after{border-width:23px 0 23px 35px;margin-left:4px}}@media (max-width: 991.98px){.chatterbox__vbtn::after{border-width:10px 0 10px 14px}}.chatterbox__vbox{position:relative;display:flex;justify-content:center;align-items:center;height:600px}@media (min-width: 1720px){.chatterbox__vbox{height:827px}}@media (max-width: 1304.98px){.chatterbox__vbox{height:530px}}@media (max-width: 991.98px){.chatterbox__vbox{height:370px}}.chatterbox__mbtns{position:absolute;top:58%;transform:translateY(-50%);left:0;right:0}@media (max-width: 479.98px){.chatterbox__mbtns{top:61.6%}}.chatterbox .title{margin-bottom:60px}@media (max-width: 1304.98px){.chatterbox .title{margin-bottom:39px}}@media (max-width: 767.98px){.chatterbox .title{margin-bottom:50px}}.chatterbox .slick-next{right:-40px}@media (max-width: 1304.98px){.chatterbox .slick-next{right:-10px}}@media (max-width: 991.98px){.chatterbox .slick-next{width:40px;height:40px;background-size:32%;right:5%}}@media (max-width: 479.98px){.chatterbox .slick-next{right:0}}.chatterbox .slick-prev{left:-40px}@media (max-width: 1304.98px){.chatterbox .slick-prev{left:-10px}}@media (max-width: 991.98px){.chatterbox .slick-prev{width:40px;height:40px;background-size:32%;left:5%}}@media (max-width: 479.98px){.chatterbox .slick-prev{left:0}}@media (max-width: 991.98px){.chatterbox .slick-list{overflow:visible}}.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.72}@media (max-width: 1304.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.69}}@media (max-width: 991.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.8}}@media (max-width: 479.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.85}}.slick-center .chatterbox__vbtn{opacity:1;pointer-events:initial;z-index:1}.slick-center .chatterbox__vbox video{pointer-events:initial;cursor:pointer}

View File

@@ -1,347 +0,0 @@
.diff {
margin-bottom: 179px;
}
@media (min-width: 1720px) {
.diff {
margin-bottom: 172px;
}
}
@media (max-width: 1304.98px) {
.diff {
margin-bottom: 140px;
}
}
@media (max-width: 991.98px) {
.diff {
margin-bottom: 125px;
}
}
@media (max-width: 767.98px) {
.diff {
margin-bottom: 139px;
}
}
.diff .title {
width: 60%;
margin-bottom: 65px;
}
@media (min-width: 1720px) {
.diff .title {
width: 49%;
margin-bottom: 60px;
}
}
@media (max-width: 1304.98px) {
.diff .title {
width: 73%;
margin-bottom: 40px;
}
}
@media (max-width: 991.98px) {
.diff .title {
width: 90%;
margin-bottom: 40px;
}
}
@media (max-width: 767.98px) {
.diff .title {
width: 100%;
margin-bottom: 30px;
}
}
.diff__grid {
display: flex;
position: relative;
margin-bottom: 30px;
}
.diff__grid::before {
content: '';
position: absolute;
height: 96%;
width: 5px;
border-radius: 5px;
background-color: #EDEDED;
left: 50%;
transform: translateX(-50%);
bottom: 0;
}
@media (max-width: 1304.98px) {
.diff__grid::before {
height: 90%;
}
}
@media (max-width: 991.98px) {
.diff__grid::before {
display: none;
}
}
@media (max-width: 991.98px) {
.diff__grid {
display: block;
}
}
.diff__coll {
width: 50%;
}
@media (max-width: 991.98px) {
.diff__coll {
width: 100%;
}
}
.diff__coll.left {
margin-right: 29px;
}
@media (min-width: 1720px) {
.diff__coll.left {
margin-right: 12px;
}
}
@media (max-width: 1304.98px) {
.diff__coll.left {
margin-right: 10px;
}
}
@media (max-width: 991.98px) {
.diff__coll.left {
margin-right: 0;
}
}
.diff__coll.left .diff__coll-title {
padding-left: 39px;
}
@media (min-width: 1720px) {
.diff__coll.left .diff__coll-title {
padding-left: 2px;
}
}
@media (max-width: 1304.98px) {
.diff__coll.left .diff__coll-title {
padding-left: 0;
}
}
@media (max-width: 991.98px) {
.diff__coll.left .diff__coll-title {
padding-left: 0;
}
}
.diff__coll.right {
margin-left: 29px;
}
@media (max-width: 1304.98px) {
.diff__coll.right {
margin-left: 10px;
}
}
@media (max-width: 991.98px) {
.diff__coll.right {
margin-left: 0;
display: none;
}
}
.diff__coll.right .diff__coll-title {
padding-right: 39px;
}
@media (min-width: 1720px) {
.diff__coll.right .diff__coll-title {
padding-right: 0;
}
}
@media (max-width: 1304.98px) {
.diff__coll.right .diff__coll-title {
padding-right: 0;
}
}
@media (max-width: 991.98px) {
.diff__coll.right .diff__coll-title {
padding-right: 0;
}
}
.diff__coll-title {
margin-bottom: 38px;
}
@media (max-width: 1304.98px) {
.diff__coll-title {
margin-bottom: 18px;
}
}
@media (max-width: 991.98px) {
.diff__coll-title {
margin-bottom: 19px;
}
}
@media (max-width: 767.98px) {
.diff__coll-title {
margin-bottom: 29px;
}
}
.diff__item {
position: relative;
text-align: left;
padding-left: 10px;
padding-top: 11px;
padding-bottom: 11px;
display: flex;
gap: 11px;
align-items: center;
background-color: #FFFFFF;
border-radius: 15px;
font-weight: 500;
font-size: 20px;
line-height: 28px;
margin-bottom: 35px;
cursor: default;
}
@media (min-width: 1720px) {
.diff__item {
padding: 20px;
gap: 20px;
margin-bottom: 40px;
}
}
@media (max-width: 1304.98px) {
.diff__item {
margin-bottom: 18px;
}
}
@media (max-width: 991.98px) {
.diff__item {
font-size: 18px;
margin-bottom: 25px;
padding-bottom: 9px;
}
}
@media (max-width: 767.98px) {
.diff__item {
font-size: 16px;
line-height: 19.36px;
padding-right: 15px;
margin-bottom: 14px;
}
}
.diff__item:last-child {
margin-bottom: 0;
}
.diff__item:hover .diff__status::before {
scale: 1.2;
}
.diff__status {
position: relative;
height: 48px;
width: 48px;
border-radius: 5px;
flex-shrink: 0;
}
@media (min-width: 1720px) {
.diff__status {
border-radius: 12px;
}
}
@media (max-width: 1304.98px) {
.diff__status {
border-radius: 13px;
}
}
@media (max-width: 991.98px) {
.diff__status {
border-radius: 11px;
}
}
@media (max-width: 767.98px) {
.diff__status {
width: 35px;
height: 35px;
}
}
.diff__status::before {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
transform-origin: 0% 15%;
}
.diff__status::before {
content: '';
width: 36px;
height: 36px;
}
.diff__item--done .diff__status {
background-color: #CCF9D9;
}
.diff__item--done .diff__status::before {
width: 26px;
height: 26px;
background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNiAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI0IDJMOS4zMzMzMyAyNEwyIDEzLjAwMDUiIHN0cm9rZT0iIzQ1QzIyNiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==);
}
@media (max-width: 767.98px) {
.diff__item--done .diff__status::before {
scale: 0.7;
}
}
.diff__item--error .diff__status {
background-color: #F9CCCC;
}
.diff__item--error .diff__status::before {
width: 36px;
height: 36px;
background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4LjEyNSA3Ljg3NUw3Ljg3NSAyOC4xMjUiIHN0cm9rZT0iI0ZGMDAwMCIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTI4LjEyNSAyOC4xMjVMNy44NzUgNy44NzUiIHN0cm9rZT0iI0ZGMDAwMCIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==);
}
@media (max-width: 767.98px) {
.diff__item--error .diff__status::before {
scale: 0.7;
}
}

View File

@@ -1,418 +0,0 @@
.easy {
margin-bottom: 162px;
}
@media (min-width: 1720px) {
.easy {
margin-bottom: 180px;
}
}
@media (max-width: 1304.98px) {
.easy {
margin-bottom: 140px;
}
}
@media (max-width: 991.98px) {
.easy {
margin-bottom: 121px;
}
}
.easy .title {
max-width: 55%;
margin-bottom: 21px;
}
@media (min-width: 1720px) {
.easy .title {
max-width: 45%;
margin-bottom: 23px;
}
}
@media (max-width: 991.98px) {
.easy .title {
max-width: 75%;
}
}
@media (max-width: 767.98px) {
.easy .title {
max-width: 95%;
margin-bottom: 30px;
}
}
.easy .subtitle {
margin-bottom: 41px;
}
@media (min-width: 1720px) {
.easy .subtitle {
margin-bottom: 59px;
}
}
@media (max-width: 767.98px) {
.easy .subtitle {
max-width: 90%;
margin: 0 auto 23px;
}
}
.easy__grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: repeat(2, minmax(186px, auto));
grid-template-areas: 'a b' 'a c';
grid-column-gap: 20px;
grid-row-gap: 80px;
margin-bottom: 46px;
}
@media (min-width: 1720px) {
.easy__grid {
grid-column-gap: 147px;
grid-template-rows: repeat(2, minmax(245px, auto));
grid-row-gap: 136px;
margin-bottom: 63px;
}
}
@media (max-width: 1304.98px) {
.easy__grid {
grid-column-gap: 69px;
grid-template-rows: repeat(2, minmax(172px, auto));
margin-bottom: 41px;
}
}
@media (max-width: 991.98px) {
.easy__grid {
display: block;
margin-bottom: 37px;
}
}
@media (max-width: 767.98px) {
.easy__grid {
margin-bottom: 40px;
}
}
.easy__item {
border-radius: 30px;
background-color: var(--color-grey);
/*background-color: #a72525;*/
text-align: left;
padding: 21px;
box-shadow: var(--box-shadow-primary);
}
.easy__item--fir {
grid-area: a;
margin-right: 60px;
padding-bottom: 0;
}
@media (min-width: 1720px) {
.easy__item--fir {
margin-right: -10px;
padding-top: 31px;
}
}
@media (max-width: 1304.98px) {
.easy__item--fir {
margin-right: 13px;
}
}
@media (max-width: 991.98px) {
.easy__item--fir {
padding-top: 17px;
margin-right: 0;
margin-bottom: 49px;
}
}
@media (max-width: 767.98px) {
.easy__item--fir {
margin-bottom: 42px;
}
}
.easy__item--fir p {
width: 93%;
margin-bottom: 29px;
}
@media (min-width: 1720px) {
.easy__item--fir p {
width: 89%;
margin-bottom: 53px;
}
}
@media (max-width: 991.98px) {
.easy__item--fir p {
max-width: 78%;
}
}
.easy__item--sec {
grid-area: b;
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0;
padding-top: 0;
padding-bottom: 0;
}
@media (min-width: 1720px) {
.easy__item--sec {
padding-left: 15px;
}
}
@media (max-width: 991.98px) {
.easy__item--sec {
padding-top: 35px;
padding-bottom: 37px;
margin-bottom: 46px;
}
}
@media (max-width: 767.98px) {
.easy__item--sec {
display: block;
padding-top: 0;
padding-bottom: 0;
margin-bottom: 49px;
}
}
.easy__item--sec img {
margin-bottom: -10px;
margin-right: -5px;
max-width: 50.1%;
}
@media (min-width: 1720px) {
.easy__item--sec img {
max-width: 53%;
}
}
@media (max-width: 1304.98px) {
.easy__item--sec img {
max-width: 42%;
margin-bottom: -4px;
margin-right: 0;
}
}
@media (max-width: 991.98px) {
.easy__item--sec img {
margin-right: 0;
margin-bottom: 0;
}
}
@media (max-width: 767.98px) {
.easy__item--sec img {
max-width: 104%;
position: relative;
left: -6px;
top: -4px;
}
}
.easy__item--sec p {
margin-bottom: 0;
padding-top: 0;
padding-bottom: 0;
}
@media (max-width: 767.98px) {
.easy__item--sec p {
margin-bottom: 22px;
}
}
.easy__item--thr {
grid-area: c;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0;
padding-top: 0;
padding-bottom: 0;
}
@media (min-width: 1720px) {
.easy__item--thr {
padding-left: 15px;
}
}
@media (max-width: 991.98px) {
.easy__item--thr {
padding-top: 42px;
padding-bottom: 46px;
}
}
@media (max-width: 767.98px) {
.easy__item--thr {
display: block;
padding-top: 0;
padding-bottom: 0;
}
}
.easy__item--thr .img {
margin-bottom: -10px;
margin-right: 24px;
max-width: 80%;
}
@media (max-width: 1279.98px) {
.easy__item--thr .img {
max-width: 35%;
}
}
@media (max-width: 1304.98px) {
.easy__item--thr .img {
margin-right: 2px;
}
}
@media (max-width: 991.98px) {
.easy__item--thr .img {
margin-right: 0;
max-width: 34%;
}
}
@media (max-width: 767.98px) {
.easy__item--thr .img img {
display: block;
margin: 0 auto;
}
}
.easy__item--thr p {
max-width: 50%;
margin-bottom: 0;
padding-top: 0;
padding-bottom: 0;
}
@media (max-width: 991.98px) {
.easy__item--thr p {
max-width: 60%;
}
}
@media (max-width: 767.98px) {
.easy__item--thr p {
margin-bottom: 22px;
max-width: 100%;
}
}
.easy__arrow {
width: 68px;
height: 18px;
background-image: url("/static/img/svg/Arrow08.svg");
position: absolute;
z-index: 1;
}
@media (min-width: 1720px) {
.easy__arrow {
scale: 1.4;
}
}
@media (max-width: 1304.98px) {
.easy__arrow {
scale: 0.8;
}
}
@media (max-width: 991.98px) {
.easy__arrow {
display: none;
}
}
.easy__arrow--fir {
top: 46%;
right: 101%;
}
@media (min-width: 1720px) {
.easy__arrow--fir {
right: 105%;
top: 34%;
}
}
@media (max-width: 1304.98px) {
.easy__arrow--fir {
top: 48%;
}
}
.easy__arrow--sec {
top: 117%;
left: 30%;
transform: rotate(90deg);
}
@media (min-width: 1720px) {
.easy__arrow--sec {
left: 45%;
top: 124%;
}
}
@media (max-width: 1304.98px) {
.easy__arrow--sec {
left: 38%;
}
}
.easy__btn {
margin-top: -21px;
}
@media (max-width: 1304.98px) {
.easy__btn {
margin-top: -20px;
}
}
@media (max-width: 991.98px) {
.easy__btn {
margin-top: -19px;
padding-left: 54px;
padding-right: 54px;
}
}
@media (max-width: 767.98px) {
.easy__btn {
padding-left: 50px;
padding-right: 50px;
margin-top: -8px;
max-width: 100%;
}
}

View File

@@ -1 +0,0 @@
.header{margin-top:0;position:fixed;display:block;left:0;top:0;width:100vw;padding:15px 5px;transition:all 0.1s ease-in-out;background-color:white}@media (max-width: 991.98px){.header{padding-top:7px;padding-bottom:7px}}.header.scrolled{padding-top:7px;padding-bottom:7px;box-shadow:var(--box-shadow-primary);border-bottom:1px solid var(--color-grey)}.header__grid,.header__list{display:flex;align-items:center;justify-content:space-between}.header__logo{width:48px;height:48px;position:relative;left:5px}@media (max-width: 1304.98px){.header__logo{left:6px}}@media (max-width: 991.98px){.header__logo{left:0}}@media (max-width: 767.98px){.header__logo{left:-3px}}.header__nav{flex-grow:1;max-width:41%;margin-left:auto}@media (min-width: 1720px){.header__nav{max-width:34%}}@media (max-width: 1304.98px){.header__nav{max-width:46.5%}}.header__link{color:var(--color-black2);text-decoration:none}.header__btn{padding:8px 0 6px;font-size:16px;margin-left:61px;margin-right:-3px}@media (min-width: 1720px){.header__btn{margin-left:81px}}@media (max-width: 1304.98px){.header__btn{margin-right:0}}@media (max-width: 991.98px){.header__btn{display:none}}.header .dropdown{left:-4px}@media (max-width: 767.98px){.header .dropdown{left:-8px}}.header .dropdown-content{right:0;height:initial}@media (max-width: 575px){.header .dropdown-content{right:0;left:initial}}

View File

@@ -1,189 +0,0 @@
.presentation {
margin: 12px -65px 140px;
}
@media (min-width: 1720px) {
.presentation {
margin-left: 0;
margin-right: 0;
margin-bottom: 160px;
}
}
@media (max-width: 1304.98px) {
.presentation {
margin-bottom: 118px;
}
}
@media (max-width: 991.98px) {
.presentation {
margin-bottom: 105px;
}
}
.presentation__top {
position: relative;
min-height: 270px;
margin: 0 auto 116px;
padding: 29px 0 40px;
background-image: url(/static/img/png/Box9.png), url(/static/img/png/Box10.png), url(/static/img/png/Box11.png), url(/static/img/png/Box12.png);
background-position: top -4px left 46px, top -30px right -14px, bottom 73px left 278px, bottom 71px right 276px;
background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
background-size: 17.5%, 21.8%, 8.5%, 8.8%;
}
@media (min-width: 1720px) {
.presentation__top {
background-size: 18.5%, 22%, 9%, 10.1%;
background-position: top -47px left 58px, top -31px right 20px, bottom 8px left 347px, bottom -5px right 352px;
padding-top: 95px;
margin-bottom: 176px;
}
}
@media (max-width: 1304.98px) {
.presentation__top {
background-size: 16%, 20%, 9.5%, 10.1%;
background-position: top -2.8% left 6.5%, top -19% right 3.5%, bottom 32% left 23%, bottom 29% right 22.6%;
margin-bottom: 96px;
}
}
@media (max-width: 991.98px) {
.presentation__top {
background-size: 14.5%, 17%, 8.3%, 9.1%;
background-position: top 9% left 7%, top 5% right 6%, bottom 51% left 14.8%, bottom 47.5% right 13.8%;
padding-top: 31px;
margin-bottom: 76px;
}
}
@media (max-width: 767.98px) {
.presentation__top {
margin-bottom: 77px;
}
}
@media (max-width: 991.98px) {
.presentation__bottom .subtitle {
max-width: 40%;
margin: 0 auto 30px;
}
}
@media (max-width: 767.98px) {
.presentation__bottom .subtitle {
max-width: 65%;
margin-bottom: 21px;
}
}
.presentation__title {
margin-bottom: 23px;
}
@media (max-width: 991.98px) {
.presentation__title {
max-width: 75%;
margin: 0 auto 19px;
}
}
@media (max-width: 767.98px) {
.presentation__title {
margin-bottom: 15px;
}
}
.presentation__subtitle {
margin-bottom: 41px;
font-weight: 600;
}
@media (max-width: 991.98px) {
.presentation__subtitle {
max-width: 55%;
margin: 0 auto 40px;
font-size: 16px;
}
}
@media (max-width: 767.98px) {
.presentation__subtitle {
margin-bottom: 30px;
max-width: 77%;
}
}
.presentation__btn {
margin-bottom: 40px;
}
@media (max-width: 991.98px) {
.presentation__btn {
padding-left: 82px;
padding-right: 82px;
}
}
@media (max-width: 767.98px) {
.presentation__btn {
margin-bottom: 30px;
}
}
.presentation__next {
font-weight: 500;
line-height: 22px;
padding-right: 5px;
}
.presentation__arrows {
padding-top: 2px;
animation: jump 2s ease-in-out infinite;
}
.presentation__cards {
max-width: 1300px;
margin: 0 auto;
}
@media (min-width: 1720px) {
.presentation__cards {
max-width: initial;
margin-left: -10px;
margin-right: -10px;
}
}
@media (max-width: 1304.98px) {
.presentation__cards {
max-width: 1140px;
}
}
.presentation__bottom .presentation__title {
margin-bottom: 13px;
}
@keyframes jump {
0% {
transform: translateY(0px);
}
50% {
transform: translateY(-5px);
}
60% {
transform: translateY(20px);
}
70% {
transform: translateY(0px);
}
80% {
transform: translateY(20px);
}
100% {
transform: translateY(0px);
}
}

View File

@@ -1,2 +0,0 @@
.container{margin:0 auto;width:1280px;position:relative}@media (min-width: 1720px){.container{width:1720px}}@media (max-width: 1304.98px){.container{width:1120px;max-width:88vw}}@media (max-width: 991.98px){.container{width:640px;max-width:100vw}}@media (max-width: 767.98px){.container{margin:0 16px;width:auto}}:root{--color-primary: #FF613A;--color-white: #FFFFFF;--color-black: #000000;--color-black2: #272424;--color-grey: #F1F1F1;--color-grey2: #7A7979;--color-orange: #FF613A;--box-shadow-primary: -1px 4px 10px 0 rgba(198, 199, 203, 0.20),
0 -1px 10px 0 rgba(198, 199, 203, 0.20);text-align:center;color:var(--color-black2)}html,body{max-width:100vw;max-height:initial}body{height:100%;position:relative}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:700}h1,.h1{font-size:44px;line-height:52px}@media (min-width: 1720px){h1,.h1{font-size:48px;line-height:52px}}h2,.h2{font-size:24px;line-height:36px;margin-bottom:10px}@media (min-width: 1720px){h2,.h2{font-size:28px;margin-bottom:20px}}h3,.h3{font-size:20px;line-height:28px;margin-bottom:12px}@media (max-width: 1304.98px){h3,.h3{margin-bottom:13px}}h4,.h4{font-size:18px;line-height:26px;margin-bottom:20px}p{line-height:22px;margin-bottom:20px}@media (min-width: 1720px){p{font-size:20px;line-height:26px}}@media (max-width: 991.98px){p{margin-bottom:18px}}@media (max-width: 479.98px){p{margin-bottom:14px}}b{font-weight:500}@media (max-width: 991.98px){b{font-size:16px;line-height:22px}}.btn{display:inline-flex;text-decoration:none;color:black;line-height:22px;border-radius:10px;padding:20px 76px 18px;justify-content:center;align-items:center;margin:0 3px;letter-spacing:0.2px;font-size:18px}.btn--primary{background:var(--color-primary);color:var(--color-white)}.title{font-size:44px;font-weight:700;line-height:52px;margin-bottom:13px;margin-left:auto;margin-right:auto}@media (min-width: 1720px){.title{font-size:48px;margin-bottom:22px}}@media (max-width: 1304.98px){.title{margin-bottom:20px}}@media (max-width: 991.98px){.title{font-size:32px;line-height:38.73px}}@media (max-width: 767.98px){.title{margin-bottom:14px}}.subtitle{margin-bottom:81px;line-height:22px}@media (min-width: 1720px){.subtitle{font-size:20px;margin-bottom:105px}}@media (max-width: 1304.98px){.subtitle{margin-bottom:71px}}.hide{display:none}.hide__xxl{display:inline-flex}@media (min-width: 1720px){.hide__xxl{display:none}}@media (max-width: 991.98px){.hide__md{display:none}}@media (max-width: 479.98px){.hide__xs{display:none}}.show__xxl{display:none}@media (min-width: 1720px){.show__xxl{display:block}}.show__md{display:none}@media (max-width: 991.98px){.show__md{display:initial}}@media (min-width: 480px){.show__xs{display:none}}@media (min-width: 1440px){.br--xxl{display:none}}@media (max-width: 991.98px){.br--md{display:none}}@media (max-width: 767.98px){.br--sm{display:none}}.is-container.wrapper_main{overflow-x:hidden}.is-container.wrapper_main>.container{padding-top:129px}@media (max-width: 1304.98px){.is-container.wrapper_main>.container{padding-top:126px}}@media (max-width: 991.98px){.is-container.wrapper_main>.container{padding-top:85px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{padding-top:57px}}@media (min-width: 1440px){.is-container.wrapper_main{max-width:initial}}.is-container.wrapper_main>.container{position:relative;left:15px}@media (min-width: 1720px){.is-container.wrapper_main>.container{left:17px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{left:0}}

View File

@@ -1 +0,0 @@
.sore{margin-bottom:160px;margin-top:1px}@media (min-width: 1720px){.sore{margin-bottom:178px}}@media (max-width: 1304.98px){.sore{margin-bottom:140px}}@media (max-width: 991.98px){.sore{margin-bottom:60px}}@media (max-width: 479.98px){.sore{margin-bottom:40px}}.sore__img{margin:0 auto 13px;position:relative;left:-17px;top:-13px}@media (min-width: 1720px){.sore__img{margin-bottom:40px;top:-5px;left:-21px}}@media (max-width: 1304.98px){.sore__img{left:2px;top:-22px;margin-bottom:4px}}@media (max-width: 991.98px){.sore__img{top:-8px;left:-15px;margin-bottom:18px}}@media (max-width: 479.98px){.sore__img{max-width:108.5%;top:-26px;left:-18px;margin-bottom:-9px}}.sore .title{margin-bottom:40px}@media (min-width: 1720px){.sore .title{margin-bottom:61px}}@media (max-width: 991.98px){.sore .title{margin-bottom:20px}}@media (max-width: 479.98px){.sore .title{margin-bottom:29px}}.sore .subtitle{max-width:62%;margin:0 auto 10px}@media (min-width: 1720px){.sore .subtitle{line-height:26px;max-width:60%}}@media (max-width: 1304.98px){.sore .subtitle{max-width:65%}}@media (max-width: 991.98px){.sore .subtitle{max-width:85%}}@media (max-width: 479.98px){.sore .subtitle{max-width:99%}}.sore .h3{max-width:47%;margin:0 auto 19px}@media (min-width: 1720px){.sore .h3{max-width:38%}}@media (max-width: 1304.98px){.sore .h3{max-width:50%}}@media (max-width: 991.98px){.sore .h3{max-width:65%;margin-bottom:21px}}@media (max-width: 479.98px){.sore .h3{max-width:100%;margin-bottom:17px}}@media (max-width: 767.98px){.sore__btn{padding-left:50px;padding-right:50px}}@media (max-width: 479.98px){.sore__btn{box-sizing:border-box;padding:8px 15px;min-height:60px;display:flex}}

View File

@@ -1 +0,0 @@
.use{margin-bottom:123px}@media (min-width: 1720px){.use{margin-bottom:184px}}@media (max-width: 1304.98px){.use{margin-bottom:142px}}@media (max-width: 991.98px){.use{margin-bottom:121px}}.use__img{width:67.5%;margin-left:16px;margin-bottom:31px}@media (min-width: 1720px){.use__img{width:50.2%;margin-left:15px;margin-bottom:46px}}@media (max-width: 1304.98px){.use__img{width:77%;margin-left:10px;margin-bottom:34px}}@media (max-width: 991.98px){.use__img{margin-left:0;width:100%;margin-bottom:40px}}@media (max-width: 767.98px){.use__img{margin-bottom:30px}}.use__btn{margin-bottom:11px;text-align:center}@media (max-width: 767.98px){.use__btn{max-width:100%;padding-left:50px;padding-right:50px}}.use__link{font-size:18px;font-weight:600;line-height:26px;color:var(--color-grey2)}.use .title{max-width:80%;margin-bottom:49px}@media (min-width: 1720px){.use .title{max-width:40%}}@media (max-width: 991.98px){.use .title{margin-bottom:40px}}@media (max-width: 767.98px){.use .title{max-width:100%;margin-bottom:29px}}.use--lett{margin-bottom:120px}@media (min-width: 1720px){.use--lett{margin-bottom:126px}}@media (max-width: 1304.98px){.use--lett{margin-bottom:106px}}@media (max-width: 991.98px){.use--lett{margin-bottom:79px}}@media (max-width: 767.98px){.use--lett{margin-bottom:81px}}.use--lett .title{margin-bottom:51px}@media (max-width: 1304.98px){.use--lett .title{margin-bottom:39px}}@media (max-width: 767.98px){.use--lett .title{margin-bottom:10px}}.use--lett .use__img{margin-left:-5px;margin-right:-5px;max-width:110%;width:1290px}@media (min-width: 1720px){.use--lett .use__img{width:initial}}@media (max-width: 1304.98px){.use--lett .use__img{margin-left:0;margin-right:0;max-width:100%;width:1120px}}@media (max-width: 767.98px){.use--lett .use__img{max-width:103%;margin-left:-5px;margin-top:-6px}}@media (max-width: 479.98px){.use--lett .use__img{margin-bottom:3px}}@media (max-width: 991.98px){.use .h3{max-width:75%;margin:0 auto 22px}}@media (max-width: 767.98px){.use .h3{max-width:100%;margin-bottom:16px}}

View File

@@ -1,189 +0,0 @@
.uses {
margin-bottom: 120px;
}
@media (min-width: 1720px) {
.uses {
margin-bottom: 136px;
}
}
@media (max-width: 1304.98px) {
.uses {
margin-bottom: 125px;
}
}
@media (max-width: 991.98px) {
.uses {
margin-bottom: 100px;
}
}
@media (max-width: 479.98px) {
.uses {
margin-bottom: 199px;
}
}
.uses__grid {
text-align: left;
display: grid;
grid-template-columns: repeat(3, 1fr);
/* max-width: 101.5%; */
/* width: 101.5%; */
}
@media (max-width: 991.98px) {
.uses__grid {
grid-template-columns: 1fr 1fr;
column-gap: 15px;
}
}
@media (max-width: 479.98px) {
.uses__grid {
display: block;
text-align: center;
}
}
.uses__item {
min-height: 50px;
margin-bottom: 19px;
padding: 0 50px 0 2px;
}
@media (min-width: 1720px) {
.uses__item {
margin-bottom: 22px;
}
}
@media (max-width: 991.98px) {
.uses__item {
padding-right: 0;
}
}
@media (max-width: 991.98px) {
.uses__item p:last-child {
margin-bottom: 0;
}
}
.uses__icon {
margin-bottom: 11px;
}
@media (min-width: 1720px) {
.uses__icon {
width: 147px;
height: 147px;
margin-bottom: 20px;
}
}
.uses .title {
max-width: 50%;
margin: 0 auto 60px;
}
@media (max-width: 1304.98px) {
.uses .title {
max-width: 70%;
margin-bottom: 39px;
}
}
@media (max-width: 479.98px) {
.uses .title {
margin-bottom: 30px;
}
}
.uses__title {
font-size: 24px;
font-weight: 700;
line-height: 36px;
margin-bottom: 10px;
}
.uses--cstmr .uses__item {
text-align: center;
padding: 0 15px;
}
@media (max-width: 991.98px) {
.uses--cstmr .uses__item {
margin-bottom: 42px;
min-height: 255px;
}
}
@media (max-width: 479.98px) {
.uses--cstmr .uses__item {
margin-bottom: 25px;
min-height: 194px;
}
}
@media (max-width: 991.98px) {
.uses--cstmr .uses__item p {
max-width: 90%;
margin: 0 auto;
}
}
@media (max-width: 479.98px) {
.uses--cstmr .uses__item p {
max-width: 100%;
}
}
.uses--cstmr .uses__icon {
width: 118px;
height: 118px;
}
@media (max-width: 991.98px) {
.uses--cstmr .uses__icon {
width: 142px;
height: 142px;
margin-bottom: 23px;
}
}
@media (max-width: 479.98px) {
.uses--cstmr .uses__icon {
width: 117px;
height: 117px;
margin-bottom: 8px;
}
}
@media (max-width: 991.98px) {
.uses--cstmr .uses__grid {
grid-template-columns: 1fr;
}
}
@media (max-width: 1304.98px) {
.uses--cstmr .title {
margin-bottom: 61px;
max-width: 80%;
}
}
@media (max-width: 991.98px) {
.uses--cstmr .title {
margin-bottom: 44px;
}
}
@media (max-width: 479.98px) {
.uses--cstmr .title {
max-width: 90%;
margin-bottom: 31px;
}
}

View File

@@ -1,204 +0,0 @@
@charset 'UTF-8';
/* Slider */
.slick-loading .slick-list
{
background: #fff url('./ajax-loader.gif') center center no-repeat;
}
/* Icons */
@font-face
{
font-family: 'slick';
font-weight: normal;
font-style: normal;
src: url('./fonts/slick.eot');
src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
}
/* Arrows */
.slick-prev,
.slick-next
{
font-size: 0;
line-height: 0;
position: absolute;
top: 50%;
display: block;
width: 20px;
height: 20px;
padding: 0;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
cursor: pointer;
color: transparent;
border: none;
outline: none;
background: transparent;
}
.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus
{
color: transparent;
outline: none;
background: transparent;
}
.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before
{
opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before
{
opacity: .25;
}
.slick-prev:before,
.slick-next:before
{
font-family: 'slick';
font-size: 20px;
line-height: 1;
opacity: .75;
color: white;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-prev
{
left: -25px;
}
[dir='rtl'] .slick-prev
{
right: -25px;
left: auto;
}
.slick-prev:before
{
content: '←';
}
[dir='rtl'] .slick-prev:before
{
content: '→';
}
.slick-next
{
right: -25px;
}
[dir='rtl'] .slick-next
{
right: auto;
left: -25px;
}
.slick-next:before
{
content: '→';
}
[dir='rtl'] .slick-next:before
{
content: '←';
}
/* Dots */
.slick-dotted.slick-slider
{
margin-bottom: 30px;
}
.slick-dots
{
position: absolute;
bottom: -25px;
display: block;
width: 100%;
padding: 0;
margin: 0;
list-style: none;
text-align: center;
}
.slick-dots li
{
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button
{
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus
{
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before
{
opacity: 1;
}
.slick-dots li button:before
{
font-family: 'slick';
font-size: 6px;
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 20px;
height: 20px;
content: '•';
text-align: center;
opacity: .25;
color: black;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before
{
opacity: .75;
color: black;
}

View File

@@ -1,146 +0,0 @@
/* Slider */
.slick-slider {
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list {
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus {
outline: none;
}
.slick-list.dragging {
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list {
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track {
position: relative;
top: 0;
left: 0;
display: block;
margin-left: auto;
margin-right: auto;
}
.slick-track:before,
.slick-track:after {
display: table;
content: '';
}
.slick-track:after {
clear: both;
}
.slick-loading .slick-track {
visibility: hidden;
}
.slick-slide {
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide {
float: right;
}
.slick-slide img {
display: block;
}
.slick-slide.slick-loading img {
display: none;
}
.slick-slide.dragging img {
pointer-events: none;
}
.slick-initialized .slick-slide {
display: block;
}
.slick-loading .slick-slide {
visibility: hidden;
}
.slick-vertical .slick-slide {
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}
.slick-prev, .slick-next {
font-size: 0;
line-height: 0;
position: absolute;
top: 50%;
display: block;
width: 80px;
height: 80px;
padding: 0;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
cursor: pointer;
color: transparent;
outline: none;
background: transparent;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border: 1px solid var(--color-primary);
outline: 0;
border-radius: 50%;
box-sizing: border-box;
text-indent: -9999px;
z-index: 1;
background: var(--color-primary) url("/static/img/svg/slick-arrow.svg") no-repeat center;
transition: background-color .2s ease-in-out;
}
.slick-next {
right: 0;
transform: rotate(180deg) translate(0, 50%);
}
.slick-disabled {
display: none !important;
}

View File

@@ -253,7 +253,6 @@ footer {
height: 318px; height: 318px;
background: #272424; background: #272424;
margin-top: 50px; margin-top: 50px;
text-align: left;
} }
section.register>h1 { section.register>h1 {
@@ -420,7 +419,6 @@ footer>div {
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
line-height: 22px; line-height: 22px;
} }
.footer_text_contact { .footer_text_contact {
@@ -3382,11 +3380,6 @@ details[open] summary ~ *{
display: none; display: none;
} }
input.error::placeholder {
color: red;
font-weight: bold;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 777 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 884 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 689 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 967 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

View File

@@ -1,3 +0,0 @@
<svg width="68" height="18" viewBox="0 0 68 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M54.5455 2.94981C52.766 1.91497 50.7812 0.832029 50.1346 0.543456C48.2971 -0.276928 46.5619 -0.157082 46.0488 0.825723C45.351 2.16215 46.6527 3.4895 50.8124 5.68494C52.8468 6.75803 54.4597 7.6888 54.3974 7.75267C54.2493 7.90445 35.6219 5.73738 28.188 4.70333C25.0146 4.26219 18.1492 3.28688 12.9317 2.53588C7.71422 1.78488 2.84561 1.17067 2.11246 1.17067C0.627678 1.17067 -0.472054 2.11365 0.203789 2.80631C1.35891 3.99017 43.0138 10.8158 56.6476 12.0552L59.7199 12.3347L58.0351 13.068C55.8895 14.0019 52.6137 16.4548 52.6137 17.1277C52.6137 18.5099 56.4795 18.2249 61.8455 16.4473C66.0379 15.0585 68 13.4902 68 11.5286C68 9.87083 66.8087 8.92115 61.9936 6.7399C59.6768 5.69008 56.3249 3.98465 54.5455 2.94981Z" fill="#FF613A" fill-opacity="0.8"/>
</svg>

Before

Width:  |  Height:  |  Size: 860 B

View File

@@ -1,3 +0,0 @@
<svg width="62" height="20" viewBox="0 0 62 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M31.2431 4.90696C27.074 4.72772 20.6916 5.46692 17.9124 6.45061C16.4661 6.96259 2.08303 11.0406 1.39753 11.9377C-0.140762 13.9508 1.29118 14.408 3.1617 13.1727C5.89172 11.37 27.1619 8.69633 35.062 10.0591C39.9082 10.8948 47.4586 13.1603 47.564 13.8104C47.5892 13.9643 46.8851 14.2956 46.0002 14.5464C43.7152 15.1933 40.1182 17.1925 39.6148 18.0955C39.308 18.6451 39.3898 18.9582 39.9052 19.2102C41.3022 19.8922 46.7352 20.1339 50.668 19.6888C52.8608 19.4402 55.7454 19.2598 57.0782 19.2876C60.8168 19.3653 62.6554 17.5634 61.518 14.9368C60.4219 12.4061 53.0751 3.8059 50.2101 1.69982C48.7444 0.62243 48.2982 0.471218 47.3165 0.719869C46.1556 1.01364 45.5481 1.89888 45.6075 3.20956C45.6224 3.54513 46.1962 4.82242 46.8823 6.04822L48.1296 8.27667L45.3967 7.42798C41.3929 6.18448 35.1664 5.07533 31.2431 4.90696Z" fill="#FF613A" fill-opacity="0.8"/>
</svg>

Before

Width:  |  Height:  |  Size: 960 B

View File

@@ -1,4 +0,0 @@
<svg width="147" height="147" viewBox="0 0 147 147" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7812 124.031H96.4688" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.7043 80.6205L31.3523 100.89C34.2389 103.596 37.9217 105.298 41.8531 105.743C45.7845 106.188 49.7545 105.352 53.1727 103.36L140.109 52.8283L129.429 39.7362C126.651 36.3429 122.75 34.0553 118.433 33.2865C114.115 32.5177 109.665 33.3186 105.886 35.5444L80.3906 50.5315L45.9375 39.0471L36.4629 43.124C35.7541 43.4278 35.1331 43.9052 34.6573 44.5121C34.1815 45.1189 33.8661 45.8359 33.7402 46.5967C33.6144 47.3576 33.6821 48.1379 33.9371 48.8656C34.1922 49.5934 34.6264 50.2453 35.1996 50.7612L52.8281 66.6096L36.75 75.7971L20.6719 68.9065L11.025 73.0408C10.3232 73.3423 9.70757 73.8141 9.23395 74.4134C8.76033 75.0127 8.44363 75.7206 8.31251 76.4731C8.18139 77.2256 8.23999 77.999 8.48301 78.7231C8.72602 79.4473 9.14578 80.0994 9.7043 80.6205V80.6205Z" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,8 +0,0 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M58 16H6C4.89543 16 4 16.8954 4 18V46C4 47.1046 4.89543 48 6 48H58C59.1046 48 60 47.1046 60 46V18C60 16.8954 59.1046 16 58 16Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M32 40C36.4183 40 40 36.4183 40 32C40 27.5817 36.4183 24 32 24C27.5817 24 24 27.5817 24 32C24 36.4183 27.5817 40 32 40Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M44 16L60 30" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M44 48L60 34" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M20 16L4 30" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M20 48L4 34" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 958 B

View File

@@ -1,6 +0,0 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M56 44.3253V19.6753C55.9981 19.3193 55.9023 18.97 55.7224 18.6627C55.5424 18.3555 55.2846 18.1011 54.975 17.9253L32.975 5.55031C32.6786 5.37916 32.3423 5.28906 32 5.28906C31.6577 5.28906 31.3214 5.37916 31.025 5.55031L9.025 17.9253C8.71538 18.1011 8.45759 18.3555 8.27763 18.6627C8.09768 18.97 8.00191 19.3193 8 19.6753V44.3253C8.00191 44.6814 8.09768 45.0306 8.27763 45.3379C8.45759 45.6451 8.71538 45.8995 9.025 46.0753L31.025 58.4503C31.3214 58.6215 31.6577 58.7116 32 58.7116C32.3423 58.7116 32.6786 58.6215 32.975 58.4503L54.975 46.0753C55.2846 45.8995 55.5424 45.6451 55.7224 45.3379C55.9023 45.0306 55.9981 44.6814 56 44.3253V44.3253Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M44.25 38.125V25.125L20 11.75" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M55.7249 18.6504L32.2249 32.0004L8.2749 18.6504" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M32.225 32L32 58.7" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,5 +0,0 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M56 14H8C6.89543 14 6 14.8954 6 16V22C6 23.1046 6.89543 24 8 24H56C57.1046 24 58 23.1046 58 22V16C58 14.8954 57.1046 14 56 14Z" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M54 24V48C54 48.5304 53.7893 49.0391 53.4142 49.4142C53.0391 49.7893 52.5304 50 52 50H12C11.4696 50 10.9609 49.7893 10.5858 49.4142C10.2107 49.0391 10 48.5304 10 48V24" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M26 34H38" stroke="#FF613A" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 687 B

View File

@@ -1,6 +0,0 @@
<svg width="147" height="147" viewBox="0 0 147 147" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M124.031 41.3438H22.9688C20.4317 41.3438 18.375 43.4004 18.375 45.9375V119.438C18.375 121.975 20.4317 124.031 22.9688 124.031H124.031C126.568 124.031 128.625 121.975 128.625 119.438V45.9375C128.625 43.4004 126.568 41.3438 124.031 41.3438Z" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M96.4688 41.3438V32.1562C96.4688 29.7196 95.5008 27.3827 93.7778 25.6597C92.0548 23.9367 89.7179 22.9688 87.2812 22.9688H59.7188C57.2821 22.9688 54.9452 23.9367 53.2222 25.6597C51.4992 27.3827 50.5312 29.7196 50.5312 32.1562V41.3438" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M128.625 72.5234C111.871 82.2129 92.8542 87.3039 73.5 87.2809C54.1422 87.3312 35.1185 82.2384 18.375 72.5234" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M66.6094 68.9062H80.3906" stroke="#FF613A" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

Some files were not shown because too many files have changed in this diff Show More