Redmineプラグイン開発入門(2)VSCODE導入編
こんばんは。この週末は、がっつりRedmineのプラグインを開発していました。
開発環境を新しくしたついでに、IDEも今回から変えてみました。
今日は、Visual Studio Code の導入方法を書きたいと思います。
1. ダウンロード
こちらのサイトからダウンロードができます。私はWindows10 64bitをインストールしました。インストーラに沿って操作するだけで簡単に導入できます。
2. 起動
デスクトップにショートカットができていると思いますので、そちらから起動してみます。このような画面が表示されましたでしょうか。
3. Ruby、Railsプラグインのインストール
Redmineのプラグイン開発のためにプラグインを導入します。ファイル>基本設定>拡張機能をクリックします。以下を検索してインストールします。
- Japanese Language Pack for Visual Studio Code
- Ruby
- Rails
3. Redmineのコードをオープン
前回の記事で作ったファイルを開きます。
ファイル>フォルダーを開く>c:\rails_project\redmine-3.4.9を開きます。
plugins/show_users/app/controllers/show_controller.rbを開きました。
これで開発の準備は完了です。
調べれば、もっと便利なプラグインがあるようです。
私も使いながら覚えていこうと思います。またこちらでご紹介します。
では。
前回の記事はこちら。
it-managers-life.hatenablog.com
無駄な会議していませんか?
こんにちは。平日にブログ書くのは大変ですね。
今日は「無駄な会議」について、書こうと思います。10年前に自分がメモしていたことを書き起こしたものになります。当時はいらいらしていたのかな(笑)今の会社は、ほとんど会議がないし、自分もここにあるような無駄会議を招集することはないので、少し懐かしさを感じる記事になっています。
会議とは?
- 会議とは「企業が短時間で最適な決断を下すうえで有効な仕組み」
- 複数の参加者から必要な情報を吸い上げることができる。
- それを材料にして議題を様々な視点から検証できる。
→ その場で意思決定ができる。
会議に求められてることは?
- 出席者がその後の仕事を遂行するに十分な情報を注入できる
- 生産的に、会議の中で問題を解消していく
〇良い会議のタイプ(役に立つ会議)
- 意思決定する・問題を解決するタイプ
・○○○について考える(決める)会議
・○○○対策会議 - 課題を抽出するタイプ
・ブレインストーミング(課題・アイデア抽出)
・ワールドカフェ - 意思統一・一体感・帰属意識の醸成を図るタイプ
・キックオフ会議(方針の共有、役割の明確化など)
・オールハンズ - 参加者の教育・スキル向上できるタイプ
・勉強会(ノウハウの共有)
・成功・失敗事例のレビュー会(教訓の共有) - 最新情報が聞けるタイプ
これらの中には、電子メールや掲示板で出来るレベルもあり、必ずしも集まる必要があるとは限らないことに注意が必要。
▲悪い会議のタイプ(役に立たない会議)
- 報告会タイプ
・単なる報告会になっている
・議題もないのに慣例化している
・電子メールや電子掲示板で事足りる内容 - 独演会タイプ
・いつも同じ人ばかりが話をしている
・声の大きい人の意見が通る
・自分の意見を強硬に主張して,他の参加者が発言する機会を奪う
→「話したいだけ」「自己顕示欲」を満たしているだけ
→ 否定的な発言が多く、話が前に進まない
→ 他の参加者が混乱し、貴重な時間が奪われる - 尋問会タイプ
・責任を追求するだけで何の問題解決にもなっていない
・欠席裁判をする - 恫喝会タイプ
・いじめや見せしめ
▲悪い会議の共通点
- 生産的でない
- 議長が機能していない
・話している内容が、本来のテーマからずれてしまう
→ 論点がずれて判らなくなる - だらだらと結論が出ない
→ 何が決まったか判らないまま会議が終わる - 「遅刻者、欠席者がいる」「なぜ呼ばれたかわからない人がいる」
・決めなければいけないことが決められなくなったりして進行に支障が出る
▲悪い会議が及ぼす影響
- 社員のやる気が低下する、会議と聞いただけで気分が沈む。
- いかにも仕事をしている錯覚にとらわれる
→ 現状のわずらわしい仕事から解放される口実を得られる。
→ おまけに、会議はともすれば「責任」を分散してくれる。 - コスト意識が低下する。
- 決まったことが、実行に移されない。
→ 決まったことをやらなくても済む風土が根付いてしまう。
★良い会議をするためのポイント
- 会議の目的を明確にする。
- 会議を上手に進行する人を議長にする。
・発言の機会を平等に与えたり、結論に導くためのファシリテーションが重要 - 事前に準備をする
・わざわざ集まる必要性があるか考える。
・電子メールや掲示板で済んだりしないか。 - 適切なメンバーが召集されているか考える。
- 資料は、あらかじめ配布しておく。
- 1時間以内で済むように工夫する。
長くなってしまいました。
自分が会議を招集するときは、ぜひ気をつけたいものですね。では。
Redmineプラグイン開発入門(1)
こんにちは。今日は日曜日、のんびりデスクに向かっています。
今回は、前回構築した環境で、Redmineの簡単なプラグインの開発を行ってみたいと思います。
前回の開発環境構築の話はこちらになります。 it-managers-life.hatenablog.com
環境
- Winsows10 WSL
- Ubuntu 18.0 LTS
- Ruby 2.5
- Rails 4.2
- MySQL 5.7
- Redmine 3.4.9
今回は入門編ということで、ユーザーの一覧表示をするプラグインを作成していきます。
1. プラグインの雛形作成
以下のコマンドを入力します。
$ cd /mnt/c/rails_projects/redmine-3.4.9 $ bundle exec rails generate redmine_plugin ShowUsers
plugins/show_users/ にプラグインの雛形が作成されます。
2. 基本情報の編集
show_users/init.rb を編集します。一部の情報はRedmineのplugin管理画面で表示されます。
Redmine::Plugin.register :show_users do name 'Show Users plugin' author 'Author name' description 'This is a plugin for Redmine' version '0.0.1' url 'http://example.com/path/to/plugin' author_url 'http://example.com/about' end
3. コントローラの雛形作成
以下のコマンドを入力します。
$ bundle exec rails generate redmine_plugin_controller show_users show index
コントローラの雛形が作成されます。
4. コントローラの編集
show_users/app/controllers/show_controller.rbを編集します。ここで全ユーザーの情報を取得しています。
class ShowController < ApplicationController unloadable # 認証 before_action :global_authorize # # インデックス # def index # 全ユーザーを取得する all_users = User.where(type: "User").where(status: 1) # 名前を配列に入れる @names = [] all_users.each do |user| @names << user.firstname + user.lastname end end # # ログインユーザーを取得する # def set_user @current_user ||= User.current end # # ログインユーザーでなければエラー # def global_authorize set_user render_403 unless @current_user.type == 'User' end end
5. ビューの編集
app/views/shows/index.html.erbを編集します。ここでユーザの一覧を出力します。
<h2>ShowController#index</h2> <table class="list" style="max-width: 400px; align: right;"> <tr> <th>ユーザー名</th> </tr> <% @names.each{|value| %> <tr> <td><%= value %>さん</td> </tr> <% } %> </table>
6. メニューの追加
show_users/init.rb を編集します。今回はアプリケーションメニューに追加します。
Redmine::Plugin.register :show_users do name 'Show Users plugin' author 'Author name' description 'This is a plugin for Redmine' version '0.0.1' url 'http://example.com/path/to/plugin' author_url 'http://example.com/about' #アプリケーションメニューに「ユーザー表示」を表示する menu :application_menu, :show_users, { :controller => 'show', :action => 'index' }, :caption => 'ユーザー表示', :if => Proc.new { User.current.logged? } end
7. ルーティングの設定
show_users/config/routes.rbを編集します。最初は空になっています。
# Plugin's routes # See: http://guides.rubyonrails.org/routing.html Rails.application.routes.draw do resources :show end
8. 実行
アプリケーションメニューから「ユーザーの表示」をクリックします。下図の様に表示されます。
以上で終わりです。
今回は、簡単なプラグインを作成することで、雰囲気が理解できたのではないでしょうか。
これからプラグインを作ってみたいという方の参考になれば幸いです。では、また次回。
参考サイト(ありがとうございます)
Windows10でRedmine3.4を動かす方法 [2019年版]
こんにちは。
今回は前回構築したRails環境にRedmine3.4の環境を構築します。会社で使っているバージョンでプラグイン開発をするためです。
前回の記事はこちらです。
it-managers-life.hatenablog.com
さてインストールを始めます。
1. Rails 4.2.1のインストール
Redmine3.4系はRails4.2が必要なのでインストールする。
$ sudo gem install rails -v 4.2.11
2. bundler 1.17.3のインストール
bundler 2.0.1ではRedmine3.4系はインストールできないので、古いものを入れる。
$ gem install bundler -v 1.17.3
3. MySQLのインストール
$ sudo apt-get install mysql-server
$ sudo apt-get install libmysqlclient-dev
$ sudo usermod -d /var/lib/mysql mysql
スタートします。
$ sudo service mysql start
4. データベースとユーザーの作成
root権限のパスワードを入力するとログインできます。
$ sudo mysql -u root -p
SQLを実行します。
CREATE DATABASE redmine_development CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine_development .* TO 'redmine'@'localhost';
3. ソースの展開
公式サイトから redmine-3.4.9.tar.gz をダウンロードします。
$ mkdir /mnt/c/rails_projects
$ cd /mnt/c/rails_projects
ここにソースを配置します。
$ tar xvf redmine-3.4.9.tar.gz
4. データベースに接続するための設定
$ cd /mnt/c/rails_projects/redmine-3.4.9/config
$ cp database.yml.example database.yml
$ vi database.ym
~~~~
development::
adapter: mysql2
database: redmine_development
host: localhost
username: redmine
password: "my_password"
encoding: utf8
~~~~
Redmineを実行するために必要なすべてのgemをインストールします。ここで、ImageMagickがインストールされていない場合、rmagickのインストールを省略します。
$ sudo bundle _1.17.3_ install --without production test rmagick
5. セッションストア秘密鍵の生成
$ bundle _1.17.3_ exec rake generate_secret_token
6. データベースのテーブルの作成
$ RAILS_ENV=development bundle _1.17.3_ exec rake db:migrate
7. デフォルトデータのインポート
$ RAILS_ENV=development bundle _1.17.3_ exec rake redmine:load_default_data
言語を聞かれるので、ja を選択する。
8. 実行
$ sudo bundle _1.17.3_ exec rails server webrick -e development
起動を確認したら「http://localhost:3000/」アクセス。下記の画面が表示されたら成功です。
ログインは、ログインID: admin、パスワード: admin でできます。
環境情報は以下の通りです。
以上、お疲れさまでした!次回はプラグインを開発します。
バージョン4の動かす方法はこちら。
it-managers-life.hatenablog.com
参考サイト(ありがとうございます)
Windows10でRedmine4.0を動かす方法 [2019年版]
こんにちは。
今回は前回構築したRails環境にRedmine4.0の環境を構築します。
前回の記事はこちらです。
it-managers-life.hatenablog.com
さてインストールを始めます。
1. MySQLのインストール
$ sudo apt-get install mysql-server
$ sudo apt-get install libmysqlclient-dev
$ sudo usermod -d /var/lib/mysql mysql
スタートします。
$ sudo service mysql start
停止するときはこう。
$ sudo service mysql stop
2. データベースとユーザーの作成
root権限のパスワードを入力するとログインできます。
$ sudo mysql -u root -p
SQLを実行します。
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
3. ソースの展開
公式サイトから redmine-4.0.1.tar.gz をダウンロードします。
$ mkdir /mnt/c/rails_projects
$ cd /mnt/c/rails_projects
ここにソースを配置します。
$ tar xvf redmine-4.0.1.tar.gz
4. データベースに接続するための設定
$ cd /mnt/c/rails_projects/redmine-4.0.1/config
$ cp database.yml.example database.yml
$ vi database.ym
~~~~
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "my_password"
encoding: utf8
~~~~
Redmineを実行するために必要なすべてのgemをインストールします。ここで、ImageMagickがインストールされていない場合、rmagickのインストールを省略します。
$ bundle install --without development test rmagick
5. セッションストア秘密鍵の生成
$ bundle exec rake generate_secret_token
6. データベースのテーブルの作成
$ RAILS_ENV=production bundle exec rake db:migrate
7. デフォルトデータのインポート
$ RAILS_ENV=production bundle exec rake redmine:load_default_data
言語を聞かれるので、ja を選択する。
8. 実行
$ sudo bundle exec rails server webrick -e production
起動を確認したら「http://localhost:3000/」アクセス。下記の画面が表示されたら成功です。
ログインは、ログインID: admin、パスワード: admin でできます。
環境情報は以下の通りです。
以上、お疲れさまでした!
参考サイト(ありがとうございます)
Windows10にRailsの環境を構築する方法 [2019年版]
こんにちは。日曜なのにデスクに向かっています。
今日は、RedmineのプラグインをWindows10で開発するために、Railsの環境構築をした手順を書きます。
1. Linux(Ubuntu)のインストール
Windows Subsystem for Linux を使います。
「Windowsの機能」→「Winsowsの機能の有効化または無効化」→「Windows Subsystem for Linux」にチェック→再起動。
Microsoft Store から「Ubuntu 18.04LTS」をインストール。
起動したら、パッケージを最新化。
$ sudo apt update
$ sudo apt upgrade
2. Rubyのインストール
rbenvはRubyのバージョン管理ツールです。
$ sudo apt-get install rbenv
$ sudo apt-get install ruby-dev
同時にrubyもインストールされます。確認します。
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
3. Railsのインストール
$ sudo gem install rails
バージョンを確認します。
$ rails -v
Rails 5.2.2
デモプロジェクトを作成する。
$ rails new demo
$ cd demo
$ bundle install
Railsの起動にJavaScriptのランタイムが必要なので下記をインストールする。
$ sudo apt-get install nodejs
$ sudo apt-get install npm
Railsを起動する。
$ sudo rails s
sqlite3のエラーがでるので、参考サイトの通りに対処する。
localhost:3000 に接続して、確認する。
下の画面が表示されれば、成功です。Redmineのインストールは次回に。
参考サイト(ありがとうございます)
タスクボードの運用で気を付けている5つのこと
こんにちは。
私のチームでは、タスクボードを運用しています。
今日は、運用にまつわるお話を5つ書きたいと思います。
タスクボードの前で朝会をする
んですね。各々が何をやってるのか・抱えてる問題などの共有、全体の状況把握など「物を前に話す」メリットは大きいです。話がとにかく早いんです。
みんなが見えるところに置く
でなければタスクボートと言わないですね。休憩のたびにでも目に飛び込んでくる、意識せざるおえない。自分・PJのタスクが整理された状態で目に飛び込んでくる。
ToDoのタスクは誰にもアサインしないでおく
んですね。誰がやると決めておくと、助け合いが発生しずらい。お見合いが始まる恐れもありますが、積極的に現場で解決させるよう促します。
付箋は各自で動かそう
山積みのタスクへの焦り、取り掛かるときの覚悟、終わった時の達成感、体で感じるんだ。
付箋の色は少なめに
多すぎると認識不能に陥る。私は、タスクの出所(顧客依頼、社内依頼の2種類)にしています。顧客依頼が優先度が高い、位の意識でやってます。
参考になりましたら、幸いです。
こちらの記事にもタスクボードへの思いを綴っています。ではまた。
it-managers-life.hatenablog.com