BRD Mobile 4.2.3 Мои заказы > Список архивных заказов > Оценить и оставить отзыв

Направление работ: Mobile Код раздела: 4.2.3 Раздел: Мои заказы > Список архивных заказов > Оценить и оставить отзыв Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 21.08.26


1. Назначение

Раздел обеспечивает клиенту мобильного приложения возможность оценить площадку и оставить отзыв после посещения в рамках архивного заказа.

Клиент выставляет оценку, при желании заполняет текстовое поле в рамках заданного ограничения, знакомится с правилами размещения и прикрепляет фотографии через системные средства мобильного устройства. После отправки интерфейс сообщает о передаче отзыва на модерацию либо показывает ошибку отправки.

Доступность оценки по состоянию заказа определяется в Back: 3.2 Процессинг заказов, состав и жизненный цикл отзыва — в Back: 3.4 Отзывы по заказам, а его проверка перед публикацией — в Back: 8.7.2 Отзывы.

2. Ключевые понятия

Экран «Оставить отзыв» — интерфейсный сценарий оценки площадки, ввода отзыва, добавления фотографий и отправки данных на модерацию.

Архивный заказ — завершенный или отмененный заказ, из информации о котором клиент переходит к оценке площадки.

Оценка и отзыв — связанные с заказом оценка площадки, текст и прикрепленные фотографии, которые клиент отправляет на модерацию.

Модерация отзыва — проверка отправленного отзыва перед публикацией; после отправки интерфейс показывает клиенту, что отзыв принят на модерацию.

3. Scope

Входит

S1: Открытие формы отзыва из архивного заказа и просмотр сведений о площадке

S2: Выставление оценки, ввод текста и проверка ограничений формы

S3: Просмотр правил размещения отзывов

S4: Добавление и удаление фотографий через системные средства мобильного устройства

S5: Отправка отзыва и отображение успешного и ошибочного результата

Не входит

4. BR

Указаны в пункте 4 разделов Back: 3.2 Процессинг заказов, Back: 3.4 Отзывы по заказам и Back: 8.7.2 Отзывы. На момент подготовки Front BRD два последних Back-раздела не заполнены; необходимые уточнения зафиксированы в открытых вопросах.

5. Функциональные требования (UC + FR)

FR — functional requirements, что интерфейс должен уметь делать по определенному UC.

IDСценарийФункциональное требованиеBRВесСтатус
S1: FR4.2.3-1Клиент нажимает «Оценить» в информации об архивном заказеИнтерфейс открывает форму «Оставить отзыв» поверх экрана Mobile: 4.2.1 Информация об архивном заказе и передает данные выбранного заказа, если по нему еще не был отправлен отзыв. Клиент может отправить не более одного отзыва по каждому заказу; отзыв по другому заказу на ту же площадку отправляется независимо.1Частично OQ4.2.3-2
S1: FR4.2.3-2Клиент просматривает форму отзываИнтерфейс показывает заголовок «Оставить отзыв», название площадки и партнерской зоны, среднюю оценку площадки, пять звезд рейтинга и количество опубликованных отзывов.1Частично OQ4.2.3-3
S1: FR4.2.3-3Клиент нажимает кнопку возврата в форме отзываИнтерфейс закрывает форму и возвращает клиента к Mobile: 4.2.1 Информация об архивном заказе.1Реализовано OQ4.2.3-8
S2: FR4.2.3-4Клиент выставляет оценкуИнтерфейс позволяет выбрать целую оценку от 1 до 5 звезд и визуально отражает выбранное количество звезд.1Реализовано OQ4.2.3-9
S2: FR4.2.3-5Клиент вводит текст отзываИнтерфейс показывает необязательное поле с подсказкой «Начните писать отзыв», принимает не более 1000 символов и отображает счетчик введенных символов в формате «{текущее количество}/1000».1Частично OQ4.2.3-4
S2: FR4.2.3-6Клиент не выставил оценкуИнтерфейс не позволяет отправить отзыв: кнопка «Сохранить» остается неактивной.1Реализовано OQ4.2.3-9
S2: FR4.2.3-7Клиент выставил оценку и форма соответствует ограничениямИнтерфейс активирует кнопку «Сохранить» и позволяет отправить отзыв независимо от наличия текста.1Реализовано OQ4.2.3-9
S3: FR4.2.3-8Клиент нажимает «Правила размещения отзывов»Интерфейс открывает отдельную панель «Правила размещения отзывов» для ознакомления с условиями публикации до отправки отзыва. Состав текста требует решения по OQ4.2.3-1.1Частично OQ4.2.3-1, OQ4.2.3-5
S3: FR4.2.3-9Клиент нажимает кнопку возврата в правилах размещения отзывовИнтерфейс закрывает правила и возвращает клиента к заполненной форме без сброса выбранной оценки, введенного текста и прикрепленных фотографий.1Реализовано OQ4.2.3-8
S4: FR4.2.3-10Клиент нажимает действие добавления фотографииИнтерфейс передает выбор фотографии стандартному системному сценарию мобильного устройства. При необходимости операционная система показывает стандартный запрос доступа к фотогалерее или камере.1Частично OQ4.2.3-6
S4: FR4.2.3-11Клиент разрешает доступ и выбирает фотографииИнтерфейс прикрепляет выбранные изображения к отзыву, показывает их миниатюры в форме и отображает ограничение «до 5 фото».1Реализовано OQ4.2.3-10
S4: FR4.2.3-12Клиент удаляет прикрепленную фотографиюИнтерфейс удаляет выбранную фотографию из формы и снова позволяет добавить изображение в пределах лимита.1Реализовано OQ4.2.3-10
S4: FR4.2.3-13К отзыву прикреплено 5 фотографийИнтерфейс не позволяет прикрепить шестую фотографию.1Реализовано OQ4.2.3-10
S5: FR4.2.3-14Клиент нажимает активную кнопку «Сохранить»Интерфейс отправляет оценку, прикрепленные фотографии и текст, если он заполнен, для выбранного заказа и показывает результат отправки.1Частично OQ4.2.3-7
S5: FR4.2.3-15Отзыв успешно отправленИнтерфейс показывает подтверждение «Отзыв отправлен на модерацию» и кнопку «Отлично», после чего повторная отправка отзыва по этому же заказу становится недоступна. По нажатию кнопки интерфейс закрывает подтверждение и возвращает клиента в Mobile: 4.2.1 Информация об архивном заказе.1Реализовано OQ4.2.3-11
S5: FR4.2.3-16При отправке отзыва произошла ошибкаИнтерфейс показывает состояние «Что-то пошло не так», сообщение «Проверьте соединение с интернетом или повторите попытку позднее» и действие «Повторить». По нажатию интерфейс повторно отправляет отзыв без сброса выбранной оценки, введенного текста и прикрепленных фотографий.1Частично OQ4.2.3-7

6. Открытые вопросы

Сверка с кодом: BRD 4.2.3 v0.1 · репозиторий booking.mobile.flutter · commit 9db8346 / dev · 28.08.26 · якорь lib/src/feature/add_review/ (также lib/src/feature/orders_tab/order_room/widget/actullity/buttons_panel_widget.dart, lib/src/feature/orders_tab/widget/tiles/order_tile.dart, lib/src/feature/orders_tab/data/reviewed_orders_storage.dart, lib/src/feature/orders_tab/utils/conditions_btns_util.dart, lib/src/core/utils/widgets/html_modal_sheet.dart) Сводка: 11 вопросов (Open 7 · Подтверждено 4) Маршрутизация без сверки с гайдбуком (гайдбук не передавался). Обход ограничен мобильным клиентом; бэкенд (booking-monorepo, Back 3.4 «Отзывы по заказам», 8.7.2 «Модерация») не проверялся — упоминания серверного поведения (отклонение дубликата отзыва, состав ответа сервиса) опираются на клиентский код и комментарии в нём, а не на прямую проверку бэкенда.

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
OQ4.2.3-1FigmaКакой текст должен открываться по действию «Правила размещения отзывов»? В соответствующем экране макета сейчас размещены правила отмены заказа и начисления сбора, а не условия публикации отзывов.Продукт / ДизайнOpenНезависимо от итогового текста, в коде сейчас на этом месте технический черновик, а не рабочий контент — см. OQ4.2.3-5: это стоит поправить уже сейчас, до готовности финального текста правил.От Бизнеса: Текст будет позднее.
OQ4.2.3-2FR4.2.3-1Требование говорит: оценить заказ можно, нажав «Оценить» в информации об архивном заказе (раздел 4.2.1) — форма открывается поверх этого экрана. В коде та же форма отзыва открывается ещё и прямо с плитки заказа в списке архивных заказов, минуя экран 4.2.1, той же кнопкой «Оценить». У двух точек входа разные условия показа этой кнопки: на экране заказа она видна, пока с даты заказа прошло не больше 14 дней, а на плитке в списке — пока прошло не больше 7 дней. У формы, открытой из списка, вдобавок жёстко задана высота 80% экрана, а у формы, открытой с экрана заказа, ограничения высоты нет. \ buttons_panel_widget.dart:204-217 (вход из экрана заказа), app_config.dart:56 (окно 14 дней для этого входа), order_tile.dart:89-105 (вход из списка, высота 80% экрана), conditions_btns_util.dart:214-228 (окно 7 дней для входа из списка, строка 217), booking_list.dart:74-78 (эта же плитка используется для списка архивных заказов)РазработкаOpen(А) Свести к одной точке входа: раз BRD описывает только сценарий из 4.2.1, самый дешёвый вариант — оставить кнопку «Оценить» только на экране заказа, а с плитки в списке вести сначала в него (рекоменд.) — тогда не нужно держать в согласии две копии условия показа кнопки. (Б) Если оба входа нужны намеренно — свести окно доступности к одному значению (сейчас 14 и 7 дней противоречат друг другу) и описать вход из списка отдельным FR в BRD.
OQ4.2.3-3FR4.2.3-2Требование говорит: форма показывает заголовок «Оставить отзыв», название площадки и партнерской зоны, среднюю оценку и количество опубликованных отзывов. В коде заголовок экрана — «Отзывы», а не «Оставить отзыв»; вместо площадки и партнерской зоны показываются название площадки и название базы — поля с названием партнерской зоны в данных экрана нет вообще, хотя идентификатор партнерской зоны в запрос передаётся. Средняя оценка выводится корректно, а в строке с числом отзывов виден лишний фрагмент «(?)», прямо как есть, например «12 отзывов(?)». \ add_review_screen.dart:94 (заголовок «Отзывы»), :107-110 (площадка и база без партнерской зоны), :171 («(?)» в тексте числа отзывов), order_review_modal_cubit.dart:28,32 (идентификатор партнерской зоны передаётся в запрос), :36-42 (в модель экрана он не попадает), room_details_mobile.dart:12-37 (в ответе сервиса, которым пользуется этот экран, названия партнерской зоны нет вообще, есть только идентификатор)РазработкаOpenЗавести тикет в Bitrix: привести заголовок к «Оставить отзыв», убрать «(?)» из текста числа отзывов — это чистые правки клиента. Отдельно уточнить у бэкенда, можно ли добавить название партнерской зоны в ответ используемого метода (сейчас есть только идентификатор); похожая нехватка уже отмечена в Mobile 4.2.1: OQ4.2.1-8 — похоже на системный пробел, а не разовую ошибку.
OQ4.2.3-4FR4.2.3-5Требование говорит: поле отзыва принимает не более 1000 символов и показывает счётчик «{текущее количество}/1000». В коде ограничение в 1000 символов работает (дальше ввод блокируется), а счётчик снизу поля явно отключён: полю задан пустой текст счётчика вместо стандартного, который Flutter показал бы сам при заданном лимите. Пользователь не видит, сколько символов уже набрал и сколько осталось. \ add_review_screen.dart:238 (пустой текст счётчика), :254 (лимит 1000 символов)РазработкаOpenЗавести тикет в Bitrix: убрать counterText: '' (или явно вывести «{count}/1000» рядом с полем) — счётчик уже фактически готов, дело в одной строке, которая его прячет.
OQ4.2.3-5FR4.2.3-8Требование говорит: по «Правила размещения отзывов» открывается панель для ознакомления с условиями публикации. В коде панель действительно открывается, но её содержимое — не рабочий текст, а служебная заглушка разработчика: «Длинный html текст,который еше не приходит с ручки,поэтому его тут нет» (текст показывается пользователю как есть, с опечаткой «еше»). Это отдельный от OQ4.2.3-1 вопрос: там речь о том, каким должен быть текст по содержанию макета, здесь — о том, что сейчас в проде показывается техническая пометка вместо любого текста. \ add_review_screen.dart:267-271РазработкаOpenЗавести тикет в Bitrix: до готовности реального текста (см. OQ4.2.3-1) заменить заглушку на нейтральный текст-плейсхолдер без упоминания «ручки» и разработки, либо скрывать пункт меню, пока текста нет. Служебные пометки не должны попадать к конечному пользователю независимо от решения по содержанию правил.
OQ4.2.3-6FR4.2.3-10Требование говорит: интерфейс передаёт выбор фотографии стандартному системному сценарию устройства. В коде выбор в целом устроен так и работает, но обработка ошибки выбора фото рискованная: панель выбора «Галерея/Камера» закрывается сразу после запуска системного выбора фото, ещё до того как он завершился; если после этого выбор фото завершается ошибкой, уведомление об этой ошибке код пытается показать через контекст уже закрытой панели. К чему это приведёт на практике — не покажется уведомление или упадёт экран — по коду однозначно не определить, нужна проверка на устройстве. \ add_review_screen.dart:585-587 (панель закрывается до завершения выбора фото), :597-604 (уведомление об ошибке через контекст уже закрытой панели)РазработкаOpenПроверить на устройстве сценарий, когда выбор фото завершается ошибкой уже после закрытия панели «Галерея/Камера» (например, отказ в доступе к камере). Если уведомление не показывается или экран падает — показывать ошибку через контекст самой формы отзыва, а не панели выбора фото.
OQ4.2.3-7FR4.2.3-14, FR4.2.3-16Требование говорит: при ошибке отправки интерфейс показывает состояние «Что-то пошло не так» с действием «Повторить», которое повторно отправляет отзыв, не сбрасывая оценку, текст и фото (FR4.2.3-16); при нажатии «Сохранить» интерфейс отправляет оценку, фото и текст и показывает результат отправки (FR4.2.3-14). В коде заголовок и текст ошибки совпадают с BRD, но кнопка называется «Грустно 😢», и по нажатию она не повторяет отправку, а просто закрывает форму — оценка, текст и все фото при этом теряются безвозвратно. Отправка устроена в два шага: сначала создаётся сам отзыв (оценка и текст), и только потом отдельно загружаются фото; отметка «по этому заказу отзыв уже отправлен» проставляется сразу после первого шага, до начала загрузки фото. Если не удалась именно загрузка фото, пользователь всё равно видит общий экран «Что-то пошло не так», хотя сам отзыв уже принят, а кнопка «Оценить» для этого заказа после этого больше не появится ни на экране заказа, ни в списке — дозагрузить фото или узнать, что отзыв всё-таки принят, будет уже нельзя. Тем же общим экраном ошибки закрывается и редкий случай, когда сервер отклоняет отзыв как уже существующий. \ add_review_screen.dart:509-516 (кнопка «Грустно 😢» закрывает форму вместо повторной отправки); order_review_modal_cubit.dart:69 (отметка «отзыв отправлен» ставится до загрузки фото), :88-96 (неудача загрузки фото даёт тот же экран ошибки, что и полный отказ), :58-63 (дубликат на сервере тоже даёт тот же экран ошибки)РазработкаOpenЗавести тикет в Bitrix на два связанных исправления: (1) переименовать кнопку в «Повторить» и реализовать повторную отправку с сохранением введённых оценки, текста и фото, как того требует FR4.2.3-16 — сейчас кнопка только закрывает форму; (2) различать в интерфейсе два разных исхода ошибки: не создался сам отзыв (нужно повторить всё) и отзыв создан, но не загрузились фото (нужно повторить только загрузку фото, не показывая общее «Что-то пошло не так», раз отметка о принятом отзыве уже проставлена). Требование весом 1, и сейчас у пользователя после любой ошибки на этом экране нет рабочего способа завершить отправку.
OQ4.2.3-8FR4.2.3-3, FR4.2.3-9Что подтверждено: кнопка возврата в шапке формы закрывает её стандартным возвратом назад; кнопка возврата в панели «Правила размещения отзывов» закрывает только эту панель отдельным экраном поверх формы — сама форма при этом не пересоздаётся, поэтому выбранная оценка, введённый текст и прикреплённые фото сохраняются автоматически, без дополнительного кода на этот случай. \ add_review_screen.dart:90-91 (возврат из формы), html_modal_sheet.dart:20-22 (возврат из правил, отдельный Navigator.pop), add_review_screen.dart:262-271 (правила открываются отдельной панелью поверх формы)—ПодтвержденоРасхождений нет.—
OQ4.2.3-9FR4.2.3-4, FR4.2.3-6, FR4.2.3-7Что подтверждено: оценка выставляется целым числом от 1 до 5 нажатием на звезду, выбранное количество звёзд закрашивается; кнопка «Сохранить» неактивна, пока оценка не выставлена, и становится активной сразу после выбора оценки — независимо от того, заполнено ли поле текста. \ add_review_screen.dart:200-219 (выбор оценки 1-5), :398 (кнопка активна при выставленной оценке, без проверки текста)—ПодтвержденоРасхождений нет.—
OQ4.2.3-10FR4.2.3-11, FR4.2.3-12, FR4.2.3-13Что подтверждено: выбранные фотографии прикрепляются к отзыву и показываются миниатюрами в форме, рядом есть подпись об ограничении в 5 штук; любую прикреплённую фотографию можно удалить отдельным действием, после чего снова становится доступно добавление; после пятой прикреплённой фотографии кнопка добавления блокируется, и шестую прикрепить нельзя. \ add_review_screen.dart:334-339 (кнопка добавления блокируется при 5 фото), :344-354 (миниатюры), :361-366 (удаление фото), :316 (подпись «до 5 штук»; в BRD — «до 5 фото», расхождение только в слове)—ПодтвержденоРасхождений по сути нет; в подписи ограничения используется слово «штук» вместо «фото» из BRD — можно поправить заодно с другими текстовыми правками этого раздела (OQ4.2.3-3, OQ4.2.3-5).—
OQ4.2.3-11FR4.2.3-15Что подтверждено: при успешной отправке интерфейс показывает «Отзыв отправлен на модерацию» и кнопку «Отлично», по нажатию которой форма закрывается и клиент возвращается на экран, с которого была открыта форма; повторная отправка отзыва по этому же заказу после этого недоступна — кнопка «Оценить» перестаёт показываться (см. также OQ4.2.3-7 о том, что эта же отметка проставляется и при неполном успехе). \ add_review_screen.dart:437-438 (текст успеха), :453-457 (кнопка «Отлично»), order_review_modal_cubit.dart:69 (отметка «отзыв отправлен» для заказа)—ПодтвержденоРасхождений нет для сценария полного успеха.—

0 items under this folder.