передергивает touch-reload при изменении кеш-шаблона

This commit is contained in:
2023-01-14 03:49:55 +03:00
parent 3cc4ae39f7
commit c338a17dd8
2 changed files with 28 additions and 6 deletions

View File

@@ -3,6 +3,8 @@ __author__ = 'Sergei Erjemin'
from PIL import Image, ImageDraw from PIL import Image, ImageDraw
from oknardia.settings import * from oknardia.settings import *
import django.utils.dateformat
import django.utils.timezone
import os import os
import math import math
import re import re
@@ -140,6 +142,7 @@ def get_flaps_for_big_pictures(query_set) -> dict:
else: else:
img_file_name += u"-" # добавляем символ отдельное окно (не рядом с дверью) img_file_name += u"-" # добавляем символ отдельное окно (не рядом с дверью)
# маскируем символы схемы открывания, которые не допустимы в названии файлов # маскируем символы схемы открывания, которые не допустимы в названии файлов
# print(img_file_name)
img_file_name += i.sFlapConfig img_file_name += i.sFlapConfig
img_file_name = img_file_name.replace(">", "G") img_file_name = img_file_name.replace(">", "G")
img_file_name = img_file_name.replace("<", "L") img_file_name = img_file_name.replace("<", "L")
@@ -147,11 +150,12 @@ def get_flaps_for_big_pictures(query_set) -> dict:
img_file_name = img_file_name.replace("]", ")") img_file_name = img_file_name.replace("]", ")")
img_file_name = img_file_name.replace("|", "I") img_file_name = img_file_name.replace("|", "I")
img_file_name = f"{PATH_FOR_BIGIMGFLAPCONFIG}/{img_file_name}.png" img_file_name = f"{PATH_FOR_BIGIMGFLAPCONFIG}/{img_file_name}.png"
# print(img_file_name)
# проверяем, есть ли файл с нужной картинкой схемам открывания? # проверяем, есть ли файл с нужной картинкой схемам открывания?
if not os.path.isfile(f"{STATIC_BASE_PATH}/{PATH_FOR_IMG}/{img_file_name}"): if not os.path.isfile(f"{STATIC_BASE_PATH}/{PATH_FOR_IMG}/{img_file_name}"):
# картинки нет, вызываем функцию для ее создания # картинки нет, вызываем функцию для ее создания
make_big_img_win_flap(f"{STATIC_BASE_PATH}/{PATH_FOR_IMG}/{img_file_name}", i.iWinWidth, i.iWinHight, make_big_img_win_flap(f"{STATIC_BASE_PATH}/{PATH_FOR_IMG}/{img_file_name}", i.iWinWidth,
i.bIsDoor, i.sFlapConfig, mount_max_h, mount_bulk, door_h) i.iWinHight, i.bIsDoor, i.sFlapConfig, mount_max_h, mount_bulk, door_h)
# чтобы получить разноцветные маркеры меток количества проемов # чтобы получить разноцветные маркеры меток количества проемов
# получаем последовательность тип: AB, CD, E, FG, H # получаем последовательность тип: AB, CD, E, FG, H
q_local = "" q_local = ""
@@ -176,8 +180,8 @@ def get_flaps_for_big_pictures(query_set) -> dict:
return result return result
def make_big_img_win_flap(img_file_name_with_path: str, width: float, height: float, is_door: bool, def make_big_img_win_flap(img_file_name_with_path: str, width: int, height: int, is_door: bool,
flap_config: str, height_max: float, height_mount_bulk: float, height_door: int) -> None: flap_config: str, height_max: int, height_mount_bulk: int, height_door: int) -> None:
""" """
Функция создает png-картинку схемы открывания окна или двери Функция создает png-картинку схемы открывания окна или двери
:param img_file_name_with_path: str -- полное имя файла картинки :param img_file_name_with_path: str -- полное имя файла картинки
@@ -190,9 +194,14 @@ def make_big_img_win_flap(img_file_name_with_path: str, width: float, height: fl
:param height_door: int -- высота дверного проема :param height_door: int -- высота дверного проема
:return: None :return: None
""" """
# width = int(width)
# height = int(height)
# height_max = int(height_max)
# height_mount_bulk = int(height_mount_bulk)
# height_door = int(height_door)
# создаем картинку с нужными размерами # создаем картинку с нужными размерами
img = Image.new("RGBA", (int(width * PICT_H / height_max), PICT_H), (255, 255, 255, 0)) img = Image.new("RGBA", (int(width * PICT_H / height_max), PICT_H), (255, 255, 255, 0))
# print(img_file_name_with_path) print(img_file_name_with_path)
# находим крайние точки периметра (если окно -- выравнено вверх; если дверь -- вниз) # находим крайние точки периметра (если окно -- выравнено вверх; если дверь -- вниз)
top = 0 top = 0
left = 0 left = 0
@@ -575,3 +584,13 @@ def sum_through(string_w_slash: str) -> int:
except ValueError: except ValueError:
pass pass
return sum_result return sum_result
def touch_reload_wsgi(s: str = ''):
""" Функция перезагружает WSGI-сервер.
:return: None
"""
with open(TOUCH_RELOAD, 'a', encoding="utf-8") as f:
f.write(f'\nreload wsgi by cash-template {s}'
f' {django.utils.dateformat.format(django.utils.timezone.now(), "Y-m-d H:i:s")}')

View File

@@ -7,7 +7,8 @@ from django.utils import timezone
from oknardia.settings import * from oknardia.settings import *
from oknardia.models import PVCprofiles, Seria_Info, Win_MountDim, Building_Info, MerchantBrand from oknardia.models import PVCprofiles, Seria_Info, Win_MountDim, Building_Info, MerchantBrand
from web.report1 import get_last_all_user_visit_list, get_last_user_visit_cookies, get_last_user_visit_list from web.report1 import get_last_all_user_visit_list, get_last_user_visit_cookies, get_last_user_visit_list
from web.add_func import normalize, get_rating_set_for_stars, get_flaps_for_big_pictures, get_flaps_for_mini_pictures from web.add_func import normalize, get_rating_set_for_stars, get_flaps_for_big_pictures,\
get_flaps_for_mini_pictures, touch_reload_wsgi
import django.utils.dateformat import django.utils.dateformat
import time import time
import json import json
@@ -489,6 +490,7 @@ def catalog_seria_info(request: HttpRequest, seria_name_translit: None, seria_id
light_template_w_path = f"{TEMPLATES[0]['DIRS'][0]}/{light_template}" light_template_w_path = f"{TEMPLATES[0]['DIRS'][0]}/{light_template}"
# print(f"{TEMPLATES[0]['DIRS'][0]}/{light_template}") # print(f"{TEMPLATES[0]['DIRS'][0]}/{light_template}")
# print(light_template_w_path) # print(light_template_w_path)
print(light_template_w_path)
if os.path.isfile(light_template_w_path): if os.path.isfile(light_template_w_path):
is_hard_template = False is_hard_template = False
else: else:
@@ -614,6 +616,7 @@ def catalog_seria_info(request: HttpRequest, seria_name_translit: None, seria_id
# file.write(AA.encode('utf-8')) # file.write(AA.encode('utf-8'))
file.write(string_prerender) file.write(string_prerender)
file.close() file.close()
touch_reload_wsgi(light_template_w_path)
else: else:
seria_name = Seria_Info.objects.get(id=seria_id).sName seria_name = Seria_Info.objects.get(id=seria_id).sName
to_template.update({'THIS_SERIA_NAME': seria_name}) to_template.update({'THIS_SERIA_NAME': seria_name})