プロジェクト

全般

プロフィール

Defect #1405

未完了

Macro not working in email notification

Leith Caldwell さんが約8年前に追加. ほぼ5年前に更新.

ステータス:
新規(New)
優先度:
高め(High)
カテゴリ:
-
対象バージョン:
-
開始日:
2016/03/01
期日:
進捗率:

0%

予定工数:

説明

Adding the ref_issues macro to news items works perfectly for displaying news in the browser, however when the email notifications are sent out for those news items, I get this error:

Error executing the ref_issues macro (undefined method `session' for #
/usr/local/bundle/gems/actionpack-3.2.22/lib/action_view/helpers/controller_helper.rb:10:in `session')

This is the macro usage I am using:

{{ref_issues(-f:status_id = 5, -f:updated_on >< 2016-02-23|2016-02-29, -f:tracker_id = 1|2|6, project, tracker, subject, cf_12)}}

Tomohisa Kusukawa さんが7年以上前に更新

  • 対象バージョン を削除 (0.0.7)

Leith Caldwell さんが7年以上前に更新

Kusukawa-san, is there something I can do to help you track this down?

Tomohisa Kusukawa さんが7年以上前に更新

I'm sorry.
I have been investigating several times, but any solution has not been found.

Satoru Ichioka さんがほぼ5年前に更新

Wiki Listsをいつも便利に利用させていただいています。
私もチケット更新メール通知時のみ同様のエラーが出ているためご報告です。
ワークアラウンドなど対策方法あればご教示いただけると幸いです。

エラーメッセージ(抜粋)

Error executing the ref_issues macro (undefined method `session' for #
/var/lib/redmine/vendor/bundle/ruby/2.4.0/gems/actionview-4.2.8/lib/action_view/helpers/controller_helper.rb:10:in `session'
/var/lib/redmine/app/helpers/sort_helper.rb:93:in `sort_clear'
/var/lib/redmine/plugins/redmine_wiki_lists/lib/redmine_wiki_lists/ref_issues.rb:52:in `block (2 levels) in '
・・・(以下略)

ref_issuesマクロはチケットの説明欄に記載しています。
メール通知時以外は問題なく動作しています。

{{ref_issues(-i=109, -f:cf_71 = [subject])}}

Redmine環境は以下の通りです。

Environment:
  Redmine version                3.4.6.stable.17443
  Ruby version                   2.4.4-p296 (2018-03-28) [x86_64-linux]
  Rails version                  4.2.8
  Environment                    production
  Database adapter               Mysql2

Redmine plugins:
 ・・・
  redmine_wiki_lists             0.0.9

Leith Caldwell さんがほぼ5年前に更新

Kusukawa-san, just revisiting this a little...

So ref_issues.rb calls sort_clear:
https://www.r-labs.org/projects/wiki_lists/repository/63/revisions/master/entry/lib/redmine_wiki_lists/ref_issues.rb#L52

sort_clear is a pretty simple Redmine helper:
https://github.com/redmine/redmine/blob/7aa642ad7acbf40083b4e870acf8aa71d27eb0e9/app/helpers/sort_helper.rb#L92

The call to session triggers a call to the controller_helper in Rails:
https://github.com/rails/rails/blob/4-2-stable/actionview/lib/action_view/helpers/controller_helper.rb#L10

So apparently :session is an undefined delegated method in this context.

According to this SO answer:

[...] session is only available in context of controllers and views.

This is backed up by this SO answer as well.

Redmine's email notifications generated from posting news are triggered from the context of a class (ActionMailer), rather than a controller/view. This would be why the in-page version (using controller/view) still works just fine.

This SO question has a lot of discussion around this topic. It looks like you just need to include or extend the ApplicationHelper?

他の形式にエクスポート: Atom PDF