diff --git a/oknardia/oknardia/urls.py b/oknardia/oknardia/urls.py index ec030c6..5cfa607 100644 --- a/oknardia/oknardia/urls.py +++ b/oknardia/oknardia/urls.py @@ -67,6 +67,7 @@ urlpatterns = [ # --- --- Каталог серий типового строительства re_path(r'^catalog/seria[/*]$', catalog.catalog_seria), re_path(r'^catalog/seria/(?P[^/]*)/all(?P\d+)[/*]$', catalog.catalog_seria_info), + re_path(r'^seria_[^/]*/all(?P\d+)/\S*$', catalog.report_all_info_seria_redirect), # для старых ссылок # --- --- Каталог стандартных проёмов и схем открывания длч типовых серий строительства re_path(r'^catalog/standard_opening[/*]$', catalog.standard_opening), # --- --- Каталог производителей окон diff --git a/oknardia/web/catalog.py b/oknardia/web/catalog.py index 7c4bbe8..d60be70 100644 --- a/oknardia/web/catalog.py +++ b/oknardia/web/catalog.py @@ -1028,3 +1028,20 @@ def catalog_company_detail(request: HttpRequest, company_id: str, company_name_s 'ticks': float(time.time() - time_start) }) return render(request, "catalog/catalog_company_detail.html", to_template) + + +def report_all_info_seria_redirect(request: HttpRequest, seria_id: str = "12") -> HttpResponse: + """ Переадресация старых URL, т.к. их сколько-то есть (было) во внешних ссылках + + :param request: HttpRequest -- запрос + :param seria_id: str -- id серии типового строительства + :return: + """ + try: + seria_id = int(seria_id) + q_seria = Seria_Info.objects.get(id=seria_id) + if q_seria.id == q_seria.kRoot_id: + return redirect("f/catalog/seria/{pytils.translit.slugify(q_seria.sName)}/all{seria_id}") + except (Seria_Info.DoesNotExist, ValueError): + return redirect("/catalog/seria") + return redirect("/catalog/seria")