Commit 74da6b9ddc01be4ce5661e1b9256a36c566a347a
1 parent
4c7be69e
Exists in
master
and in
29 other branches
ActionItem28: initial implemetation of products still without the views
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@919 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
10 changed files
with
121 additions
and
1 deletions
Show diff stats
app/controllers/my_profile/manage_products_controller.rb
0 → 100644
... | ... | @@ -0,0 +1,47 @@ |
1 | +class ManageProductsController < ApplicationController | |
2 | + needs_profile | |
3 | + | |
4 | + def index | |
5 | + @products = @profile.products | |
6 | + end | |
7 | + | |
8 | + def show | |
9 | + @product = @profile.products.find(params[:id]) | |
10 | + end | |
11 | + | |
12 | + def new | |
13 | + @product = @profile.products.build(params[:product]) | |
14 | + if request.post? | |
15 | + if @product.save | |
16 | + flash[:notice] = _('Product succesfully created') | |
17 | + redirect_to :action => 'show', :id => @product | |
18 | + else | |
19 | + flash[:notice] = _('Could not create the product') | |
20 | + end | |
21 | + end | |
22 | + end | |
23 | + | |
24 | + def edit | |
25 | + @product = @profile.products.find(params[:id]) | |
26 | + if request.post? | |
27 | + if @product.update_attributes(params[:product]) | |
28 | + flash[:notice] = _('Product succesfully updated') | |
29 | + redirect_back_or_default :action => 'show', :id => @product | |
30 | + else | |
31 | + flash[:notice] = _('Could not update the product') | |
32 | + end | |
33 | + end | |
34 | + end | |
35 | + | |
36 | + def destroy | |
37 | + @product = @profile.products.find(params[:id]) | |
38 | + if @product.destroy | |
39 | + flash[:notice] = _('Product succesfully removed') | |
40 | + redirect_back_or_default :action => 'index' | |
41 | + else | |
42 | + flash[:notice] = _('Could not remove the product') | |
43 | + redirect_back_or_default :action => 'show', :id => @product | |
44 | + end | |
45 | + end | |
46 | + | |
47 | +end | ... | ... |
app/models/enterprise.rb
app/models/product_category.rb
config/environment.rb
... | ... | @@ -86,7 +86,7 @@ Comatose.configure do |config| |
86 | 86 | |
87 | 87 | config.default_filter = '[No Filter]' |
88 | 88 | end |
89 | -Comatose::AdminController.design :holder => 'environment' | |
89 | +#Comatose::AdminController.design :holder => 'environment' | |
90 | 90 | Comatose::AdminController.before_filter do |controller| |
91 | 91 | # TODO: copy/paste; extract this into a method (see |
92 | 92 | # app/controllers/application.rb) | ... | ... |
... | ... | @@ -0,0 +1,14 @@ |
1 | +class CreateProducts < ActiveRecord::Migration | |
2 | + def self.up | |
3 | + create_table :products do |t| | |
4 | + t.column :enterprise_id, :integer | |
5 | + t.column :product_category_id, :integer | |
6 | + t.column :name, :string | |
7 | + t.column :price, :decimal | |
8 | + end | |
9 | + end | |
10 | + | |
11 | + def self.down | |
12 | + drop_table :products | |
13 | + end | |
14 | +end | ... | ... |
... | ... | @@ -0,0 +1,18 @@ |
1 | +require File.dirname(__FILE__) + '/../test_helper' | |
2 | +require 'manage_products_controller' | |
3 | + | |
4 | +# Re-raise errors caught by the controller. | |
5 | +class ManageProductsController; def rescue_action(e) raise e end; end | |
6 | + | |
7 | +class ManageProductsControllerTest < Test::Unit::TestCase | |
8 | + def setup | |
9 | + @controller = ManageProductsController.new | |
10 | + @request = ActionController::TestRequest.new | |
11 | + @response = ActionController::TestResponse.new | |
12 | + end | |
13 | + | |
14 | + # Replace this with your real tests. | |
15 | + def test_truth | |
16 | + assert true | |
17 | + end | |
18 | +end | ... | ... |
... | ... | @@ -0,0 +1,26 @@ |
1 | +require File.dirname(__FILE__) + '/../test_helper' | |
2 | + | |
3 | +class ProductTest < Test::Unit::TestCase | |
4 | + | |
5 | + should 'create product' do | |
6 | + assert_difference Product, :count do | |
7 | + p = Product.new(:name => 'test product') | |
8 | + assert p.save | |
9 | + end | |
10 | + end | |
11 | + | |
12 | + should 'destroy product' do | |
13 | + p = Product.create(:name => 'test product') | |
14 | + assert_difference Product, :count, -1 do | |
15 | + p.destroy | |
16 | + end | |
17 | + end | |
18 | + | |
19 | + should 'name be unique' do | |
20 | + Product.create(:name => 'test product') | |
21 | + assert_no_difference Product, :count do | |
22 | + p = Product.new(:name => 'test product') | |
23 | + assert !p.save | |
24 | + end | |
25 | + end | |
26 | +end | ... | ... |