Hey Jozef,
It looks good, but I've found a few issues:
There are four trailing whitespaces, inline.
Next, I can create multiple families using the same name. I'm not sure
it is a problem but I do find it confusing. Unless you know better,
please fix that one, too.
Finally, there's this error:
1. Select Admin > Pool Families from the navigation
2. Click on the "default" pool family
3. In the details pane, click on the "History" tab
I'm getting this error:
Internal Server Error
Missing template admin/pool_families/_history.erb in view path
app/views
The same goes for Permissions, Provider Accounts and Pools.
Please put the following files (empty if you must) into the views:
admin/pool_families/_history.haml
admin/pool_families/_permissions.haml
admin/pool_families/_provider_accounts.haml
admin/pool_families/_pools.haml
Please resend the patch after you fix these.
Thanks,
Thomas
On 01/11/2011 04:28 PM, [email protected] wrote:
> From: Jozef Zigmund<[email protected]>
>
> This patch contains updated controller for basic CRUD operations, views for
> actions and cucumber tests.
> ---
> .../controllers/admin/pool_families_controller.rb | 67
> ++++++++++++++++++++
> src/app/controllers/admin/providers_controller.rb | 2 +-
> src/app/models/pool_family.rb | 2 +-
> src/app/views/admin/pool_families/_form.haml | 6 ++
> src/app/views/admin/pool_families/_list.haml | 23 +++++++
> src/app/views/admin/pool_families/_properties.haml | 4 +
> src/app/views/admin/pool_families/edit.haml | 7 ++
> src/app/views/admin/pool_families/index.haml | 3 +-
> src/app/views/admin/pool_families/new.haml | 3 +
> src/app/views/admin/pool_families/show.haml | 5 ++
> src/config/routes.rb | 3 +-
> src/features/pool_family.feature | 47 ++++++++++++++
> src/features/step_definitions/pool_family_steps.rb | 28 ++++++++
> 13 files changed, 196 insertions(+), 4 deletions(-)
> create mode 100644 src/app/views/admin/pool_families/_form.haml
> create mode 100644 src/app/views/admin/pool_families/_list.haml
> create mode 100644 src/app/views/admin/pool_families/_properties.haml
> create mode 100644 src/app/views/admin/pool_families/edit.haml
> create mode 100644 src/app/views/admin/pool_families/new.haml
> create mode 100644 src/app/views/admin/pool_families/show.haml
> create mode 100644 src/features/pool_family.feature
> create mode 100644 src/features/step_definitions/pool_family_steps.rb
>
> diff --git a/src/app/controllers/admin/pool_families_controller.rb
> b/src/app/controllers/admin/pool_families_controller.rb
> index a1a3a9a..cfe7025 100644
> --- a/src/app/controllers/admin/pool_families_controller.rb
> +++ b/src/app/controllers/admin/pool_families_controller.rb
> @@ -1,6 +1,73 @@
> class Admin::PoolFamiliesController< ApplicationController
> before_filter :require_user
> + before_filter :load_pool_families, :only =>[:index,:show]
>
> def index
> end
> +
> + def new
> + @pool_family = PoolFamily.new
> + end
> +
> + def create
> + @pool_family = PoolFamily.new(params[:pool_family])
> + unless @pool_family.save
> + flash.now[:warning] = "Pool family's creation failed."
> + render :new and return
> + else
> + flash[:notice] = "Pool family was added."
> + redirect_to admin_pool_families_path
> + end
> + end
> +
> + def edit
> + @pool_family = PoolFamily.find(params[:id])
> + end
> +
> + def update
> + @pool_family = PoolFamily.find(params[:id])
> + unless @pool_family.update_attributes(params[:pool_family])
> + flash[:error] = "Pool Family wasn't updated!"
> + render :action => 'edit' and return
> + else
> + flash[:notice] = "Pool Family was updated!"
> + redirect_to admin_pool_families_path
> + end
> + end
> +
> + def show
> + @pool_family = PoolFamily.find(params[:id])
> + @url_params = params.clone
> + @tab_captions = ['Properties', 'History', 'Permissions', 'Provider
> Accounts', 'Pools']
> + @details_tab = params[:details_tab].blank? ? 'properties' :
> params[:details_tab]
> + respond_to do |format|
> + format.js do
> + if @url_params.delete :details_pane
> + render :partial => 'layouts/details_pane' and return
> + end
> + render :parial => @details_tab and return
> + end
> + format.html { render :show }
> + end
> + end
> +
> + def multi_destroy
> + PoolFamily.destroy(params[:pool_family_selected])
> + redirect_to admin_pool_families_path
> + end
> +
> + protected
> +
> + def load_pool_families
> + @header = [{ :name => "Name", :sort_attr => :name},
> + { :name => "Quota limit", :sort_attr => :name},
> + { :name => "Quota currently in use", :sort_attr => :name},
> + ]
> + @pool_families = PoolFamily.paginate(:all,
> + :page => params[:page] || 1,
> + :order => ( params[:order_field]
> || 'name' ) + ' ' + (params[:order_dir] || 'asc')
> + )
> + @url_params = params.clone
> + end
> end
> +
New line at EOF ^^^
> diff --git a/src/app/controllers/admin/providers_controller.rb
> b/src/app/controllers/admin/providers_controller.rb
> index 5f2f437..aac2c1d 100644
> --- a/src/app/controllers/admin/providers_controller.rb
> +++ b/src/app/controllers/admin/providers_controller.rb
> @@ -28,7 +28,7 @@ class Admin::ProvidersController< ApplicationController
> end
> render :partial => @details_tab and return
> end
> - format.html { render :action => 'show'}
> + format.html { render :action => 'show' }
> end
> end
>
> diff --git a/src/app/models/pool_family.rb b/src/app/models/pool_family.rb
> index c070ee8..6925680 100644
> --- a/src/app/models/pool_family.rb
> +++ b/src/app/models/pool_family.rb
> @@ -20,7 +20,7 @@
> # Likewise, all the methods added will be available for all controllers.
>
> class PoolFamily< ActiveRecord::Base
> -
> + include PermissionedObject
> DEFAULT_POOL_FAMILY_KEY = "default_pool_family"
>
> has_many :pools, :dependent => :destroy
> diff --git a/src/app/views/admin/pool_families/_form.haml
> b/src/app/views/admin/pool_families/_form.haml
> new file mode 100644
> index 0000000..362b67c
> --- /dev/null
> +++ b/src/app/views/admin/pool_families/_form.haml
> @@ -0,0 +1,6 @@
> += form.error_message_on :name, 'Name'
> +%fieldset.clear
> + = form.label :name,'Pool Family Name :'
> + = form.text_field :name, :title => 'pool_family_name', :value =>
> @pool_family.name, :class => "clear grid_4 alpha"
> +%fieldset.clear
> + = form.submit "Save", :class => "submit formbutton"
> diff --git a/src/app/views/admin/pool_families/_list.haml
> b/src/app/views/admin/pool_families/_list.haml
> new file mode 100644
> index 0000000..7c31719
> --- /dev/null
> +++ b/src/app/views/admin/pool_families/_list.haml
> @@ -0,0 +1,23 @@
> +- form_tag do
> + = link_to "Create", new_admin_pool_family_path, :class => "button"
> + = restful_submit_tag "Delete", 'destroy',
> multi_destroy_admin_pool_families_path, 'DELETE', :id => 'delete_button'
> +
> + %p
> + Select:
> + = link_to "All", @url_params.merge(:select => 'all')
> + %span> ,
> + = link_to "None", @url_params.merge(:select => 'none')
> +
> + %table#pool_famlies_table
> + = sortable_table_header @header
> + - unless @pool_families.blank?
Trailing space at EOL ^^^
> + - @pool_families.each do |pool_family|
> + %tr
> + %td
> + - selected = @url_params[:select] == 'all'
> + %input{:name => "pool_family_selected[]", :type => "checkbox",
> :value => pool_family.id, :id => "pool_family_checkbox_#{pool_family.id}",
> :checked => selected }
> + = link_to pool_family.name, admin_pool_family_path(pool_family)
> + %td
> +
Trailing whitespace ^^^
> + %td
> + xx %
> diff --git a/src/app/views/admin/pool_families/_properties.haml
> b/src/app/views/admin/pool_families/_properties.haml
> new file mode 100644
> index 0000000..02d197e
> --- /dev/null
> +++ b/src/app/views/admin/pool_families/_properties.haml
> @@ -0,0 +1,4 @@
> +%h3
> + Properties for
> + = @pool_family.name
> += link_to "Edit", edit_admin_pool_family_path(@pool_family), {:class =>
> 'button'}
> diff --git a/src/app/views/admin/pool_families/edit.haml
> b/src/app/views/admin/pool_families/edit.haml
> new file mode 100644
> index 0000000..1c09438
> --- /dev/null
> +++ b/src/app/views/admin/pool_families/edit.haml
> @@ -0,0 +1,7 @@
> +%h3
> + Editing
> + = @pool_family.name
> + Pool Family
> +
> +-form_for @pool_family, :url => admin_pool_family_path(@pool_family), :html
> => { :method => :put } do |f|
> + = render :partial => 'form', :locals => { :form => f, :cancel_path =>
> admin_providers_path }
> diff --git a/src/app/views/admin/pool_families/index.haml
> b/src/app/views/admin/pool_families/index.haml
> index e50f43b..62ccbc6 100644
> --- a/src/app/views/admin/pool_families/index.haml
> +++ b/src/app/views/admin/pool_families/index.haml
> @@ -1 +1,2 @@
> -admin/pool_families/index.haml
> +- content_for :list do
> + = render :partial => 'list'
> diff --git a/src/app/views/admin/pool_families/new.haml
> b/src/app/views/admin/pool_families/new.haml
> new file mode 100644
> index 0000000..7dbac4c
> --- /dev/null
> +++ b/src/app/views/admin/pool_families/new.haml
> @@ -0,0 +1,3 @@
> +%h2 Create a new Pool family
> +- form_for @pool_family, :url => admin_pool_families_path do |f|
> + = render :partial => "form", :locals => { :form => f, :cancel_path =>
> admin_pool_families_path }
> diff --git a/src/app/views/admin/pool_families/show.haml
> b/src/app/views/admin/pool_families/show.haml
> new file mode 100644
> index 0000000..0c36221
> --- /dev/null
> +++ b/src/app/views/admin/pool_families/show.haml
> @@ -0,0 +1,5 @@
> +- content_for 'list' do
> + = render :partial => 'list'
> +
> +- content_for 'details' do
> + = render :partial => 'layouts/details_pane'
> diff --git a/src/config/routes.rb b/src/config/routes.rb
> index 6d9b5cf..b3049f7 100644
> --- a/src/config/routes.rb
> +++ b/src/config/routes.rb
> @@ -47,12 +47,13 @@ ActionController::Routing::Routes.draw do |map|
> map.connect '/set_layout', :controller => 'application', :action =>
> 'set_layout'
>
> map.namespace 'admin' do |r|
> - r.resources :hardware_profiles, :pool_families, :realms
> + r.resources :hardware_profiles, :realms
> r.resources :providers, :collection => { :multi_destroy => :delete }
> r.resources :users, :collection => { :multi_destroy => :delete }
> r.resources :provider_accounts, :collection => { :multi_destroy =>
> :delete }
> r.resources :roles, :collection => { :multi_destroy => :delete }
> r.resources :settings, :collection => { :self_service => :get,
> :general_settings => :get }
> + r.resources :pool_families, :collection => { :multi_destroy => :delete
> }
> end
>
> map.resources :pools
> diff --git a/src/features/pool_family.feature
> b/src/features/pool_family.feature
> new file mode 100644
> index 0000000..64c5635
> --- /dev/null
> +++ b/src/features/pool_family.feature
> @@ -0,0 +1,47 @@
> +Feature: Pool Families
> + In order to manage my cloud infrastructure
> + As a user
> + I want to manage pool families
> +
> + Background:
> + Given I am an authorised user
> + And I am logged in
> + And I am using new UI
> +
> + Scenario: List pool families
> + Given I am on the homepage
> + And there are these pool families:
> + | name |
> + | pool_family1 |
> + | pool_family2 |
> + | pool_family3 |
> + When I go to the admin pool families page
> + Then I should see the following:
> + | pool_family1 |
> + | pool_family2 |
> + | pool_family3 |
> +
> + Scenario: Show pool family details
> + Given there is a pool family named "testpoolfamily"
> + And I am on the admin pool families page
> + When I follow "testpoolfamily"
> + Then I should see "Name"
> +
> + Scenario: Create a new Pool family
> + Given I am on the admin pool families page
> + And there is not a pool family named "testpoolfamily"
> + When I follow "Create"
> + Then I should be on the new admin pool family page
> + When I fill in "pool_family[name]" with "testpoolfamily"
> + And I press "Save"
> + Then I should be on the admin pool families page
> + And I should see "Pool family was added."
> + And I should have a pool family named "testpoolfamily"
> +
> + Scenario: Delete a pool family
> + Given I am on the homepage
> + And there is a pool family named "poolfamily1"
> + When I go to the admin pool families page
> + And I check "poolfamily1" pool family
> + And I press "Delete"
> + Then there should not exist a pool family named "poolfamily1"
> diff --git a/src/features/step_definitions/pool_family_steps.rb
> b/src/features/step_definitions/pool_family_steps.rb
> new file mode 100644
> index 0000000..2de705e
> --- /dev/null
> +++ b/src/features/step_definitions/pool_family_steps.rb
> @@ -0,0 +1,28 @@
> +Given /^there are these pool families:$/ do |table|
> + table.hashes.each do |hash|
> + Factory(:pool_family, :name => hash['name'])
> + end
> +end
> +
> +Given /^there is a pool family named "([^\"]*)"$/ do |name|
> + @provider = Factory(:pool_family, :name => name)
> +end
> +
> +Given /^there is not a pool family named "([^"]*)"$/ do |name|
> + pool_family = PoolFamily.find_by_name(name)
> + if pool_family then pool_family.destroy end
> +end
> +
> +Then /^I should have a pool family named "([^\"]*)"$/ do |name|
> + PoolFamily.find_by_name(name).should_not be_nil
> +end
> +
> +When /^(?:|I )check "([^"]*)" pool family$/ do |name|
> + poolfamily = PoolFamily.find_by_name(name)
> + check("pool_family_checkbox_#{poolfamily.id}")
> +end
> +
> +Then /^there should not exist a pool family named "([^\"]*)"$/ do |name|
> + PoolFamily.find_by_name(name).should be_nil
> +end
> +
Newline at EOF ^^^
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel