Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

既読にする条件をチケット担当者にしたい #6

Open
inou13139013 opened this issue Aug 19, 2014 · 2 comments
Open

既読にする条件をチケット担当者にしたい #6

inou13139013 opened this issue Aug 19, 2014 · 2 comments

Comments

@inou13139013
Copy link

井上と申します。

本プラグインを導入するに当たり
未読から既読にする条件を、
「チケットの担当者が見たら既読にする」
ようにしようと思い、
issue_patch.rb の already_read? をいじってみましたがうまくいきませんでした。
(自分ではなくチケット担当者のalready_read_issue_idsにアクセスしたいのですが、
ruby初心者のため途方に暮れてしまいました)

何かアドバイス頂けないでしょうか?

@ameya86
Copy link
Owner

ameya86 commented Aug 19, 2014

アクセスしているユーザは「User.current」で参照でき、
チケットの担当者はチケット(Issue)オブジェクトの「assigned_to」から参照できます。
ので、アクセスユーザを見ている箇所を担当者に置き換えていけばいいと思います。

already_read?なら

# 既読ならtrueを返す
def already_read?(user = self.assigned_to)
  return user && user.already_read_issue_ids.include?(self.id)
end

といった感じでしょうか。

issues_controller_patch.rbあたりは

def issue_read
  if @issue && User.current == @issue.assigned_to && !@issue.already_read?
    User.current.already_read_issues << @issue
  end
end

でしょうか。

実際に動かしてはないので、これで出来るかは不明ですが。

@inou13139013
Copy link
Author

迅速な御回答ありがとうございます。
おかげで意図した動作をさせるようにできました。

担当者が空だとエラーになるため、
以下のようにコードを変更してみました。
(まだ、担当者にグループを設定すると落ちてしまうため改良中。。。)

issue_patch.rb
  # 状態を文字で返す
  def already_read(user = self.assigned_to)
    if user
      return (already_read?(user))? l(:label_already_read_read) : l(:label_already_read_unread)
    else
      return (already_read?(User.current))? l(:label_already_read_read) : l(:label_already_read_unread)
    end
  end

  # 既読ならtrueを返す
  def already_read?(user = User.current)
   return user && user.already_read_issue_ids.include?(self.id)
  end

  # チケットを読んだ日
  def already_read_date(user = self.assigned_to)
    read = already_reads.detect{|r| r.user_id == user.id}
    return (read)? read.created_on : nil
  end
issues_controller_patch.rb
展開頂いた通り修正

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants