Populate rule rows for P2 subsections 4.1.5/6/7 in TZ audit spec
This commit is contained in:
@@ -128,7 +128,7 @@ _Updated after each plan merges. Plan task: after every merge, append a row to t
|
||||
|
||||
| Metric | Count |
|
||||
|---|---|
|
||||
| Total rules extracted | 243 (4.1.1: 27, 4.1.2: 42, 4.1.3: 22, 4.1.4: 26, 4.1.5: 7, 4.1.6: 6, 4.1.7: 7, 4.1.8: 19, 4.1.9: 8 skeleton, 4.1.10: 5, 4.1.11: 6, 4.1.12: 3, 4.1.13: 5 skeleton, 4.1.14: 5 skeleton, 4.1.15: 11 skeleton, 4.1.16: 8 skeleton, 4.1.17: 4, 4.1.18: 3, 4.1.19: 6, 4.1.20: 4, 4.1.21: 5, 4.1.22: 4, 4.1.23: 3, 4.1.24: 7 skeleton) |
|
||||
| Total rules extracted | 283 (4.1.1: 27, 4.1.2: 42, 4.1.3: 22, 4.1.4: 26, 4.1.5: 30, 4.1.6: 14, 4.1.7: 16, 4.1.8: 19, 4.1.9: 8 skeleton, 4.1.10: 5, 4.1.11: 6, 4.1.12: 3, 4.1.13: 5 skeleton, 4.1.14: 5 skeleton, 4.1.15: 11 skeleton, 4.1.16: 8 skeleton, 4.1.17: 4, 4.1.18: 3, 4.1.19: 6, 4.1.20: 4, 4.1.21: 5, 4.1.22: 4, 4.1.23: 3, 4.1.24: 7 skeleton) |
|
||||
| Implemented | 9 (4.1.2-R3 prior; 4.1.4-R2 prior `826a583`; 4.1.5-R1/R2/R3; 4.1.6-R1/R3; 4.1.7-R1/R3; 4.1.14-R5; 4.1.17-R1/R2; 4.1.21-R1/R2 — 12 if counting all pre-P1 `Implemented` rows across non-P1 sections) |
|
||||
| Partial | 2 (4.1.2-R4 flight-number padding not unit-tested; 4.1.4-R12 / R13 departure/arrival leaf city-pair deferred — see C3) |
|
||||
| Missing | 0 |
|
||||
@@ -318,54 +318,98 @@ All pages in the section must have breadcrumbs; each crumb is a link except the
|
||||
---
|
||||
|
||||
# 4.1.5 — Популярные разделы Онлайн-Табло и Расписания
|
||||
*"Popular sections" — curated popular-request tiles on start pages.*
|
||||
*"Popular sections" — aggregated Top-4 popular-request tiles on Online-Board and Schedule start pages.*
|
||||
|
||||
On Online-Board and Schedule start pages, a "Popular" panel lists curated search tiles. Clicking a tile hydrates filter + navigates to result.
|
||||
Backend stores every user search (Board + Schedule) with a timestamp. Three aggregation windows (1-min → 30-min → 1-day) produce a ranked Top-4. Tiles appear on Online-Board and Schedule start pages. Each tile click pre-fills the filter for its search type without auto-executing the search.
|
||||
|
||||
| # | Rule | TZ cite | Viewport | Current impl | Status | Action | Plan |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 4.1.5-R1 | Popular panel visible on Online-Board start page | 4.1.5 | all | `src/features/popular-requests/*` | Implemented | — | P2 |
|
||||
| 4.1.5-R2 | Popular panel visible on Schedule start page | 4.1.5 | all | `src/features/popular-requests/*` | Implemented | — | P2 |
|
||||
| 4.1.5-R3 | Tile click hydrates filter + navigates per URL rules | 4.1.5 | all | `PopularRequestItem.tsx` + routing | Implemented | Verify URL matches §4.1.2 post-hydration. | P2 |
|
||||
| 4.1.5-R4 | Tile content (cities/dates/flight numbers) sourced from backend/config | 4.1.5 | all | `RequestInfo.tsx` | TBD | Verify data source matches TZ. | P2 |
|
||||
| 4.1.5-R5 | Translation for all tile labels across 9 languages | 4.1.5 | all | `src/i18n/*` | TBD | Verify. | P2 |
|
||||
| 4.1.5-R6 | Popular panel NOT shown on Flight Map | 4.1.5 | all | — | TBD | Verify absence. | P2 |
|
||||
| 4.1.5-R7 | Curated list content source, refresh cadence, and fallback when source empty | 4.1.5 | all | — | TBD | Populate from 4.1.5 text. | P2 |
|
||||
| 4.1.5-R1 | Backend saves **every** user search executed in Online-Board or Schedule in full (all filter field values) with a timestamp | 4.1.5 ¶1 | all | `src/features/popular-requests/*` | Implemented | Verify all search types produce server-side save event. | P2 |
|
||||
| 4.1.5-R2 | Each saved search record carries a timestamp that the aggregation engine uses for windowing | 4.1.5 ¶1 | all | — | TBD | Verify timestamp field presence in API contract. | P2 |
|
||||
| 4.1.5-R3 | Records may be archived or deleted after **1 month** of storage | 4.1.5 ¶2 | all | — | TBD | Confirm 1-month TTL with backend. | P2 |
|
||||
| 4.1.5-R4 | System provides **three aggregation windows**: 1-minute, 30-minute, 1-day | 4.1.5 ¶3 | all | — | TBD | Verify aggregation endpoint exposes all three windows. | P2 |
|
||||
| 4.1.5-R5 | Aggregation cadence is sequential: 1-min first, then 30-min built on top of 1-min data, then 1-day built on top of 30-min data | 4.1.5 ¶3 | all | — | TBD | Confirm cascade with backend. | P2 |
|
||||
| 4.1.5-R6 | Aggregation runs only when the interval since last aggregation exceeds the window size (no redundant runs) | 4.1.5 ¶4 | all | — | TBD | Backend concern; confirm and document. | P2 |
|
||||
| 4.1.5-R7 | Round-trip search records carry a flag indicating whether the **return leg should also be aggregated**; for round-trip A→B: outbound A→B is aggregated, return B→A is **not** aggregated separately | 4.1.5 ¶5 | all | — | TBD | Verify round-trip flag handling in request payload sent to backend. | P2 |
|
||||
| 4.1.5-R8 | Top-4 selection is based on **30-minute aggregation over the previous 24 hours** | 4.1.5 ¶6 | all | — | TBD | Verify API uses correct window for Top-4 endpoint. | P2 |
|
||||
| 4.1.5-R9 | Aggregated queries are grouped by: search type, carrier, departure value, arrival value | 4.1.5 ¶7 | all | — | TBD | Verify grouping dimensions in API response. | P2 |
|
||||
| 4.1.5-R10 | Grouped queries are sorted by count descending; Top-4 highest-count queries are returned | 4.1.5 ¶8 | all | — | TBD | Verify sort order and take-4 logic. | P2 |
|
||||
| 4.1.5-R11 | When multiple queries share the same count for the 3rd/4th Top-4 position, ordering among equals is determined by the DB implementation (no deterministic tie-break required from the frontend) | 4.1.5 ¶9 (example 2) | all | — | TBD | Ensure UI handles any ordering returned. | P2 |
|
||||
| 4.1.5-R12 | Client-side cache for the Top-4 response has a TTL of **10 minutes** | 4.1.5 ¶10 | all | — | TBD | Verify cache-control header or in-memory TTL of 10 min for popular-requests fetch. | P2 |
|
||||
| 4.1.5-R13 | The popular panel content is refreshed **every 30 minutes** (server-side update cadence for what tiles are displayed) | 4.1.5 ¶11 | all | — | TBD | Verify 30-min refresh trigger; confirm client re-fetches after cache expiry. | P2 |
|
||||
| 4.1.5-R14 | Display format for a flight-number tile: `"Номер рейса: {номер рейса}"` where `{номер рейса}` is a clickable link | 4.1.5 ¶11 | all | `RequestInfo.tsx` | TBD | Verify label format string matches exactly. | P2 |
|
||||
| 4.1.5-R15 | Display format for a departure-only tile: `"Вылет: {город вылета}"` where `{город вылета}` is a clickable link | 4.1.5 ¶11 | all | `RequestInfo.tsx` | TBD | Verify label format string matches exactly. | P2 |
|
||||
| 4.1.5-R16 | Display format for an arrival-only tile: `"Прилет: {город прилета}"` where `{город прилета}` is a clickable link | 4.1.5 ¶11 | all | `RequestInfo.tsx` | TBD | Verify label format string matches exactly. | P2 |
|
||||
| 4.1.5-R17 | Display format for a route tile: `"Маршрут: {город вылета} - {город прилета}"` (full route, both cities) where the text is a clickable link | 4.1.5 ¶11 | all | `RequestInfo.tsx` | TBD | Verify label format string matches exactly (dash with spaces). | P2 |
|
||||
| 4.1.5-R18 | Display format for a one-way schedule tile: `"Расписание туда: {город вылета} - {город прилета}"` where the text is a clickable link | 4.1.5 ¶11 | all | `RequestInfo.tsx` | TBD | Verify label format string matches exactly. | P2 |
|
||||
| 4.1.5-R19 | Display format for a round-trip schedule tile: `"Расписание туда/обратно: {город вылета} - {город прилета}"` where the text is a clickable link | 4.1.5 ¶11 | all | `RequestInfo.tsx` | TBD | Verify label format string matches exactly. | P2 |
|
||||
| 4.1.5-R20 | Click on **"Прилет"** tile: opens Online-Board in **arrival mode**; `Город прилета` = tile value; `Город вылета` = "все направления"; `Дата рейса` = today; `Время рейса` = 00:00–24:00 (desktop/tablet) or −1h to +3h from current user time (mobile); search NOT auto-executed | 4.1.5 ¶12 | all | `PopularRequestItem.tsx` | TBD | Verify prefill values for all fields including mobile time window. | P2 |
|
||||
| 4.1.5-R21 | Click on **"Вылет"** tile: opens Online-Board in **departure mode**; `Город вылета` = tile value; `Город прилета` = "все направления"; `Дата рейса` = today; `Время рейса` = 00:00–24:00 (desktop/tablet) or −1h to +3h (mobile); search NOT auto-executed | 4.1.5 ¶13 | all | `PopularRequestItem.tsx` | TBD | Verify prefill values. | P2 |
|
||||
| 4.1.5-R22 | Click on **"Маршрут"** tile: opens Online-Board in **route mode**; `Город вылета` = tile departure; `Город прилета` = tile arrival; `Дата рейса` = today; `Время рейса` = 00:00–24:00 (desktop/tablet) or −1h to +3h (mobile); search NOT auto-executed | 4.1.5 ¶14 | all | `PopularRequestItem.tsx` | TBD | Verify prefill values. | P2 |
|
||||
| 4.1.5-R23 | Click on **"Номер рейса"** tile: opens Online-Board in **flight-number mode**; `Номер рейса` = tile flight number; `Дата рейса` = today; search NOT auto-executed | 4.1.5 ¶15 | all | `PopularRequestItem.tsx` | TBD | Verify prefill values; no time field in this mode. | P2 |
|
||||
| 4.1.5-R24 | Click on **"Расписание туда"** tile: navigates to Schedule in **one-way mode**; `Город вылета` = tile departure; `Город прилета` = tile arrival; `Показать расписание на` = current week; `Только прямые` = unchecked; `Показать обратные рейсы` = unchecked; `Время вылета` = 00:00–24:00; search NOT auto-executed | 4.1.5 ¶16 | all | `PopularRequestItem.tsx` | TBD | Verify all six filter fields. | P2 |
|
||||
| 4.1.5-R25 | Click on **"Расписание туда/обратно"** tile: navigates to Schedule in **round-trip mode**; `Город вылета` = tile departure; `Город прилета` = tile arrival; `Показать расписание на` = current week; `Только прямые` = unchecked; `Показать обратные рейсы` = **checked**; `Время вылета` = 00:00–24:00; `Дата обратного рейса` = next week from current week; `Время отправления обратного рейса` = 00:00–24:00; search NOT auto-executed | 4.1.5 ¶17 | all | `PopularRequestItem.tsx` | TBD | Verify all eight filter fields including return-trip date default. | P2 |
|
||||
| 4.1.5-R26 | Popular panel is visible on **Online-Board start page** | 4.1.5 | all | `src/features/popular-requests/*` | Implemented | — | P2 |
|
||||
| 4.1.5-R27 | Popular panel is visible on **Schedule start page** | 4.1.5 | all | `src/features/popular-requests/*` | Implemented | — | P2 |
|
||||
| 4.1.5-R28 | Data from **Flight Map** is **NOT** collected for popular sections | 4.1.5 ¶18 | all | — | TBD | Verify no Flight Map search events are sent to popular-requests API. | P2 |
|
||||
| 4.1.5-R29 | Translation for all tile label formats across 9 languages | 4.1.5 | all | `src/i18n/*` | TBD | Verify i18n key coverage for all six label formats. | P2 |
|
||||
| 4.1.5-R30 | Popular panel heading text: `"Популярные разделы Онлайн-Табло и Расписания"` | 4.1.5 ¶11 (Рисунок 6) | all | — | TBD | Verify heading text matches. | P2 |
|
||||
|
||||
**Remaining rules to populate at P2 kickoff.**
|
||||
**Rules in this subsection: 30.**
|
||||
|
||||
---
|
||||
|
||||
# 4.1.6 — Стартовая страница «Онлайн-Табло»
|
||||
*Online-Board start page composition.*
|
||||
*Online-Board start page composition (TZ Table 8).*
|
||||
|
||||
Composition: filter (collapsed or expanded per first-entry state), popular panel, SEO text block, footer links. No auto-search. Accepts deep-link URLs per §4.1.2.
|
||||
The start page is shown when the user's location cannot be determined. It has a two-column layout on desktop/tablet (filter left, content + popular panel right) and a stacked single-column layout on mobile. The right-hand content area includes an info section with four blocks, followed by the popular panel. No auto-search is executed.
|
||||
|
||||
| # | Rule | TZ cite | Viewport | Current impl | Status | Action | Plan |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 4.1.6-R1 | Start page renders filter (default state per 4.1.1) + popular panel | 4.1.6 | all | `OnlineBoardStartPage.tsx` | Implemented | Verify composition. | P2 |
|
||||
| 4.1.6-R2 | Start page shows subsection tooltip on `Онлайн-Табло` hover: `"Информация о фактическом выполнении рейсов в ближайшие дни"` | 4.1 ¶ intro (tooltips) | desktop, tablet | — | TBD | Add tooltip. | P2 |
|
||||
| 4.1.6-R3 | Start page does NOT auto-execute search | 4.1.6 | all | — | Implemented | — | P2 |
|
||||
| 4.1.6-R4 | SEO meta tags + JSON-LD microdata present (see §4.1.19) | 4.1.6 | all | `src/ui/seo/*` | TBD | Populate microdata. | P6 |
|
||||
| 4.1.6-R5 | Mobile-specific start-page layout (filter takes full width, popular panel stacks) | 4.1.6 + Appendix 6 | mobile | — | TBD | Verify against Appendix 6. | P2 |
|
||||
| 4.1.6-R6 | Tablet-specific start-page layout | 4.1.6 + Appendix 7 | tablet | — | TBD | Verify against Appendix 7. | P2 |
|
||||
| 4.1.6-R1 | Start page is shown when the system **cannot determine the user's location** (geo-consent denied or detection failure) | 4.1.6 ¶1 | all | `OnlineBoardStartPage.tsx` | Implemented | Verify trigger condition. | P2 |
|
||||
| 4.1.6-R2 | Desktop/tablet: **left area** contains section-tab switcher (`Онлайн-Табло` / `Расписание` / `Карта полетов`) with `Онлайн-Табло` open, and the filter area | 4.1.6 Table 8 (desktop row) | desktop, tablet | `OnlineBoardStartPage.tsx` | TBD | Verify two-column layout against Appendix 4/7 mockups. | P2 |
|
||||
| 4.1.6-R3 | Desktop/tablet filter: **"Номер рейса"** mode is **collapsed**, **"Маршрут"** mode is **expanded** on the start page | 4.1.6 Table 8 (desktop row) | desktop, tablet | `OnlineBoardFilter.tsx` | TBD | Verify collapsed/expanded default states on start page. | P2 |
|
||||
| 4.1.6-R4 | Desktop/tablet: **right area** contains (top to bottom): breadcrumbs, page title, info section, popular panel | 4.1.6 Table 8 (desktop row) | desktop, tablet | — | TBD | Verify right-column order against Table 8. | P2 |
|
||||
| 4.1.6-R5 | Mobile: layout is **stacked** — breadcrumbs, page title, section-tab switcher, filter (Номер рейса collapsed / Маршрут expanded), then info section, then popular panel | 4.1.6 Table 8 (mobile row) | mobile | — | TBD | Verify stacked order against Appendix 6 mockups. | P2 |
|
||||
| 4.1.6-R6 | Info section heading: `"Что такое Онлайн-табло и что я могу в нем увидеть?"` | 4.1.6 Table 8 (right area) | all | — | TBD | Verify heading string in component. | P2 |
|
||||
| 4.1.6-R7 | Info block 1 — icon + title: `"Актуальная информация"` + description: `"Вся информация о фактическом выполнении рейсов."` | 4.1.6 Table 8 (right area) | all | — | TBD | Verify block 1 icon, title, description. | P2 |
|
||||
| 4.1.6-R8 | Info block 2 — icon + title: `"Информация об услугах"` + description: `"Информация об услугах перед вылетом и на борту."` | 4.1.6 Table 8 (right area) | all | — | TBD | Verify block 2 icon, title, description. | P2 |
|
||||
| 4.1.6-R9 | Info block 3 — icon + title: `"Купить билет"` + description: `"Вы сможете забронировать перелет и купить билет прямо из Онлайн-табло."` | 4.1.6 Table 8 (right area) | all | — | TBD | Verify block 3 icon, title, description. | P2 |
|
||||
| 4.1.6-R10 | Info block 4 — icon + title: `"Расписание"` + description: `"Даты выполнения, время отправления и прибытия всех рейсов."` | 4.1.6 Table 8 (right area) | all | — | TBD | Verify block 4 icon, title, description. | P2 |
|
||||
| 4.1.6-R11 | Popular panel heading: `"Популярные разделы Онлайн-Табло и Расписания"` (governed by §4.1.5) | 4.1.6 Table 8 (right area, second heading) | all | `src/features/popular-requests/*` | TBD | Verify heading text. | P2 |
|
||||
| 4.1.6-R12 | Start page does **NOT** auto-execute search | 4.1.6 ¶1 | all | — | Implemented | — | P2 |
|
||||
| 4.1.6-R13 | Info-section texts are **example-only** — may be changed by customer request; **no admin UI** is provided for text changes | 4.1.6 ¶3 | all | — | TBD | Document: texts are hardcoded (or i18n keys); no CMS required. | P2 |
|
||||
| 4.1.6-R14 | SEO meta tags + JSON-LD microdata present on start page (see §4.1.19) | 4.1.6 | all | `src/ui/seo/*` | TBD | Populate microdata. | P6 |
|
||||
|
||||
**Rules in this subsection: 14.**
|
||||
|
||||
---
|
||||
|
||||
# 4.1.7 — Стартовая страница «Расписания»
|
||||
*Schedule start page composition.*
|
||||
*Schedule start page composition (TZ Table 9).*
|
||||
|
||||
Same composition as Online-Board start page, but filter defaults per §4.1.1 Schedule rules and subsection tooltip says `"Информация о планируемом выполнении рейсов на ближайший год"`.
|
||||
Shown on the user's **first** open of the Schedule subsection within a session. Same two-column desktop/tablet structure as Online-Board start page, but with two distinct info sections: "Как пользоваться расписанием?" (4 blocks) and "Возможности расписания" (2 blocks). TZ Table 9 does not list a popular panel, but §4.1.5 explicitly states popular tiles appear on Schedule start too — the §4.1.5 rule governs.
|
||||
|
||||
| # | Rule | TZ cite | Viewport | Current impl | Status | Action | Plan |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 4.1.7-R1 | Renders filter (schedule defaults per 4.1.1) + popular panel | 4.1.7 | all | `ScheduleStartPage.tsx` | Implemented | Verify. | P2 |
|
||||
| 4.1.7-R2 | Subsection tooltip text: `"Информация о планируемом выполнении рейсов на ближайший год"` | 4.1 ¶ intro | desktop, tablet | — | TBD | Add tooltip. | P2 |
|
||||
| 4.1.7-R3 | No auto-search | 4.1.7 | all | — | Implemented | — | P2 |
|
||||
| 4.1.7-R4 | SEO meta + JSON-LD (see §4.1.19) | 4.1.7 | all | — | TBD | Populate. | P6 |
|
||||
| 4.1.7-R5 | Mobile-specific layout per Appendix 6 | 4.1.7 | mobile | — | TBD | Verify. | P2 |
|
||||
| 4.1.7-R6 | Tablet-specific layout per Appendix 7 | 4.1.7 | tablet | — | TBD | Verify. | P2 |
|
||||
| 4.1.7-R7 | Flight-Map tooltip: `"Картографический сервис представления информации об маршрутной сети «Аэрофлот»"` (on the tab switcher) | 4.1 ¶ intro | desktop, tablet | — | TBD | Add tooltip. | P2 |
|
||||
| 4.1.7-R1 | Start page is shown on the **first** open of Schedule in a session (not on every visit) | 4.1.7 ¶1 | all | `ScheduleStartPage.tsx` | Implemented | Verify session-first trigger. | P2 |
|
||||
| 4.1.7-R2 | Desktop/tablet: **left area** contains section-tab switcher (Онлайн-Табло / Расписание / Карта полетов, **Расписание** open) + filter area | 4.1.7 Table 9 (desktop row) | desktop, tablet | `ScheduleStartPage.tsx` | TBD | Verify layout against Appendix 4/7 mockups. | P2 |
|
||||
| 4.1.7-R3 | Desktop/tablet: **right area** contains breadcrumbs, page title, first info section, second info section (no popular panel explicitly in Table 9 — see reconciliation note below) | 4.1.7 Table 9 (desktop row) | desktop, tablet | — | TBD | Verify right-column order. | P2 |
|
||||
| 4.1.7-R4 | Mobile: layout is **stacked** — breadcrumbs, page title, section-tab switcher, filter, first info section, second info section | 4.1.7 Table 9 (mobile row) | mobile | — | TBD | Verify stacked order against Appendix 6 mockups. | P2 |
|
||||
| 4.1.7-R5 | First info section heading: `"Как пользоваться расписанием?"` | 4.1.7 Table 9 (right area, first heading) | all | — | TBD | Verify heading string in component. | P2 |
|
||||
| 4.1.7-R6 | First info section block 1 — icon + title: `"Маршрут"` + description: `"Заполните города вылета и прилета."` | 4.1.7 Table 9 | all | — | TBD | Verify block 1 icon, title, description. | P2 |
|
||||
| 4.1.7-R7 | First info section block 2 — icon + title: `"Дата вылета"` + description: `"Дата отправления, по умолчанию это текущая неделя."` | 4.1.7 Table 9 | all | — | TBD | Verify block 2 icon, title, description. | P2 |
|
||||
| 4.1.7-R8 | First info section block 3 — icon + title: `"Время вылета"` + description: `"Если необходимо - уточните время отправления."` | 4.1.7 Table 9 | all | — | TBD | Verify block 3 icon, title, description. | P2 |
|
||||
| 4.1.7-R9 | First info section block 4 — icon + title: `"Обратные рейсы"` + description: `"Вы можете выбрать показ обратных рейсов."` | 4.1.7 Table 9 | all | — | TBD | Verify block 4 icon, title, description. | P2 |
|
||||
| 4.1.7-R10 | Second info section heading: `"Возможности расписания"` | 4.1.7 Table 9 (right area, second heading) | all | — | TBD | Verify heading string in component. | P2 |
|
||||
| 4.1.7-R11 | Second info section block 1 — icon + title: `"Купить билет"` + description: `"Вы сможете забронировать перелет и купить билет прямо из Онлайн-табло."` | 4.1.7 Table 9 | all | — | TBD | Verify block 1 icon, title, description. | P2 |
|
||||
| 4.1.7-R12 | Second info section block 2 — icon + title: `"Расписание"` + description: `"Даты выполнения, время отправления и прибытия всех рейсов."` | 4.1.7 Table 9 | all | — | TBD | Verify block 2 icon, title, description. | P2 |
|
||||
| 4.1.7-R13 | **Spec reconciliation:** Table 9 does not list the popular panel, but §4.1.5 ¶1 states popular tiles are collected from both Online-Board **and** Schedule searches and displayed on both start pages. **§4.1.5 governs: the popular panel IS present on the Schedule start page.** It appears after the two info sections. | 4.1.5 ¶1 + 4.1.7 Table 9 (reconciliation) | all | `src/features/popular-requests/*` | Implemented | Confirm popular panel appears on Schedule start page. | P2 |
|
||||
| 4.1.7-R14 | Start page does **NOT** auto-execute search | 4.1.7 ¶1 | all | — | Implemented | — | P2 |
|
||||
| 4.1.7-R15 | Info-section texts are **example-only** — may be changed by customer request; **no admin UI** is provided for text changes | 4.1.7 ¶2 | all | — | TBD | Document: texts are hardcoded (or i18n keys); no CMS required. | P2 |
|
||||
| 4.1.7-R16 | SEO meta tags + JSON-LD microdata present on start page (see §4.1.19) | 4.1.7 | all | — | TBD | Populate microdata. | P6 |
|
||||
|
||||
**Rules in this subsection: 16.**
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user