redmineでは、cssの変更でtracのようにチケット一覧の色を変更することができる。
redmine のチケットの色づけ - yuum3のお仕事日記
htmlを見てみると
<tr id="issue-15" class="hascontextmenu even issue status-5 priority-2 closed overdue created-by-me assigned-to-me">
こんな感じ。
ステータスでもできそうなのでソースを見てみた。
結局
下記のように設定。
/** Ticket BG color **/ .priority-5 {background: #eaa;} .priority-4 {background: #fed;} .priority-3 {background: #ffd;} .priority-2 {background: #f6f6f6;} .priority-1 {background: #dff;} .status-6 {background: #808080;} .status-5 {background: #808080;}
調べた内容
まずはview見て(views/issues/index.rhtml)
使ってるpartial見て(_list.rhtml)
使ってるメソッド(css_issue_classes)からhelper(issues_helper.rb)へ。
# Returns a string of css classes that apply to the given issue def css_issue_classes(issue) s = "issue status-#{issue.status.position} priority-#{issue.priority.position}" s << ' closed' if issue.closed? s << ' overdue' if issue.overdue? s << ' created-by-me' if User.current.logged? && issue.author_id == User.current.id s << ' assigned-to-me' if User.current.logged? && issue.assigned_to_id == User.current.id s end
issue.status.position、issue.priority.position なのでmodel(issue.rb)を見ると
class Issue < ActiveRecord::Base belongs_to :status, :class_name => 'IssueStatus', :foreign_key => 'status_id' belongs_to :priority, :class_name => 'Enumeration', :foreign_key => 'priority_id'
となってるのでDB(issue_statases、enumerations)覗いてみると
こんな感じ。
これでcssとの対応付けができる。
おまけ
初期設定値が気になったので、dbの値(日本語名)で検索すると
ja.ymlが見つかった。
default_issue_status_new: 新規 default_issue_status_assigned: 担当 default_issue_status_resolved: 解決 default_issue_status_feedback: フィードバック default_issue_status_closed: 終了 default_issue_status_rejected: 却下 default_priority_low: 低め default_priority_normal: 通常 default_priority_high: 高め default_priority_urgent: 急いで default_priority_immediate: 今すぐ
あとは、keyで検索するとloader.rbが見つかった。
ここか。
loader.rb # Issue statuses new = IssueStatus.create!(:name => l(:default_issue_status_new), :is_closed => false, :is_default => true, :position => 1) assigned = IssueStatus.create!(:name => l(:default_issue_status_assigned), :is_closed => false, :is_default => false, :position => 2) resolved = IssueStatus.create!(:name => l(:default_issue_status_resolved), :is_closed => false, :is_default => false, :position => 3) feedback = IssueStatus.create!(:name => l(:default_issue_status_feedback), :is_closed => false, :is_default => false, :position => 4) closed = IssueStatus.create!(:name => l(:default_issue_status_closed), :is_closed => true, :is_default => false, :position => 5) rejected = IssueStatus.create!(:name => l(:default_issue_status_rejected), :is_closed => true, :is_default => false, :position => 6) Enumeration.create!(:opt => "IPRI", :name => l(:default_priority_low), :position => 1) Enumeration.create!(:opt => "IPRI", :name => l(:default_priority_normal), :position => 2, :is_default => true) Enumeration.create!(:opt => "IPRI", :name => l(:default_priority_high), :position => 3) Enumeration.create!(:opt => "IPRI", :name => l(:default_priority_urgent), :position => 4) Enumeration.create!(:opt => "IPRI", :name => l(:default_priority_immediate), :position => 5)