diff --git a/src/noosfero-spb/software_communities/controllers/software_communities_plugin_myprofile_controller.rb b/src/noosfero-spb/software_communities/controllers/software_communities_plugin_myprofile_controller.rb index 4873301..4553f11 100644 --- a/src/noosfero-spb/software_communities/controllers/software_communities_plugin_myprofile_controller.rb +++ b/src/noosfero-spb/software_communities/controllers/software_communities_plugin_myprofile_controller.rb @@ -7,16 +7,19 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController def new_software set_software_as_template - @community = Community.new(params[:community]) - @community.environment = environment + @software = Software.new(params[:software]) + @software.environment = environment @license_info = LicenseInfo.find_by_id(params[:license][:license_infos_id]) if params[:license] @license_info ||= LicenseInfo.new @software_info = SoftwareInfo.new(params[:software_info]) - @software_info.community = @community + @software_info.software = @software @software_info.license_info = @license_info + @software.software_info = @software_info + @software_info.software = @software + control_software_creation update_new_software_errors end @@ -36,8 +39,8 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController raise NotAdminException unless can_change_public_software? @software_info.update_attributes!(params[:software]) - @community = @software_info.community - @community.update_attributes!(params[:community]) + @software = @software_info.software + @software.update_attributes!(params[:community]) if params[:commit] == _('Save and Configure Community') redirect_to :controller => 'profile_editor', :action => 'edit' @@ -70,10 +73,10 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController def add_software_erros @errors = [] - if @community - error = @community.errors.delete(:identifier) + if @software + error = @software.errors.delete(:identifier) @errors |= [_("Domain %s") % error.first ] if error - @errors |= @community.errors.full_messages + @errors |= @software.errors.full_messages end @errors |= @software_info.errors.full_messages if @software_info @errors |= @license_info.errors.full_messages if @license_info @@ -81,7 +84,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController def control_software_creation if request.post? - valid_models = @community.valid? + valid_models = @software.valid? valid_models &= @software_info.valid? valid_models &= @license_info.valid? if valid_models @@ -135,9 +138,9 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController @software_info = SoftwareInfo.create_after_moderation(user, params[:software_info].merge({ :environment => environment, - :name => params[:community][:name], - :identifier => params[:community][:identifier], - :image_builder => params[:community][:image_builder], + :name => params[:software][:name], + :identifier => params[:software][:identifier], + :image_builder => params[:software][:image_builder], :license_info => @license_info, :another_license_version => another_license_version, :another_license_link => another_license_link })) @@ -151,7 +154,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController else redirect_to :controller => 'profile_editor', :action => 'edit', - :profile => @community.identifier + :profile => @software.identifier end end @@ -188,23 +191,23 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController unless params[:q].nil? admins = params[:q].split(/,/).map{ |n| environment.people.find n.to_i } admins.each do |admin| - @community.add_member(admin) - @community.add_admin(admin) + @software.add_member(admin) + @software.add_admin(admin) end end end def update_new_software_errors if request.post? - @community.valid? if @community + @software.valid? if @software @software_info.valid? if @software_info @license_info.valid? if @license_info add_software_erros end - @error_community_name = @community.errors.include?(:name) ? "highlight-error" : "" if @community + @error_software_name = @software.errors.include?(:name) ? "highlight-error" : "" if @software @error_software_acronym = @software_info.errors.include?(:acronym) ? "highlight-error" : "" if @software_info - @error_software_domain = @community.errors.include?(:identifier) ? "highlight-error" : "" if @community + @error_software_domain = @software.errors.include?(:identifier) ? "highlight-error" : "" if @software @error_software_finality = @software_info.errors.include?(:finality) ? "highlight-error" : "" if @software_info @error_software_license = @license_info.errors.include?(:version) ? "highlight-error" : "" if @license_info end diff --git a/src/noosfero-spb/software_communities/lib/create_software.rb b/src/noosfero-spb/software_communities/lib/create_software.rb index 15d4731..88993d3 100644 --- a/src/noosfero-spb/software_communities/lib/create_software.rb +++ b/src/noosfero-spb/software_communities/lib/create_software.rb @@ -34,10 +34,10 @@ class CreateSoftware < Task software_info = SoftwareInfo.new(:finality => self.finality, :repository_link => self.repository_link, :license_info => self.license_info) - software_info.verify_license_info(self.another_license_version, self.another_license_link) software_info.software = software software.software_info = software_info + software_info.verify_license_info(self.another_license_version, self.another_license_link) software.save! software.environment = self.environment diff --git a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb index 2864303..4fd6e42 100644 --- a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb +++ b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb @@ -128,7 +128,7 @@ class SearchController categories = Category.software_categories categories.each do |category| - if category.software_infos.count > 0 + if category.softwares.count > 0 @enabled_check_box[category] = :enabled else @enabled_check_box[category] = :disabled diff --git a/src/noosfero-spb/software_communities/lib/software.rb b/src/noosfero-spb/software_communities/lib/software.rb index c973b9d..525bfce 100644 --- a/src/noosfero-spb/software_communities/lib/software.rb +++ b/src/noosfero-spb/software_communities/lib/software.rb @@ -5,6 +5,15 @@ class Software < Organization :nickname => 3 } + SEARCH_FILTERS = { + :order => %w[], + :display => %w[full] + } + + def self.default_search_display + 'full' + end + settings_items :hits, :type => :integer, :default => 0 has_one :software_info diff --git a/src/noosfero-spb/software_communities/test/functional/search_controller_test.rb b/src/noosfero-spb/software_communities/test/functional/search_controller_test.rb index 606337d..e032203 100644 --- a/src/noosfero-spb/software_communities/test/functional/search_controller_test.rb +++ b/src/noosfero-spb/software_communities/test/functional/search_controller_test.rb @@ -27,46 +27,46 @@ class SearchControllerTest < ActionController::TestCase create_software_categories - @softwares = [] + @software_infos = [] - @softwares << create_software_info("Software One", :acronym => "SFO", :finality => "Help") - @softwares << create_software_info("Software Two", :acronym => "SFT", :finality => "Task") + @software_infos << create_software_info("Software One", :acronym => "SFO", :finality => "Help") + @software_infos << create_software_info("Software Two", :acronym => "SFT", :finality => "Task") - @softwares[0].community.categories << Category.first - @softwares[1].community.categories << Category.last + @software_infos[0].software.categories << Category.first + @software_infos[1].software.categories << Category.last - @softwares[0].license_info = @licenses.first - @softwares[1].license_info = @licenses.last + @software_infos[0].license_info = @licenses.first + @software_infos[1].license_info = @licenses.last - @softwares[0].save! - @softwares[1].save! + @software_infos[0].save! + @software_infos[1].save! end should "communities searches don't have software" do - community = create_community("Community One") + community = fast_create(Community, :name => "Community One") get :communities, :query => "One" assert_includes assigns(:searches)[:communities][:results], community - assert_not_includes assigns(:searches)[:communities][:results], @softwares.first.community + assert_not_includes assigns(:searches)[:communities][:results], @software_infos.first.software end should "software_infos search don't have community" do - community = create_community("Community One") + community = fast_create(Community, :name => "Community One") get :software_infos, :query => "One" - assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community + assert_includes assigns(:searches)[:software_infos][:results], @software_infos.first.software assert_not_includes assigns(:searches)[:software_infos][:results], community end should "Don't have template in communities search result" do communities = [] - communities << create_community("Community One") - communities << create_community("Community Two") + communities << fast_create(Community,:name => "Community One") + communities << fast_create(Community,:name => "Community Two") - community_template = create_community("Community Template") + community_template = fast_create(Community,:name => "Community Template") community_template.is_template = true community_template.visible = false community_template.save! @@ -86,40 +86,40 @@ class SearchControllerTest < ActionController::TestCase :selected_categories_id => [Category.first.id] ) - assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community - assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community + assert_includes assigns(:searches)[:software_infos][:results], @software_infos.first.software + assert_not_includes assigns(:searches)[:software_infos][:results], @software_infos.last.software end should "software_infos search by programming language" do - @softwares.first.software_languages << create_software_language("Python", "1.0") - @softwares.last.software_languages << create_software_language("Java", "8.1") + @software_infos.first.software_languages << create_software_language("Python", "1.0") + @software_infos.last.software_languages << create_software_language("Java", "8.1") - @softwares.first.save! - @softwares.last.save! + @software_infos.first.save! + @software_infos.last.save! get( :software_infos, :query => "python", ) - assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community - assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community + assert_includes assigns(:searches)[:software_infos][:results], @software_infos.first.software + assert_not_includes assigns(:searches)[:software_infos][:results], @software_infos.last.software end should "software_infos search by database description" do - @softwares.first.software_databases << create_software_database("MySQL", "1.0") - @softwares.last.software_databases << create_software_database("Postgrees", "8.1") + @software_infos.first.software_databases << create_software_database("MySQL", "1.0") + @software_infos.last.software_databases << create_software_database("Postgrees", "8.1") - @softwares.first.save! - @softwares.last.save! + @software_infos.first.save! + @software_infos.last.save! get( :software_infos, :query => "mysql", ) - assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community - assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community + assert_includes assigns(:searches)[:software_infos][:results], @software_infos.first.software + assert_not_includes assigns(:searches)[:software_infos][:results], @software_infos.last.software end should "software_infos search by finality" do @@ -129,8 +129,8 @@ class SearchControllerTest < ActionController::TestCase ) - assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community - assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community + assert_includes assigns(:searches)[:software_infos][:results], @software_infos.first.software + assert_not_includes assigns(:searches)[:software_infos][:results], @software_infos.last.software end should "software_infos search by acronym" do @@ -139,20 +139,20 @@ class SearchControllerTest < ActionController::TestCase :query => "SFO", ) - assert_includes assigns(:searches)[:software_infos][:results], @softwares.first.community - assert_not_includes assigns(:searches)[:software_infos][:results], @softwares.last.community + assert_includes assigns(:searches)[:software_infos][:results], @software_infos.first.software + assert_not_includes assigns(:searches)[:software_infos][:results], @software_infos.last.software end should "software_infos search by relevance" do - @softwares << create_software_info("Software Three", :acronym => "SFW", :finality => "Java") - @softwares.last.license_info = LicenseInfo.create :version => "GPL - 3.0" + @software_infos << create_software_info("Software Three", :acronym => "SFW", :finality => "Java") + @software_infos.last.license_info = LicenseInfo.create :version => "GPL - 3.0" - @softwares.first.software_languages << create_software_language("Java", "8.0") - @softwares.first.save! + @software_infos.first.software_languages << create_software_language("Java", "8.0") + @software_infos.first.save! - @softwares[1].community.name = "Java" - @softwares[1].community.save! + @software_infos[1].software.name = "Java" + @software_infos[1].software.save! get( :software_infos, @@ -160,43 +160,43 @@ class SearchControllerTest < ActionController::TestCase :query => "Java" ) - assert_equal assigns(:searches)[:software_infos][:results][0], @softwares[1].community - assert_equal assigns(:searches)[:software_infos][:results][1], @softwares[2].community - assert_equal assigns(:searches)[:software_infos][:results][2], @softwares[0].community + assert_equal assigns(:searches)[:software_infos][:results][0], @software_infos[1].software + assert_equal assigns(:searches)[:software_infos][:results][1], @software_infos[2].software + assert_equal assigns(:searches)[:software_infos][:results][2], @software_infos[0].software end should "software_infos search only public_software" do - software_one = create_software_info("Software One", :acronym => "SFO", :finality => "Help") - software_two = create_software_info("Java", :acronym => "SFT", :finality => "Task") - software_three = create_software_info("Software Three", :acronym => "SFW", :finality => "Java") - software_three.public_software = false - software_three.save! + software_info_one = create_software_info("Software One", :acronym => "SFO", :finality => "Help") + software_info_two = create_software_info("Java", :acronym => "SFT", :finality => "Task") + software_info_three = create_software_info("Software Three", :acronym => "SFW", :finality => "Java") + software_info_three.public_software = false + software_info_three.save! get( :software_infos, :software_type => "public_software" ) - assert_includes assigns(:searches)[:software_infos][:results], software_one.community - assert_includes assigns(:searches)[:software_infos][:results], software_two.community - assert_not_includes assigns(:searches)[:software_infos][:results], software_three.community + assert_includes assigns(:searches)[:software_infos][:results], software_info_one.software + assert_includes assigns(:searches)[:software_infos][:results], software_info_two.software + assert_not_includes assigns(:searches)[:software_infos][:results], software_info_three.software end should "software_infos search public_software and other all" do - software_one = create_software_info("Software One", :acronym => "SFO", :finality => "Help") - software_two = create_software_info("Java", :acronym => "SFT", :finality => "Task") - software_three = create_software_info("Software Three", :acronym => "SFW", :finality => "Java") - software_three.public_software = false - software_three.save! + software_info_one = create_software_info("Software One", :acronym => "SFO", :finality => "Help") + software_info_two = create_software_info("Java", :acronym => "SFT", :finality => "Task") + software_info_three = create_software_info("Software Three", :acronym => "SFW", :finality => "Java") + software_info_three.public_software = false + software_info_three.save! get( :software_infos, :software_type => "all" ) - assert_includes assigns(:searches)[:software_infos][:results], software_one.community - assert_includes assigns(:searches)[:software_infos][:results], software_two.community - assert_includes assigns(:searches)[:software_infos][:results], software_three.community + assert_includes assigns(:searches)[:software_infos][:results], software_info_one.software + assert_includes assigns(:searches)[:software_infos][:results], software_info_two.software + assert_includes assigns(:searches)[:software_infos][:results], software_info_three.software end should "software_infos search return only the software in params" do @@ -209,9 +209,9 @@ class SearchControllerTest < ActionController::TestCase :only_softwares => ["software-three", "java"] ) - assert_includes assigns(:searches)[:software_infos][:results], software_two.community - assert_includes assigns(:searches)[:software_infos][:results], software_three.community - assert_not_includes assigns(:searches)[:software_infos][:results], software_one.community + assert_includes assigns(:searches)[:software_infos][:results], software_two.software + assert_includes assigns(:searches)[:software_infos][:results], software_three.software + assert_not_includes assigns(:searches)[:software_infos][:results], software_one.software end should "software_infos search return only enabled softwares" do @@ -224,10 +224,10 @@ class SearchControllerTest < ActionController::TestCase :query => "software" ) - assert_includes assigns(:searches)[:software_infos][:results], s1.community - assert_includes assigns(:searches)[:software_infos][:results], s2.community + assert_includes assigns(:searches)[:software_infos][:results], s1.software + assert_includes assigns(:searches)[:software_infos][:results], s2.software - s2.community.disable + s2.software.disable # Now it should not contain the disabled community get( @@ -235,25 +235,26 @@ class SearchControllerTest < ActionController::TestCase :query => "software" ) - assert_includes assigns(:searches)[:software_infos][:results], s1.community - assert_not_includes assigns(:searches)[:software_infos][:results], s2.community + assert_includes assigns(:searches)[:software_infos][:results], s1.software + assert_not_includes assigns(:searches)[:software_infos][:results], s2.software end should "software_infos search not return software with secret community" do - software_one = create_software_info("Software ABC", :acronym => "SFO", :finality => "Help") - software_two = create_software_info("Python", :acronym => "SFT", :finality => "Task") - software_three = create_software_info("Software DEF", :acronym => "SFW", :finality => "Java") + software_info_one = create_software_info("Software ABC", :acronym => "SFO", :finality => "Help") + software_info_two = create_software_info("Python", :acronym => "SFT", :finality => "Task") + software_info_three = create_software_info("Software DEF", :acronym => "SFW", :finality => "Java") - software_one.community.secret = true - software_one.community.save! + software_info_one.software.secret = true + software_info_one.software.save! get( :software_infos, ) - assert_includes assigns(:searches)[:software_infos][:results], software_two.community - assert_includes assigns(:searches)[:software_infos][:results], software_three.community - assert_not_includes assigns(:searches)[:software_infos][:results], software_one.community + assert_includes assigns(:searches)[:software_infos][:results], software_info_two.software + assert_includes assigns(:searches)[:software_infos][:results], software_info_three.software + assert_not_includes assigns(:searches)[:software_infos][:results], software_info_one.software + end private diff --git a/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_myprofile_controller_test.rb b/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_myprofile_controller_test.rb index c37616b..beec7c1 100644 --- a/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_myprofile_controller_test.rb +++ b/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_myprofile_controller_test.rb @@ -37,10 +37,10 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC should 'Add offer to admin in new software' do @hash_list = software_fields - @software = create_software @hash_list - @software.community.add_admin(@offer.person) - @software.save - assert_equal @offer.person.id, @software.community.admins.last.id + @software_info = create_software @hash_list + @software_info.software.add_admin(@offer.person) + @software_info.save + assert_equal @offer.person.id, @software_info.software.admins.last.id end should 'create a new software with all fields filled in' do @@ -49,21 +49,21 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC post( :new_software, :profile => @person.identifier, - :community => fields[1], + :software => fields[1], :license => fields[0], :software_info => fields[2] ) - assert_equal SoftwareInfo.last.community.name, "Debian" + assert_equal SoftwareInfo.last.software.name, "Debian" end should 'edit a new software adding basic information' do fields_software = software_fields fields = software_edit_basic_fields - software = create_software fields_software + software_info = create_software fields_software post( :edit_software, - :profile => software.community.identifier, + :profile => software_info.software.identifier, :license => fields[1], :software => fields[0], :library => {}, @@ -78,10 +78,10 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC fields_software = software_fields fields = software_edit_specific_fields - software = create_software fields_software + software_info = create_software fields_software post( :edit_software, - :profile => software.community.identifier, + :profile => software_info.software.identifier, :library => fields[0], :language => fields[1], :database => fields[2], @@ -101,11 +101,11 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC fields = software_edit_specific_fields fields[4]['public_software'] = true - software = create_software fields_software + software_info = create_software fields_software post( :edit_software, - :profile => software.community.identifier, + :profile => software_info.software.identifier, :operating_system => fields[3], :software => fields[4], ) @@ -118,11 +118,11 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC fields = software_edit_specific_fields fields[4]['public_software'] = true - software = create_software fields_software + software_info = create_software fields_software post( :edit_software, - :profile => software.community.identifier, + :profile => software_info.software.identifier, :software => fields[4] ) @@ -136,11 +136,11 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC fields[4][attr]=true - software = create_software fields_software + software_info = create_software fields_software post( :edit_software, - :profile => software.community.identifier, + :profile => software_info.software.identifier, :software => fields[4] ) @@ -159,11 +159,11 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC fields[4][attr]=true - software = create_software fields_software + software_info = create_software fields_software post( :edit_software, - :profile => software.community.identifier, + :profile => software_info.software.identifier, :software => fields[4] ) @@ -176,7 +176,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC post( :new_software, - :community => {:name =>"New Software", :identifier => "new-software"}, + :software => {:name =>"New Software", :identifier => "new-software"}, :software_info => {:finality => "something", :repository_link => ""}, :license =>{:license_infos_id => LicenseInfo.last.id}, :profile => @person.identifier @@ -194,7 +194,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC post( :new_software, - :community => { :name => "New Software", :identifier => "new-software" }, + :software => { :name => "New Software", :identifier => "new-software" }, :software_info => { :finality => "something", :repository_link => "" }, :license => { :license_infos_id => license_another.id, :version => another_license_version, @@ -217,7 +217,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC post( :new_software, - :community => { :name => "New Software", :identifier => "new-software" }, + :software => { :name => "New Software", :identifier => "new-software" }, :software_info => { :finality => "something", :repository_link => "" }, :license => { :license_infos_id => license_another.id, :version => another_license_version, @@ -238,7 +238,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC should "show error messages on create software_info" do post( :new_software, - :community => {}, + :software => {}, :software_info => {}, :license => {}, :profile => @person.identifier @@ -254,14 +254,14 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC post( :new_software, - :community => {:name =>"New Software", :identifier => "new-software"}, + :software => {:name =>"New Software", :identifier => "new-software"}, :software_info => {:finality => "something", :repository_link => ""}, :license =>{:license_infos_id => LicenseInfo.last.id}, :profile => @person.identifier ) post( :new_software, - :community => {:name =>"New Software", :identifier => "new-software"}, + :software => {:name =>"New Software", :identifier => "new-software"}, :software_info => {:finality => "something", :repository_link => ""}, :license =>{:license_infos_id => LicenseInfo.last.id}, :profile => @person.identifier @@ -275,7 +275,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC post( :new_software, - :community => {:name =>"New Software", :identifier => "new-software"}, + :software => {:name =>"New Software", :identifier => "new-software"}, :software_info => {:finality => "something", :repository_link => ""}, :license =>{:license_infos_id => LicenseInfo.last.id}, :profile => @person.identifier @@ -285,14 +285,14 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC Task.last.send('finish', @person) assert_equal "New Software", Task.last.data[:name] - assert_equal "New Software", SoftwareInfo.last.community.name + assert_equal "New Software", SoftwareInfo.last.software.name end should "dont create software without accept task" do assert_no_difference 'SoftwareInfo.count' do post( :new_software, - :community => {:name =>"New Software", :identifier => "new-software"}, + :software => {:name =>"New Software", :identifier => "new-software"}, :software_info => {:finality => "something", :repository_link => ""}, :license =>{:license_infos_id => LicenseInfo.last.id}, :profile => @person.identifier diff --git a/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_profile_controller_test.rb b/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_profile_controller_test.rb index 00c715e..51283c2 100644 --- a/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_profile_controller_test.rb +++ b/src/noosfero-spb/software_communities/test/functional/software_communities_plugin_profile_controller_test.rb @@ -29,20 +29,20 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas :total_downloads=>0 } - @software = create_software(software_fields) - @software.save! + @software_info = create_software(software_fields) + @software_info.save! download_block = DownloadBlock.new download_block.downloads = Download.validate_download_list([@download_data]) download_block.save! - @software.community.blocks << download_block - @software.community.save! + @software_info.software.blocks << download_block + @software_info.software.save! end should 'redirect to download link with correct params' do download_block = DownloadBlock.last - get :download_file, :profile=>@software.community.identifier, + get :download_file, :profile=>@software_info.software.identifier, :block => download_block.id, :download_index => 0 assert_equal nil, session[:notice] @@ -51,7 +51,7 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas should "notice when the download was not found" do download_block = DownloadBlock.last - get :download_file, :profile=>@software.community.identifier, + get :download_file, :profile=>@software_info.software.identifier, :block => 123, :download_index => 0 assert_equal "Could not find the download file", session[:notice] @@ -59,7 +59,7 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas should "notice when given invalid download params" do download_block = DownloadBlock.last - get :download_file, :profile=>@software.community.identifier, + get :download_file, :profile=>@software_info.software.identifier, :block => download_block.id, :download_index => -5 assert_equal "Invalid download params", session[:notice] diff --git a/src/noosfero-spb/software_communities/test/helpers/software_test_helper.rb b/src/noosfero-spb/software_communities/test/helpers/software_test_helper.rb index 285fd27..a4d5485 100644 --- a/src/noosfero-spb/software_communities/test/helpers/software_test_helper.rb +++ b/src/noosfero-spb/software_communities/test/helpers/software_test_helper.rb @@ -64,27 +64,27 @@ module SoftwareTestHelper def create_software fields - software = SoftwareInfo.new - community = Community.new - software_hash = fields[2] + software_info = SoftwareInfo.new + software = Software.new + software_info_hash = fields[2] license_system_hash = fields[0] - community_hash = fields[1] + software_hash = fields[1] - software_hash.each do |k,v| - software[k] = v + software_info_hash.each do |k,v| + software_info[k] = v end - community_hash.each do |k,v| - community[k] = v + software_hash.each do |k,v| + software[k] = v end - community.save! - software.community = community - software.license_info_id = license_system_hash[:license_infos_id] + software_info.software = software + software_info.license_info_id = license_system_hash[:license_infos_id] + software.software_info = software_info software.save! - software + software_info end def software_edit_basic_fields @@ -190,4 +190,4 @@ module SoftwareTestHelper end end #version: LicenseInfo.last.version, -#id: LicenseInfo.last.id \ No newline at end of file +#id: LicenseInfo.last.id diff --git a/src/noosfero-spb/software_communities/views/search/_full_software.html.erb b/src/noosfero-spb/software_communities/views/search/_full_software.html.erb new file mode 100644 index 0000000..e566d7b --- /dev/null +++ b/src/noosfero-spb/software_communities/views/search/_full_software.html.erb @@ -0,0 +1,53 @@ +<% software_info = software.software_info %> +
  • +
    + <%= profile_image_link software, :portrait, 'div', software.send(@order + '_label') + show_date(software.created_at) %> +
    + +
    + +
    + + <% link_name = software_info.acronym.blank? ? software.name : "#{software_info.acronym} - #{software.name}" %> +

    + <%= link_to_homepage(link_name, software.identifier) %> +

    +
    + + <% body_stripped = strip_tags(software_info.finality) %> + <%= excerpt(body_stripped, body_stripped.first(3), 200) if body_stripped %> + +
    + +
    + +
    + + + <%= _("software_info Categories") %>: + + + + <% if !software.categories.empty? %> +
      + <% software.categories.each do |category| %> +
    • + <%= link_to _("#{category.name}"), { + :controller => :search, + :action => :software_infos, + :selected_categories_id => [category.id], + :software_info_type => params[:software_info_type] + } %> +
    • + <% end %> +
    + <% else %> + + <%= _("This software_info doesn't have categories") %> + + <% end %> +
    +
    + +
    +
  • diff --git a/src/noosfero-spb/software_communities/views/software_communities_plugin_myprofile/new_software.html.erb b/src/noosfero-spb/software_communities/views/software_communities_plugin_myprofile/new_software.html.erb index ad9795d..2e7bcca 100644 --- a/src/noosfero-spb/software_communities/views/software_communities_plugin_myprofile/new_software.html.erb +++ b/src/noosfero-spb/software_communities/views/software_communities_plugin_myprofile/new_software.html.erb @@ -29,13 +29,13 @@ <% end %>
    - <%= labelled_form_for :community, :html => { :multipart => true } do |f| %> + <%= labelled_form_for :software, :html => { :multipart => true } do |f| %> <%= required_fields_message %> -
    > +
    > <%= label("name", _('Name'), {:class => 'formlabel mandatory'}) %> - <%= required text_field(:community, :name, :size => 30, :maxlength => 100, :id => 'community_name_id') %> + <%= required text_field(:software, :name, :size => 30, :maxlength => 100, :id => 'software_name_id') %>

    @@ -46,7 +46,7 @@
    <%= environment.default_hostname %>/ - <%= required text_field(:community, :identifier, :size => 30, :maxlength => 100, :id => 'community-identifier') %> + <%= required text_field(:software, :identifier, :size => 30, :maxlength => 100, :id => 'software-identifier') %>
    @@ -65,8 +65,8 @@
    - <%= f.fields_for :image_builder, @community.image do |i| %> - <%= file_field_or_thumbnail(_('Image:'), @community.image, i) %><%= _("Max size: %s (.jpg, .gif, .png)")% Image.max_size.to_humanreadable %> + <%= f.fields_for :image_builder, @software.image do |i| %> + <%= file_field_or_thumbnail(_('Image:'), @software.image, i) %><%= _("Max size: %s (.jpg, .gif, .png)")% Image.max_size.to_humanreadable %> <% end %>
    -- libgit2 0.21.2