module Card::Action::Admin

methods for administering card actions

Public Instance Methods

delete_cardless() click to toggle source

permanently delete all {Action actions} not associated with a {Card}

# File lib/card/action/admin.rb, line 6
def delete_cardless
  left_join = "LEFT JOIN cards ON card_actions.card_id = cards.id"
  joins(left_join).where("cards.id IS NULL").delete_all
end
delete_old() click to toggle source

permanently delete all {Action actions} associate with non-current {Change changes}

# File lib/card/action/admin.rb, line 13
def delete_old
  Card::Change.delete_all
  Card.find_each(&:delete_old_actions)
  Card::Act.delete_actionless
end
make_current_state_the_initial_state(act=nil) click to toggle source

If an act is given then all remaining actions will be attached to that act. Otherwise the actions keep their acts.

# File lib/card/action/admin.rb, line 21
def make_current_state_the_initial_state act=nil
  Card::Change.delete_all
  Card.find_each(&:delete_old_actions)
  action_update = { action_type: Card::Action::TYPE_OPTIONS.index(:create) }
  action_update[:card_act_id] = act.id if act
  Card::Action.update_all action_update

  if act
    Card::Act.where("id != :id", id: act.id).delete_all
  else
    Card::Act.delete_actionless
  end
end