Skip to content

ADM-037 おすすめ案承認 ​

概要 ​

  • おすすめ台担当 bot が API-009 PUT /recommend/v1/drafts/{hall}/{date} で保存したおすすめ案(db_recommendation_draft)を一覧・詳細で確認し、承認または却下する。
  • サイト運営ダッシュボード(ADM-019)配下のサブメニュー。開けるのは manage_options を持つ管理者だけ。
  • 承認・却下した案(status が approved / rejected)は bot から上書きできない(API-009 は 409 を返す)。
  • 記事への反映・公開はこの画面では行わない。

ワイヤーフレーム ​

未作成。一覧は WordPress 標準の widefat テーブルと絞り込みフォーム、詳細は form-table と台一覧テーブル、承認・却下ボタンで構成する。

画面仕様 ​

一覧(rda_view なし) ​

ブロックIDブロック名表示内容初期値ユーザー操作アクション
B-1説明画面の用途説明(RecommendDraftAdminCopy::INTRO)固定文言--
B-2絞り込みホール(ana-slo 対象ホール)、状態(下書き/承認済み/却下)、対象日(から・まで)すべて選択・入力・送信GET
B-3一覧対象日、ホール、状態、台数、手法(method_version)、最終保存(保存ユーザー名と日時)、承認・却下した人、詳細リンク対象日の新しい順詳細リンク-
B-4ページ送り件数・ページ番号と前へ・次へ(30 件ずつ)1 ページ目リンク-

絞り込みの不正値(対象外ホール、未知の状態、存在しない日付)は無視して「すべて」として扱う。

詳細(rda_view={id}) ​

ブロックIDブロック名表示内容表示条件ユーザー操作アクション
B-5案の情報対象日、ホール、状態、手法、最終保存、保存回数(revision)、承認・却下した人、メモ常に表示--
B-6台一覧順位、台番号、機種 ID、スコア、理由コード、理由常に表示--
B-7承認・却下[承認する] [却下する] と補足(DECIDE_HELP)status = draftボタン押下A-1

note と reason_text は bot が送った文字列をそのまま保存しているため、表示時は必ず esc_html でエスケープする。存在しない ID は NOT_FOUND を表示する。

処理連携仕様 ​

アクション一覧 ​

A-1 ​

同じ画面への POST(load-{hook} で maybe_process_form())。manage_options と nonce(action recommend_draft_admin、field recommend_draft_admin_nonce)を確認し、RecommendDraftAdminServiceInterface::decide() を呼ぶ。

詳細を開いたときの revision を hidden で送り、UPDATE ... WHERE id = %d AND status = 'draft' AND revision = %d で書き換える。画面を開いたあとに bot が上書き(revision が増える)していた場合や、別の管理者が先に承認・却下していた場合は 0 行更新となり、行を読み直して理由を通知する。承認・却下のとき approved_by に操作した管理者の ID を入れる(却下でも同じ列を使う)。

リクエスト

requestParam本画面の値
recommend_draft_admin_noncerecommend_draft_admin の nonce
rda_actionapprove / reject
rda_id案の ID
rda_revision詳細を開いたときの revision

レスポンス

admin.php?page=recommend-draft-admin&rda_view={id} へリダイレクトし、rda_success(1 / 0)と rda_msg で通知を出す。rda_id がない・不正なときと nonce 不正のときは、rda_view なしの一覧へ戻る。

結果通知(RecommendDraftAdminCopy)
承認APPROVED
却下REJECTED
案がないNOT_FOUND
すでに承認・却下済みALREADY_DECIDED
画面を開いたあとに bot が上書きしたSTALE
操作・ID・revision の指定が不正INVALID
DB 更新の失敗FAILED
nonce 不正Messages::AUTH_FAILED

外部インターフェース ​

管理画面 URL ​

項目値
URL/wp-admin/admin.php?page=recommend-draft-admin
page slugrecommend-draft-admin
親メニューsite-ops-dashboard(ADM-019)

関連 ​

  • REST: API-009 おすすめ台 REST(API-009-1 GET /drafts、API-009-2 PUT /drafts/{hall}/{date})
  • テーブル: db_recommendation_draft(custom-tables.dbml)
  • 実装: core_src/Admin/recommend_draft/RecommendDraftAdminPage.php、core_src/Service/recommend_draft_admin_service/RecommendDraftAdminService.php
  • Issue #3900