Merge pull request #3025 from tchak/fix-carto-migration-notifications

Fix notifications on dossiers with migrated carto
This commit is contained in:
gregoirenovel 2018-11-22 11:25:48 +01:00 committed by GitHub
commit 150b43f2e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 0 deletions

View file

@ -127,6 +127,8 @@ gem "administrate"
gem 'rack-mini-profiler'
gem 'rake-progressbar', require: false
group :test do
gem 'launchy'
gem 'factory_bot'

View file

@ -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

View file

@ -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