Ability to delete geozones from admin dashboard

This commit is contained in:
Alberto Miedes Garcés
2016-12-08 13:16:42 +01:00
parent 4a58c786c8
commit 93e79228a7
5 changed files with 95 additions and 0 deletions

View File

@@ -29,6 +29,30 @@ class Admin::GeozonesController < Admin::BaseController
render :edit
end
end
def destroy
# Check that in none of the other associated models talbes a record exists
# referencing this geozone
safe_to_destroy = true
# safe_to_destroy &= Proposal.where(geozone: @geozone).empty?
# safe_to_destroy &= Debate.where(geozone: @geozone).empty?
# safe_to_destroy &= SpendingProposal.where(geozone: @geozone).empty?
# safe_to_destroy &= User.where(geozone: @geozone).empty?
Geozone.reflect_on_all_associations.each do |association|
attached_model = association.klass
safe_to_destroy &= attached_model.where(geozone: @geozone).empty?
end
if safe_to_destroy
@geozone.destroy
redirect_to admin_geozones_url, notice: t('admin.geozones.delete.success')
else
redirect_to admin_geozones_path, flash: { error: t('admin.geozones.delete.error') }
end
end
private
def geozone_params