diff options
author | Gareth Rees <gareth@mysociety.org> | 2014-11-19 14:00:18 +0000 |
---|---|---|
committer | Gareth Rees <gareth@mysociety.org> | 2014-11-19 14:00:18 +0000 |
commit | 30acdb97eb91f073ee6fde063fb5cb0e9f73a002 (patch) | |
tree | cef3bbe42bd0300df4f2164558659c36498ef9f7 | |
parent | ce30679a74a14d0f52bf14b7dc29113aa54d0b0a (diff) | |
parent | bce02be0a6cab397bba9470126e38ff67ee7465d (diff) |
Merge branch 'issues/1969-inconsistent-public-body-admin-interface' into rails-3-develop
5 files changed, 54 insertions, 52 deletions
diff --git a/app/controllers/admin_public_body_headings_controller.rb b/app/controllers/admin_public_body_headings_controller.rb index 84e5cbf35..e893e760d 100644 --- a/app/controllers/admin_public_body_headings_controller.rb +++ b/app/controllers/admin_public_body_headings_controller.rb @@ -56,13 +56,6 @@ class AdminPublicBodyHeadingsController < AdminController @locale = self.locale_from_params() I18n.with_locale(@locale) do heading = PublicBodyHeading.find(params[:id]) - - if heading.public_body_categories.count > 0 - flash[:notice] = "There are categories associated with this heading, so can't destroy it" - redirect_to edit_admin_heading_url(heading) - return - end - heading.destroy flash[:notice] = "Category heading was successfully destroyed." redirect_to admin_categories_url diff --git a/app/views/admin_public_body_categories/edit.html.erb b/app/views/admin_public_body_categories/edit.html.erb index 95988d688..0664a0515 100644 --- a/app/views/admin_public_body_categories/edit.html.erb +++ b/app/views/admin_public_body_categories/edit.html.erb @@ -1,14 +1,15 @@ -<h1><%=@title%></h1> +<h1><%= @title %></h1> <div class="row"> - <div class="span8"> - <div id="public_body_category_form"> - <%= form_for @category, :url => admin_category_path(@category), :html => { :class => "form form-horizontal" } do |f| %> - <%= render :partial => 'form', :locals => {:f => f} %> - <div class="form-actions"> - <%= f.submit 'Save', :accesskey => 's', :class => "btn btn-success" %></p> - </div> - <% end %> + <div class="span8"> + <div id="public_body_category_form"> + <%= form_for @category, :url => admin_category_path(@category), :html => { :class => "form form-horizontal" } do |f| %> + <%= render :partial => 'form', :locals => { :f => f } %> + + <div class="form-actions"> + <%= f.submit 'Save', :accesskey => 's', :class => "btn btn-success" %> + </div> + <% end %> </div> </div> @@ -18,13 +19,12 @@ </div> </div> -<% if @tagged_public_bodies.empty? %> - <div class="row"> - <div class="span8"> - <%= form_tag(admin_category_path(@category), :method => 'delete', :class => "form form-inline") do %> - <%= hidden_field_tag(:public_body_id, { :value => @category.id } ) %> - <%= submit_tag "Destroy #{@category.title}", :title => @category.title, :class => "btn btn-danger" %> (this is permanent!) +<div class="row"> + <div class="span8"> + <%= form_for @category, :url => admin_category_path(@category), :method => 'delete', :class => "form form-inline" do |f| %> + <%= f.submit "Destroy #{ @category.title }", + :title => @category.title, + :class => "btn btn-danger" %> (this is permanent!) <% end %> - </div> </div> -<% end %> +</div> diff --git a/app/views/admin_public_body_headings/edit.html.erb b/app/views/admin_public_body_headings/edit.html.erb index eff89285a..800394aa4 100644 --- a/app/views/admin_public_body_headings/edit.html.erb +++ b/app/views/admin_public_body_headings/edit.html.erb @@ -1,30 +1,30 @@ -<h1><%=@title%></h1> +<h1><%= @title %></h1> <div class="row"> - <div class="span8"> - <div id="public_body_heading_form"> - <%= form_for @heading, :url => admin_heading_path(@heading), :html => { :class => "form form-horizontal" } do |f| %> - <%= render :partial => 'form', :locals => {:f => f} %> - <div class="form-actions"> - <%= f.submit 'Save', :accesskey => 's', :class => "btn btn-success" %></p> - </div> - <% end %> - </div> + <div class="span8"> + <div id="public_body_heading_form"> + <%= form_for @heading, :url => admin_heading_path(@heading), :html => { :class => "form form-horizontal" } do |f| %> + <%= render :partial => 'form', :locals => { :f => f } %> + + <div class="form-actions"> + <%= f.submit 'Save', :accesskey => 's', :class => "btn btn-success" %> + </div> + <% end %> + </div> </div> <div class="row"> - <div class="span8 well"> - <%= link_to 'List all', admin_categories_path, :class => "btn" %> - </div> + <div class="span8 well"> + <%= link_to 'List all', admin_categories_path, :class => "btn" %> + </div> </div> -<% if @heading.public_body_categories.empty? %> - <div class="row"> - <div class="span8"> - <%= form_tag(admin_heading_path(@heading), :method => 'delete', :class => "form form-inline") do %> - <%= hidden_field_tag(:public_body_heading_id, { :value => @heading.id } ) %> - <%= submit_tag "Destroy #{@heading.name}", :name => @heading.name, :class => "btn btn-danger" %> (this is permanent!) +<div class="row"> + <div class="span8"> + <%= form_for @heading, :url => admin_heading_path(@heading), :method => 'delete', :class => "form form-inline" do |f| %> + <%= f.submit "Destroy #{ @heading.name }", + :name => @heading.name, + :class => "btn btn-danger" %> (this is permanent!) <% end %> - </div> </div> -<% end %> +</div> diff --git a/spec/controllers/admin_public_body_categories_controller_spec.rb b/spec/controllers/admin_public_body_categories_controller_spec.rb index 4fb5181be..4c641bd75 100644 --- a/spec/controllers/admin_public_body_categories_controller_spec.rb +++ b/spec/controllers/admin_public_body_categories_controller_spec.rb @@ -214,15 +214,21 @@ describe AdminPublicBodyCategoriesController do end context 'when destroying a public body category' do - - it "destroys a public body category" do + it "destroys empty public body categories" do pbc = PublicBodyCategory.create(:title => "Empty Category", :category_tag => "empty", :description => "-") n = PublicBodyCategory.count post :destroy, { :id => pbc.id } response.should redirect_to(admin_categories_path) PublicBodyCategory.count.should == n - 1 end - end - + it "destroys non-empty public body categories" do + authority = FactoryGirl.create(:public_body) + pbc = PublicBodyCategory.create(:title => "In-Use Category", :category_tag => "empty", :description => "-", :authorities => [authority]) + n = PublicBodyCategory.count + post :destroy, { :id => pbc.id } + response.should redirect_to(admin_categories_path) + PublicBodyCategory.count.should == n - 1 + end + end end diff --git a/spec/controllers/admin_public_body_headings_controller_spec.rb b/spec/controllers/admin_public_body_headings_controller_spec.rb index 60f563e57..afbe0fa30 100644 --- a/spec/controllers/admin_public_body_headings_controller_spec.rb +++ b/spec/controllers/admin_public_body_headings_controller_spec.rb @@ -136,16 +136,19 @@ describe AdminPublicBodyHeadingsController do @heading = FactoryGirl.create(:public_body_heading) end - it "does not destroy a public body heading that has associated categories" do + it "destroys a public body heading that has associated categories" do category = FactoryGirl.create(:public_body_category) link = FactoryGirl.create(:public_body_category_link, :public_body_category => category, :public_body_heading => @heading, :category_display_order => 0) n = PublicBodyHeading.count + n_links = PublicBodyCategoryLink.count + post :destroy, { :id => @heading.id } - response.should redirect_to(edit_admin_heading_path(@heading)) - PublicBodyHeading.count.should == n + response.should redirect_to(admin_categories_path) + PublicBodyHeading.count.should == n - 1 + PublicBodyCategoryLink.count.should == n_links - 1 end it "destroys an empty public body heading" do |