Defect #32537

Rake taks works on redmine 3.4 but does not work on 4 while for Redmine 4 it works in console

Added by Aleksandar Pavic about 2 years ago. Updated about 1 year ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Custom fields
Target version:-
Resolution: Affected version:4.0.4

Description

I have described problem here:

https://stackoverflow.com/questions/59104015/saving-issue-custom-field-values-via-rake-task-in-redmine?noredirect=1#comment104442404_59104015

So, same code works in console on Redmine 4, and on Redmine 3.4 it works well in both console and as rake task.

On Redmine 4, as rake task, it says "saved" but no actual database change occured.

History

#1 Updated by Aleksandar Pavic about 2 years ago

Eventually I was able to make the following code work with Redmine 4

namespace :redmine do
  namespace :myplugin do
    desc 'Updates custom field for idle tickets.'
    task :update_idle => :environment do
      Issue.open.each do |issue|
        begin
          days = DateTime.now.to_time - DateTime.parse(issue.updated_on.to_s).to_time
          days = days/86400
          if days > 0
            issue.custom_values.each do |x|
              if x.custom_field_id == 19
                x.value = days.ceil
                x.save
              end
             end
            issue.save
            true
          end
        end
      end
    end
  end
end


But I still think above described behavior is bug...

#2 Updated by Go MAEDA about 1 year ago

Could you try again after changing all save method to save! method?

save! thorows an exception when it fails. Probably it is useful to troubleshoot this issue.

Also available in: Atom PDF