アクティビティ一覧表示
目的・用途
アクティビティとは、ワークフローを用いてアイテムに対する活動を管理するインスタンスである。
アクティビティ一覧はアイテムが登録中/編集中/終了のいずれであるかを一覧化して管理している機能である。
利用方法
WEKO3へログイン後、[WorkFlow]タブを押下することで、アクティビティ一覧が表示される。
アイテムを登録するには、アクティビティ一覧の[New Activity]ボタンを押下することで、ワークフロー一覧が表示される。
利用可能なロール
ロール | システム 管理者 |
リポジトリ 管理者 |
コミュニティ 管理者 |
登録ユーザー | 一般ユーザー | ゲスト (未ログイン) |
---|---|---|---|---|---|---|
利用可否 | ○ | ○ | ○ | ○ |
機能内容
1. アクティビティ一覧を表示する
TOPページから「ワークフロー」タブを押すと、アクティビティ一覧が状態別に表示される
デフォルト:「Todo」タブ
アクティビティに対して、以下の情報を表示する
# | 表示項目 | 説明 |
---|---|---|
1 | No. | |
2 | 作成日(Created) | アクティビティの作成日付 デフォルト値としてサーバ日付を設定する(サーバ日付は/api/admin/get_server_dateから取得する) |
3 | 更新日(Updated) | アクティビティの更新日付 フォーマット:YYYY-MM-DD |
4 | Activity | アクティビティID リンクを押すと、ワークフローの該当アクション画面に遷移する |
5 | アイテム(Item) | アイテムのタイトル※1 |
6 | ワークフロー(WorkFlow) | ワークフロー名 |
7 | アクション(Action) | アクティビティの実行中アクション |
8 | ステータス(Status) | アクティビティのステータス 「作業中」(Doing):アクティビティが登録中/編集中/承認待ち 「作業済」(Done):アクティビティが終了 「中止」(Canceled):アクティビティが強制終了 |
9 | User | アイテム編集中はアクティビティを作成したユーザーのメールアドレス、Approval後は承認者のメールアドレスを表示する |
各タブの概要
「ToDo」タブ
登録者または、処理権限を有するユーザーに対して、登録中/編集中のアクティビティを表示する
承認者の場合、承認待ちのアクティビティも表示する
「Wait」タブ
- 登録者または、処理権限を有するユーザーに対して、承認者の承認待ちのアクティビティを表示する
「すべて(All)」タブ
登録者または、処理権限を有するユーザーに対して、登録中/編集中/完了のアクティビティを表示する(承認待ちのものは表示しない)
承認者の場合、承認待ちのアクティビティも表示する
アクティビティ一覧のダウンロード、クリアができる。
- 各タブに表示される内容
ロール | ToDo | Wait | All |
---|---|---|---|
システム管理者 | 自分で作成したアイテムの承認待ちのもの 自分が入力途中のもの リポジトリ管理者が作成したアイテムの承認待ちのもの コミュニティ管理者が作成したアイテムの承認待ちのもの 登録者が作成したアイテムの承認待ちのもの 代理登録が設定されたアクティビティは表示されない |
自分で作成したアイテムの承認待ちのもの 自分が入力途中のもの 自分が入力をキャンセルしたアクティビティ リポジトリ管理者が作成したアイテムの承認待ちのもの リポジトリ管理者の入力途中のもの リポジトリ管理者が入力をキャンセルしたアクティビティ コミュニティ管理者が作成したアイテムの承認待ちのもの コミュニティ管理者の入力途中のもの コミュニティ管理者が入力をキャンセルしたアクティビティ 登録者が作成したアイテムの承認待ちのもの 登録者の入力途中のもの 登録者が入力をキャンセルしたアクティビティ 他のシステム管理者が入力途中のアクティビティ |
|
リポジトリ管理者 | 自分で作成したアイテムの承認待ちのもの 自分が入力途中のもの システム管理者が作成したアイテムの承認待ちのもの コミュニティ管理者の承認待ちのもの 登録者が作成したアイテムの承認待ちのもの 代理登録が設定されたアクティビティは表示されない |
自分で作成したアイテムの承認待ちのもの 自分が入力途中のもの 自分が入力をキャンセルしたアクティビティ システム管理者が作成したアイテムの承認待ちのもの システム管理者の入力途中のもの システム管理者が入力をキャンセルしたアクティビティ コミュニティ管理者が作成したアイテムの承認待ちのもの コミュニティ管理者の入力途中のもの コミュニティ管理者が入力をキャンセルしたアクティビティ 登録者が作成したアイテムの承認待ちのもの 登録者の入力途中のもの 登録者が入力をキャンセルしたアクティビティ 他のリポジトリ管理者が入力途中のアクティビティ |
|
コミュニティ管理者 | 自分が入力途中のもの 代理登録が設定されたアクティビティは表示されない 自分で作成したアイテムの承認待ちのものは表示されない |
自分で作成したアイテムの承認待ちのもの 自分が入力途中のもの 自分が入力をキャンセルしたアクティビティ 他のコミュニティ管理者が入力途中のアクティビティ |
|
登録者 | 自分が入力途中のもの ※ |
自分で作成したアイテムの承認待ちのものを表示する | 自分が入力途中のもの ※ |
※何らかのフローでAction Userに指定されており、実行中アクションがそれであるワークフローはすべて表示される
代理登録機能
- アクティビティのItem RegistrationアクションにあるContributorエリアに"Other User"としてユーザ名またはEmailを設定しておけば、設定されたユーザは、該当アイテムに「編集」ボタンが表示されて、アイテムの編集をすることが可能
ゲストユーザーがアクティビティ一覧のURLを直接入力してアクセスしようとした際はログイン画面に移動する
承認アクションが複数ある場合の挙動は以下の通り
2. アクティビティ一覧にフィルタリングとページングできる
フィルタリング
フィルタリングがアクティビティ一覧の上部に表示される
デフォルトの表示項目:登録日(Created)
登録日での開始日:1年前の当日「フィルターを追加▼」をクリックすると、以下の追加可能なフィルタリストを表示し、フィルタ名をクリックすると当該フィルタの入力エリアを追加する
ワークフロー
User
アイテム
ステータス
選択肢:作業中、作業済、中止
各フィルタ項目の入力形式/検索方式/初期値
登録日(日付/範囲指定/(自)1年前の当日(至)入力なし )常設とする
アイテム(テキスト/前方一致/入力なし)。複数可。
ワークフロー(テキスト/前方一致/入力なし)。複数可。
ステータス(チェックボックス/完全一致/選択なし)。1つのみ。
User(テキスト/完全一致/入力なし)。複数可。
追加されたフィルタの入力エリアに[×]ボタンを押すと、該当フィルターの入力エリアを削除する
設定したフィルタは[Apply(適用)]ボタンを押下することで一覧に適用される
表示されている条件についてAND検索する
適用されたフィルタの内容は各タブ(ToDo, Wait, All)間で引き継がれる
ページング
ページ当たりの表示数(Display Number)をプルダウンより選択できる
選択可能な件数は「20, 50, 75, 100」でデフォルトは「20」とする
ページングナビゲーションを操作することで、表示内容が切り替わる
表示数は、ToDo、Wait、Allタブそれぞれ個別に適用される
アクティビティとアイテムとの関連は以下の通り。
アイテムを新規登録: アクティビティXが作られる
アイテムAとして登録してワークフロー終了: アイテムAはアクティビティXに紐づいている
アイテムAを編集する: アクティビティYが作られ、編集中のアイテムAはアクティビティYに紐づく
アイテムAの編集完了(バージョンを上げない): 編集後のアイテムAはアクティビティYに紐づいている。編集前のアイテムAはアクティビティXに紐づいたまま
再度アイテムAを編集する: アクティビティZが作られ、編集中のアイテムAはアクティビティZに紐づく
アイテムAの編集完了(バージョンを上げる): アイテムA(ver2)がアクティビティZに紐づく。アイテムA(ver1)はアクティビティYに紐づいたまま
3. TSVファイルダウンロード**
アクティビティをDBから物理削除する前のバックアップとして、TSVファイルにアクティビティログをダウンロードする。
【前提条件】
利用者のロールが、システム管理者またはリポジトリ管理者であること。
アクティビティ一覧で、「すべて(All)」タブの内容を表示していること。
表示中のフィルタリング条件で、アクティビティが1件以上表示されていること。
instance.cfg(invenio.cfg) で、DELETE_ACTIVITY_LOG_ENABLE = Trueであること。
[ダウンロード(Download)]ボタンを押すと、表示中のフィルタリング条件に従った内容のTSVファイルがダウンロードされる。
TSVファイルに書き込まれる件数は、以下の定数によって制限されている。
パス:modules/weko-workflow/weko_workflow/config.py
設定キー:WEKO_WORKFLOW_ACTIVITYLOG_BULK_MAX
制限より多い件数のアクティビティログをダウンロードするときは、workflow_activityテーブルのid降順で制限まで取得する。
4. アクティビティ削除
アクティビティを、表示中の全件または1件物理削除する。
【前提条件】
利用者のロールが、システム管理者またはリポジトリ管理者であること。
アクティビティ一覧で、「すべて(All)」タブの内容を表示していること。
表示中のフィルタリング条件で、アクティビティが1件以上表示されていること。
instance.cfg(invenio.cfg) で、DELETE_ACTIVITY_LOG_ENABLE = Trueであること。
[ダウンロード(Download)]ボタンの隣に表示されている[クリア(Clear)]ボタンを押すと、表示中のフィルタリング条件に従ったアクティビティが全件物理削除される。
アクティビティ一覧の各行に表示されている[クリア(Clear)]ボタンを押すと、その行のアクティビティが物理削除される。
削除時、確認ダイアログを表示することで確認を行う。
実行中のアクティビティを削除する場合は、アクティビティを強制終了する。
削除すると同時に削除対象のアクティビティのTSVファイルがダウンロードされる。
全件削除時、削除件数は以下の定数によって制限されている。
パス:modules/weko-workflow/weko_workflow/config.py
設定キー:WEKO_WORKFLOW_ACTIVITYLOG_BULK_MAX
制限より多い件数のアクティビティを削除するときは、workflow_activityテーブルのid降順で制限に達するまで削除する。
関連モジュール
weko_workflow
処理概要
1. 設定
アクティビティの各タブを定義する(開発に使用している)
パス: https://github.com/RCOSDP/weko/blob/v0.9.22/modules/weko-workflow/weko_workflow/config.py#L278-L182
設定キー及び設定値:
WEKO_WORKFLOW_TODO_TAB = 'todo'
WEKO_WORKFLOW_WAIT_TAB = 'wait'
WEKO_WORKFLOW_ALL_TAB = 'all'
2. 実装方法
対応しているモジュール:weko_workflow
アクティビティ一覧
ログインしているユーザーの権限に応じてデータを「get_activity_list」メソッドでデータベースから取得する
「Todo」タブに対して
管理者の権限には、以下の条件でデータを取得する
【条件】
ステータス:作業中、承認待ちではない
フローに設定されている承認者には、追加で以下の条件でデータを取得する
【条件】
ステータス:作業中、承認待ち
アクティビティの承認者
他の権限には、以下の条件でデータを取得する
【条件】
ステータス:作業中、承認待ちではない
アクティビティの作成者、または代理者
「Wait」タブに対して
該当承認者には、以下の条件でデータを取得する
ステータス:作業中、承認待ち
取得されたデータをUIに以下のテンプレートで表示する
デフォルトの表示数:20
ページ:1フィルタリング
アクティビティ一覧での「適用」ボタンを押すと、UIに入力されているフィルタリングの情報を検索条件とし、満たすデータを「filter_conditions」メソッドでデータベースから取得する
フィルタリングの対象:「createdfrom」、「createdto」、「workflow」、「user」、「item」、「status」フィルタリングされたデータをUIに選択されている表示数で表示する
ページング
データをデータベースから取得する時、表示数を元に、表示のページを取得されたアクティビティ一の総数で数える
TSVファイルダウンロード
views.py::download_activitylog()メソッド
アクティビティ削除
views.py::clear_activitylog()メソッド
【補足】
バージョンを「上げる/上げない」それぞれのアクティビティの挙動
アイテムバージョンを上げないときにはアクティビティはver1に紐づく
編集終了後にver2になったときにはアクティビティはver2に紐づく
アクティビティが生成されるタイミングは、以下の時点
アクティビティの作成画面(workflow/activity/new)に[新規](New)ボタンを押す時点
アイテム詳細画面に[編集](Edit)ボタンを押す時点
アイテム編集時、バージョンを変えない場合はアクティビティが増えていく
ワークフロー一覧のユーザはユーザメールアドレスが表示される
ワークフロー一覧のwaitに表示されるものは承認待ちの状態。
処理(承認)できる権限は、システム管理者、リポジトリ管理者、該当のコミュニティ管理者、または【Administration > ワークフロー管理(WorkFlow) > フロー(Flow List)画面】の該当のフローにて、「Approval」に指定されているアクションロール、アクションユーザアクティビティが終了とするとき、アクティビティのアクションが「End」に移動、「End」アクションのステータスが「作業済」となる。
アイテム編集時、アイテムバージョンを上げた場合、アイテムを新規レコードとして作成し、アイテムの情報を保存する
過去のアイテムが、どのアクティビティに紐づいていたのかの関係は画面上確認ができない。
各アイテムバージョンの情報及び、アクティビティの情報は【Administration > レコード管理(Records) > 永続識別子(Persistent Identifier)】画面で管理されている。アクティビティが生成されると新規UUIDへ紐づけを行う
アイテム削除したアクティビティもAllタブには残る。アクティビティのリンクを押下すると、エラー画面が表示される。
アイテムメタデータのエスケープ処理は以下の通り。インデックス名や著者名に対しても同様に処理する
メタデータ保存時
メタデータをJSON形式で保存。メタデータの文字で、JSON形式の文字の同じと文字がある場合、JSONに「¥"」に変換して保存する。
メタデータの出力時
OAI-PMH出力
DBに保存しているメタデータから、pythonでOAI-PMH出力される。
python処理でJSONからの「¥"」文字を「"」に変換して出力するため、OAI-PMH出力時にメタデータと同じように表示されるNFKD正規化を行う。
一括エクスポート、JSON出力
エクスポートファイルの形式によって、特殊文字がエスケープされる。
一括エクスポートファイルの形式は「.tsv」であり、「"」を「""」文字に変換して出力する。
JSON出力ファイルの形式は「.json」であり、出力時の処理は上記のDB保存の処理と同様。
更新履歴
日付 | GitHubコミットID | 更新内容 |
---|---|---|
|
353ba1deb094af5056a58bb40f07596b8e95a562 | 初版作成 |
|
7733de131da9ad59ab591b2df1c70ddefcfcad98 | v1.0.7対応 |