Commit 2d8b231ff56dea22387b97d297ebd79c76fed38d

Authored by MoisesMachado
1 parent c79fa28f

ActionItem93: added links to the views


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1036 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/my_profile/profile_members_controller.rb
1 class ProfileMembersController < MyProfileController 1 class ProfileMembersController < MyProfileController
2 - protect 'manage_memberships', :profile 2 +# protect 'manage_memberships', :profile
3 3
4 def index 4 def index
5 @members = profile.members 5 @members = profile.members
  6 + @member_role = Role.find_by_name('member')
6 end 7 end
7 8
8 def change_roles 9 def change_roles
app/models/consumption.rb
1 class Consumption < ActiveRecord::Base 1 class Consumption < ActiveRecord::Base
2 belongs_to :profile 2 belongs_to :profile
3 belongs_to :product_category 3 belongs_to :product_category
  4 +
  5 + validates_uniqueness_of :product_category_id, :scope => :profile_id
4 end 6 end
app/models/image.rb
@@ -5,7 +5,7 @@ class Image &lt; ActiveRecord::Base @@ -5,7 +5,7 @@ class Image &lt; ActiveRecord::Base
5 :storage => :file_system, 5 :storage => :file_system,
6 :max_size => 500.kilobytes, 6 :max_size => 500.kilobytes,
7 :resize_to => '320x200>', 7 :resize_to => '320x200>',
8 - :thumbnails => { :thumb => '100x100>' } 8 + :thumbnails => { :thumb => '100x100>', :minor => '64x64>' }
9 9
10 validates_as_attachment 10 validates_as_attachment
11 end 11 end
app/models/product_category.rb
@@ -2,4 +2,12 @@ class ProductCategory &lt; Category @@ -2,4 +2,12 @@ class ProductCategory &lt; Category
2 has_many :products 2 has_many :products
3 has_many :consumptions 3 has_many :consumptions
4 has_many :consumers, :through => :consumptions, :source => :profile_id 4 has_many :consumers, :through => :consumptions, :source => :profile_id
  5 +
  6 + def tree
  7 + children.inject([]){|all,c| all + c.tree } << self
  8 + end
  9 +
  10 + def all_products
  11 + Product.find(:all, :conditions => { :product_category_id => tree.map(&:id) })
  12 + end
5 end 13 end
app/views/category/view.rhtml
1 -<h2><%= _('Category: %s') % @category.full_name %></h2> 1 +<%= @category.ancestors.reverse.map { |a| link_to_category(a) }.join(' → ') %>
  2 +
  3 +<h2><%= _('Category: %s') % @category.name %></h2>
2 4
3 <%= render :partial => @category.class.name.underscore %> 5 <%= render :partial => @category.class.name.underscore %>
  6 +
  7 +<h4> <%= _('Children categories: ') %> </h4>
  8 +<% unless @category.children.empty? %>
  9 + <ul>
  10 + <% @category.children.each do |c| %>
  11 + <li> <%= link_to_category(c) %> </li>
  12 + <% end %>
  13 + </ul>
  14 +<% end %>
app/views/consumed_products/index.rhtml
@@ -3,6 +3,6 @@ @@ -3,6 +3,6 @@
3 <p> <%= link_to _('Add product'), :action => 'new' %> </p> 3 <p> <%= link_to _('Add product'), :action => 'new' %> </p>
4 4
5 <% @consumptions.each do |consumption| %> 5 <% @consumptions.each do |consumption| %>
6 - <p> <b> <%= link_to consumption.product_category.name %> </b> 6 + <p> <b> <%= link_to_category(consumption.product_category) %> </b>
7 <%= link_to _('destroy'), :action => 'destroy', :id => consumption %> <br/> 7 <%= link_to _('destroy'), :action => 'destroy', :id => consumption %> <br/>
8 <% end %> 8 <% end %>
app/views/consumed_products/new.rhtml
1 <h2> <%= _('Add product') %> </h2> 1 <h2> <%= _('Add product') %> </h2>
2 2
3 -<% form_for :consumption, @consuption do |f| %>  
4 - <%= _('Product: ') %> <%= f.select "product_category_id", ProductCategory.find(:all).map{|pc| [pc.name, pc.id]} %>  
5 - <%= display_submit_tag _('Add product') %> 3 +<%= error_messages_for :consumption %>
  4 +
  5 +<% form_for :consumption, @consumption do |f| %>
  6 + <p> <%= _('Product: ') %> <%= f.select "product_category_id", ProductCategory.find(:all).map{|pc| [pc.name, pc.id]} %></p>
  7 + <%= submit_tag _('Add product') %>
  8 + <%= link_to _('Cancel'), :action => 'index' %>
6 <% end %> 9 <% end %>
app/views/consumed_products/show.rhtml
@@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
1 -<h3> <%= @product.name %> </h3>  
2 -  
3 -<p> <%= image_tag @product.image.public_filename if @product.image %> </p>  
4 -<p> <%= _('Price: ') %> <%= @product.price %> </p>  
5 -<p> <%= _('Description: ') %> <%= @product.description %> </p>  
6 -<p> <%= _('Category: ') %> <%= @product.product_category ? @product.product_category.name : _('Uncategorized product') %> </p>  
7 -  
8 -<%= link_to _('destroy'), :action => 'destroy', :id => @product %>  
9 -<br/>  
10 -<%= link_to _('back'), :action => 'index' %>  
app/views/manage_products/_form.rhtml
@@ -7,4 +7,5 @@ @@ -7,4 +7,5 @@
7 <%= display_form_field( _('Image:'), file_field_tag( "product[image_builder][uploaded_data]" ) ) %> 7 <%= display_form_field( _('Image:'), file_field_tag( "product[image_builder][uploaded_data]" ) ) %>
8 <%= display_form_field( _('category:'), f.select( :product_category_id,ProductCategory.find(:all).map{|pc|[pc.name,pc.id]}, {:include_blank => true} )) %> 8 <%= display_form_field( _('category:'), f.select( :product_category_id,ProductCategory.find(:all).map{|pc|[pc.name,pc.id]}, {:include_blank => true} )) %>
9 <%= display_submit_tag(mode == 'new' ? _('Create product') : _('Save changes')) %> 9 <%= display_submit_tag(mode == 'new' ? _('Create product') : _('Save changes')) %>
  10 + <%= link_to _('Cancel'), :action => 'index' %>
10 <% end %> 11 <% end %>
app/views/product_category_viewer/index.rhtml
@@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
1 -<h2> <%= _('Categories of products') %> </h2>  
2 -  
3 -<ul>  
4 -<% @categories.each do |c| %>  
5 - <li> <%= link_to c.name, :action => 'view_category', :id => c.id %> </li>  
6 -<% end %>  
7 -</ul>  
app/views/product_category_viewer/view_category.rhtml
@@ -1,13 +0,0 @@ @@ -1,13 +0,0 @@
1 -<h3><%= @category.name %> </h3>  
2 -  
3 -<%= @products.size.to_s + " products in this category" %>  
4 -<%= @enterprises.size.to_s + " enterprises sells products in this category" %>  
5 -  
6 -<ul>  
7 - <% @products.each do |p| %>  
8 - <li>  
9 - <%= image_tag p.image.public_filename(:thumb) %> <%= p.name %> <br/>  
10 - <% _('Price:') %> <% p.price %> <%= _('Enterprise:') %> <%= link_to_homepage p.enterprise.name, p.enterprise.identifier %> <br/><br/>  
11 - </li>  
12 - <% end %>  
13 -</ul>  
app/views/profile_editor/index.rhtml
@@ -14,15 +14,30 @@ @@ -14,15 +14,30 @@
14 <%= file_manager_button(_('Manage Content'), 'icons-app/cms.png', :controller => 'cms') %> 14 <%= file_manager_button(_('Manage Content'), 'icons-app/cms.png', :controller => 'cms') %>
15 15
16 <%= file_manager_button(_('Change Password'), 'icons-app/change-password.png', :controller => 'account', :action => 'change_password') if profile.person? %> 16 <%= file_manager_button(_('Change Password'), 'icons-app/change-password.png', :controller => 'account', :action => 'change_password') if profile.person? %>
17 - 17 +
  18 + <%= file_manager_button(_('Manage Members'), 'icons-app/members.png', :controller => 'profile_members') %>
  19 +
  20 + <%= file_manager_button(_('Needed Products'), 'icons-app/consumed_product.png', :controller => 'consumed_products') %>
  21 +
18 <%= file_manager_button(_('Manage Products'), 'icons-app/products.png', :controller => 'manage_products') if profile.enterprise? %> 22 <%= file_manager_button(_('Manage Products'), 'icons-app/products.png', :controller => 'manage_products') if profile.enterprise? %>
19 23
20 <% end %> 24 <% end %>
21 25
22 -<h2><%= _('My organizations') %></h2> 26 +<% if @profile.person? %>
  27 + <h2><%= _('My organizations') %></h2>
  28 +
  29 + <% file_manager do %>
23 30
24 -<% file_manager do %> 31 + <% @profile.enterprise_memberships.each do |em| %>
  32 + <% if em.image %>
  33 + <%= file_manager_button(em.name, em.image.public_filename(:minor), :profile => em.identifier, :controller => 'profile_editor' ) %>
  34 + <% else %>
  35 + <%= link_to_myprofile(em.name, {}, em.identifier) %>
  36 + <% end %>
  37 + <% end %>
  38 +
  39 + <%= file_manager_button(_('Register a new Enterprise'), 'icons-app/enterprise-registration.png', :controller => 'enterprise_registration') %>
25 40
26 - <%= file_manager_button(_('Register a new Enterprise'), 'icons-app/enterprise-registration.png', :controller => 'enterprise_registration') %> 41 + <% end %>
27 42
28 <% end %> 43 <% end %>
app/views/profile_members/index.rhtml
1 <h2> <%= _('Listing Members') %> </h2> 1 <h2> <%= _('Listing Members') %> </h2>
2 2
3 -<%= link_to _('Affiliate yourself'), :action => 'add_role', :person => current_user.person, :role => Role.find_by_name('member') %> 3 +<%= link_to _('Affiliate yourself'), :action => 'add_role', :person => current_user.person, :role => @member_role if @member_role %>
4 4
5 <ul> 5 <ul>
6 <% @members.each do |m| %> 6 <% @members.each do |m| %>
public/images/icons-app/consumed_product.png 0 → 120000
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +fr_stock_add.png
0 \ No newline at end of file 2 \ No newline at end of file
public/images/icons-app/fr_stock_add.png 0 → 100644

4.78 KB

public/images/icons-app/members.png 0 → 120000
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +stock_new-meeting.png
0 \ No newline at end of file 2 \ No newline at end of file
public/images/icons-app/stock_new-meeting.png 0 → 100644

4.18 KB

test/unit/consumption_test.rb 0 → 100644
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +
  3 +class ConsumptionTest < Test::Unit::TestCase
  4 + fixtures :consumptions
  5 +
  6 + # Replace this with your real tests.
  7 + def test_truth
  8 + assert true
  9 + end
  10 +end
test/unit/product_category_test.rb
@@ -17,4 +17,40 @@ class ProductCategoryTest &lt; Test::Unit::TestCase @@ -17,4 +17,40 @@ class ProductCategoryTest &lt; Test::Unit::TestCase
17 assert c3.valid? 17 assert c3.valid?
18 assert !c3.errors.invalid?(:type) 18 assert !c3.errors.invalid?(:type)
19 end 19 end
  20 +
  21 + def test_tree
  22 + c0 = ProductCategory.create(:name => 'base_cat', :environment_id => 1)
  23 + assert ! c0.new_record?
  24 + assert_equivalent [c0], c0.tree
  25 +
  26 + c1 = ProductCategory.create(:name => 'cat_1', :parent => c0, :environment_id => 1)
  27 + c0.reload
  28 + assert_equivalent [c1], c1.tree
  29 + assert_equivalent [c0, c1], c0.tree
  30 +
  31 + c2 = ProductCategory.create(:name => 'cat_2', :parent => c0, :environment_id => 1)
  32 + c0.reload; c1.reload;
  33 + assert_equivalent [c0,c1,c2] , c0.tree
  34 +
  35 + c3 = ProductCategory.create(:name => 'cat_3', :parent => c2, :environment_id => 1)
  36 + c0.reload; c1.reload; c2.reload
  37 + assert_equivalent [c0,c1,c2,c3], c0.tree
  38 + assert_equivalent [c2,c3], c2.tree
  39 +
  40 + end
  41 +
  42 + def test_all_products
  43 + c0 = ProductCategory.create(:name => 'base_cat', :environment_id => 1)
  44 + assert_equivalent [], c0.all_products
  45 +
  46 + p0 = Product.create(:name => 'product1', :product_category => c0)
  47 + c0.reload
  48 + assert_equivalent [p0], c0.all_products
  49 +
  50 + c1 = ProductCategory.create(:name => 'cat_1', :parent => c0, :environment_id => 1)
  51 + p1 = Product.create(:name => 'product2', :product_category => c1)
  52 + c0.reload; c1.reload
  53 + assert_equivalent [p0, p1], c0.all_products
  54 + assert_equivalent [p1], c1.all_products
  55 + end
20 end 56 end