aekondratiev / redmine_telegram_email

Messages to the Telegram, like email, from Redmine.
17 stars 5 forks source link

Support for Redmine 4.0 #6

Closed dktcoding closed 2 years ago

dktcoding commented 5 years ago

Hi there,

I was wondering if there's any plan of upgrading support for Redmine 4.0

There seems to be some changes on how Redmine 4 processes emails for once: http://www.redmine.org/issues/26791, unfortunately I don't know enough of Ruby/Rails to fix it...

Also there's the problem of the deprecation of alias_method_chain which could be solved with something like:

diff --git a/lib/telegram_mailer_patch.rb b/lib/telegram_mailer_patch.rb
index afd3275..b51553b 100644
--- a/lib/telegram_mailer_patch.rb
+++ b/lib/telegram_mailer_patch.rb
@@ -10,8 +10,10 @@ module TelegramMailerPatch
     base.send(:include, InstanceMethods)

     base.class_eval do
-      alias_method_chain :issue_add, :telegram
-      alias_method_chain :issue_edit, :telegram
+       alias_method :issue_add_without_telegram, :issue_add
+       alias_method :issue_add, :issue_add_with_telegram
+       alias_method :issue_edit_without_telegram, :issue_edit
+       alias_method :issue_edit, :issue_edit_with_telegram
     end
   end

With the above path applied Errors change to:

Processing by IssuesController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"***********", "form_update_triggered_by"=>"", "issue"=>{"is_private"=>"0", "project_id"=>"97", "author_id"=>"10", "tracker_id"=>"9", "subject"=>"asdvdfavs", "description"=>"sadfssac", "status_id"=>"1", "priority_id"=>"2", "assigned_to_id"=>"10", "parent_issue_id"=>"", "start_date"=>"2018-12-10", "due_date"=>"", "estimated_hours"=>"", "done_ratio"=>"0", "custom_field_values"=>{"8"=>"Desconocido"}, "tag_list"=>"", "notes"=>"fxv b", "private_notes"=>"0", "lock_version"=>"2"}, "was_default_status"=>"1", "time_entry"=>{"hours"=>"", "activity_id"=>"", "comments"=>""}, "last_journal_id"=>"3887", "commit"=>"Aceptar", "next_issue_id"=>"1047", "issue_position"=>"1", "issue_count"=>"4", "id"=>"1048"}
  Current user: fede (id=10)
[ActiveJob] [ActionMailer::DeliveryJob] [a8a3f83f-b656-4802-acc0-c7ed27803adf] Performing ActionMailer::DeliveryJob (Job ID: a8a3f83f-b656-4802-acc0-c7ed27803adf) from Async(mailers) with arguments: "Mailer", "issue_edit", "deliver_now", #<GlobalID:0x0000564344519db0 @uri=#<URI::GID gid://redmine-app/User/10>>, #<GlobalID:0x0000564344518fc8 @uri=#<URI::GID gid://redmine-app/Journal/3888>>
[ActiveJob] [ActionMailer::DeliveryJob] [a8a3f83f-b656-4802-acc0-c7ed27803adf] Error performing ActionMailer::DeliveryJob (Job ID: a8a3f83f-b656-4802-acc0-c7ed27803adf) from Async(mailers) in 83.34ms: NoMethodError (undefined method `journalized' for #<User:0x0000564344528d88>):
/var/lib/gems/2.5.0/gems/activemodel-5.2.2/lib/active_model/attribute_methods.rb:430:in `method_missing'
/home/redmine/redmine-4.0.0/plugins/redmine_telegram_email/lib/telegram_mailer_patch.rb:134:in `issue_edit_with_telegram'
/var/lib/gems/2.5.0/gems/actionpack-5.2.2/lib/abstract_controller/base.rb:194:in `process_action'
/var/lib/gems/2.5.0/gems/actionpack-5.2.2/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:98:in `run_callbacks'
/var/lib/gems/2.5.0/gems/actionpack-5.2.2/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/lib/gems/2.5.0/gems/actionpack-5.2.2/lib/abstract_controller/base.rb:134:in `process'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/rescuable.rb:25:in `block in process'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/rescuable.rb:17:in `handle_exceptions'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/rescuable.rb:24:in `process'
/var/lib/gems/2.5.0/gems/actionview-5.2.2/lib/action_view/rendering.rb:32:in `process'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/base.rb:607:in `block in process'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/notifications.rb:168:in `block in instrument'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/notifications.rb:168:in `instrument'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/base.rb:606:in `process'
/home/redmine/redmine-4.0.0/app/models/mailer.rb:46:in `process'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/message_delivery.rb:123:in `block in processed_mailer'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/message_delivery.rb:122:in `tap'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/message_delivery.rb:122:in `processed_mailer'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/message_delivery.rb:113:in `deliver_now'
/var/lib/gems/2.5.0/gems/actionmailer-5.2.2/lib/action_mailer/delivery_job.rb:16:in `perform'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/execution.rb:39:in `block in perform_now'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:109:in `block in run_callbacks'
/var/lib/gems/2.5.0/gems/i18n-0.7.0/lib/i18n.rb:257:in `with_locale'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:118:in `instance_exec'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/logging.rb:26:in `block (4 levels) in <module:Logging>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/notifications.rb:168:in `block in instrument'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/notifications.rb:168:in `instrument'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/logging.rb:25:in `block (3 levels) in <module:Logging>'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/logging.rb:46:in `block in tag_logger'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/tagged_logging.rb:71:in `block in tagged'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/tagged_logging.rb:28:in `tagged'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/tagged_logging.rb:71:in `tagged'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/logging.rb:46:in `tag_logger'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/logging.rb:22:in `block (2 levels) in <module:Logging>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:118:in `instance_exec'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:136:in `run_callbacks'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/execution.rb:38:in `perform_now'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/execution.rb:24:in `block in execute'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:109:in `block in run_callbacks'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/railtie.rb:28:in `block (4 levels) in <class:Railtie>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/execution_wrapper.rb:87:in `wrap'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/reloader.rb:73:in `block in wrap'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/execution_wrapper.rb:87:in `wrap'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/reloader.rb:72:in `wrap'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/railtie.rb:27:in `block (3 levels) in <class:Railtie>'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:118:in `instance_exec'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/lib/gems/2.5.0/gems/activesupport-5.2.2/lib/active_support/callbacks.rb:136:in `run_callbacks'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/execution.rb:22:in `execute'
/var/lib/gems/2.5.0/gems/activejob-5.2.2/lib/active_job/queue_adapters/async_adapter.rb:70:in `perform'
/var/lib/gems/2.5.0/gems/concurrent-ruby-1.1.3/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/var/lib/gems/2.5.0/gems/concurrent-ruby-1.1.3/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/var/lib/gems/2.5.0/gems/concurrent-ruby-1.1.3/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/var/lib/gems/2.5.0/gems/concurrent-ruby-1.1.3/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/var/lib/gems/2.5.0/gems/concurrent-ruby-1.1.3/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/var/lib/gems/2.5.0/gems/concurrent-ruby-1.1.3/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
[ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: a8a3f83f-b656-4802-acc0-c7ed27803adf) to Async(mailers) with arguments: 
"Mailer", "issue_edit", "deliver_now", #<GlobalID:0x000056434453cb80 @uri=#<URI::GID gid://redmine-app/User/10>>, #<GlobalID:0x000056434453c018 @uri=#<URI::GID gid://redmine-app/Journal/3888>>

Regards

aekondratiev commented 2 years ago

Hello, added support to 4.1