メインコンテンツまでスキップ

詳細機能一覧

IDカテゴリーリソースタイトルURIリソース機能内容
1アカウント情報に関する機能新規アカウント登録https://casting.amodel.jp/accounts/user/create/フォーム内容(メールアドレス、パスワード、確認用パスワード)
2利用規約に同意するをチェックしないと送信できない
3メールアドレス欄は必ず@を含む
4パスワードは8文字以上で簡単な文字を含まない
5パスワードと確認用パスワードが一致しないと進めない
6利用規約の部分はスクロールで非表示箇所を見れるようにする
7アカウントの仮登録が完了しましたhttps://casting.amodel.jp/accounts/user/create_confirm/送信完了時に、入力されたメールアドレス宛に本登録用のメールが送信される
8アカウント本登録の完了https://casting.amodel.jp/accounts/user/create_completed/tokenメールアドレスに記載されたURLをクリックすると、こちらのページに遷移される
9本登録用の認証URLの有効期限は24時間とし、期限が切れた後に認証用URLをクリックしたら400エラーを表示する
10架空のトークンを入力しても登録できない
11仮登録は済んでいても本登録が完了していないメールアドレスのユーザーが再度仮登録申請をした場合は、古いほうのデータを削除し新規本登録する
12アカウント情報https://casting.amodel.jp/accounts/user/detail/ログイン済みのユーザーのみアクセスできる
13ログイン中のユーザー自身のメールアドレスを表示する
14ログイン中のユーザー自身のサムネイル画像が設定されていれば表示する
15各編集ボタンを押すと編集ページに遷移されることを確かめる
16アカウント情報の変更https://casting.amodel.jp/accounts/user/edit/<int:pk>/画像をアップロードし、保存を押すと画像が保存され、アカウント情報ページに遷移されることを確かめる
17画像はjpg, png, gifのみ受け付ける
18画像選択時、選択した画像のファイル名を記載する
19前のページに戻るでアカウント情報ページに戻ることができる
20ログイン済みのユーザーのみアクセスできる
21別のユーザーのIDを不正に入力してもアクセスできないことを確かめる
22ログインhttps://casting.amodel.jp/accounts/login/メールアドレスとパスワードを入力させる
23DB上のデータと一致しない場合はエラーメッセージを表示し、再度ログインフォームを表示
24パスワード再設定ページへのリンクと新規アカウント登録ページへのリンクを設置する
25初めてログインするユーザーには案内を表示。ゲストユーザー用、ホストユーザー用それぞれ画像を用意。
26ログインが成功した時、その遷移先のURLは、直前に見た提案ページがあれば、そのURLに遷移する。提案ページを経由していない場合は、ユーザーのアカウント詳細ページへ遷移する
27ログアウトhttps://casting.amodel.jp/accounts/logout/ログアウト完了時に表示するページ
28パスワードの変更https://casting.amodel.jp/accounts/password/edit/古いパスワードと新しいパスワードと新しいパスワード(確認用)を入力する
29古いパスワードが誤っていた場合、エラーメッセージを表示し、再度フォーム画面を開く
30新しいパスワードと新しいパスワード(確認用)が一致しない場合、エラーメッセージを表示し、再度フォーム画面を開く
31パスワードが変更されましたhttps://casting.amodel.jp/accounts/password/edit/completed/パスワードの変更完了時に表示する画面
32パスワードの再設定https://casting.amodel.jp/accounts/password/forget/ログインするためのパスワードを忘れてしまった場合に、パスワードを再発行用ページのURLを受け取るために、既に登録済みのメールアドレスを入力する
33DBに該当のメールアドレスがなかった場合、エラーメッセージを表示させ再度フォーム画面を開く
34パスワード再設定用のメールを送信しましたhttps://casting.amodel.jp/accounts/password/forget/done/DBに該当のメールアドレスがあった場合、パスワード再設定用のメールが送信完了されましたの画面が表示されることを確かめる
35入力されたメールアドレス宛にメールが送信されたことを確かめる
36新規パスワードの入力https://casting.amodel.jp/accounts/password/forget/confirm/<uidb64>/<token>/送信されたメール内のURLをクリックで閲覧が可能
37認証用URLの有効期限は24時間とし、期限が切れた後に認証用URLをクリックしたら400エラーを表示する
38架空のトークンを入力しても登録できない
39パスワードは8文字以上で簡単な文字を含まない
40パスワード再設定の完了https://casting.amodel.jp/accounts/password/forget/completed/パスワードの再設定が完了したときに表示する画面
41メールアドレスの変更https://casting.amodel.jp/accounts/email/edit/メールアドレスを変更したい場合に、新しいメールアドレスを入力させるフォーム。入力項目は新規メールアドレスのみ
42既にDB上に登録されているメールアドレスの場合、エラーメッセージを表示させ再度フォーム画面を開く
43メールアドレス変更が完了しましたhttps://casting.amodel.jp/accounts/email/edit/completed/<str:token>/DB上に登録されていない新規のメールアドレスだった場合、そのメールアドレス宛にメールが送信される。
44そのメール内のURLをクリックで閲覧可能なページ
45認証用URLの有効期限は24時間とし、期限が切れた後に認証用URLをクリックしたら400エラーを表示する
46架空のトークンを入力しても登録できない
47提案の閲覧履歴https://casting.amodel.jp/accounts/history/ログイン済みのユーザーのみアクセスできる
481ページ内に10件まで表示させる。10件以上の場合、moreボタンやPreviewボタンで移動して見れる
49最終閲覧日の新しい順に並べて表示する
50ゲスト用ページとホスト用ページは別ページとして認識し表示させる
51アカウント一覧https://casting.amodel.jp/accounts/list/アプリケーション内に登録されているユーザー(管理者含め)の一覧を表示させる
52ログイン済みのユーザーのみアクセスできる
53管理者権限(superuser)を持つユーザーのみアクセスできる
54アカウントの削除https://casting.amodel.jp/accounts/<int:pk>/delete/特定のユーザーを削除することができる。その際、関連するmodel(投票や閲覧履歴)も合わせて削除する
55ログイン済みのユーザーのみアクセスできる
56管理者権限(superuser)を持つユーザーのみアクセスできる
57ホストユーザーの作成https://casting.amodel.jp/accounts/manage/create/ホスト権限を持つユーザーを作成できる。メールアドレスのみ入力する。パスワードは初期値を自動生成。
58入力されるメールアドレスは既存のDB上に存在しないことを確かめる。
59ログイン済みのユーザーのみアクセスできる
60管理者権限(superuser)を持つユーザーのみアクセスできる
61ホストユーザーの作成完了https://casting.amodel.jp/accounts/manage/create/completed/作成に成功したら、先ほど「入力したメールアドレス」と自動発行された「パスワード」が表示されるので、それを共有可能。
62ログイン済みのユーザーのみアクセスできる
63管理者権限(superuser)を持つユーザーのみアクセスできる
64エージェンシーに関する機能エージェンシーの一覧https://casting.amodel.jp/agencies/list/登録済みの全エージェンシーを表示するページ
65ログイン済みのユーザーのみアクセスできる
66管理者権限(superuser)を持つユーザーのみアクセスできる
671ページあたり50件まで表示し、ページネーション でページを遷移する
68エージェンシーの新規登録https://casting.amodel.jp/agencies/create/エージェンシーの新規登録フォーム(事務所名(正式名称)、事務所名(表記用)、事務所名(かな))を入力させる
69固有の事務所名(正式名称)でないと登録できない(既にDBに登録済みのものは登録できない)
70ログイン済みのユーザーのみアクセスできる
71管理者権限(superuser)を持つユーザーのみアクセスできる
72エージェンシーの編集https://casting.amodel.jp/agencies/<int:pk>/update/登録済みのエージェンシーを編集するためのフォーム。
73値が変わることを確かめる。更新日が現在時刻に更新されることを確かめる
74ログイン済みのユーザーのみアクセスできる
75管理者権限(superuser)を持つユーザーのみアクセスできる
76モデル情報を扱う機能モデルの一覧https://casting.amodel.jp/persons/list/全登録済みのモデルの一覧表示。1ページあたり30件表示。ページネーション でページ遷移できることを確かめる
77コンポジット登録済みの場合、PDFアイコンの表示。クリックでpdfを新規タブで開く
78ログイン済みのユーザーのみアクセスできる
79管理者権限(superuser)を持つユーザーのみアクセスできる
80モデルの新規登録https://casting.amodel.jp/persons/create/エージェンシーDBの「事務所名(正式名称)」からテキスト検索し、一つだけを選択する
81「モデル名(正式名称)」と「モデル名(ローマ字表記用)」と「かな(ソート用)」のテキスト入力フォームで全角スペースは半角スペースに変換
821人のモデルにつき添付ファイルを4枚まで設定可能。(PDFファイルのみ受け付ける)
83一度モデルを保存後、添付ファイルの中からアイキャッチ画像及びコンポジットを選択可能となる
84コンポジットは添付ファイルの中から一つのみ選択可能
85アイキャッチ画像は添付ファイルから1枚を選択可能。選択後、canvasに描画し、クロッピング用の枠が表示されるので、切り取りたい範囲をマウスドラッグ操作で指定する
86切り取りエリアが決まれば、「トリミング位置の決定」のボタンを押すことで、範囲が切り取られたbase64形式の画像を取得できる
87「画像の回転」ボタンを押すとcanvasを回転させることができる
88モデル保存時に、画像の縦と横の長さを取得しDBに保存する
89画像保存はローカルではなく、amazonサーバーへ転送
90保存された画像の縦サイズと横サイズを合わせてgoogle cloud visionにAPI形式でpostすることで、画像の顎のラインと画像の向き(角度)をレスポンスとして受け取りDBに保存する
91ログイン済みのユーザーのみアクセスできる
92管理者権限(superuser)を持つユーザーのみアクセスできる
93モデルの編集https://casting.amodel.jp/persons/<uuid:pk>/update/値が変わることを確かめる
94ログイン済みのユーザーのみアクセスできる
95管理者権限(superuser)を持つユーザーのみアクセスできる
96モデルの削除https://casting.amodel.jp/persons/<uuid:pk>/delete/モデル一覧ページから操作可能。DBからカラムが消えていることを確かめる
97削除時、関連するDB(提案小ページDB、投票DB)カラムも削除されることを確かめる
98ログイン済みのユーザーのみアクセスできる
99管理者権限(superuser)を持つユーザーのみアクセスできる
100提案ページに関する機能提案ページの一覧https://casting.amodel.jp/proposals/list/年度毎のリンクが表示される(2020, 2019など)
101ログイン済みのユーザーのみアクセスできる
102管理者権限(superuser)を持つユーザーのみアクセスできる
103https://casting.amodel.jp/proposals/list/<int:year>/小ページ毎に表示。1ページにつき10件表示する。
104おすすめモデルのみアイキャッチ画像を遅延読み込み。
105ログイン済みのユーザーのみアクセスできる
106管理者権限(superuser)を持つユーザーのみアクセスできる
107提案ページの新規登録https://casting.amodel.jp/proposals/create/入力した「提案ページ名」が、ユーザーに見られる提案ページのタイトルとなる
108「RECOMMEND MODEL」では、モデルDBからテキスト検索でモデルを複数選択可能
109「RECOMMEND MODEL」は、自動でなく任意の順番で並び替えられるようにする
110各セクション毎に、小見出しを設定する。小見出しは「性別」「年代」「ランク」「価格」「値引き前価格」の5つつから構成される
111小ページ(セクション)追加毎に保存する。保存時に、空の小ページ(セクション)を追加する。
112ログイン済みのユーザーのみアクセスできる
113管理者権限(superuser)を持つユーザーのみアクセスできる
114モデルの選択方法を「事務所名」「性別」から抽出し、その後「モデルの名前」と「サムネイル」が表示されそれをクリックして選択できるようにする
115選択したモデルの中から「×」をクリックで削除が可能。また、同一のモデルは複数選択できないことを確かめる
116(案件名が入ります)https://casting.amodel.jp/proposals/<uuid:pk>/APIからページからjson形式で提案データを受け取り、ページ読み込み後にDOM生成することで、ページ読み込み速度の向上
117PC時には1列あたりモデルを5人、タブレット時には3人、スマホ時には2人を表示する。
118また、モデルの並びは、「顔のタイプ」で並び替え→「顔の形」で並び替え→「人種」で並び替え→「性別」で並び替え→「顎のライン(縦)」で低い順に並び替え。その後、1列(PCなら5人、タブレットなら3人、スマホなら2人)の中で顔の向きが中心に向くように(右向きの人は左に配置、左向きの人は右に配置)して並び替える
119「+more」ボタンクリックでモデルの詳細データをモーダルで表示。
120コンポジットPDFが複数ページに渡る場合、各1ページずつ表示するようにする(2ページ目以降は、ページネーション のようにボタンをクリックで選択可能)
121コンポジットはpdfのままでは描画できないので、画像形式(png)にcanvasから描画し表示する
122ダウンロードアイコンをクリックで、コンポジットpdfのパスを新規タブで開く
123モーダル表示中はスクロールしても背景を動かさない(固定する)
124Xをクリックでモーダルを閉じ、モーダルの内容もリセット(別モデルクリックで別モデルの内容が表示されるように)
125ハートアイコンクリックでajax通信(ページリロードなし)でそのモデルに投票することができる。(DBにはproposal_idとuser_idとperson_idをセットすることで、固有のカラムを作成)
126投票時に、「投票しました」的なレスポンスを受け取り、html描画させる。また、通信失敗時にはエラーメッセージを表示する
127また、ハートアイコンクリック時に、既に同一のDBカラムがあった場合、投票を取り消す(DB上で同じproposal_idとuser_idとperson_idを保有するカラムが一つでもあった場合、そのカラムを削除する)
128投票取り消したら「投票を取り消しました」的なレスポンスを受け取りHTMLで描画する
129また、既に本人が投票済みのモデルのハートアイコンはアクティブ化した状態で表示させる
130ゲストユーザー及び未ログインユーザーは他ユーザーが投票したものを見ることはできない(自分が投票したものだけ見れる)
131ホストユーザー自身がつけたLIKEのアイキャッチ画像なしの時のデフォルトのアイコンの背景色を緑色にする。ホストでないユーザーのは灰色に
132モーダル内の投票アイコンは、ホストユーザーの場合は星マーク。ゲストユーザー及び未ログインユーザーの場合はハートマークとする
133投票DBのuser_idには、ログインユーザーの場合はUser_idを使用するが、未ログインユーザーの場合はブラウザのセッションを利用し、900000~999999の間でランダムな整数を作成し格納。
134投票時に表示されるユーザーアイコンには、ログインユーザーの場合はサムネイル画像を表示させる
135投票時に表示されるユーザーアイコンには、未ログインユーザーの場合はグレー背景のアイコンを表示
136各セクションのサブタイトル部分の料金及びランクは、通常非表示にする。
137各セクションのサブタイトル部分の料金及びランクは、ホストユーザーのみ表示される
138ログインユーザーの場合、サイドメニュー(ドロワーメニュー)をクリック表示させるアイコンをヘッダーに表示する
139未ログインユーザーの場合、「新規アカウント登録」ページと「ログインページ」へのリンクを表示させる
140ログインユーザーの場合、ドロワーメニュー内には、そのユーザーの区分(ゲストorホスト)が表示される
141ログインユーザーで且つホストユーザーの場合、「ゲスト用ページ作成フォーム」がドロワーメニュー内に表示される
142URLで指定のIDが不正だった場合、「ページが見つかりませんでした」エラーを表示する
143管理者が設定した提案ページの有効期限日を超えると、「ページは有効期限切れです」のエラーが表示されることを確かめる。(例)ページの有効期限が2月6日に設定されていた場合、2月6日23:59までは見れるが2月7日0時になると見れなくなる
144提案ページのURLのコピーが可能なフィールドを用意する
145今回開いた閲覧ページのURLをセッションに一時保存する。※ログイン成功時のリダイレクト先に指定するため
146フッター内のページ上部に戻るボタンをクリックでページ上部へスムーススクロールする
147未ログインユーザーが初めて提案ページを開いた際は、「未ログインユーザー用の初回案内画像」を表示
148ログインしたゲストユーザーが初めて提案ページを開いた際は、「ゲストユーザー用の初回案内画像」を表示
149ログインしたホストユーザーが初めて提案ページを開いた際は、「ホストユーザー用の初回案内画像」を表示
150提案ページの編集https://casting.amodel.jp/proposals/<uuid:pk>/update/提案ページの編集フォーム。値が変更されることを確かめる
151フォームの送信完了後、提案ページ一覧にページ遷移されることを確かめる
152提案ページの削除https://casting.amodel.jp/proposals/<uuid:pk>/delete/提案ページの削除。提案ページDBからカラムが削除されると同時に関連モデル(小ページ、投票、閲覧履歴)が一緒に削除されることを確かめる
153削除完了後、提案ページ一覧に遷移されることを確かめる
154(案件名が入ります)https://casting.amodel.jp/proposals/manage/<uuid:pk>/ホストユーザーが作成したゲスト用ページ。料金表示ONの時は、ゲストユーザー&未ログインユーザーでも料金閲覧が可能。
155ホストユーザーが作成したゲスト用ページ。ランク表示ONの時は、ゲストユーザー&未ログインユーザーでもランク閲覧が可能。
156ページが見つかりませんでしたhttps://casting.amodel.jp/proposals/<uuid:pk>/ページが削除されていたり、該当しないIDを指定していた場合に表示されることを確かめる
157投票に関する機能なしhttps://casting.amodel.jp/favorites/create/<uuid:proposal_id>/<uuid:person_id>/ログイン済みユーザーのみが実行できる(未ログインユーザーは不可)
158通常のGETアクセスでは到達できず、ajaxによるPOST通信のみ受け付ける
159CSRFcookieがセットされていないと送信できず、403エラーになる
160API出力提案ページのJSONデータ出力https://casting.amodel.jp/apis/v1/proposal/<uuid:proposal_id>/提案ページの表示に利用するAPIをjson形式で出力する
161jsonデータはシリアライズされているか確認
162GETによる通常アクセスは拒否し、fetchAPIからのPOST送信でのみ受け付けることを確かめる
163ゲスト用のページを発行するhttps://casting.amodel.jp/apis/v1/proposal/manager/create/ログイン済みのユーザーのみアクセスできる
164ホストユーザーのみフォームを表示する
165「料金表示」と「ランク表示」の可否の値を受け付ける
166作成完了時、「完了メッセージ」と作成された提案ページのURLを表示し、ユーザーがコピーできるようにする
167作成失敗時、「失敗メッセージ」を表示させる
168POSTのみ受け付ける。GET時は404 errorの表示
169モデル一覧のJSONデータ出力https://casting.amodel.jp/apis/v1/model_list/POSTされたら、モデル事務所IDと性別を元にデータを抽出しjsonデータを返す
170getメソッドではjsonデータを取得できないことを確かめる
171一括メール送信機能一括メールの送信履歴一覧(各提案ページごとの)https://casting.amodel.jp/proposals/<uuid:proposal_id>/mailsends/list/管理者権限(superuser)を持つユーザーのみアクセスできる
1721ページあたり最大30件表示。
173ページネーション でページが遷移できる。
174URL内のproposal_idを元に、特定の提案IDを含む送信データのみを取得する
175作成日の新しい順に並び替えられていることを確かめる。
176一括メールの新規作成フォームhttps://casting.amodel.jp/proposals/<uuid:proposal_id>/mailsends/create/「件名」「送信元メールアドレス」「メール送信グループ」「本文」の入力が必須である。
177「件名」は最大100文字。「本文」は最大「2500文字」が入る。
178「内容保存」ボタンクリック後、メール送付、送信履歴の保存(データベース保存)が行われる。
179「本文」中の[URL]タグは、各事務所毎の各提案ページ毎のモデル選定ページのURIに置き換わる。
180管理者権限(superuser)を持つユーザーのみアクセスできる
181一斉送信メールの詳細https://casting.amodel.jp/proposals/<uuid:proposal_id>/mailsends/<int:mailsends_id>/管理者権限(superuser)を持つユーザーのみアクセスできる
182特定の送信メールデータにおける、「件名」「メール送信グループ」「メール本文」「送信日時」が閲覧可能。
183メール送信グループ機能メール送信グループの一覧https://casting.amodel.jp/mailgroups/list/管理者権限(superuser)を持つユーザーのみアクセスできる
1841ページあたり最大30件表示。
185ページネーション でページが遷移できる。
186データの「更新順」に並ぶ。
187メール送信グループの新規作成https://casting.amodel.jp/mailgroups/create/管理者権限(superuser)を持つユーザーのみアクセスできる
188「グループ名」最大100文字。入力が必須である。
189「エージェンシー」は、関連モデル「Agency」から複数選択できる。
190「非表示」をOnにすると、メール一括送信の際の「メール送信グループ」一覧に表示がされなくなる。→過去の送信履歴として後々見るために、メール送信グループ自体は消さないようにする。その代わりに、不要になった際は、論理削除的に「非表示」としておく。そのための項目。
191「この内容で保存する」ボタンをクリックでデータベース保存。
192メール送信グループの編集https://casting.amodel.jp/mailgroups/<int:pk>/update/管理者権限(superuser)を持つユーザーのみアクセスできる
193特定のmailgroup_idに紐づいたデータを取得する。
194「この内容で保存する」ボタンをクリックでデータベース保存。
195エージェンシーによるモデルの選定機能共通(ドロワーメニュー)ハンバーガーアイコンをクリックでドロワーメニュー(サイドメニュー)の表示
196ドロワーメニュー(サイドメニュー)内のxをクリックでドロワーメニューを閉じる
197「モデルの新規登録」をクリックで、モデル新規登録用のモーダルウィンドウを開く
198「モデルの新規登録」には、「モデル名」「カナ」「ファイル添付」が必要であり、どれかしらが空欄だと送信ボタンが活性化しない。
199「ファイル添付」はPDFファイルのみ選択が可能。
200「キャンセル」ボタンクリックで、モーダルウィンドウを閉じる。
201「この内容で登録する」ボタンをクリックで、成功したらデータベースへ保存。失敗したら、エラーを表示する。
202共通(ソートエリア)絞り込み「女性」radioボタンクリックで、store内のモデル一覧の中から性別が男性のモデルを非表示にする。
203絞り込み「男性」radioボタンクリックで、store内のモデル一覧の中から性別が女性のモデルを非表示にする。
204並び替え「カナ降順」を選択することで、store内のモデル配列内の各オブジェクトの「カナ」を元にsortする。(比較関数は+)
205並び替え「カナ昇順」を選択することで、store内のモデル配列内の各オブジェクトの「カナ」を元にsortする。(比較関数は-)
206並び替え「ローマ字降順」を選択することで、store内のモデル配列内の各オブジェクトの「display_name」を元にsortする。(比較関数は+)
207並び替え「ローマ字昇順」を選択することで、store内のモデル配列内の各オブジェクトの「display_name」を元にsortする。(比較関数は-)
208「grid」アイコンをクリックで、各モデルの見せ方をグリッド表示(画像付きの3カラムのもの)に切り替える。
209「list」アイコンをクリックで、各モデルの見せ方をグリッド表示(画像付きの3カラムのもの)に切り替える。
210頭文字「カナ行」をクリックで、store内のPersons配列の各オブジェクトの「カナ」を元に、該当しないモデルを非表示にする
211頭文字「英半角大文字」をクリックで、store内のPersons配列の各オブジェクトの「display_name」を元に、該当しないモデルを非表示にする
212活性化している頭文字をもう一度クリックで、頭文字による非表示を解除する。
213モデル選定ページの一覧画面https://casting.amodel.jp/proposals/<uuid:proposal_id>/agencies/<uuid:agency_slug>/choices/list/過去の提案ページの一覧を10件取得し表示する。
214案件のステータスが通常の時は、その案件の枠内は白背景で、クリックすると該当するモデル選定ページへ遷移する。
215各案件のステータスが「選定完了」の時は、既にモデル選定済みのため、モデル選定ページへ遷移することができない。
216各案件のステータスが「提案終了」の時は、既にモデル選定操作不可能なため、モデル選定ページへ遷移することができない。
217過去の提案ページが10件以上あれば、ページネーション で過去の提案ページを取得可能。
218URL内のagency_slugを元に、agencyデータを取得し、そのagencyの「事務所名」「読み方」をページ見出し、titleにそれぞれ表示する。
219モデル選定ページhttps://casting.amodel.jp/proposals/<uuid:proposal_id>/agencies/<uuid:agency_slug>/choices/create/レンダリング時にfetchにより「提案情報」「撮影情報」「事務所情報」「モデル情報」=Choicesを取得し、storeへ保存する。
220レンダリング時にUI情報(ソートやドロワー開閉)をリセットする
221Choicesの取得に成功したら、Loadingを解除。失敗したらalertを表示する。
222Choicesの取得に成功したら、Titleに「事務所名」-「提案ページ名」を設定する。
223Choicesの取得に成功したら、「提案情報の詳細」「撮影情報」を記載したモーダルウィンドウを表示する。
224各モーダル は「x」をクリックで消せることを確かめる。 => local stateで管理。
225「事務所情報」を元に「事務所名」「読み方」をページ見出し部分に表示する
226「提案情報」「撮影情報」を元に、撮影概要欄(水色の枠内)にデータを反映する
227撮影概要欄(水色の枠内)クリックで、新規ウインドウで撮影詳細ページを開く。ウィンドウサイズは800px固定。
228ソートエリア内に「お気に入りグループの選択」ボタンと「モデル新規登録」ボタンを配置する。
229「お気に入りグループを選択する」をクリックで、お気に入りグループ選択用のモーダルウィンドウを開く。
230「x」と「キャンセル」ボタンをクリックでお気に入りグループ選択用のモーダルウィンドウを閉じる。
231お気に入りグループ選択用のモーダルウィンドウのコンポーネントのレンダリング時にfetchで、このエージェンシーが持つお気に入りグループをデータベースからjsonで取得し、一覧表示する。
232取得した各お気に入りグループの右隣にある「編集」ボタンをクリックで、そのお気に入りグループの編集画面に遷移する。
233お気に入りグループを選択後(radioボタン)、「適用」ボタンが活性化する。
234「このグループを適用する」ボタンをクリックで、お気に入りグループに属するモデル一覧を取得する。取得に成功したら、store内の一致するモデルにチェックをつける。
235お気に入りグループの適用に成功したら、モーダルを閉じ、成功メッセージを表示する。失敗したらアラートを表示する。
236「お気に入りグループの新規作成」ボタンをクリックで、お気に入りグループの新規作成ページに遷移する。
237「モデル新規登録」ボタンをクリックで、「モデルの新規登録」用モーダルウィンドウを表示させる。
238最初は、store内のPersons配列をリスト形式で表示させる。
239リスト形式の際、チェックボックスのクリック範囲は「モデル名」「カナ」まで含める。
240リスト形式・グリッド形式共に、PC(1200px以上)は1列に3行分表示。タブレット(1200px以下、768px以上)では1列に2行分表示。モバイル(767px以下)は1列に1行分表示させる。
241グリッド形式の際、PDFファイルをiframeで表示させる。また、lazyload対応。
242グリッド形式の際、PCの場合は、iframeの上にマウスホバーでチェックボックス及び、「コンポジット更新」ボタンを表示する。タブレット以下は、一度クリックで表示させる。
243「コンポジット更新」ボタンをクリックで、コンポジット変更用のモーダルウィンドウを表示させる。
244コンポジット変更用のモーダルウィンドウを表示した際、既に登録済みのpdfファイルをiframeで表示させておき、別ファイルを選択したら、その別ファイルをプレビューとして表示させる。
245「x」と「キャンセル」ボタンをクリックでコンポジット変更用のモーダルウィンドウを閉じる。
246「この内容で保存する」をクリックでデータベース上の該当のモデルのpdfファイルパスを差し替える。また、store内のpdfファイルパスも変更させ、画面の更新不要で最新の内容を反映させる。
247600px以上スクロールで、画面上部固定ヘッダーを出現させる。600px以下のスクロールで、また非表示となる。
248画面上部固定ヘッダーの「確認画面へ進む」ボタンと画面最下部の「確認画面へ進む」ボタンは、チェック済みモデルが0の場合は、非活性状態とし、クリック不可の状態にし、チェック済みモデルが1人以上の時はボタンの非活性化状態を解除し、クリック可能にする。
249画面最下部の「モデル新規登録」ボタンをクリックで、モデル新規登録用のモーダルウィンドウを表示させる。
250「モデル○名が選択されています。」の部分は、store内のチェック済みモデルの配列の個数を反映させる。
251「確認画面へ進む」ボタンクリックで、ページTOPへスクロースしながら確認画面へ状態遷移。
252「モデルを選び直す」ボタンをクリックで、確認画面から通常画面へ状態遷移。
253「備考/メッセージ」と「ファイル添付」が可能。
254「確認画面」状態でモデルのチェックボックスを外すと「上記のモデルで確定する」ボタンが非活性化状態になることを確かめる
255「上記のモデルで確定する」ボタンをクリックで、モデル選択をデータベース保存する。成功したら、「モデルの選定完了」モーダルウィンドウを表示する。失敗したらアラートを表示する。
256「モデルの選定完了」モーダルウインドウ内の、「この内容で登録する」ボタンをクリックで、今回の選定モデルをお気に入りグループへ保存する。
257「モデルの選定完了」モーダルウインドウ内の、「登録しない」ボタンとxをクリックでモーダルウィンドウを閉じる。
258今回の選定モデルをお気に入りグループへ保存するが成功した場合は、データベース保存し成功メッセージを表示し、グループ名のvalueを空にする。失敗した場合はアラートを表示する。
259「モデルの選定完了」モーダルウインドウ内の、「この内容で登録する」ボタンをクリック時に、「お気に入りグループ名」が空欄の場合は何もアクションが起きない。
260画面下部に固定バーを表示する。固定バー内には、「撮影情報」の「撮影期限」を表示する。
261画面下部の固定バーの「x」をクリックで、固定バーを非表示にする。
262画面下部の「撮影詳細」ボタンをクリックで、新規ウインドウで撮影詳細ページを表示する。
263モデル選定の詳細ページ(撮影詳細)https://casting.amodel.jp/proposals/<uuid:proposal_id>/agencies/<uuid:agency_slug>/choices/detail/新規ウインドウで固定サイズで開く用途のみ。
264ページのレンダリング時にfetchで「提案情報」「撮影情報」を取得し、取得に成功したらloadingを解除する。失敗した場合はアラートを表示。
265「= 撮影構成 =」や「= モデルイメージ =」などの、データベース上の中身が空及びnullの場合、見出しもセットで非表示とする。
266お気に入りグループの作成画面https://casting.amodel.jp/proposals/<uuid:proposal_id>/agencies/<uuid:agency_slug>/persongroups/create/レンダリング時にfetchにより「事務所情報」「モデル情報」=Choicesを取得し、storeへ保存する。
267レンダリング時にUI情報(ソートやドロワー開閉)をリセットする
268Choicesの取得に成功したら、Loadingを解除。失敗したらalertを表示する。
269Choicesの取得に成功したら、Titleに「事務所名」-「お気に入りグループの作成」を設定する。
270「モデル○名が選択されています。」の部分は、store内のチェック済みモデルの配列の個数を反映させる。
271画面最下部の「確認画面へ進む」ボタンは、チェック済みモデルが0の場合は、非活性状態とし、クリック不可の状態にし、チェック済みモデルが1人以上の時はボタンの非活性化状態を解除し、クリック可能にする。
272「確認画面へ進む」ボタンをクリックした際、お気に入りグループ名が空欄だった場合は、「お気に入りグループ名」入力フィールドまでスクロールしバリデートエラーを表示する。
273「モデル選択画面に戻る」ボタンをクリックで、直前に閲覧したモデル選定ページに遷移する。
274「確認画面へ進む」ボタンをクリックでお気に入りグループ作成の確認用のモーダルウィンドウを表示する。
275「モデルを選択し直す」と「x」ボタンをクリックで、お気に入りグループ作成の確認用のモーダルウィンドウを閉じる。
276モーダルウィンドウ内のモデルのチェックボックスを全て外すと「この内容で登録する」ボタンが非活性化状態になることを確かめる
277モーダルウィンドウ内の「■ お気に入りグループ名:」の箇所に、先ほど入力したお気に入りグループ名がデータバインディングされていることを確かめる。
278「この内容で登録する」ボタンをクリックで、お気に入りグループをデータベースに保存する。成功した場合、完了メッセージを表示し、失敗した場合はアラートを表示する。
279お気に入りグループのデータベース保に成功した場合、先ほどいたモデル選定ページに遷移する。
280お気に入りグループの編集画面https://casting.amodel.jp/proposals/<uuid:proposal_id>/agencies/<uuid:agency_slug>/persongroups/<int:persongroup_id>/update/レンダリング時にfetchにより「事務所情報」「モデル情報」「お気に入りグループ情報」=Choicesを取得し、storeへ保存する。
281レンダリング時にUI情報(ソートやドロワー開閉)をリセットする
282Choicesの取得に成功したら、Loadingを解除。失敗したらalertを表示する。
283Choicesの取得に成功したら、Titleに「お気に入りグループの編集」を設定する。
284取得した「お気に入りグループ情報」を元に、store内のpersons配列内の各オブジェクトにチェック状態を反映する。
285取得した「お気に入りグループ情報」を元に、お気に入りグループ名の箇所にお気に入りグループ名を反映する。
286「モデル○名が選択されています。」の部分は、store内のチェック済みモデルの配列の個数を反映させる。
287画面最下部の「確認画面へ進む」ボタンは、チェック済みモデルが0の場合は、非活性状態とし、クリック不可の状態にし、チェック済みモデルが1人以上の時はボタンの非活性化状態を解除し、クリック可能にする。
288「確認画面へ進む」ボタンをクリックした際、お気に入りグループ名が空欄だった場合は、「お気に入りグループ名」入力フィールドまでスクロールしバリデートエラーを表示する。
289「モデル選択画面に戻る」ボタンをクリックで、直前に閲覧したモデル選定ページに遷移する。
290「確認画面へ進む」ボタンをクリックでお気に入りグループ作成の確認用のモーダルウィンドウを表示する。
291「モデルを選択し直す」と「x」ボタンをクリックで、お気に入りグループ作成の確認用のモーダルウィンドウを閉じる。
292モーダルウィンドウ内のモデルのチェックボックスを全て外すと「この内容で登録する」ボタンが非活性化状態になることを確かめる
293モーダルウィンドウ内の「■ お気に入りグループ名:」の箇所に、先ほど入力したお気に入りグループ名がデータバインディングされていることを確かめる。
294「この内容で登録する」ボタンをクリックで、お気に入りグループをデータベースに保存する。成功した場合、完了メッセージを表示し、失敗した場合はアラートを表示する。
295お気に入りグループのデータベース保に成功した場合、先ほどいたモデル選定ページに遷移する。
296撮影情報に関する機能撮影情報の新規登録https://casting.amodel.jp/proposals/<uuid:proposal_id>/shootings/create/管理者権限(superuser)を持つユーザーのみアクセスできる
297URL内のproposal_idを取得し、form内のhidden_input内にproposal_idをセットする。
298proposal_idに一致する撮影情報があればその撮影情報を取得し、「募集要項の新規登録」ではなく「募集要項の編集」とする。
299「撮影種別」と「使用媒体」は入力が必須とする。それ以外は全てテキスト入力で、空欄及びnullも可能とする。
300「モデル選定締め切り」はdatepickerによるカレンダー日付入力とする。
301「この内容で保存する」ボタンをクリックでデータベースに保存する。成功したら、提案ページの編集ページに戻る。バリデートエラー等で失敗した場合、そのページに止まりエラーを表示する。
302撮影情報の編集https://casting.amodel.jp/proposals/<uuid:proposal_id>/shootings/<int:pk>/update/管理者権限(superuser)を持つユーザーのみアクセスできる
303URL内のproposal_idを取得し、form内のhidden_input内にproposal_idをセットする。
304proposal_idに一致する撮影情報があればその撮影情報を取得し、「募集要項の新規登録」ではなく「募集要項の編集」とする。
305「この内容で保存する」ボタンをクリックでデータベースに保存する。成功したら、提案ページの編集ページに戻る。バリデートエラー等で失敗した場合、そのページに止まりエラーを表示する。
306API出力提案情報・撮影情報・エージェンシー・モデル一覧を出力するAPIhttps://casting.amodel.jp/apis/v1/proposal/<uuid:proposal_id>/agency/<uuid:agency_slug>/POSTのみ受け付ける。geT時は404 errorの表示
307DoesNotExistエラーが発生した場合は、空のオブジェクトを返す。
308Jsonデータはシリアライズされているか確認
309選定したモデルを保存するAPIhttps://casting.amodel.jp/apis/v1/agencies/<uuid:agency_slug>/choices/POSTのみ受け付ける。geT時は404 errorの表示
310DoesNotExistエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
311ValueErrorエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
312その他のエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
313Jsonデータはシリアライズされているか確認
314提案の一覧を出力するAPIhttps://casting.amodel.jp/apis/v1/agencies/<uuid:agency_slug>/choices/list/POSTのみ受け付ける。geT時は404 errorの表示
315DoesNotExistエラーが発生した場合は、空のオブジェクトを返す。
316Jsonデータはシリアライズされているか確認
317お気に入りグループの一覧をJSON形式で出力https://casting.amodel.jp/apis/v1/persongroups/DoesNotExistエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
318その他のエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
319Jsonデータはシリアライズされているか確認
320お気に入りグループを作成するAPIhttps://casting.amodel.jp/apis/v1/persongroups/create/POSTのみ受け付ける。geT時は404 errorの表示
321DoesNotExistエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
322その他のエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
323Jsonデータはシリアライズされているか確認
324特定のお気に入りグループを編集するAPIhttps://casting.amodel.jp/apis/v1/persongroups/<int:pk>/update/POSTのみ受け付ける。geT時は404 errorの表示
325DoesNotExistエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
326その他のエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
327Jsonデータはシリアライズされているか確認
328特定のお気に入りグループの詳細を出力するAPIhttps://casting.amodel.jp/apis/v1/persongroups/<int:pk>/POSTのみ受け付ける。geT時は404 errorの表示
329DoesNotExistエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
330その他のエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
331Jsonデータはシリアライズされているか確認
332選定されたモデルの一覧を取得するAPIhttps://casting.amodel.jp/apis/v1/choices/list/GETのみ受け付ける。
333DoesNotExistエラーが発生した場合は、空のオブジェクトを返す。
334Jsonデータはシリアライズされているか確認
335一部情報のみのPersonモデルを作成するAPIhttps://casting.amodel.jp/apis/v1/undone_persons/create/POSTのみ受け付ける。geT時は404 errorの表示
336DoesNotExistエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
337ValueErrorエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
338その他のエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
339Jsonデータはシリアライズされているか確認
340一部情報のみのPersonモデルを更新するAPIhttps://casting.amodel.jp/apis/v1/undone_persons/<uuid:pk>/update/POSTのみ受け付ける。geT時は404 errorの表示
341DoesNotExistエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
342ValueErrorエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
343その他のエラーが発生した場合は、空のdetailオブジェクトと、messageにエラーメッセージを入れて返す。
344Jsonデータはシリアライズされているか確認