- 運営しているクリエイター
#django
Django,MySQL,phpMyAdminの環境をDockerで構築する
こちらのマガジンでご紹介したタレントダッシュボードについて、環境面の説明を番外編としてまとめておきます。
Dockerとは
Dockerとは、コンテナ型の仮想化プラットフォームのことです。
Windows、Mac、各種Linuxディストリビューションへ導入することができ、例えば自分のPCの中にLinuxサーバ(Dockerではコンテナと呼びます)を立てたり、社内LANに存在する端末をSQLサー
【タレントダッシュボード構築 #0】 社員情報を一元管理・照会する仕組みをつくる
データ、ファクトに基づいて意思決定できる人事を目指す人事は、社員からたくさんの機密情報を預かっていたり、たくさんのアンケートに答えてもらったりして、社員から情報を集める取り組みには力を入れているかと思います。
一方で、たくさんの情報が可視化されているか、うまく使える状態になっているかというのはまた別問題で、ここに問題意識を持っている人事担当は結構多いのではないかと思います。
人事組織および経営
【タレントダッシュボード構築 #1】djangoのディレクトリ構成を理解する
#0では 、PythonおよびWebアプリケーションフレームワーク(Django)を利用した「タレントダッシュボード」を作成することを宣言しました。
※動画キャプチャもありますので、ぜひご覧ください。
#1では 、djangoのベーシックな構成をご紹介します。
なぜdjangoなのかwebフレームワークにはたくさん有名なものがありますね。
私は以下のような理由でdjangoを選びました。
こちら
【タレントダッシュボード構築 #2】djangoのモデル定義を理解する①
#1に続き 、今回はdjangoのモデル定義についてまとめます。
djangoでは、SQLを書いてDBを定義するのではなく、「マイグレーション」操作によってDBを定義します。マイグレーション元として定義するのがmodels.pyです。
社員の基礎情報を集めるテーブルを定義する具体例に基づいて考えていきます。キーは社員コード、属性としていくつかの情報を持たせます。
[models.py]clas
【タレントダッシュボード構築 #3】djangoのモデル定義を理解する②
#2に続き 、今回はdjangoのモデル定義、特にForeignKey型についてまとめます。
テーブル定義まずは、社員の基礎情報を集めるテーブルを定義します。
キーは社員コード、属性としていくつかの情報を持たせ、ここにForeignKey型の項目も定義します。
[models.py]class Evaluation(models.Model): """ クラス(考課) """ c
【タレントダッシュボード構築 #4】社員一覧画面をつくる①
#4からは 、#0でご紹介したタレントダッシュボードを実際に作っていく作業をご紹介します。
まずは、社員を一覧表示する以下のような画面を構築していきます。
顔写真付きで社員番号、氏名、年齢、所属、職制、級・号(その「級」をどのくらいの期間務めているか、という意味合いと考えてください)を一覧表示している画面です。汎用的な事例としてお考えいただければと思います。
データモデルの定義以下の通りモデル
【タレントダッシュボード構築 #5】社員一覧画面をつくる②
今回は検索機能についてまとめていきます。
検索機能はdjango-filterというライブラリを利用して実装します。
詳細は公式ドキュメントをご覧いただきたいのですが、一言でいうと「モデルのフィールドに基づいてクエリセットを絞り込み、その内容をビューに表示する仕組みを提供する機能群」です。
今回例として示した画面では、以下の通り実装しています。
[filters.py]import djan
【タレントダッシュボード構築 #6】社員詳細表示画面をつくる①
今回以降は社員の詳細情報を表示する画面を構築していきます。
まずはこちらのエリアを作っていきます。
どのエリアにどのような情報を表示するかを決める方法として、今回はBootstrapのグリッドシステムを利用しています。
グリッドシステムとはこちらに記載されているようにレイアウトを格子状に分解して配置する手法で、横幅を12分割して要素の配置を決めます。
まずは下記の通り、横幅を9(col-9)
【タレントダッシュボード構築 #7】社員詳細表示画面をつくる②
今回は、社員コード単位にn件存在するデータを表示する方法についてまとめていきます。
これにより、例えば以下のような情報を表示することが可能となります。
必要なデータの取得
まずはviews.pyで、リクエストに応じたデータを取得するよう定義します。
[views.py]from django.contrib.auth.mixins import LoginRequiredMixinfrom
【タレントダッシュボード構築 #8】社員詳細表示画面をつくる③
今回は、タブを利用した表示の切り替えについてまとめていきます。
これにより、例えば以下のように情報を切り替えて表示することが可能となります。
必要なデータの取得
まずはviews.pyで、リクエストに応じたデータを取得するよう定義します。
ここでは、半年ごとの所属、級・号、評価ランクを保持するテーブル"Item_6mo"が存在すると仮定します。
[views.py]from django.c
【タレントダッシュボード構築 #9】ユーザー権限を設定する
今回は、ログインユーザとその権限の管理についてまとめていきます。
具体的には、特定の人には評価情報を見せないように制御する、という実装をどのように行うかを検討します。
ユーザーの作成
前提として、カスタムユーザーモデルの導入が完了しているものとします。詳細および導入の方法についてはこちらの公式ドキュメントをご覧ください。
superuserで管理サイトにログインします。
まずは、評価を参