diff --git a/app/models/ordergroup.rb b/app/models/ordergroup.rb index 9b50907e..efaae4de 100644 --- a/app/models/ordergroup.rb +++ b/app/models/ordergroup.rb @@ -62,6 +62,7 @@ class Ordergroup < Group # Get group_order.price for every finished order in this period orders_sum = group_orders.includes(:order).merge(Order.finished).where('orders.ends >= ?', time).sum(:price) + @readonly = false # Dirty hack, avoid getting RecordReadOnly exception when called in task after_save callback. A rails bug? update_attribute(:stats, {:jobs_size => jobs, :orders_sum => orders_sum}) end diff --git a/app/models/task.rb b/app/models/task.rb index 3a290e2c..e957d2f1 100644 --- a/app/models/task.rb +++ b/app/models/task.rb @@ -99,7 +99,7 @@ class Task < ActiveRecord::Base def update_ordergroup_stats if done - users.each { |u| u.ordergroup.update_stats! if u.ordergroup } + Ordergroup.joins(:users).where(users: {id: user_ids}).each(&:update_stats!) end end end