From 7831973cdbc8978898808917e5c7bf196c09a074 Mon Sep 17 00:00:00 2001 From: SDE Date: Sat, 25 Nov 2023 16:31:10 +0300 Subject: [PATCH] 0.7.80 FAQ admin --- ArticlesApp/admin.py | 6 +++--- ArticlesApp/js_views.py | 3 ++- ArticlesApp/models.py | 10 +++++----- AuthApp/js_views.py | 12 ++++++------ AuthApp/views.py | 7 ++++++- BaseModels/admin_utils.py | 11 ++++++----- ChatServiceApp/js_views.py | 2 +- ChatServiceApp/models.py | 38 ++++++++++++++++++------------------ GeneralApp/models.py | 12 ++++++------ ReferenceDataApp/models.py | 38 ++++++++++++++++++------------------ RoutesApp/models.py | 4 ++-- static/css/mobile_styles.css | 4 ++++ static/css/styles(boris).css | 3 ++- 13 files changed, 81 insertions(+), 69 deletions(-) diff --git a/ArticlesApp/admin.py b/ArticlesApp/admin.py index a34a840..4e47232 100644 --- a/ArticlesApp/admin.py +++ b/ArticlesApp/admin.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- from django.contrib import admin - +from django.utils.translation import gettext_lazy as _ from ArticlesApp.models import ArticleModel, UserPageModel from sets.admin import * @@ -68,7 +68,7 @@ class Admin_Article(Admin_Trans_BaseModelViewPage): # ('devices'), ) }), - (u'Статья', { + (_('Статья'), { 'classes': ['wide'], 'fields': ( 'description', 'text', @@ -114,7 +114,7 @@ class Admin_UserPage(Admin_Trans_BaseModelViewPage): # ('devices'), ) }), - (u'Статья', { + (_('Статья'), { 'classes': ['wide'], 'fields': ('picture', 'description', 'text') }), diff --git a/ArticlesApp/js_views.py b/ArticlesApp/js_views.py index e770ea4..eccc45f 100644 --- a/ArticlesApp/js_views.py +++ b/ArticlesApp/js_views.py @@ -45,9 +45,10 @@ def get_articles_block_ajax(request): except Exception as e: + errors_Dict = { 'errors': { - 'all__': f'ошибка в запросе = {str(e)}' + 'all__': f'{_("ошибка в запросе")} = {str(e)}' } } return JsonResponse(errors_Dict, status=400) \ No newline at end of file diff --git a/ArticlesApp/models.py b/ArticlesApp/models.py index d23dc69..cbc5cf7 100644 --- a/ArticlesApp/models.py +++ b/ArticlesApp/models.py @@ -22,8 +22,8 @@ class UserPageModel(BaseModelViewPage): text = RichTextUploadingField(verbose_name=u'Текст') class Meta: - verbose_name=u'Пользовательская страница' - verbose_name_plural =u'Пользовательские страницы' + verbose_name=_("Пользовательская страница") + verbose_name_plural =_("Пользовательские страницы") # unique_together = ('url', 'region') # managed=True # app_label = u'ArticlesApp' @@ -31,8 +31,8 @@ class UserPageModel(BaseModelViewPage): class ArticleModel(BaseModelViewPage): # pub_DT = models.DateTimeField(verbose_name=u'Дата и время публикации', auto_created=True) - text = RichTextUploadingField(verbose_name=u'Текст') + text = RichTextUploadingField(verbose_name=_("Текст")) class Meta: - verbose_name='Статья' - verbose_name_plural ='Статьи' \ No newline at end of file + verbose_name=_("Статья") + verbose_name_plural =_("Статьи") \ No newline at end of file diff --git a/AuthApp/js_views.py b/AuthApp/js_views.py index feca994..5dffd9d 100644 --- a/AuthApp/js_views.py +++ b/AuthApp/js_views.py @@ -128,8 +128,8 @@ def change_profile_confirm_ajax(request): if password and confirm_password: if password != confirm_password: errors = { - 'password': 'Не совпадают пароли', - 'confirm_password': 'Не совпадают пароли', + 'password': _("Не совпадают пароли"), + 'confirm_password': _("Не совпадают пароли"), } raise ValidationError(errors) @@ -218,7 +218,7 @@ def login_ajax(request): else: errors_Dict = { 'errors': { - 'all__': f'неверный логин и\или пароль' + 'all__': _("неверный логин и\или пароль") } } Dict = {'form': errors_Dict} @@ -236,7 +236,7 @@ def login_ajax(request): errors_Dict = { 'errors': { - 'all__': f'ошибка в запросе = {str(e)}' + 'all__': f'{_("ошибка в запросе")} = {str(e)}' } } Dict = {'form': errors_Dict} @@ -261,7 +261,7 @@ def registration_ajax(request): users = User.objects.filter(email=form.data['email']) if users: - form.errors['email'] = 'Пользователь с указанным email уже существует' + form.errors['email'] = _("Пользователь с указанным email уже существует") Dict = {'form': form} html = render_to_string('forms/f_registration.html', Dict, request=request) return JsonResponse({'html': html}, status=400) @@ -287,7 +287,7 @@ def registration_ajax(request): errors_Dict = { 'errors': { - '__all__': f'ошибка в запросе = {str(e)}' + '__all__': f'{_("ошибка в запросе")} = {str(e)}' } } Dict = {'form': errors_Dict} diff --git a/AuthApp/views.py b/AuthApp/views.py index ab41fc0..9004d1d 100644 --- a/AuthApp/views.py +++ b/AuthApp/views.py @@ -44,6 +44,11 @@ def profile_page_View(request, page_name, id=None): 'page_type': 'profile' } + if request.GET and 'mobile' in request.GET and request.GET['mobile']: + Dict.update({ + 'mobile': True + }) + t = loader.get_template('pages/profile/p_user_profile.html') return get_inter_http_respose(t, Dict, request) # return HttpResponse(t.render(Dict, request)) @@ -153,7 +158,7 @@ def create_personal_user(data, creator): } except Exception as e: return { - 'error': 'Ошибка добавление нового пользователя = {0}'.format(str(e)), + 'error': f'{_("Ошибка добавление нового пользователя")} = {str(e)}', } diff --git a/BaseModels/admin_utils.py b/BaseModels/admin_utils.py index 3c25a14..dde9ac3 100644 --- a/BaseModels/admin_utils.py +++ b/BaseModels/admin_utils.py @@ -8,6 +8,7 @@ from django.utils.safestring import mark_safe from django.db import models from django.contrib import admin from django.contrib.contenttypes.admin import GenericTabularInline, GenericStackedInline +from django.utils.translation import gettext as _ import re # from modeltranslation.admin import TranslationAdmin @@ -218,7 +219,7 @@ class Admin_GenericBaseIconStackedInline(GenericStackedInline): def image_thumb(self, obj): return get_image_thumb(self, obj) - image_thumb.short_description = u'Миниатюра' + image_thumb.short_description = _('Миниатюра') image_thumb.allow_tags = True @@ -231,7 +232,7 @@ class Admin_BaseIconStackedInline(admin.StackedInline): def image_thumb(self, obj): return get_image_thumb(self, obj) - image_thumb.short_description = u'Миниатюра' + image_thumb.short_description = _('Миниатюра') image_thumb.allow_tags = True @@ -243,7 +244,7 @@ class Admin_BaseIconTabularModel(admin.TabularInline): def image_thumb(self, obj): return get_image_thumb(self, obj) - image_thumb.short_description = u'Миниатюра' + image_thumb.short_description = _('Миниатюра') image_thumb.allow_tags = True @@ -258,7 +259,7 @@ class Admin_BaseIconModel(admin.ModelAdmin): return s - description_exists.short_description = u'Описание' + description_exists.short_description = _('Описание') description_exists.allow_tags = True def formfield_for_dbfield (self, db_field, request, **kwargs): @@ -271,7 +272,7 @@ class Admin_BaseIconModel(admin.ModelAdmin): def image_thumb(self, obj): return get_image_thumb(self, obj) - image_thumb.short_description = u'Миниатюра' + image_thumb.short_description = _('Миниатюра') image_thumb.allow_tags = True diff --git a/ChatServiceApp/js_views.py b/ChatServiceApp/js_views.py index 018060e..2ecfc83 100644 --- a/ChatServiceApp/js_views.py +++ b/ChatServiceApp/js_views.py @@ -502,7 +502,7 @@ def create_ticket_ajax(request): errors_Dict = { 'errors': { - 'all__': f'ошибка в запросе = {str(e)}' + 'all__': f'{_("ошибка в запросе")} = {str(e)}' } } Dict = {'form': errors_Dict} diff --git a/ChatServiceApp/models.py b/ChatServiceApp/models.py index 3748a19..1e9ecc4 100644 --- a/ChatServiceApp/models.py +++ b/ChatServiceApp/models.py @@ -3,35 +3,35 @@ from BaseModels.base_models import BaseModel from django.utils.translation import gettext_lazy as _ msg_type_choices = ( - ('support', 'техподдержка'), - ('private', 'личное') + ('support', _('техподдержка')), + ('private', _('личное')) ) msg_status_choices = ( - ('sended', 'Отправлено'), - ('seen', 'Просмотрено') + ('sended', _('Отправлено')), + ('seen', _('Просмотрено')) ) grp_msg_status = ( - ('open', 'Открыт'), - ('answered', 'Отвечен'), - ('closed', 'Закрыт') + ('open', _('Открыт')), + ('answered', _('Отвечен')), + ('closed', _('Закрыт')) ) grp_msg_department = ( - ('support', 'Отдел: Техническая поддержка'), - ('finance', 'Отдел: Финансовый департамент'), + ('support', _('Отдел: Техническая поддержка')), + ('finance', _('Отдел: Финансовый департамент')), ) class MsgGroup(BaseModel): from AuthApp.models import User - department = models.CharField(verbose_name='Отдел', default='support', choices=grp_msg_department) - status = models.CharField(verbose_name='Статус', default='open', choices=grp_msg_status) + department = models.CharField(verbose_name=_('Отдел'), default='support', choices=grp_msg_department) + status = models.CharField(verbose_name=_('Статус'), default='open', choices=grp_msg_status) - text = models.TextField(verbose_name='Сообщение') + text = models.TextField(verbose_name=_('Сообщение')) owner = models.ForeignKey(User, verbose_name=_('Владелец'), related_name='rel_msgGroups_for_owner', on_delete=models.SET_NULL, null=True) @@ -46,23 +46,23 @@ class MsgGroup(BaseModel): class Message(BaseModel): from AuthApp.models import User - msg_type = models.CharField(max_length=50, verbose_name='Тип сообщения', default='private', choices=msg_type_choices) + msg_type = models.CharField(max_length=50, verbose_name=_('Тип сообщения'), default='private', choices=msg_type_choices) group = models.ForeignKey( - MsgGroup, verbose_name='Группа сообщений', related_name='rel_messages_for_group', + MsgGroup, verbose_name=_('Группа сообщений'), related_name='rel_messages_for_group', on_delete=models.SET_NULL, null=True) sender = models.ForeignKey( - User, verbose_name='Отправитель', on_delete=models.CASCADE, related_name='rel_messages_for_sender' + User, verbose_name=_('Отправитель'), on_delete=models.CASCADE, related_name='rel_messages_for_sender' ) receiver = models.ForeignKey( - User, verbose_name='Получатель', on_delete=models.CASCADE, related_name='rel_messages_for_receiver' + User, verbose_name=_('Получатель'), on_delete=models.CASCADE, related_name='rel_messages_for_receiver' ) - text = models.TextField(verbose_name='Сообщение') + text = models.TextField(verbose_name=_('Сообщение')) - status = models.CharField(verbose_name='Статус', default='sended', choices=msg_status_choices) + status = models.CharField(verbose_name=_('Статус'), default='sended', choices=msg_status_choices) - files = models.JSONField(verbose_name='Прикрепленные файлы', default=dict) + files = models.JSONField(verbose_name=_('Прикрепленные файлы'), default=dict) class Meta: verbose_name = _('Сообщение') diff --git a/GeneralApp/models.py b/GeneralApp/models.py index 5f04a1a..bae28a0 100644 --- a/GeneralApp/models.py +++ b/GeneralApp/models.py @@ -5,7 +5,7 @@ from django.utils.translation import gettext_lazy as _ from ckeditor_uploader.fields import RichTextUploadingField class StaticPage(BaseModelViewPage): - promo_header = models.BooleanField(verbose_name='Промо-хэдер', default=False) + promo_header = models.BooleanField(verbose_name=_('Промо-хэдер'), default=False) class Meta: verbose_name = _('Статическая страница') @@ -17,9 +17,9 @@ class Block(BaseModelViewPage): verbose_name_plural = _('Блоки на страницах') class Option(BaseModel): - opt_type = models.CharField(max_length=250, verbose_name='Тип', blank=True, null=True) - prefix = models.CharField(max_length=250, verbose_name='Префикс', blank=True, null=True) - value = models.CharField(max_length=250, verbose_name='Значение') + opt_type = models.CharField(max_length=250, verbose_name=_('Тип'), blank=True, null=True) + prefix = models.CharField(max_length=250, verbose_name=_('Префикс'), blank=True, null=True) + value = models.CharField(max_length=250, verbose_name=_('Значение')) picture = models.ImageField(upload_to='uploads/', verbose_name=_('Миниатюра'), null=True, blank=True, help_text=u'') @@ -36,8 +36,8 @@ class FAQitem(BaseModel): object_id = models.PositiveIntegerField() content_object = GenericForeignKey('content_type', 'object_id') - question = models.TextField(verbose_name='Вопрос') - answer = RichTextUploadingField(verbose_name='Ответ') + question = models.TextField(verbose_name=_('Вопрос')) + answer = RichTextUploadingField(verbose_name=_('Ответ')) def __str__(self): if self.question: diff --git a/ReferenceDataApp/models.py b/ReferenceDataApp/models.py index 2418c7b..dbd7bf8 100644 --- a/ReferenceDataApp/models.py +++ b/ReferenceDataApp/models.py @@ -3,21 +3,21 @@ from BaseModels.base_models import BaseModel from django.utils.translation import gettext_lazy as _ class Country(BaseModel): - international_name = models.CharField(max_length=250, verbose_name='Международное название', blank=True, null=True) - official_name = models.CharField(max_length=250, verbose_name='Официальное название', blank=True, null=True) + international_name = models.CharField(max_length=250, verbose_name=_('Международное название'), blank=True, null=True) + official_name = models.CharField(max_length=250, verbose_name=_('Официальное название'), blank=True, null=True) - short_code = models.CharField(max_length=2, verbose_name='Код страны по ISO3166-1:alpha2') - code = models.CharField(max_length=3, verbose_name='Код страны по ISO3166-1:alpha3') - num_code = models.CharField(max_length=3, verbose_name='Код страны по ISO3166-1:numeric', blank=True, null=True) + short_code = models.CharField(max_length=2, verbose_name=_('Код страны по ISO3166-1:alpha2')) + code = models.CharField(max_length=3, verbose_name=_('Код страны по ISO3166-1:alpha3')) + num_code = models.CharField(max_length=3, verbose_name=_('Код страны по ISO3166-1:numeric'), blank=True, null=True) - flag_img_url = models.URLField(verbose_name='Ссылка на изображение флага', blank=True, null=True) + flag_img_url = models.URLField(verbose_name=_('Ссылка на изображение флага'), blank=True, null=True) - geo_lat = models.CharField(max_length=20, verbose_name='GPS широта', blank=True, null=True) - geo_lon = models.CharField(max_length=20, verbose_name='GPS долгота', blank=True, null=True) + geo_lat = models.CharField(max_length=20, verbose_name=_('GPS широта'), blank=True, null=True) + geo_lon = models.CharField(max_length=20, verbose_name=_('GPS долгота'), blank=True, null=True) area_id = models.BigIntegerField(blank=True, null=True) - parsing_finished_DT = models.DateTimeField(verbose_name='Дата и время завершения парсинга', blank=True, null=True) + parsing_finished_DT = models.DateTimeField(verbose_name=_('Дата и время завершения парсинга'), blank=True, null=True) def __str__(self): if self.name: @@ -39,14 +39,14 @@ class Country(BaseModel): class City(BaseModel): country = models.ForeignKey( - Country, verbose_name='Страна', related_name='rel_cities_for_country', on_delete=models.CASCADE) + Country, verbose_name=_('Страна'), related_name='rel_cities_for_country', on_delete=models.CASCADE) - geo_lat = models.CharField(max_length=20, verbose_name='GPS широта', blank=True, null=True) - geo_lon = models.CharField(max_length=20, verbose_name='GPS долгота', blank=True, null=True) + geo_lat = models.CharField(max_length=20, verbose_name=_('GPS широта'), blank=True, null=True) + geo_lon = models.CharField(max_length=20, verbose_name=_('GPS долгота'), blank=True, null=True) area_id = models.BigIntegerField(blank=True, null=True) - parsing_finished_DT = models.DateTimeField(verbose_name='Дата и время завершения парсинга', blank=True, null=True) + parsing_finished_DT = models.DateTimeField(verbose_name=_('Дата и время завершения парсинга'), blank=True, null=True) def __str__(self): if self.name: @@ -55,7 +55,7 @@ class City(BaseModel): return f'{self.id}' def get_country_n_city_str(self): - country = 'Неизвестно' + country = _('Неизвестно') city = self.name if self.country: country = self.country @@ -72,20 +72,20 @@ class City(BaseModel): class Airport(BaseModel): city = models.ForeignKey( - City, verbose_name='Город', related_name='rel_airports_for_city', on_delete=models.CASCADE, + City, verbose_name=_('Город'), related_name='rel_airports_for_city', on_delete=models.CASCADE, blank=True, null=True) - international_name = models.CharField(max_length=250, verbose_name='Международное название', blank=True, null=True) + international_name = models.CharField(max_length=250, verbose_name=_('Международное название'), blank=True, null=True) iata_code = models.CharField(max_length=3, verbose_name='IATA') icao_code = models.CharField(max_length=4, verbose_name='ICAO') - geo_lat = models.CharField(max_length=20, verbose_name='GPS широта', blank=True, null=True) - geo_lon = models.CharField(max_length=20, verbose_name='GPS долгота', blank=True, null=True) + geo_lat = models.CharField(max_length=20, verbose_name=_('GPS широта'), blank=True, null=True) + geo_lon = models.CharField(max_length=20, verbose_name=_('GPS долгота'), blank=True, null=True) area_id = models.BigIntegerField(blank=True, null=True) - parsing_finished_DT = models.DateTimeField(verbose_name='Дата и время завершения парсинга', blank=True, null=True) + parsing_finished_DT = models.DateTimeField(verbose_name=_('Дата и время завершения парсинга'), blank=True, null=True) def __str__(self): if self.name: diff --git a/RoutesApp/models.py b/RoutesApp/models.py index 255bfff..69a7b06 100644 --- a/RoutesApp/models.py +++ b/RoutesApp/models.py @@ -24,8 +24,8 @@ cargo_type_choices = ( ) owner_type_choices = ( - ('customer', 'Заказчик'), - ('mover', 'Перевозчик') + ('customer', _('Заказчик')), + ('mover', _('Перевозчик')) ) diff --git a/static/css/mobile_styles.css b/static/css/mobile_styles.css index aa836a1..83fa8aa 100644 --- a/static/css/mobile_styles.css +++ b/static/css/mobile_styles.css @@ -6,6 +6,9 @@ padding-left: 35px; padding-right: 105px; } + .cut_width_f_curtain.n_profile.open{ + right: 0; + } } @media (max-width: 1199px){ .benefit_img_about_service>figure>img{ @@ -624,6 +627,7 @@ /*.cut_width_f_curtain.n_profile.open{*/ /* display: block;*/ /* min-width: 1280px;*/ + /* right: 0;*/ /*}*/ diff --git a/static/css/styles(boris).css b/static/css/styles(boris).css index 8abdf1f..2b8c4dd 100644 --- a/static/css/styles(boris).css +++ b/static/css/styles(boris).css @@ -2347,7 +2347,8 @@ .cut_width_f_curtain.n_profile.open{ display: block; - min-width: 1280px; + /*min-width: 1280px;*/ + right: calc((100vw - 1280px) / 2) }