fix(seo): نمایش متراژ و مشخصات پروژه‌ها در فهرست /projects + پیوند به صفحهٔ جزئیات

دستیار AI گفت «/projects باز نمی‌شود» و «برای الیسیان و زنیت متراژ پیدا نکردم» — درست بود:
فهرست پروژه‌ها فقط نام/موقعیت/سال را می‌داد و زیربنا و طبقات فقط در صفحهٔ جزئیات بود.
اکنون هر ردیف فهرست شامل زمین/زیربنا/طبقات/واحد است و نام پروژه به صفحهٔ جزئیات
پیوند دارد، تا خزنده بتواند مشخصات کامل را دنبال کند.
This commit is contained in:
aramesh-site deploy
2026-10-09 23:47:37 +00:00
parent 47f1505a2e
commit ef5da904e3
+24 -2
View File
@@ -827,8 +827,30 @@ def _site_content_html(db: Session, page_key: str, lang: str) -> str:
title = en(p.title, p.title_en)
loc = en(p.location, p.location_en)
year = en(p.year, p.year_en)
meta_bits = "، ".join(x for x in (loc, year) if x)
items += f"<li>{esc(title)}" + (f" — {esc(meta_bits)}" if meta_bits else "") + "</li>"
# متراژ و طبقات هم در فهرست می‌آید — بدون این، دستیارهای AI
# نتیجه می‌گیرند «برای پروژه‌ها متراژ ثبت نشده» (فقط صفحهٔ جزئیات داشت)
def num(fa_v: object, en_v: object) -> str:
return str(en_v).strip() if (lang == "en" and str(en_v or "").strip()) else str(fa_v or "").strip()
specs = []
if num(p.land_area, getattr(p, "land_area_en", "")):
specs.append(("Land" if lang == "en" else "زمین") + f" {num(p.land_area, getattr(p, 'land_area_en', ''))} m²")
if num(p.area, getattr(p, "area_en", "")):
specs.append(("Built" if lang == "en" else "زیربنا") + f" {num(p.area, getattr(p, 'area_en', ''))} m²")
if num(p.floors, getattr(p, "floors_en", "")):
specs.append(("Floors" if lang == "en" else "طبقات") + f" {num(p.floors, getattr(p, 'floors_en', ''))}")
if num(p.units_residential, getattr(p, "units_residential_en", "")):
specs.append(("Units" if lang == "en" else "واحد") + f" {num(p.units_residential, getattr(p, 'units_residential_en', ''))}")
bits = "، ".join(x for x in (loc, year) if x)
tail = "؛ ".join(specs)
# نام پروژه پیوند به صفحهٔ جزئیات — خزنده می‌تواند مشخصات کامل را دنبال کند
href = f"/en/projects/{p.slug}" if lang == "en" else f"/projects/{p.slug}"
line = f'<a href="{esc(_absolute(href))}">{esc(title)}</a>'
if bits:
line += f" — {esc(bits)}"
if tail:
line += f" [{esc(tail)}]"
items += f"<li>{line}</li>"
parts.append(f"<h2>{'Our Projects' if lang == 'en' else 'پروژه‌های ما'}</h2><ul>{items}</ul>")
if page_key in ("home", "services"):