Merge pull request #3025 from tchak/fix-carto-migration-notifications
Fix notifications on dossiers with migrated carto
This commit is contained in:
commit
150b43f2e1
3 changed files with 32 additions and 0 deletions
2
Gemfile
2
Gemfile
|
@ -127,6 +127,8 @@ gem "administrate"
|
|||
|
||||
gem 'rack-mini-profiler'
|
||||
|
||||
gem 'rake-progressbar', require: false
|
||||
|
||||
group :test do
|
||||
gem 'launchy'
|
||||
gem 'factory_bot'
|
||||
|
|
|
@ -468,6 +468,7 @@ GEM
|
|||
thor (>= 0.19.0, < 2.0)
|
||||
rainbow (3.0.0)
|
||||
rake (12.3.1)
|
||||
rake-progressbar (0.0.5)
|
||||
rb-fsevent (0.10.3)
|
||||
rb-inotify (0.9.10)
|
||||
ffi (>= 0.5.0, < 2)
|
||||
|
@ -718,6 +719,7 @@ DEPENDENCIES
|
|||
rails
|
||||
rails-controller-testing
|
||||
rails-i18n
|
||||
rake-progressbar
|
||||
rbnacl-libsodium
|
||||
rest-client
|
||||
rgeo-geojson
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
require 'rake-progressbar'
|
||||
|
||||
namespace :after_party do
|
||||
desc 'Deployment task: fix_notifications_after_carto_migration'
|
||||
task fix_notifications_after_carto_migration: :environment do
|
||||
def fix_notifications(dossier)
|
||||
updated_at = dossier.champs[1..-1].map(&:updated_at).max
|
||||
champ_carte = dossier.champs.first
|
||||
if updated_at && (!champ_carte.updated_at || champ_carte.updated_at > updated_at)
|
||||
champ_carte.update_columns(updated_at: updated_at, created_at: updated_at)
|
||||
end
|
||||
end
|
||||
|
||||
dossiers = Dossier.includes(:champs)
|
||||
.joins(procedure: :module_api_carto)
|
||||
.where(procedure: { module_api_cartos: { migrated: true } })
|
||||
|
||||
bar = RakeProgressbar.new(dossiers.count)
|
||||
|
||||
dossiers.find_each do |dossier|
|
||||
fix_notifications(dossier)
|
||||
bar.inc
|
||||
end
|
||||
bar.finished
|
||||
|
||||
AfterParty::TaskRecord.create version: '20181121153709'
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue