0.8.0
options init
This commit is contained in:
@@ -149,7 +149,7 @@ class Admin_UserPage(Admin_Trans_BaseModelViewPage):
|
|||||||
if request.user.is_superuser:
|
if request.user.is_superuser:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if obj and obj.url in ('for-partners', 'dealers', 'about-truenergy', 'contacts'):
|
if obj and obj.url in ('for-partners', 'dealers', 'contacts'):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
def get_flat_pages_links_Dict(site):
|
def get_flat_pages_links_Dict(site):
|
||||||
|
|
||||||
flat_pages_links = UserPageModel.objects.filter(
|
flat_pages_links = UserPageModel.objects.filter(
|
||||||
url__in=('about-truenergy', 'for-partners', 'contacts'),
|
url__in=('for-partners', 'contacts'),
|
||||||
sites=site
|
sites=site
|
||||||
).values_list('url', flat=True)
|
).values_list('url', flat=True)
|
||||||
|
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ def create_temporary_user():
|
|||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
user_id = str(uuid1().hex)[:10]
|
user_id = str(uuid1().hex)[:10]
|
||||||
user_name = u'user'+user_id
|
user_name = u'user'+user_id
|
||||||
mail = user_id+u'@truenergy.by'
|
mail = user_id+u'@domain'
|
||||||
user = User.objects.create_user(mail, mail,user_id)
|
user = User.objects.create_user(mail, mail,user_id)
|
||||||
user.first_name = _(u'незарег. пользователь')
|
user.first_name = _(u'незарег. пользователь')
|
||||||
user.last_name = u''
|
user.last_name = u''
|
||||||
|
|||||||
@@ -241,49 +241,7 @@ def sendMail(subject, text_content, from_email, to, html_content):
|
|||||||
return u'Accept'
|
return u'Accept'
|
||||||
|
|
||||||
|
|
||||||
# def techSendMail_for_top_management(html_content, title=None):
|
|
||||||
# try:
|
|
||||||
#
|
|
||||||
# # if not prod_server:
|
|
||||||
# # msg = '{0}. Not sended because is local'.format(html_content)
|
|
||||||
# # print(msg)
|
|
||||||
# # return msg
|
|
||||||
# from AuthApp.models import User
|
|
||||||
# from django.db.models import Q
|
|
||||||
#
|
|
||||||
# # to = ['web@syncsystems.net']
|
|
||||||
# to = User.objects.filter(
|
|
||||||
# Q(is_superuser=True) | Q(groups__name__in=[
|
|
||||||
# 'Отдел продаж: Начальник отдела продаж', 'Управляющий',
|
|
||||||
# 'Бухгалтерия: Главный бухгалтер'
|
|
||||||
# ]),
|
|
||||||
# is_active=True,
|
|
||||||
# is_staff=True
|
|
||||||
# ).values_list('email', flat=True)
|
|
||||||
# to = list(to)
|
|
||||||
# to.append('office@truenergy.by')
|
|
||||||
#
|
|
||||||
# print('techSendMail_for_top_management')
|
|
||||||
# if title:
|
|
||||||
# subject = title
|
|
||||||
# else:
|
|
||||||
# subject = u'truEnergy Data техническое оповещение'
|
|
||||||
# from_email = 'support@truenergy.by'
|
|
||||||
#
|
|
||||||
# res = admin_send_mail_by_SMTPlib(subject, from_email, to, html_content)
|
|
||||||
#
|
|
||||||
# # msg = EmailMultiAlternatives(subject, text_content, from_email, to)
|
|
||||||
# # msg.attach_alternative(html_content, "text/html")
|
|
||||||
# # msg.send()
|
|
||||||
# print(res)
|
|
||||||
# return u'Accept'
|
|
||||||
#
|
|
||||||
# except Exception as e:
|
|
||||||
# msg = 'techSendMail_for_top_management error={0}'.format(str(e))
|
|
||||||
# techSendMail(msg)
|
|
||||||
# print(msg)
|
|
||||||
#
|
|
||||||
# return 'Fail'
|
|
||||||
|
|
||||||
|
|
||||||
def techSendMail_for_specified_email_list(html_content, email_list, title=None):
|
def techSendMail_for_specified_email_list(html_content, email_list, title=None):
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ def get_ld_search(domain):
|
|||||||
data = {
|
data = {
|
||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "WebSite",
|
"@type": "WebSite",
|
||||||
"url": domain, #"https://truenergy.by/",
|
"url": domain,
|
||||||
"potentialAction": {
|
"potentialAction": {
|
||||||
"@type": "SearchAction",
|
"@type": "SearchAction",
|
||||||
"target": {
|
"target": {
|
||||||
|
|||||||
@@ -1,258 +1,75 @@
|
|||||||
from BaseModels.inter import cut_to_number_w_point
|
from BaseModels.inter import cut_to_number_w_point
|
||||||
|
|
||||||
|
|
||||||
def generate_seotext_by_properties(product_data_Dict):
|
# def generate_seotext_by_properties(product_data_Dict):
|
||||||
|
|
||||||
power_txt = ''
|
|
||||||
ip_txt = ''
|
|
||||||
lm_txt = ''
|
|
||||||
temp_txt = ''
|
|
||||||
install_txt = ''
|
|
||||||
diametr_txt = ''
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
if 'diameter' in product_data_Dict:
|
|
||||||
val = int(product_data_Dict['diameter'])
|
|
||||||
else:
|
|
||||||
val = int(product_data_Dict['width'])
|
|
||||||
|
|
||||||
diametr_txt = '{0} truEnergy {1} серии {2}.<br>'.format(
|
|
||||||
product_data_Dict['product_type']['name'].upper(),
|
|
||||||
product_data_Dict['article'],
|
|
||||||
product_data_Dict['product_series']['name'].upper()
|
|
||||||
)
|
|
||||||
|
|
||||||
# if product_data_Dict['product_type']['name'] == 'Светильник светодиодный':
|
|
||||||
#
|
#
|
||||||
# if val < 100:
|
# power_txt = ''
|
||||||
# diametr_txt = '{0} truEnergy {1} серии {2} - это хорошее решение для дома.<br>'.format(
|
# ip_txt = ''
|
||||||
# product_data_Dict['product_type']['name'].upper(),
|
# lm_txt = ''
|
||||||
# product_data_Dict['article'],
|
# temp_txt = ''
|
||||||
# product_data_Dict['product_series']['name'].upper()
|
# install_txt = ''
|
||||||
|
# diametr_txt = ''
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# except Exception as e:
|
||||||
|
# pass
|
||||||
|
#
|
||||||
|
# # ---------
|
||||||
|
# for property in product_data_Dict['properties_w_values_filtred']:
|
||||||
|
#
|
||||||
|
# # ------
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# except Exception as e:
|
||||||
|
# pass
|
||||||
|
#
|
||||||
|
# # ------
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# except Exception as e:
|
||||||
|
# pass
|
||||||
|
#
|
||||||
|
# # -------
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# except Exception as e:
|
||||||
|
# pass
|
||||||
|
#
|
||||||
|
# # -------
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# except Exception as e:
|
||||||
|
# pass
|
||||||
|
#
|
||||||
|
# # -------
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# except Exception as e:
|
||||||
|
# pass
|
||||||
|
#
|
||||||
|
# product_data_Dict['seo_text'] = '{0}{1}{2}{3}{4}{5}'.format(
|
||||||
|
# diametr_txt,
|
||||||
|
# power_txt,
|
||||||
|
# lm_txt,
|
||||||
|
# ip_txt,
|
||||||
|
# temp_txt,
|
||||||
|
# install_txt
|
||||||
# )
|
# )
|
||||||
#
|
#
|
||||||
# elif val < 150:
|
# return product_data_Dict
|
||||||
# diametr_txt = '{0} truEnergy {1} серии {2} отлично подойдет для освещения вашей квартиры, дома или офиса.<br>'.format(
|
|
||||||
# product_data_Dict['product_type']['name'].upper(),
|
|
||||||
# product_data_Dict['article'],
|
|
||||||
# product_data_Dict['product_series']['name'].upper()
|
|
||||||
# )
|
|
||||||
#
|
|
||||||
# else:
|
|
||||||
# diametr_txt = '{0} truEnergy {1} серии {2} - это энергоэффективное освещение для различных площадей и объектов.<br>'.format(
|
|
||||||
# product_data_Dict['product_type']['name'].upper(),
|
|
||||||
# product_data_Dict['article'],
|
|
||||||
# product_data_Dict['product_series']['name'].upper()
|
|
||||||
# )
|
|
||||||
# # не светильник
|
|
||||||
# else:
|
|
||||||
# diametr_txt = '{0} truEnergy {1} серии {2} - это энергоэффективное решение для освещения различных пространств.<br>'.format(
|
|
||||||
# product_data_Dict['product_type']['name'].upper(),
|
|
||||||
# product_data_Dict['article'],
|
|
||||||
# product_data_Dict['product_series']['name'].upper()
|
|
||||||
# )
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# ---------
|
|
||||||
for property in product_data_Dict['properties_w_values_filtred']:
|
|
||||||
|
|
||||||
# ------
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
if property['property']['name'] == 'Мощность':
|
|
||||||
power = int(property['property_value'])
|
|
||||||
|
|
||||||
if power < 7:
|
|
||||||
power_txt = 'Обладая низким энергопотреблением, этот {0} является заменой лампочки накаливания мощностью до 40 Ватт.<br>'.format(
|
|
||||||
product_data_Dict['product_type']['name'].lower(),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif power < 13:
|
|
||||||
power_txt = 'Энергоэффективность этого устройства позволяет использовть его в местах, ' \
|
|
||||||
'где ранее использовались светильники с лампами накаливания мощностью до 75 Ватт.<br>'.format(
|
|
||||||
)
|
|
||||||
elif power < 19:
|
|
||||||
power_txt = 'Этот {0} мощностью {1} Ватт легко заменит старые лампы накаливания мощностью до 100 Ватт ' \
|
|
||||||
'или люминесцентные лампы мощностью до 40 Ватт.<br>'.format(
|
|
||||||
product_data_Dict['product_type']['name'].lower(),
|
|
||||||
str(power)
|
|
||||||
)
|
|
||||||
|
|
||||||
elif power < 37:
|
|
||||||
power_txt = 'Данная модель подходит для освещения больших пространств. ' \
|
|
||||||
'Она не только поможет решить вопрос освещения, но и существенно сэкономит бюджет, ' \
|
|
||||||
'выделенный на решение этой задачи.<br>'.format(
|
|
||||||
product_data_Dict['product_type']['name'].lower(),
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
power_txt = '{0} Ватт, в данной модели обеспечивает мощный световой поток. ' \
|
|
||||||
'Это дает возможность установки одного изделия для освещения помещений с большой ' \
|
|
||||||
'площадью или открытых пространств.<br>'.format(
|
|
||||||
str(power),
|
|
||||||
product_data_Dict['product_type']['name'].lower(),
|
|
||||||
)
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# ------
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
if property['property']['name'] == 'Световой поток' and product_data_Dict['article'] != '11043':
|
|
||||||
val = int(property['property_value'])
|
|
||||||
|
|
||||||
if product_data_Dict['product_type']['name'] == 'Светильник светодиодный':
|
|
||||||
lm_txt = 'Один {0} данной модели способен осветить до {1} м.кв. площади ' \
|
|
||||||
'для рабочих зон и жилых комнат, и до {2} м.кв. площади для проходных и подсобных помещений ' \
|
|
||||||
'(при стандартной высоте потолка и нормальной освещенности помещения).<br>'.format(
|
|
||||||
product_data_Dict['product_type']['name'].lower(),
|
|
||||||
str(round(val / 300,2)),
|
|
||||||
str(round(val / 120, 2)),
|
|
||||||
)
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# -------
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
if property['property']['name'] == 'IP (пылевлагозащита)':
|
|
||||||
val = int(property['property_value'])
|
|
||||||
|
|
||||||
if val > 66:
|
|
||||||
ip_txt = 'Максимальная защита IP{0} способна выдержать самые сильные испытания водой. ' \
|
|
||||||
'Освещение с такой защитой используют для фонтанов и бассейнов.<br>'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val > 64:
|
|
||||||
ip_txt = 'Данный продукт имеет высокую степень пылевлагозащиты - IP{0}. В связи с этим данная модель прекрасно подходит как ' \
|
|
||||||
'для отапливаемых помещений с нормальным уровнем влажности, так и для помещений неотапливаемых, ' \
|
|
||||||
'а также для эксплуатации на улице. Устройство с данной степенью защиты не боится пыли и влаги' \
|
|
||||||
'а так же имеет защиту от струй воды со всех направлений.<br>'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val > 60:
|
|
||||||
ip_txt = 'Степень защиты IP{0} обозначает полную защиту от брызг с любых сторон и имеет полную пылинепроницаемость ' \
|
|
||||||
'(никакая пыль не может проникнуть внутрь корпуса устройства). ' \
|
|
||||||
'Светильники подходят для установки в помещении и на улице, при рабочих температурах -20 до +40 градусов.<br>'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val > 53:
|
|
||||||
ip_txt = 'У изделия с степенью защиты IP{0} снижена возможность попадания пыли внутрь корпуса ' \
|
|
||||||
'и обеспечена полная защита расположенной внутри устройстав электроники.' \
|
|
||||||
'Часто используют для рабочих помещений с повышенным содержанием пыли и влаги, а также под навесами.<br>'.format(
|
|
||||||
str(val),
|
|
||||||
product_data_Dict['product_type']['name'].lower(),
|
|
||||||
product_data_Dict['product_type']['name_plural'].lower(),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val > 40:
|
|
||||||
ip_txt = 'Могут устанавливаться в помещения с повышенным уровнем пыли.'.format(
|
|
||||||
product_data_Dict['product_type']['name'].lower(),
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
ip_txt = 'IP{0} - степень защиты данной модели, в связи с этим могут устанавливаться в' \
|
|
||||||
' отапливаемые помещения с умеренным уровнем влажности.<br>'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# -------
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
if property['property']['name'] == 'Цветовая температура':
|
|
||||||
val = int(property['property_value'])
|
|
||||||
|
|
||||||
if val < 3001:
|
|
||||||
temp_txt = 'Теплый свет, генерируемый этой моделью способствует отдыху и расслаблению. ' \
|
|
||||||
'Он приятен для глаз. В связи с этим рекомендуется устанавливать {0} ' \
|
|
||||||
'с температурой {1}К в зоны отдыха, жилые комнаты и спальни, кафе, лаундж зоны. ' \
|
|
||||||
'Очень удачное решение для обеденных и гостинных комнат.<br>'.format(
|
|
||||||
product_data_Dict['product_type']['name_plural'].lower(),
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val < 4601:
|
|
||||||
temp_txt = 'Модель обладает нейтральным цветом свечения, который прекрасно подходит и как для жилых помещений и комнат, ' \
|
|
||||||
'так и для рабочих зон (офисов, кабинетов, производств) . ' \
|
|
||||||
'Данный свет стимулирует к работе не вызывая перенапряжения глаз и не искажая цветопередачу. ' \
|
|
||||||
'Универсальное и наиболее распространенное решение.<br>'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val < 7001:
|
|
||||||
temp_txt = 'Цветовая температура {0}К - наиболее оптимально использование в помещениях промышленного назначения, ' \
|
|
||||||
'административных зданиях, на производствах, складах, гаражах, паркингах. ' \
|
|
||||||
'Однако могут применяться и в интерьере для создания акцентов в дизайне, ' \
|
|
||||||
'либо если предпочтения потребителя отданы в пользу белого света. <br>'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
else:
|
|
||||||
temp_txt = 'От показателя цветовой температуры зависит то, как Вы будут воспринимать предметы и другие объекты освещенные устройством. ' \
|
|
||||||
'С помощью цветовой температуры можно сделать более приятным отдых и улучшить эффективность работы. ' \
|
|
||||||
'Отниситесь внимательно к выбору устройства по этому параметру.<br>'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# -------
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
if property['property']['name'] == 'Тип монтажа':
|
|
||||||
val = property['property_value']
|
|
||||||
|
|
||||||
if val == 'встраиваемый':
|
|
||||||
install_txt = 'Устройство устанавливается в предварительно вырезанное в поверхности отверстие. ' \
|
|
||||||
'Этот вариант монтажа используется для подвесных и натяжных потолков, а так же для фальш-стен и ниш.'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val == 'накладной':
|
|
||||||
install_txt = 'Способ крепления - накладной. Значит эта модель может быть закреплена на любую ровную поверхность.'.format(
|
|
||||||
str(val),
|
|
||||||
)
|
|
||||||
|
|
||||||
elif val == 'встраиваемый/накладной':
|
|
||||||
install_txt = '{0} обладает возможностью монтажа как в отверстия на поверхности плоскостей, так и на любую ровную поверхность.'.format(
|
|
||||||
product_data_Dict['article'],
|
|
||||||
)
|
|
||||||
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if 'height_visible_part' in product_data_Dict and product_data_Dict['height_visible_part']:
|
|
||||||
install_txt = install_txt + ' Высота видимой части устройства после монтажа составит {0}мм.<br>'.format(
|
|
||||||
str(round(product_data_Dict['height_visible_part']))
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
install_txt = install_txt + '<br>'
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
product_data_Dict['seo_text'] = '{0}{1}{2}{3}{4}{5}'.format(
|
|
||||||
diametr_txt,
|
|
||||||
power_txt,
|
|
||||||
lm_txt,
|
|
||||||
ip_txt,
|
|
||||||
temp_txt,
|
|
||||||
install_txt
|
|
||||||
)
|
|
||||||
|
|
||||||
return product_data_Dict
|
|
||||||
@@ -80,17 +80,31 @@ admin.site.register(Block,Admin_Block)
|
|||||||
|
|
||||||
class Admin_Option(Admin_BaseModel):
|
class Admin_Option(Admin_BaseModel):
|
||||||
|
|
||||||
def get_fieldsets(self, request, obj=None):
|
# def get_fieldsets(self, request, obj=None):
|
||||||
fieldsets = super(type(self), self).get_fieldsets(request, obj)
|
# fieldsets = super(type(self), self).get_fieldsets(request, obj)
|
||||||
fieldsets.insert(
|
# fieldsets.insert(
|
||||||
1, ('Контент', {
|
# 1, ('Контент', {
|
||||||
|
# 'classes': ['wide'],
|
||||||
|
# 'fields': (
|
||||||
|
# 'opt_type', 'prefix', 'value', 'picture'
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
# })
|
||||||
|
# )
|
||||||
|
# return fieldsets
|
||||||
|
|
||||||
|
|
||||||
|
fieldsets = [
|
||||||
|
('Контент', {
|
||||||
'classes': ['wide'],
|
'classes': ['wide'],
|
||||||
'fields': (
|
'fields': (
|
||||||
'opt_type', 'prefix', 'value', 'picture'
|
'name', 'opt_type', 'prefix', 'value', 'picture'
|
||||||
)
|
)
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
|
||||||
})
|
list_display = ['image_thumb', 'opt_type', 'name', 'prefix', 'value']
|
||||||
)
|
list_editable = ['value', 'prefix']
|
||||||
return fieldsets
|
list_filter = ['opt_type']
|
||||||
|
|
||||||
admin.site.register(Option,Admin_Option)
|
admin.site.register(Option,Admin_Option)
|
||||||
|
|||||||
@@ -1,7 +1,49 @@
|
|||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
def init():
|
|
||||||
|
required_options_Dict = {
|
||||||
|
'Адрес почтового сервера': {
|
||||||
|
'name': 'Адрес почтового сервера',
|
||||||
|
'opt_type': 'mail_server_url',
|
||||||
|
},
|
||||||
|
'SMTP порт почтового сервера': {
|
||||||
|
'name': 'SMTP порт почтового сервера',
|
||||||
|
'opt_type': 'mail_server_smtp_port',
|
||||||
|
},
|
||||||
|
'email для отправки писем с сайта': {
|
||||||
|
'name': 'email для отправки писем с сайта',
|
||||||
|
'opt_type': 'sender_mail_login',
|
||||||
|
},
|
||||||
|
'Пароль для отправки писем с сайта': {
|
||||||
|
'name': 'пароль для отправки писем с сайта',
|
||||||
|
'opt_type': 'sender_mail_password',
|
||||||
|
},
|
||||||
|
'Название проекта': {
|
||||||
|
'name': 'Название проекта',
|
||||||
|
'opt_type': 'project_name',
|
||||||
|
'value': 'TWB'
|
||||||
|
},
|
||||||
|
'Адрес сайта': {
|
||||||
|
'name': 'Адрес сайта',
|
||||||
|
'opt_type': 'domain',
|
||||||
|
},
|
||||||
|
'email техподдержки': {
|
||||||
|
'name': 'email техподдержки',
|
||||||
|
'opt_type': 'support_email',
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
def init_options():
|
||||||
options = Option.objects.all()
|
options = Option.objects.all()
|
||||||
option_names = options.values_list('name', flat=True)
|
option_names = options.values_list('name', flat=True)
|
||||||
#
|
|
||||||
# if not 'mail_server_url':
|
opts_for_create = []
|
||||||
|
for name, data_Dict in required_options_Dict.items():
|
||||||
|
if not name in option_names:
|
||||||
|
opt = Option(**data_Dict)
|
||||||
|
opts_for_create.append(opt)
|
||||||
|
|
||||||
|
Option.objects.bulk_create(opts_for_create)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ def test_code(request):
|
|||||||
def MainPage(request):
|
def MainPage(request):
|
||||||
from RoutesApp.forms import RouteForm
|
from RoutesApp.forms import RouteForm
|
||||||
|
|
||||||
|
from .init_options import init_options
|
||||||
|
init_options()
|
||||||
|
|
||||||
|
|
||||||
print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}')
|
print(f'LOCALE_PATHS = {str(settings.LOCALE_PATHS)}')
|
||||||
|
|
||||||
page = StaticPage.objects.get(url='main')
|
page = StaticPage.objects.get(url='main')
|
||||||
|
|||||||
Reference in New Issue
Block a user