Commit d8c5099005524dbc987efcd1ecdabb7199986b09
1 parent
32a1bf15
Exists in
temp_soft_comm_refactoring
software_communities: adequate models with proper namespace
Showing
92 changed files
with
1228 additions
and
1211 deletions
Show diff stats
src/noosfero-spb/software_communities/controllers/software_communities_plugin_controller.rb
| ... | ... | @@ -6,7 +6,7 @@ class SoftwareCommunitiesPluginController < ApplicationController |
| 6 | 6 | return render :json=>{} if !request.xhr? || params[:query].nil? |
| 7 | 7 | |
| 8 | 8 | data = LicenseHelper.find_licenses(params[:query]) if params[:query] |
| 9 | - data ||= LicenseInfo.all | |
| 9 | + data ||= SoftwareCommunitiesPlugin::LicenseInfo.all | |
| 10 | 10 | |
| 11 | 11 | render :json=> data.collect { |license| |
| 12 | 12 | {:id=>license.id, :label=>license.version} |
| ... | ... | @@ -42,7 +42,7 @@ class SoftwareCommunitiesPluginController < ApplicationController |
| 42 | 42 | protected |
| 43 | 43 | |
| 44 | 44 | def get_model_by_params_field |
| 45 | - return DatabaseDescription unless params[:field] == "software_language" | |
| 46 | - return ProgrammingLanguage | |
| 45 | + return SoftwareCommunitiesPlugin::DatabaseDescription unless params[:field] == "software_language" | |
| 46 | + return SoftwareCommunitiesPlugin::ProgrammingLanguage | |
| 47 | 47 | end |
| 48 | 48 | end | ... | ... |
src/noosfero-spb/software_communities/controllers/software_communities_plugin_myprofile_controller.rb
| ... | ... | @@ -10,10 +10,10 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController |
| 10 | 10 | @community = Community.new(params[:community]) |
| 11 | 11 | @community.environment = environment |
| 12 | 12 | |
| 13 | - @license_info = LicenseInfo.find_by_id(params[:license][:license_infos_id]) if params[:license] | |
| 14 | - @license_info ||= LicenseInfo.new | |
| 13 | + @license_info = SoftwareCommunitiesPlugin::LicenseInfo.find_by_id(params[:license][:license_infos_id]) if params[:license] | |
| 14 | + @license_info ||= SoftwareCommunitiesPlugin::LicenseInfo.new | |
| 15 | 15 | |
| 16 | - @software_info = SoftwareInfo.new(params[:software_info]) | |
| 16 | + @software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new(params[:software_info]) | |
| 17 | 17 | @software_info.community = @community |
| 18 | 18 | @software_info.license_info = @license_info |
| 19 | 19 | |
| ... | ... | @@ -90,7 +90,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController |
| 90 | 90 | def create_software |
| 91 | 91 | @software_info = @profile.software_info |
| 92 | 92 | params[:software][:public_software] ||= false unless @software_info.public_software? |
| 93 | - @license = LicenseInfo.find(params[:license][:license_infos_id]) | |
| 93 | + @license = SoftwareCommunitiesPlugin::LicenseInfo.find(params[:license][:license_infos_id]) | |
| 94 | 94 | @software_info.license_info = @license |
| 95 | 95 | @software_info.update_attributes(params[:software]) |
| 96 | 96 | |
| ... | ... | @@ -122,7 +122,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController |
| 122 | 122 | another_license_version = params[:license][:version] |
| 123 | 123 | another_license_link = params[:license][:link] |
| 124 | 124 | end |
| 125 | - @software_info = SoftwareInfo.create_after_moderation(user, | |
| 125 | + @software_info = SoftwareCommunitiesPlugin::SoftwareInfo.create_after_moderation(user, | |
| 126 | 126 | params[:software_info].merge({ |
| 127 | 127 | :environment => environment, |
| 128 | 128 | :name => params[:community][:name], |
| ... | ... | @@ -158,7 +158,7 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController |
| 158 | 158 | @another_license_version = "" |
| 159 | 159 | @another_license_link = "" |
| 160 | 160 | |
| 161 | - license_another = LicenseInfo.find_by_version("Another") | |
| 161 | + license_another = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version("Another") | |
| 162 | 162 | if license_another && @software_info.license_info_id == license_another.id |
| 163 | 163 | @license_version = "Another" |
| 164 | 164 | @another_license_version = @software_info.license_info.version | ... | ... |
src/noosfero-spb/software_communities/controllers/software_communities_plugin_profile_controller.rb
| ... | ... | @@ -9,11 +9,11 @@ class SoftwareCommunitiesPluginProfileController < ProfileController |
| 9 | 9 | } |
| 10 | 10 | |
| 11 | 11 | def download_file |
| 12 | - download_block = DownloadBlock.find_by_id params[:block] | |
| 12 | + download_block = SoftwareCommunitiesPlugin::DownloadBlock.find_by_id params[:block] | |
| 13 | 13 | index = params[:download_index].to_i |
| 14 | 14 | |
| 15 | 15 | if download_block and (index < download_block.downloads.size) |
| 16 | - download = Download.new(download_block.downloads[index]) | |
| 16 | + download = SoftwareCommunitiesPlugin::Download.new(download_block.downloads[index]) | |
| 17 | 17 | |
| 18 | 18 | download.total_downloads += 1 |
| 19 | 19 | download_block.downloads[index] = download.to_hash | ... | ... |
src/noosfero-spb/software_communities/db/migrate/20140528193902_create_license_infos_table.rb
| ... | ... | @@ -6,7 +6,7 @@ class CreateLicenseInfosTable < ActiveRecord::Migration |
| 6 | 6 | end |
| 7 | 7 | |
| 8 | 8 | link = "http://creativecommons.org/licenses/GPL/2.0/legalcode.pt" |
| 9 | - LicenseInfo.create(:version => "CC-GPL-V2", :link => link) | |
| 9 | + SoftwareCommunitiesPlugin::LicenseInfo.create(:version => "CC-GPL-V2", :link => link) | |
| 10 | 10 | end |
| 11 | 11 | |
| 12 | 12 | def self.down | ... | ... |
src/noosfero-spb/software_communities/db/migrate/20140528193956_create_programming_languages_table.rb
| ... | ... | @@ -4,7 +4,7 @@ class CreateProgrammingLanguagesTable < ActiveRecord::Migration |
| 4 | 4 | t.string :name |
| 5 | 5 | end |
| 6 | 6 | |
| 7 | - SoftwareHelper.create_list_with_file("plugins/software_communities/public/static/languages.txt", ProgrammingLanguage) | |
| 7 | + SoftwareHelper.create_list_with_file("plugins/software_communities/public/static/languages.txt", SoftwareCommunitiesPlugin::ProgrammingLanguage) | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | def self.down | ... | ... |
src/noosfero-spb/software_communities/db/migrate/20140714133901_create_operating_name_table.rb
| ... | ... | @@ -5,7 +5,7 @@ class CreateOperatingNameTable < ActiveRecord::Migration |
| 5 | 5 | end |
| 6 | 6 | |
| 7 | 7 | path_to_file = "plugins/software_communities/public/static/operating_systems.txt" |
| 8 | - SoftwareHelper.create_list_with_file(path_to_file, OperatingSystemName) | |
| 8 | + SoftwareHelper.create_list_with_file(path_to_file, SoftwareCommunitiesPlugin::OperatingSystemName) | |
| 9 | 9 | end |
| 10 | 10 | |
| 11 | 11 | def down | ... | ... |
src/noosfero-spb/software_communities/db/migrate/20150210182519_rename_cc_license.rb
| 1 | 1 | class RenameCcLicense < ActiveRecord::Migration |
| 2 | 2 | def up |
| 3 | - license = LicenseInfo.find_by_version "CC-GPL-V2" | |
| 3 | + license = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version "CC-GPL-V2" | |
| 4 | 4 | license.version = "Creative Commons GPL V2" |
| 5 | 5 | license.save! |
| 6 | 6 | end |
| 7 | 7 | |
| 8 | 8 | def down |
| 9 | - license = LicenseInfo.find_by_version "Creative Commons GPL V2" | |
| 9 | + license = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version "Creative Commons GPL V2" | |
| 10 | 10 | license.version = "CC-GPL-V2" |
| 11 | 11 | license.save! |
| 12 | 12 | end | ... | ... |
src/noosfero-spb/software_communities/db/migrate/20151022175354_rename_tables_with_plugin_namespace.rb
0 → 100644
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +class RenameTablesWithPluginNamespace < ActiveRecord::Migration | |
| 2 | + def change | |
| 3 | + rename_table :license_infos, :software_communities_plugin_license_infos | |
| 4 | + rename_table :software_infos, :software_communities_plugin_software_infos | |
| 5 | + rename_table :libraries, :software_communities_plugin_libraries | |
| 6 | + rename_table :programming_languages, :software_communities_plugin_programming_languages | |
| 7 | + rename_table :database_descriptions, :software_communities_plugin_database_descriptions | |
| 8 | + rename_table :software_databases, :software_communities_plugin_software_databases | |
| 9 | + rename_table :software_languages, :software_communities_plugin_software_languages | |
| 10 | + rename_table :operating_systems, :software_communities_plugin_operating_systems | |
| 11 | + rename_table :operating_system_names, :software_communities_plugin_operating_system_names | |
| 12 | + rename_table :software_categories, :software_communities_plugin_software_categories | |
| 13 | + end | |
| 14 | +end | ... | ... |
src/noosfero-spb/software_communities/lib/categories_and_tags_block.rb
| ... | ... | @@ -1,29 +0,0 @@ |
| 1 | -class CategoriesAndTagsBlock < Block | |
| 2 | - | |
| 3 | - attr_accessible :show_name | |
| 4 | - | |
| 5 | - settings_items :show_name, :type => :boolean, :default => false | |
| 6 | - | |
| 7 | - def self.description | |
| 8 | - _('Categories and Tags') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def help | |
| 12 | - _('This block displays the categories and tags of a software.') | |
| 13 | - end | |
| 14 | - | |
| 15 | - def content(args={}) | |
| 16 | - block = self | |
| 17 | - s = show_name | |
| 18 | - lambda do |object| | |
| 19 | - render( | |
| 20 | - :file => 'blocks/categories_and_tags', | |
| 21 | - :locals => { :block => block, :show_name => s } | |
| 22 | - ) | |
| 23 | - end | |
| 24 | - end | |
| 25 | - | |
| 26 | - def cacheable? | |
| 27 | - false | |
| 28 | - end | |
| 29 | -end |
src/noosfero-spb/software_communities/lib/categories_software_block.rb
| ... | ... | @@ -1,35 +0,0 @@ |
| 1 | -class CategoriesSoftwareBlock < Block | |
| 2 | - | |
| 3 | - attr_accessible :show_name | |
| 4 | - | |
| 5 | - settings_items :show_name, :type => :boolean, :default => false | |
| 6 | - | |
| 7 | - def self.description | |
| 8 | - _('Categories Softwares') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def help | |
| 12 | - _('This block displays the categories and the amount of softwares for | |
| 13 | - each category.') | |
| 14 | - end | |
| 15 | - | |
| 16 | - def content(args={}) | |
| 17 | - block = self | |
| 18 | - s = show_name | |
| 19 | - | |
| 20 | - software_category = Category.find_by_name("Software") | |
| 21 | - categories = [] | |
| 22 | - categories = software_category.children.sort if software_category | |
| 23 | - | |
| 24 | - lambda do |object| | |
| 25 | - render( | |
| 26 | - :file => 'blocks/categories_software', | |
| 27 | - :locals => { :block => block, :show_name => s, :categories => categories } | |
| 28 | - ) | |
| 29 | - end | |
| 30 | - end | |
| 31 | - | |
| 32 | - def cacheable? | |
| 33 | - false | |
| 34 | - end | |
| 35 | -end |
src/noosfero-spb/software_communities/lib/create_software.rb
| ... | ... | @@ -1,115 +0,0 @@ |
| 1 | -class CreateSoftware < Task | |
| 2 | - include Rails.application.routes.url_helpers | |
| 3 | - | |
| 4 | - validates_presence_of :requestor_id, :target_id | |
| 5 | - validates_presence_of :name, :finality | |
| 6 | - | |
| 7 | - attr_accessible :name, :finality, :repository_link, :requestor, :environment, | |
| 8 | - :reject_explanation, :license_info, :identifier, :target | |
| 9 | - | |
| 10 | - alias :environment :target | |
| 11 | - alias :environment= :target= | |
| 12 | - | |
| 13 | - DATA_FIELDS = ['name', 'identifier', 'finality', 'license_info', 'repository_link'] | |
| 14 | - DATA_FIELDS.each do |field| | |
| 15 | - settings_items field.to_sym | |
| 16 | - end | |
| 17 | - | |
| 18 | - def perform | |
| 19 | - software_template = SoftwareHelper.software_template | |
| 20 | - template_id = software_template.blank? ? nil : software_template.id | |
| 21 | - | |
| 22 | - identifier = self.identifier | |
| 23 | - identifier ||= self.name.to_slug | |
| 24 | - | |
| 25 | - community = Community.create!(:name => self.name, | |
| 26 | - :identifier => identifier, | |
| 27 | - :template_id => template_id) | |
| 28 | - | |
| 29 | - community.environment = self.environment | |
| 30 | - community.add_admin(self.requestor) | |
| 31 | - | |
| 32 | - software = SoftwareInfo.create!(:finality => self.finality, | |
| 33 | - :repository_link => self.repository_link, :community_id => community.id, | |
| 34 | - :license_info => self.license_info) | |
| 35 | - end | |
| 36 | - | |
| 37 | - def title | |
| 38 | - _("New software") | |
| 39 | - end | |
| 40 | - | |
| 41 | - def subject | |
| 42 | - name | |
| 43 | - end | |
| 44 | - | |
| 45 | - def information | |
| 46 | - message = _('%{requestor} wants to create software %{subject} with') | |
| 47 | - if finality.blank? | |
| 48 | - { :message => message + _(' no finality.') } | |
| 49 | - else | |
| 50 | - { :message => message + _(' this finality:<p><em>%{finality}</em></p>'), | |
| 51 | - :variables => {:finality => finality} } | |
| 52 | - end | |
| 53 | - end | |
| 54 | - | |
| 55 | - def reject_details | |
| 56 | - true | |
| 57 | - end | |
| 58 | - | |
| 59 | - # tells if this request was rejected | |
| 60 | - def rejected? | |
| 61 | - self.status == Task::Status::CANCELLED | |
| 62 | - end | |
| 63 | - | |
| 64 | - # tells if this request was appoved | |
| 65 | - def approved? | |
| 66 | - self.status == Task::Status::FINISHED | |
| 67 | - end | |
| 68 | - | |
| 69 | - def target_notification_description | |
| 70 | - _('%{requestor} wants to create software %{subject}') % | |
| 71 | - {:requestor => requestor.name, :subject => subject} | |
| 72 | - end | |
| 73 | - | |
| 74 | - def target_notification_message | |
| 75 | - _("User \"%{user}\" just requested to create software %{software}. | |
| 76 | - You have to approve or reject it through the \"Pending Validations\" | |
| 77 | - section in your control panel.\n") % | |
| 78 | - { :user => self.requestor.name, :software => self.name } | |
| 79 | - end | |
| 80 | - | |
| 81 | - def task_created_message | |
| 82 | - _("Your request for registering software %{software} at %{environment} was | |
| 83 | - just sent. Environment administrator will receive it and will approve or | |
| 84 | - reject your request according to his methods and criteria. | |
| 85 | - | |
| 86 | - You will be notified as soon as environment administrator has a position | |
| 87 | - about your request.") % | |
| 88 | - { :software => self.name, :environment => self.target } | |
| 89 | - end | |
| 90 | - | |
| 91 | - def task_cancelled_message | |
| 92 | - _("Your request for registering software %{software} at %{environment} was | |
| 93 | - not approved by the environment administrator. The following explanation | |
| 94 | - was given: \n\n%{explanation}") % | |
| 95 | - { :software => self.name, | |
| 96 | - :environment => self.environment, | |
| 97 | - :explanation => self.reject_explanation } | |
| 98 | - end | |
| 99 | - | |
| 100 | - def task_finished_message | |
| 101 | - _('Your request for registering the software "%{software}" was approved. | |
| 102 | - You can access %{url} and finish the registration of your software.') % | |
| 103 | - { :software => self.name, :url => mount_url } | |
| 104 | - end | |
| 105 | - | |
| 106 | - private | |
| 107 | - | |
| 108 | - def mount_url | |
| 109 | - identifier = Community.where(:name => self.name).first.identifier | |
| 110 | - # The use of url_for doesn't allow the /social within the Public Software | |
| 111 | - # portal. That's why the url is mounted so 'hard coded' | |
| 112 | - url = "#{environment.top_url}/myprofile/#{identifier}/profile_editor/edit_software_community" | |
| 113 | - end | |
| 114 | - | |
| 115 | -end |
src/noosfero-spb/software_communities/lib/database_description.rb
| ... | ... | @@ -1,15 +0,0 @@ |
| 1 | -class DatabaseDescription < ActiveRecord::Base | |
| 2 | - | |
| 3 | - SEARCHABLE_SOFTWARE_FIELDS = { | |
| 4 | - :name => 1 | |
| 5 | - } | |
| 6 | - | |
| 7 | - attr_accessible :name | |
| 8 | - | |
| 9 | - has_many :software_databases | |
| 10 | - has_many :software_infos, :through => :software_databases | |
| 11 | - | |
| 12 | - validates_presence_of :name | |
| 13 | - validates_uniqueness_of :name | |
| 14 | - | |
| 15 | -end |
src/noosfero-spb/software_communities/lib/database_helper.rb
| ... | ... | @@ -5,7 +5,7 @@ class DatabaseHelper < DynamicTableHelper |
| 5 | 5 | def self.valid_database? database |
| 6 | 6 | return false if SoftwareHelper.all_table_is_empty?(database) |
| 7 | 7 | |
| 8 | - database_description_id_list = DatabaseDescription.select(:id). | |
| 8 | + database_description_id_list = SoftwareCommunitiesPlugin::DatabaseDescription.select(:id). | |
| 9 | 9 | collect {|dd| dd.id} |
| 10 | 10 | |
| 11 | 11 | return database_description_id_list.include?( |
| ... | ... | @@ -19,7 +19,7 @@ class DatabaseHelper < DynamicTableHelper |
| 19 | 19 | |
| 20 | 20 | new_databases.each do |new_database| |
| 21 | 21 | if valid_database? new_database |
| 22 | - database = SoftwareDatabase.new | |
| 22 | + database = SoftwareCommunitiesPlugin::SoftwareDatabase.new | |
| 23 | 23 | |
| 24 | 24 | database.database_description_id = |
| 25 | 25 | new_database[:database_description_id] |
| ... | ... | @@ -46,7 +46,7 @@ class DatabaseHelper < DynamicTableHelper |
| 46 | 46 | |
| 47 | 47 | def self.database_html_structure(database_data, disabled) |
| 48 | 48 | database_id = database_data[:database_description_id] |
| 49 | - database_name = database_id.blank? ? "" : DatabaseDescription.find( | |
| 49 | + database_name = database_id.blank? ? "" : SoftwareCommunitiesPlugin::DatabaseDescription.find( | |
| 50 | 50 | database_data[:database_description_id], |
| 51 | 51 | :select=>"name" |
| 52 | 52 | ).name | ... | ... |
src/noosfero-spb/software_communities/lib/download.rb
| ... | ... | @@ -1,51 +0,0 @@ |
| 1 | -#FIX ME: Turn this into a proper model(next release) | |
| 2 | -class Download | |
| 3 | - def initialize data | |
| 4 | - @name = data[:name] | |
| 5 | - @link = data[:link] | |
| 6 | - @software_description = data[:software_description] | |
| 7 | - @minimum_requirements = data[:minimum_requirements] | |
| 8 | - @size = data[:size] | |
| 9 | - | |
| 10 | - @total_downloads = if data[:total_downloads] | |
| 11 | - data[:total_downloads] | |
| 12 | - else | |
| 13 | - 0 | |
| 14 | - end | |
| 15 | - end | |
| 16 | - | |
| 17 | - def self.validate_download_list download_list | |
| 18 | - download_list.select! do |download| | |
| 19 | - not download[:name].blank? | |
| 20 | - end | |
| 21 | - | |
| 22 | - download_list.map do |download| | |
| 23 | - Download.new(download).to_hash | |
| 24 | - end | |
| 25 | - end | |
| 26 | - | |
| 27 | - def to_hash | |
| 28 | - { | |
| 29 | - :name => @name, | |
| 30 | - :link => @link, | |
| 31 | - :software_description => @software_description, | |
| 32 | - :minimum_requirements => @minimum_requirements, | |
| 33 | - :size => @size, | |
| 34 | - :total_downloads => @total_downloads | |
| 35 | - } | |
| 36 | - end | |
| 37 | - | |
| 38 | - def total_downloads= value | |
| 39 | - if value.is_a? Integer | |
| 40 | - @total_downloads = value | |
| 41 | - end | |
| 42 | - end | |
| 43 | - | |
| 44 | - def total_downloads | |
| 45 | - @total_downloads | |
| 46 | - end | |
| 47 | - | |
| 48 | - def link | |
| 49 | - @link | |
| 50 | - end | |
| 51 | -end |
src/noosfero-spb/software_communities/lib/download_block.rb
| ... | ... | @@ -1,36 +0,0 @@ |
| 1 | -class DownloadBlock < Block | |
| 2 | - | |
| 3 | - attr_accessible :show_name, :downloads | |
| 4 | - | |
| 5 | - settings_items :show_name, :type => :boolean, :default => false | |
| 6 | - settings_items :downloads, :type => Array, :default => [] | |
| 7 | - | |
| 8 | - validate :download_values | |
| 9 | - | |
| 10 | - def download_values | |
| 11 | - self.downloads = Download.validate_download_list(self.downloads) | |
| 12 | - end | |
| 13 | - | |
| 14 | - def self.description | |
| 15 | - _('Download Stable Version') | |
| 16 | - end | |
| 17 | - | |
| 18 | - def help | |
| 19 | - _('This block displays the stable version of a software.') | |
| 20 | - end | |
| 21 | - | |
| 22 | - def content(args={}) | |
| 23 | - block = self | |
| 24 | - s = show_name | |
| 25 | - lambda do |object| | |
| 26 | - render( | |
| 27 | - :file => 'blocks/download', | |
| 28 | - :locals => { :block => block, :show_name => s } | |
| 29 | - ) | |
| 30 | - end | |
| 31 | - end | |
| 32 | - | |
| 33 | - def cacheable? | |
| 34 | - false | |
| 35 | - end | |
| 36 | -end |
src/noosfero-spb/software_communities/lib/ext/community.rb
| ... | ... | @@ -10,7 +10,7 @@ class Community |
| 10 | 10 | |
| 11 | 11 | attr_accessible :visible |
| 12 | 12 | |
| 13 | - has_one :software_info, :dependent=>:destroy | |
| 13 | + has_one :software_info, :class_name => 'SoftwareCommunitiesPlugin::SoftwareInfo', :dependent=>:destroy | |
| 14 | 14 | |
| 15 | 15 | settings_items :hits, :type => :integer, :default => 0 |
| 16 | 16 | |
| ... | ... | @@ -57,7 +57,7 @@ class Community |
| 57 | 57 | def remove_of_community_search_software? |
| 58 | 58 | return software? |
| 59 | 59 | end |
| 60 | - | |
| 60 | + | |
| 61 | 61 | def hit |
| 62 | 62 | self.hits += 1 |
| 63 | 63 | self.save! | ... | ... |
src/noosfero-spb/software_communities/lib/ext/search_controller.rb
| ... | ... | @@ -63,11 +63,11 @@ class SearchController |
| 63 | 63 | params[:query] ||= "" |
| 64 | 64 | visible_communities = visible_profiles(Community) |
| 65 | 65 | |
| 66 | - filtered_software_list = SoftwareInfo.search_by_query(params[:query]) | |
| 66 | + filtered_software_list = SoftwareCommunitiesPlugin::SoftwareInfo.search_by_query(params[:query]) | |
| 67 | 67 | |
| 68 | 68 | if params[:only_softwares] |
| 69 | 69 | params[:only_softwares].collect!{ |software_name| software_name.to_slug } |
| 70 | - filtered_software_list = SoftwareInfo.all.select{ |s| params[:only_softwares].include?(s.identifier) } | |
| 70 | + filtered_software_list = SoftwareCommunitiesPlugin::SoftwareInfo.all.select{ |s| params[:only_softwares].include?(s.identifier) } | |
| 71 | 71 | @public_software_selected = false |
| 72 | 72 | end |
| 73 | 73 | |
| ... | ... | @@ -117,7 +117,9 @@ class SearchController |
| 117 | 117 | end |
| 118 | 118 | |
| 119 | 119 | def prepare_software_infos_params |
| 120 | - @titles[:software_infos] = _("Result Search") | |
| 120 | + @asset = "software_communities_plugin/software_infos" | |
| 121 | + @assets = [@asset] | |
| 122 | + @titles["software_communities_plugin/software_infos"] = _("Result Search") | |
| 121 | 123 | @selected_categories_id = params[:selected_categories_id] |
| 122 | 124 | @selected_categories_id ||= [] |
| 123 | 125 | @selected_categories_id = @selected_categories_id.map(&:to_i) |
| ... | ... | @@ -130,7 +132,7 @@ class SearchController |
| 130 | 132 | return 15 if params[:software_display].nil? |
| 131 | 133 | |
| 132 | 134 | if params[:software_display] == "all" |
| 133 | - SoftwareInfo.count | |
| 135 | + SoftwareCommunitiesPlugin::SoftwareInfo.count | |
| 134 | 136 | else |
| 135 | 137 | params[:software_display].to_i |
| 136 | 138 | end | ... | ... |
src/noosfero-spb/software_communities/lib/library.rb
| ... | ... | @@ -1,10 +0,0 @@ |
| 1 | -class Library < ActiveRecord::Base | |
| 2 | - attr_accessible :name, :version, :license, :software_info_id | |
| 3 | - | |
| 4 | - validates :name, :version, :license, | |
| 5 | - presence: { message: _("can't be blank") }, | |
| 6 | - length: { | |
| 7 | - maximum: 20, | |
| 8 | - too_long: _("Too long (maximum is 20 characters)") | |
| 9 | - } | |
| 10 | -end |
src/noosfero-spb/software_communities/lib/library_helper.rb
| ... | ... | @@ -7,7 +7,7 @@ class LibraryHelper < DynamicTableHelper |
| 7 | 7 | |
| 8 | 8 | new_libraries.each do |new_library| |
| 9 | 9 | unless SoftwareHelper.all_table_is_empty? new_library |
| 10 | - library = Library.new | |
| 10 | + library = SoftwareCommunitiesPlugin::Library.new | |
| 11 | 11 | library.name = new_library[:name] |
| 12 | 12 | library.version = new_library[:version] |
| 13 | 13 | library.license = new_library[:license] | ... | ... |
src/noosfero-spb/software_communities/lib/license_helper.rb
| 1 | 1 | module LicenseHelper |
| 2 | 2 | def self.find_licenses query |
| 3 | - licenses = LicenseInfo.where("version ILIKE ?", "%#{query}%").select("id, version") | |
| 3 | + licenses = SoftwareCommunitiesPlugin::LicenseInfo.where("version ILIKE ?", "%#{query}%").select("id, version") | |
| 4 | 4 | licenses.reject!{|license| license.version == "Another"} |
| 5 | - license_another = LicenseInfo.find_by_version("Another") | |
| 5 | + license_another = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version("Another") | |
| 6 | 6 | licenses << license_another if license_another |
| 7 | 7 | licenses |
| 8 | 8 | end | ... | ... |
src/noosfero-spb/software_communities/lib/license_info.rb
src/noosfero-spb/software_communities/lib/operating_system.rb
| ... | ... | @@ -1,14 +0,0 @@ |
| 1 | -class OperatingSystem < ActiveRecord::Base | |
| 2 | - attr_accessible :version | |
| 3 | - | |
| 4 | - belongs_to :software_info | |
| 5 | - belongs_to :operating_system_name | |
| 6 | - | |
| 7 | - validates :operating_system_name, presence: true | |
| 8 | - validates :version, | |
| 9 | - presence: true, | |
| 10 | - length: { | |
| 11 | - maximum: 20, | |
| 12 | - too_long: _('too long (maximum is 20 characters)') | |
| 13 | - } | |
| 14 | -end |
src/noosfero-spb/software_communities/lib/operating_system_helper.rb
| ... | ... | @@ -12,8 +12,8 @@ class OperatingSystemHelper < DynamicTableHelper |
| 12 | 12 | ["operating_system_name_id"] |
| 13 | 13 | ) |
| 14 | 14 | |
| 15 | - operating_system = OperatingSystem.new | |
| 16 | - operating_system.operating_system_name = OperatingSystemName.find( | |
| 15 | + operating_system = SoftwareCommunitiesPlugin::OperatingSystem.new | |
| 16 | + operating_system.operating_system_name = SoftwareCommunitiesPlugin::OperatingSystemName.find( | |
| 17 | 17 | new_operating_system[:operating_system_name_id] |
| 18 | 18 | ) |
| 19 | 19 | |
| ... | ... | @@ -38,7 +38,7 @@ class OperatingSystemHelper < DynamicTableHelper |
| 38 | 38 | |
| 39 | 39 | def self.operating_system_html_structure (operating_system_data, disabled) |
| 40 | 40 | select_options = options_for_select( |
| 41 | - OperatingSystemName.all.collect {|osn| [osn.name, osn.id]}, | |
| 41 | + SoftwareCommunitiesPlugin::OperatingSystemName.all.collect {|osn| [osn.name, osn.id]}, | |
| 42 | 42 | operating_system_data[:operating_system_name_id] |
| 43 | 43 | ) |
| 44 | 44 | ... | ... |
src/noosfero-spb/software_communities/lib/operating_system_name.rb
src/noosfero-spb/software_communities/lib/programming_language.rb
| ... | ... | @@ -1,15 +0,0 @@ |
| 1 | -class ProgrammingLanguage < ActiveRecord::Base | |
| 2 | - | |
| 3 | - SEARCHABLE_SOFTWARE_FIELDS = { | |
| 4 | - :name => 1 | |
| 5 | - } | |
| 6 | - | |
| 7 | - attr_accessible :name | |
| 8 | - | |
| 9 | - validates_presence_of :name | |
| 10 | - validates_uniqueness_of :name | |
| 11 | - | |
| 12 | - has_many :software_languages | |
| 13 | - has_many :software_infos, :through => :software_languages | |
| 14 | - | |
| 15 | -end |
src/noosfero-spb/software_communities/lib/repository_block.rb
| ... | ... | @@ -1,29 +0,0 @@ |
| 1 | -class RepositoryBlock < Block | |
| 2 | - | |
| 3 | - attr_accessible :show_name | |
| 4 | - | |
| 5 | - settings_items :show_name, :type => :boolean, :default => false | |
| 6 | - | |
| 7 | - def self.description | |
| 8 | - _('Repository Link') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def help | |
| 12 | - _('This block displays the repository link of a software.') | |
| 13 | - end | |
| 14 | - | |
| 15 | - def content(args={}) | |
| 16 | - block = self | |
| 17 | - s = show_name | |
| 18 | - lambda do |object| | |
| 19 | - render( | |
| 20 | - :file => 'blocks/repository', | |
| 21 | - :locals => { :block => block, :show_name => s } | |
| 22 | - ) | |
| 23 | - end | |
| 24 | - end | |
| 25 | - | |
| 26 | - def cacheable? | |
| 27 | - false | |
| 28 | - end | |
| 29 | -end |
src/noosfero-spb/software_communities/lib/search_catalog_block.rb
| ... | ... | @@ -1,29 +0,0 @@ |
| 1 | -class SearchCatalogBlock < Block | |
| 2 | - | |
| 3 | - attr_accessible :show_name | |
| 4 | - | |
| 5 | - settings_items :show_name, :type => :boolean, :default => false | |
| 6 | - | |
| 7 | - def self.description | |
| 8 | - _('Search Softwares catalog') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def help | |
| 12 | - _('This block displays the search categories field ') | |
| 13 | - end | |
| 14 | - | |
| 15 | - def content(args={}) | |
| 16 | - block = self | |
| 17 | - s = show_name | |
| 18 | - lambda do |object| | |
| 19 | - render( | |
| 20 | - :file => 'blocks/search_catalog', | |
| 21 | - :locals => { :block => block, :show_name => s } | |
| 22 | - ) | |
| 23 | - end | |
| 24 | - end | |
| 25 | - | |
| 26 | - def cacheable? | |
| 27 | - false | |
| 28 | - end | |
| 29 | -end |
src/noosfero-spb/software_communities/lib/software_communities_plugin.rb
| ... | ... | @@ -33,17 +33,17 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin |
| 33 | 33 | |
| 34 | 34 | def self.extra_blocks |
| 35 | 35 | { |
| 36 | - SoftwaresBlock => { :type => [Environment, Person] }, | |
| 37 | - SoftwareInformationBlock => { :type => [Community] }, | |
| 38 | - DownloadBlock => { :type => [Community] }, | |
| 39 | - RepositoryBlock => { :type => [Community] }, | |
| 40 | - CategoriesAndTagsBlock => { :type => [Community] }, | |
| 41 | - CategoriesSoftwareBlock => { :type => [Environment] }, | |
| 42 | - SearchCatalogBlock => { :type => [Environment] }, | |
| 43 | - SoftwareHighlightsBlock => { :type => [Environment] }, | |
| 44 | - SoftwareTabDataBlock => {:type => [Community], :position => 1}, | |
| 45 | - WikiBlock => {:type => [Community]}, | |
| 46 | - StatisticBlock => { :type => [Community] } | |
| 36 | + SoftwareCommunitiesPlugin::SoftwaresBlock => { :type => [Environment, Person] }, | |
| 37 | + SoftwareCommunitiesPlugin::SoftwareInformationBlock => { :type => [Community] }, | |
| 38 | + SoftwareCommunitiesPlugin::DownloadBlock => { :type => [Community] }, | |
| 39 | + SoftwareCommunitiesPlugin::RepositoryBlock => { :type => [Community] }, | |
| 40 | + SoftwareCommunitiesPlugin::CategoriesAndTagsBlock => { :type => [Community] }, | |
| 41 | + SoftwareCommunitiesPlugin::CategoriesSoftwareBlock => { :type => [Environment] }, | |
| 42 | + SoftwareCommunitiesPlugin::SearchCatalogBlock => { :type => [Environment] }, | |
| 43 | + SoftwareCommunitiesPlugin::SoftwareHighlightsBlock => { :type => [Environment] }, | |
| 44 | + SoftwareCommunitiesPlugin::SoftwareTabDataBlock => {:type => [Community], :position => 1}, | |
| 45 | + SoftwareCommunitiesPlugin::WikiBlock => {:type => [Community]}, | |
| 46 | + SoftwareCommunitiesPlugin::StatisticBlock => { :type => [Community] } | |
| 47 | 47 | } |
| 48 | 48 | end |
| 49 | 49 | |
| ... | ... | @@ -117,7 +117,7 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin |
| 117 | 117 | protected |
| 118 | 118 | |
| 119 | 119 | def software_info_transaction |
| 120 | - SoftwareInfo.transaction do | |
| 120 | + SoftwareCommunitiesPlugin::SoftwareInfo.transaction do | |
| 121 | 121 | context.profile. |
| 122 | 122 | software_info. |
| 123 | 123 | update_attributes!(context.params[:software_info]) |
| ... | ... | @@ -125,7 +125,7 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin |
| 125 | 125 | end |
| 126 | 126 | |
| 127 | 127 | def license_transaction |
| 128 | - license = LicenseInfo.find(context.params[:version]) | |
| 128 | + license = SoftwareCommunitiesPlugin::LicenseInfo.find(context.params[:version]) | |
| 129 | 129 | context.profile.software_info.license_info = license |
| 130 | 130 | context.profile.software_info.save! |
| 131 | 131 | end | ... | ... |
src/noosfero-spb/software_communities/lib/software_database.rb
| ... | ... | @@ -1,20 +0,0 @@ |
| 1 | -class SoftwareDatabase < ActiveRecord::Base | |
| 2 | - attr_accessible :version | |
| 3 | - | |
| 4 | - belongs_to :software_info | |
| 5 | - belongs_to :database_description | |
| 6 | - | |
| 7 | - validates_presence_of :database_description_id, :version | |
| 8 | - | |
| 9 | - validates_length_of( | |
| 10 | - :version, | |
| 11 | - :maximum => 20, | |
| 12 | - :too_long => _("Software database is too long (maximum is 20 characters)") | |
| 13 | - ) | |
| 14 | - | |
| 15 | - validates( | |
| 16 | - :database_description_id, | |
| 17 | - :numericality => {:greater_than_or_equal_to => 1} | |
| 18 | - ) | |
| 19 | - | |
| 20 | -end |
src/noosfero-spb/software_communities/lib/software_highlights_block.rb
| ... | ... | @@ -1,20 +0,0 @@ |
| 1 | -class SoftwareHighlightsBlock < HighlightsBlock | |
| 2 | - | |
| 3 | - def self.description | |
| 4 | - _('Software Highlights Block') | |
| 5 | - end | |
| 6 | - | |
| 7 | - def help | |
| 8 | - _('This block displays the softwares icon into a highlight') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def content(args={}) | |
| 12 | - softwares = self.settings[:images].collect {|h| h[:address].split('/').last} | |
| 13 | - block = self | |
| 14 | - proc do | |
| 15 | - render :file => 'blocks/software_highlights', :locals => { :block => block, :softwares => softwares} | |
| 16 | - end | |
| 17 | - end | |
| 18 | - | |
| 19 | - | |
| 20 | -end |
src/noosfero-spb/software_communities/lib/software_info.rb
| ... | ... | @@ -1,263 +0,0 @@ |
| 1 | -class SoftwareInfo < ActiveRecord::Base | |
| 2 | - acts_as_having_settings :field => :settings | |
| 3 | - | |
| 4 | - SEARCHABLE_SOFTWARE_FIELDS = { | |
| 5 | - :acronym => 1, | |
| 6 | - :finality => 2, | |
| 7 | - } | |
| 8 | - | |
| 9 | - SEARCHABLE_SOFTWARE_CLASSES = [ | |
| 10 | - SoftwareInfo, | |
| 11 | - Community, | |
| 12 | - ProgrammingLanguage, | |
| 13 | - DatabaseDescription | |
| 14 | - ] | |
| 15 | - | |
| 16 | - scope :search_by_query, lambda { |query = ""| | |
| 17 | - filtered_query = query.gsub(/[\|\(\)\\\/\s\[\]'"*%&!:]/,' ').split.map{|w| w += ":*"}.join('|') | |
| 18 | - search_fields = SoftwareInfo.pg_search_plugin_fields | |
| 19 | - | |
| 20 | - if query.empty? | |
| 21 | - SoftwareInfo.joins(:community).where("profiles.visible = ?", true) | |
| 22 | - else | |
| 23 | - searchable_software_objects = SoftwareInfo.transform_list_in_methods_list(SEARCHABLE_SOFTWARE_CLASSES) | |
| 24 | - includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')").where("profiles.visible = ?", true) | |
| 25 | - end | |
| 26 | - } | |
| 27 | - | |
| 28 | - def self.transform_list_in_methods_list list | |
| 29 | - methods_list = [] | |
| 30 | - | |
| 31 | - list.each do |element| | |
| 32 | - if SoftwareInfo.instance_methods.include?(element.to_s.underscore.to_sym) | |
| 33 | - methods_list << element.to_s.underscore.to_sym | |
| 34 | - elsif SoftwareInfo.instance_methods.include?(element.to_s.underscore.pluralize.to_sym) | |
| 35 | - methods_list << element.to_s.underscore.pluralize.to_sym | |
| 36 | - end | |
| 37 | - end | |
| 38 | - | |
| 39 | - methods_list | |
| 40 | - end | |
| 41 | - | |
| 42 | - def self.pg_search_plugin_fields | |
| 43 | - SEARCHABLE_SOFTWARE_CLASSES.collect { |one_class| | |
| 44 | - self.get_searchable_fields(one_class) | |
| 45 | - }.join(" || ' ' || ") | |
| 46 | - end | |
| 47 | - | |
| 48 | - def self.get_searchable_fields one_class | |
| 49 | - searchable_fields = one_class::SEARCHABLE_SOFTWARE_FIELDS.keys.map(&:to_s).sort.map {|f| "coalesce(#{one_class.table_name}.#{f}, '')"}.join(" || ' ' || ") | |
| 50 | - searchable_fields | |
| 51 | - end | |
| 52 | - | |
| 53 | - SEARCH_FILTERS = { | |
| 54 | - :order => %w[], | |
| 55 | - :display => %w[full] | |
| 56 | - } | |
| 57 | - | |
| 58 | - def self.default_search_display | |
| 59 | - 'full' | |
| 60 | - end | |
| 61 | - | |
| 62 | - attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, | |
| 63 | - :operating_platform | |
| 64 | - | |
| 65 | - attr_accessible :demonstration_url, :acronym, :objectives, :features, | |
| 66 | - :license_info | |
| 67 | - | |
| 68 | - attr_accessible :community_id, :finality, :repository_link, :public_software, | |
| 69 | - :first_edit | |
| 70 | - | |
| 71 | - has_many :libraries, :dependent => :destroy | |
| 72 | - has_many :software_databases | |
| 73 | - has_many :database_descriptions, :through => :software_databases | |
| 74 | - has_many :software_languages | |
| 75 | - has_many :operating_systems | |
| 76 | - has_many :programming_languages, :through => :software_languages | |
| 77 | - has_many :operating_system_names, :through => :operating_systems | |
| 78 | - | |
| 79 | - belongs_to :community, :dependent => :destroy | |
| 80 | - belongs_to :license_info | |
| 81 | - | |
| 82 | - has_one :software_categories | |
| 83 | - | |
| 84 | - validates_length_of :finality, :maximum => 120 | |
| 85 | - validates_length_of :objectives, :maximum => 4000 | |
| 86 | - validates_length_of :features, :maximum => 4000 | |
| 87 | - validates_presence_of :finality, :community | |
| 88 | - | |
| 89 | - validate :validate_acronym | |
| 90 | - | |
| 91 | - settings_items :another_license_version, :another_license_link | |
| 92 | - | |
| 93 | - # used on find_by_contents | |
| 94 | - scope :like_search, lambda{ |name| | |
| 95 | - joins(:community).where( | |
| 96 | - "name ILIKE ? OR acronym ILIKE ? OR finality ILIKE ?", | |
| 97 | - "%#{name}%", "%#{name}%", "%#{name}%" | |
| 98 | - ) | |
| 99 | - } | |
| 100 | - | |
| 101 | - scope :search, lambda { |name="", database_description_id = "", | |
| 102 | - programming_language_id = "", operating_system_name_id = "", | |
| 103 | - license_info_id = "", e_ping = "", e_mag = "", internacionalizable = "", | |
| 104 | - icp_brasil = "", e_arq = "", software_categories = "" | | |
| 105 | - | |
| 106 | - like_sql = "" | |
| 107 | - values = [] | |
| 108 | - | |
| 109 | - unless name.blank? | |
| 110 | - like_sql << "name ILIKE ? OR identifier ILIKE ? AND " | |
| 111 | - values << "%#{name}%" << "%#{name}%" | |
| 112 | - end | |
| 113 | - | |
| 114 | - like_sql = like_sql[0..like_sql.length-5] | |
| 115 | - | |
| 116 | - { | |
| 117 | - :joins => [:community], | |
| 118 | - :conditions=>[like_sql, *values] | |
| 119 | - } | |
| 120 | - } | |
| 121 | - | |
| 122 | - def license_info | |
| 123 | - license = LicenseInfo.find_by_id self.license_info_id | |
| 124 | - license_another = LicenseInfo.find_by_version("Another") | |
| 125 | - | |
| 126 | - if license_another && license.id == license_another.id | |
| 127 | - LicenseInfo.new( | |
| 128 | - :version => self.another_license_version, | |
| 129 | - :link => self.another_license_link | |
| 130 | - ) | |
| 131 | - else | |
| 132 | - license | |
| 133 | - end | |
| 134 | - end | |
| 135 | - | |
| 136 | - def another_license(version, link) | |
| 137 | - license_another = LicenseInfo.find_by_version("Another") | |
| 138 | - | |
| 139 | - if license_another | |
| 140 | - self.another_license_version = version | |
| 141 | - self.another_license_link = link | |
| 142 | - self.license_info = license_another | |
| 143 | - self.save! | |
| 144 | - end | |
| 145 | - end | |
| 146 | - | |
| 147 | - def validate_name_lenght | |
| 148 | - if self.community.name.size > 100 | |
| 149 | - self.errors.add( | |
| 150 | - :base, | |
| 151 | - _("Name is too long (maximum is %{count} characters)") | |
| 152 | - ) | |
| 153 | - false | |
| 154 | - end | |
| 155 | - true | |
| 156 | - end | |
| 157 | - | |
| 158 | - # if create_after_moderation receive a model object, would be possible to reuse core method | |
| 159 | - def self.create_after_moderation(requestor, attributes = {}) | |
| 160 | - environment = attributes.delete(:environment) | |
| 161 | - name = attributes.delete(:name) | |
| 162 | - identifier = attributes.delete(:identifier) | |
| 163 | - image_builder = attributes.delete(:image_builder) | |
| 164 | - license_info = attributes.delete(:license_info) | |
| 165 | - another_license_version = attributes.delete(:another_license_version) | |
| 166 | - another_license_link = attributes.delete(:another_license_link) | |
| 167 | - | |
| 168 | - software_info = SoftwareInfo.new(attributes) | |
| 169 | - unless environment.admins.include? requestor | |
| 170 | - CreateSoftware.create!( | |
| 171 | - attributes.merge( | |
| 172 | - :requestor => requestor, | |
| 173 | - :environment => environment, | |
| 174 | - :name => name, | |
| 175 | - :identifier => identifier, | |
| 176 | - :license_info => license_info | |
| 177 | - ) | |
| 178 | - ) | |
| 179 | - else | |
| 180 | - software_template = SoftwareHelper.software_template | |
| 181 | - | |
| 182 | - community_hash = {:name => name} | |
| 183 | - community_hash[:identifier] = identifier | |
| 184 | - community_hash[:image_builder] = image_builder if image_builder | |
| 185 | - | |
| 186 | - community = Community.new(community_hash) | |
| 187 | - community.environment = environment | |
| 188 | - | |
| 189 | - unless software_template.blank? | |
| 190 | - community.template_id = software_template.id | |
| 191 | - end | |
| 192 | - | |
| 193 | - community.save! | |
| 194 | - community.add_admin(requestor) | |
| 195 | - | |
| 196 | - software_info.community = community | |
| 197 | - software_info.license_info = license_info | |
| 198 | - software_info.save! | |
| 199 | - end | |
| 200 | - | |
| 201 | - software_info.verify_license_info(another_license_version, another_license_link) | |
| 202 | - software_info.save | |
| 203 | - software_info | |
| 204 | - end | |
| 205 | - | |
| 206 | - def verify_license_info another_license_version, another_license_link | |
| 207 | - license_another = LicenseInfo.find_by_version("Another") | |
| 208 | - | |
| 209 | - if license_another && self.license_info_id == license_another.id | |
| 210 | - version = another_license_version | |
| 211 | - link = another_license_link | |
| 212 | - | |
| 213 | - self.another_license(version, link) | |
| 214 | - end | |
| 215 | - end | |
| 216 | - | |
| 217 | - | |
| 218 | - def validate_acronym | |
| 219 | - self.acronym = "" if self.acronym.nil? | |
| 220 | - if self.acronym.length > 10 && self.errors.messages[:acronym].nil? | |
| 221 | - self.errors.add(:acronym, _("can't have more than 10 characteres")) | |
| 222 | - false | |
| 223 | - elsif self.acronym.match(/\s+/) | |
| 224 | - self.errors.add(:acronym, _("can't have whitespaces")) | |
| 225 | - false | |
| 226 | - end | |
| 227 | - true | |
| 228 | - end | |
| 229 | - | |
| 230 | - def valid_operating_systems | |
| 231 | - if self.operating_systems.empty? | |
| 232 | - self.errors.add(:operating_system, _(": at least one must be filled")) | |
| 233 | - end | |
| 234 | - end | |
| 235 | - | |
| 236 | - def valid_software_info | |
| 237 | - if self.software_languages.empty? | |
| 238 | - self.errors.add(:software_languages, _(": at least one must be filled")) | |
| 239 | - end | |
| 240 | - end | |
| 241 | - | |
| 242 | - def valid_databases | |
| 243 | - if self.software_databases.empty? | |
| 244 | - self.errors.add(:software_databases, _(": at least one must be filled")) | |
| 245 | - end | |
| 246 | - end | |
| 247 | - | |
| 248 | - def visible? | |
| 249 | - self.community.visible? | |
| 250 | - end | |
| 251 | - | |
| 252 | - def name | |
| 253 | - self.community.name | |
| 254 | - end | |
| 255 | - | |
| 256 | - def short_name | |
| 257 | - self.community.short_name | |
| 258 | - end | |
| 259 | - | |
| 260 | - def identifier | |
| 261 | - self.community.identifier | |
| 262 | - end | |
| 263 | -end |
src/noosfero-spb/software_communities/lib/software_information_block.rb
| ... | ... | @@ -1,37 +0,0 @@ |
| 1 | -class SoftwareInformationBlock < Block | |
| 2 | - | |
| 3 | - attr_accessible :show_name | |
| 4 | - | |
| 5 | - settings_items :show_name, :type => :boolean, :default => false | |
| 6 | - | |
| 7 | - def self.description | |
| 8 | - _('Basic Software Information') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def help | |
| 12 | - _('This block displays the basic information of a software profile.') | |
| 13 | - end | |
| 14 | - | |
| 15 | - def content(args={}) | |
| 16 | - block = self | |
| 17 | - s = show_name | |
| 18 | - | |
| 19 | - lambda do |object| | |
| 20 | - render( | |
| 21 | - :file => 'blocks/software_information', | |
| 22 | - :locals => { :block => block, :show_name => s} | |
| 23 | - ) | |
| 24 | - end | |
| 25 | - end | |
| 26 | - | |
| 27 | - def cacheable? | |
| 28 | - false | |
| 29 | - end | |
| 30 | - | |
| 31 | - private | |
| 32 | - | |
| 33 | - def owner_has_ratings? | |
| 34 | - ratings = CommunityRating.where(community_id: block.owner.id) | |
| 35 | - !ratings.empty? | |
| 36 | - end | |
| 37 | -end |
src/noosfero-spb/software_communities/lib/software_language.rb
| ... | ... | @@ -1,14 +0,0 @@ |
| 1 | -class SoftwareLanguage < ActiveRecord::Base | |
| 2 | - attr_accessible :version | |
| 3 | - | |
| 4 | - belongs_to :software_info | |
| 5 | - belongs_to :programming_language | |
| 6 | - | |
| 7 | - validates_length_of( | |
| 8 | - :version, | |
| 9 | - :maximum => 20, | |
| 10 | - :too_long => _("Software language is too long (maximum is 20 characters)") | |
| 11 | - ) | |
| 12 | - | |
| 13 | - validates_presence_of :version,:programming_language | |
| 14 | -end |
src/noosfero-spb/software_communities/lib/software_language_helper.rb
| ... | ... | @@ -5,7 +5,7 @@ class SoftwareLanguageHelper < DynamicTableHelper |
| 5 | 5 | def self.valid_language? language |
| 6 | 6 | return false if SoftwareHelper.all_table_is_empty?(language) |
| 7 | 7 | |
| 8 | - programming_language_id_list = ProgrammingLanguage. | |
| 8 | + programming_language_id_list = SoftwareCommunitiesPlugin::ProgrammingLanguage. | |
| 9 | 9 | select(:id). |
| 10 | 10 | collect { |dd| dd.id } |
| 11 | 11 | |
| ... | ... | @@ -20,9 +20,9 @@ class SoftwareLanguageHelper < DynamicTableHelper |
| 20 | 20 | |
| 21 | 21 | new_languages.each do |new_language| |
| 22 | 22 | if valid_language? new_language |
| 23 | - language = SoftwareLanguage.new | |
| 23 | + language = SoftwareCommunitiesPlugin::SoftwareLanguage.new | |
| 24 | 24 | language.programming_language = |
| 25 | - ProgrammingLanguage.find(new_language[:programming_language_id]) | |
| 25 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.find(new_language[:programming_language_id]) | |
| 26 | 26 | language.version = new_language[:version] |
| 27 | 27 | list_languages << language |
| 28 | 28 | end |
| ... | ... | @@ -52,7 +52,7 @@ class SoftwareLanguageHelper < DynamicTableHelper |
| 52 | 52 | language_id = language_data[:programming_language_id] |
| 53 | 53 | language_name = "" |
| 54 | 54 | unless language_data[:programming_language_id].blank? |
| 55 | - language_name = ProgrammingLanguage.find( | |
| 55 | + language_name = SoftwareCommunitiesPlugin::ProgrammingLanguage.find( | |
| 56 | 56 | language_data[:programming_language_id], |
| 57 | 57 | :select=>"name" |
| 58 | 58 | ).name | ... | ... |
src/noosfero-spb/software_communities/lib/software_tab_data_block.rb
| ... | ... | @@ -1,48 +0,0 @@ |
| 1 | -class SoftwareTabDataBlock < Block | |
| 2 | - attr_accessible :show_name, :displayed_blog | |
| 3 | - | |
| 4 | - settings_items :show_name, :type => :boolean, :default => false | |
| 5 | - settings_items :displayed_blog, :type => :integer, :default => 0 | |
| 6 | - | |
| 7 | - TOTAL_POSTS_DYSPLAYED = 5 | |
| 8 | - | |
| 9 | - def self.description | |
| 10 | - _('Software Tab Data') | |
| 11 | - end | |
| 12 | - | |
| 13 | - def help | |
| 14 | - _('This block is used by colab to insert data into Noosfero') | |
| 15 | - end | |
| 16 | - | |
| 17 | - def content(args={}) | |
| 18 | - block = self | |
| 19 | - | |
| 20 | - lambda do |object| | |
| 21 | - render( | |
| 22 | - :file => 'blocks/software_tab_data', | |
| 23 | - :locals => { | |
| 24 | - :block => block | |
| 25 | - } | |
| 26 | - ) | |
| 27 | - end | |
| 28 | - end | |
| 29 | - | |
| 30 | - def blogs | |
| 31 | - self.owner.blogs | |
| 32 | - end | |
| 33 | - | |
| 34 | - def actual_blog | |
| 35 | - # As :displayed_blog default value is 0, it falls to the first one | |
| 36 | - blogs.find_by_id(self.displayed_blog) || blogs.first | |
| 37 | - end | |
| 38 | - | |
| 39 | - def posts | |
| 40 | - blog = actual_blog | |
| 41 | - | |
| 42 | - if blog and (not blog.posts.empty?) | |
| 43 | - blog.posts.limit(TOTAL_POSTS_DYSPLAYED) | |
| 44 | - else | |
| 45 | - [] | |
| 46 | - end | |
| 47 | - end | |
| 48 | -end |
src/noosfero-spb/software_communities/lib/softwares_block.rb
| ... | ... | @@ -1,105 +0,0 @@ |
| 1 | -class SoftwaresBlock < CommunitiesBlock | |
| 2 | - | |
| 3 | - settings_items :software_type, :default => "All" | |
| 4 | - attr_accessible :accessor_id, :accessor_type, :role_id, | |
| 5 | - :resource_id, :resource_type, :software_type | |
| 6 | - | |
| 7 | - def self.description | |
| 8 | - _('Softwares') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def default_title | |
| 12 | - if self.software_type == "Generic" | |
| 13 | - return n_('{#} generic software', '{#} generic softwares', profile_count) | |
| 14 | - elsif self.software_type == "Public" | |
| 15 | - return n_('{#} public software', '{#} public softwares', profile_count) | |
| 16 | - else | |
| 17 | - return n_('{#} software', '{#} softwares', profile_count) | |
| 18 | - end | |
| 19 | - end | |
| 20 | - | |
| 21 | - def help | |
| 22 | - _('This block displays the softwares in which the user is a member.') | |
| 23 | - end | |
| 24 | - | |
| 25 | - def footer | |
| 26 | - self.software_type ||= "All" | |
| 27 | - owner = self.owner | |
| 28 | - case owner | |
| 29 | - when Profile | |
| 30 | - lambda do |context| | |
| 31 | - link_to s_('softwares|View all'), :profile => owner.identifier, | |
| 32 | - :controller => 'profile', :action => 'communities', | |
| 33 | - :type => 'Software' | |
| 34 | - end | |
| 35 | - when Environment | |
| 36 | - lambda do |context| | |
| 37 | - link_to s_('softwares|View all'), :controller => 'search', | |
| 38 | - :action => 'software_infos' | |
| 39 | - end | |
| 40 | - else | |
| 41 | - '' | |
| 42 | - end | |
| 43 | - end | |
| 44 | - | |
| 45 | - def profile_count | |
| 46 | - profile_list.count | |
| 47 | - end | |
| 48 | - | |
| 49 | - def profiles | |
| 50 | - owner.communities | |
| 51 | - end | |
| 52 | - | |
| 53 | - def profile_list | |
| 54 | - profiles = get_visible_profiles | |
| 55 | - | |
| 56 | - software_profiles = profiles.select do |profile| | |
| 57 | - profile.class == Community && profile.software? | |
| 58 | - end | |
| 59 | - | |
| 60 | - block_softwares = if self.software_type == "Public" | |
| 61 | - software_profiles.select { |profile| profile.software_info.public_software? } | |
| 62 | - elsif self.software_type == "Generic" | |
| 63 | - software_profiles.select { |profile| !profile.software_info.public_software? } | |
| 64 | - else # All | |
| 65 | - software_profiles | |
| 66 | - end | |
| 67 | - | |
| 68 | - block_softwares.slice(0..get_limit-1) | |
| 69 | - end | |
| 70 | - | |
| 71 | - def content(arg={}) | |
| 72 | - if self.box.owner_type == "Environment" && self.box.position == 1 | |
| 73 | - block = self | |
| 74 | - | |
| 75 | - proc do | |
| 76 | - render :file => 'blocks/main_area_softwares', | |
| 77 | - :locals => {:profiles=> block.profile_list(), :block => block} | |
| 78 | - end | |
| 79 | - else | |
| 80 | - super(arg) | |
| 81 | - end | |
| 82 | - end | |
| 83 | - | |
| 84 | - protected | |
| 85 | - | |
| 86 | - def get_visible_profiles | |
| 87 | - profile_include_list = [:image, :domains, :preferred_domain, :environment] | |
| 88 | - visible_profiles = profiles.visible.includes(profile_include_list) | |
| 89 | - | |
| 90 | - if !prioritize_profiles_with_image | |
| 91 | - visible_profiles.all( :limit => get_limit, | |
| 92 | - :order => 'profiles.updated_at DESC' | |
| 93 | - ).sort_by{ rand } | |
| 94 | - elsif profiles.visible.with_image.count >= get_limit | |
| 95 | - visible_profiles.with_image.all( :limit => get_limit * 5, | |
| 96 | - :order => 'profiles.updated_at DESC' | |
| 97 | - ).sort_by{ rand } | |
| 98 | - else | |
| 99 | - visible_profiles.with_image.sort_by{ rand } + | |
| 100 | - visible_profiles.without_image.all( :limit => get_limit * 5, | |
| 101 | - :order => 'profiles.updated_at DESC' | |
| 102 | - ).sort_by{ rand } | |
| 103 | - end | |
| 104 | - end | |
| 105 | -end |
src/noosfero-spb/software_communities/lib/statistic_block.rb
| ... | ... | @@ -1,52 +0,0 @@ |
| 1 | -class StatisticBlock < Block | |
| 2 | - | |
| 3 | - settings_items :benefited_people, :type => :integer, :default => 0 | |
| 4 | - settings_items :saved_resources, :type => :float, :default => 0.0 | |
| 5 | - | |
| 6 | - attr_accessible :benefited_people, :saved_resources | |
| 7 | - | |
| 8 | - def self.description | |
| 9 | - _('Software Statistics') | |
| 10 | - end | |
| 11 | - | |
| 12 | - def help | |
| 13 | - _('This block displays software statistics.') | |
| 14 | - end | |
| 15 | - | |
| 16 | - def content(args={}) | |
| 17 | - download_blocks = get_profile_download_blocks(self.owner) | |
| 18 | - downloads = download_blocks.map do |download_block| | |
| 19 | - get_downloads_from_block(download_block) | |
| 20 | - end | |
| 21 | - | |
| 22 | - block = self | |
| 23 | - | |
| 24 | - lambda do |object| | |
| 25 | - render( | |
| 26 | - :file => 'blocks/software_statistics', | |
| 27 | - :locals => { | |
| 28 | - :block => block, | |
| 29 | - :total_downloads => downloads.sum | |
| 30 | - } | |
| 31 | - ) | |
| 32 | - end | |
| 33 | - end | |
| 34 | - | |
| 35 | - def cacheable? | |
| 36 | - false | |
| 37 | - end | |
| 38 | - | |
| 39 | - private | |
| 40 | - | |
| 41 | - def get_profile_download_blocks profile | |
| 42 | - DownloadBlock.joins(:box).where("boxes.owner_id = ?", profile.id) | |
| 43 | - end | |
| 44 | - | |
| 45 | - def get_downloads_from_block download_block | |
| 46 | - downloads = download_block.downloads.map do |download| | |
| 47 | - download[:total_downloads] unless download[:total_downloads].nil? | |
| 48 | - end | |
| 49 | - downloads.select! {|value| not value.nil? } | |
| 50 | - downloads.sum | |
| 51 | - end | |
| 52 | -end |
src/noosfero-spb/software_communities/lib/tasks/create_licenses.rake
| ... | ... | @@ -16,8 +16,8 @@ namespace :software do |
| 16 | 16 | |
| 17 | 17 | if data.length != 0 |
| 18 | 18 | if version_or_link == 'version' |
| 19 | - can_save = LicenseInfo.find_by_version(data) ? false : true | |
| 20 | - licence = LicenseInfo::new :version => data | |
| 19 | + can_save = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version(data) ? false : true | |
| 20 | + licence = SoftwareCommunitiesPlugin::LicenseInfo::new :version => data | |
| 21 | 21 | version_or_link = 'link' |
| 22 | 22 | elsif version_or_link == 'link' |
| 23 | 23 | licence.link = data | ... | ... |
src/noosfero-spb/software_communities/lib/tasks/create_sample_softwares.rake
| ... | ... | @@ -53,12 +53,12 @@ end |
| 53 | 53 | |
| 54 | 54 | def create_software_info(name, acronym = "", finality = "default") |
| 55 | 55 | community = create_community(name) |
| 56 | - software_info = SoftwareInfo.new | |
| 56 | + software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new | |
| 57 | 57 | software_info.community = community |
| 58 | 58 | software_info.public_software = true |
| 59 | 59 | software_info.acronym = acronym |
| 60 | 60 | software_info.finality = finality |
| 61 | - software_info.license_info = LicenseInfo.first | |
| 61 | + software_info.license_info = SoftwareCommunitiesPlugin::LicenseInfo.first | |
| 62 | 62 | |
| 63 | 63 | if software_info.community.valid? && software_info.valid? |
| 64 | 64 | print "." | ... | ... |
src/noosfero-spb/software_communities/lib/tasks/export.rake
| ... | ... | @@ -37,7 +37,7 @@ namespace :export do |
| 37 | 37 | "home_page_published_at" |
| 38 | 38 | ] |
| 39 | 39 | |
| 40 | - SoftwareInfo.all.each do |software| | |
| 40 | + SoftwareCommunitiesPlugin::SoftwareInfo.all.each do |software| | |
| 41 | 41 | if software.community |
| 42 | 42 | begin |
| 43 | 43 | csv << [ |
| ... | ... | @@ -104,7 +104,7 @@ namespace :export do |
| 104 | 104 | "category_id" |
| 105 | 105 | ] |
| 106 | 106 | |
| 107 | - SoftwareInfo.all.each do |software| | |
| 107 | + SoftwareCommunitiesPlugin::SoftwareInfo.all.each do |software| | |
| 108 | 108 | if software.community |
| 109 | 109 | software.community.categories.each do |category| |
| 110 | 110 | begin | ... | ... |
src/noosfero-spb/software_communities/lib/wiki_block.rb
| ... | ... | @@ -1,30 +0,0 @@ |
| 1 | -class WikiBlock < Block | |
| 2 | - | |
| 3 | - attr_accessible :show_name, :wiki_link | |
| 4 | - settings_items :show_name, :type => :boolean, :default => false | |
| 5 | - settings_items :wiki_link, :type => :string, :default => "" | |
| 6 | - | |
| 7 | - def self.description | |
| 8 | - _('Wiki Link') | |
| 9 | - end | |
| 10 | - | |
| 11 | - def help | |
| 12 | - _('This block displays a link to the software wiki.') | |
| 13 | - end | |
| 14 | - | |
| 15 | - def content(args={}) | |
| 16 | - block = self | |
| 17 | - s = show_name | |
| 18 | - | |
| 19 | - lambda do |object| | |
| 20 | - render( | |
| 21 | - :file => 'blocks/wiki', | |
| 22 | - :locals => { :block => block, :show_name => s } | |
| 23 | - ) | |
| 24 | - end | |
| 25 | - end | |
| 26 | - | |
| 27 | - def cacheable? | |
| 28 | - true | |
| 29 | - end | |
| 30 | -end |
src/noosfero-spb/software_communities/models/software_communities_plugin/categories_and_tags_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +class SoftwareCommunitiesPlugin::CategoriesAndTagsBlock < Block | |
| 2 | + | |
| 3 | + attr_accessible :show_name | |
| 4 | + | |
| 5 | + settings_items :show_name, :type => :boolean, :default => false | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Categories and Tags') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def help | |
| 12 | + _('This block displays the categories and tags of a software.') | |
| 13 | + end | |
| 14 | + | |
| 15 | + def content(args={}) | |
| 16 | + block = self | |
| 17 | + s = show_name | |
| 18 | + lambda do |object| | |
| 19 | + render( | |
| 20 | + :file => 'blocks/categories_and_tags', | |
| 21 | + :locals => { :block => block, :show_name => s } | |
| 22 | + ) | |
| 23 | + end | |
| 24 | + end | |
| 25 | + | |
| 26 | + def cacheable? | |
| 27 | + false | |
| 28 | + end | |
| 29 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/categories_software_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | +class SoftwareCommunitiesPlugin::CategoriesSoftwareBlock < Block | |
| 2 | + | |
| 3 | + attr_accessible :show_name | |
| 4 | + | |
| 5 | + settings_items :show_name, :type => :boolean, :default => false | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Categories Softwares') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def help | |
| 12 | + _('This block displays the categories and the amount of softwares for | |
| 13 | + each category.') | |
| 14 | + end | |
| 15 | + | |
| 16 | + def content(args={}) | |
| 17 | + block = self | |
| 18 | + s = show_name | |
| 19 | + | |
| 20 | + software_category = Category.find_by_name("Software") | |
| 21 | + categories = [] | |
| 22 | + categories = software_category.children.sort if software_category | |
| 23 | + | |
| 24 | + lambda do |object| | |
| 25 | + render( | |
| 26 | + :file => 'blocks/categories_software', | |
| 27 | + :locals => { :block => block, :show_name => s, :categories => categories } | |
| 28 | + ) | |
| 29 | + end | |
| 30 | + end | |
| 31 | + | |
| 32 | + def cacheable? | |
| 33 | + false | |
| 34 | + end | |
| 35 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/create_software.rb
0 → 100644
| ... | ... | @@ -0,0 +1,115 @@ |
| 1 | +class SoftwareCommunitiesPlugin::CreateSoftware < Task | |
| 2 | + include Rails.application.routes.url_helpers | |
| 3 | + | |
| 4 | + validates_presence_of :requestor_id, :target_id | |
| 5 | + validates_presence_of :name, :finality | |
| 6 | + | |
| 7 | + attr_accessible :name, :finality, :repository_link, :requestor, :environment, | |
| 8 | + :reject_explanation, :license_info, :identifier, :target | |
| 9 | + | |
| 10 | + alias :environment :target | |
| 11 | + alias :environment= :target= | |
| 12 | + | |
| 13 | + DATA_FIELDS = ['name', 'identifier', 'finality', 'license_info', 'repository_link'] | |
| 14 | + DATA_FIELDS.each do |field| | |
| 15 | + settings_items field.to_sym | |
| 16 | + end | |
| 17 | + | |
| 18 | + def perform | |
| 19 | + software_template = SoftwareHelper.software_template | |
| 20 | + template_id = software_template.blank? ? nil : software_template.id | |
| 21 | + | |
| 22 | + identifier = self.identifier | |
| 23 | + identifier ||= self.name.to_slug | |
| 24 | + | |
| 25 | + community = Community.create!(:name => self.name, | |
| 26 | + :identifier => identifier, | |
| 27 | + :template_id => template_id) | |
| 28 | + | |
| 29 | + community.environment = self.environment | |
| 30 | + community.add_admin(self.requestor) | |
| 31 | + | |
| 32 | + software = SoftwareCommunitiesPlugin::SoftwareInfo.create!(:finality => self.finality, | |
| 33 | + :repository_link => self.repository_link, :community_id => community.id, | |
| 34 | + :license_info => self.license_info) | |
| 35 | + end | |
| 36 | + | |
| 37 | + def title | |
| 38 | + _("New software") | |
| 39 | + end | |
| 40 | + | |
| 41 | + def subject | |
| 42 | + name | |
| 43 | + end | |
| 44 | + | |
| 45 | + def information | |
| 46 | + message = _('%{requestor} wants to create software %{subject} with') | |
| 47 | + if finality.blank? | |
| 48 | + { :message => message + _(' no finality.') } | |
| 49 | + else | |
| 50 | + { :message => message + _(' this finality:<p><em>%{finality}</em></p>'), | |
| 51 | + :variables => {:finality => finality} } | |
| 52 | + end | |
| 53 | + end | |
| 54 | + | |
| 55 | + def reject_details | |
| 56 | + true | |
| 57 | + end | |
| 58 | + | |
| 59 | + # tells if this request was rejected | |
| 60 | + def rejected? | |
| 61 | + self.status == Task::Status::CANCELLED | |
| 62 | + end | |
| 63 | + | |
| 64 | + # tells if this request was appoved | |
| 65 | + def approved? | |
| 66 | + self.status == Task::Status::FINISHED | |
| 67 | + end | |
| 68 | + | |
| 69 | + def target_notification_description | |
| 70 | + _('%{requestor} wants to create software %{subject}') % | |
| 71 | + {:requestor => requestor.name, :subject => subject} | |
| 72 | + end | |
| 73 | + | |
| 74 | + def target_notification_message | |
| 75 | + _("User \"%{user}\" just requested to create software %{software}. | |
| 76 | + You have to approve or reject it through the \"Pending Validations\" | |
| 77 | + section in your control panel.\n") % | |
| 78 | + { :user => self.requestor.name, :software => self.name } | |
| 79 | + end | |
| 80 | + | |
| 81 | + def task_created_message | |
| 82 | + _("Your request for registering software %{software} at %{environment} was | |
| 83 | + just sent. Environment administrator will receive it and will approve or | |
| 84 | + reject your request according to his methods and criteria. | |
| 85 | + | |
| 86 | + You will be notified as soon as environment administrator has a position | |
| 87 | + about your request.") % | |
| 88 | + { :software => self.name, :environment => self.target } | |
| 89 | + end | |
| 90 | + | |
| 91 | + def task_cancelled_message | |
| 92 | + _("Your request for registering software %{software} at %{environment} was | |
| 93 | + not approved by the environment administrator. The following explanation | |
| 94 | + was given: \n\n%{explanation}") % | |
| 95 | + { :software => self.name, | |
| 96 | + :environment => self.environment, | |
| 97 | + :explanation => self.reject_explanation } | |
| 98 | + end | |
| 99 | + | |
| 100 | + def task_finished_message | |
| 101 | + _('Your request for registering the software "%{software}" was approved. | |
| 102 | + You can access %{url} and finish the registration of your software.') % | |
| 103 | + { :software => self.name, :url => mount_url } | |
| 104 | + end | |
| 105 | + | |
| 106 | + private | |
| 107 | + | |
| 108 | + def mount_url | |
| 109 | + identifier = Community.where(:name => self.name).first.identifier | |
| 110 | + # The use of url_for doesn't allow the /social within the Public Software | |
| 111 | + # portal. That's why the url is mounted so 'hard coded' | |
| 112 | + url = "#{environment.top_url}/myprofile/#{identifier}/profile_editor/edit_software_community" | |
| 113 | + end | |
| 114 | + | |
| 115 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/database_description.rb
0 → 100644
| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | +class SoftwareCommunitiesPlugin::DatabaseDescription < ActiveRecord::Base | |
| 2 | + | |
| 3 | + SEARCHABLE_SOFTWARE_FIELDS = { | |
| 4 | + :name => 1 | |
| 5 | + } | |
| 6 | + | |
| 7 | + attr_accessible :name | |
| 8 | + | |
| 9 | + has_many :software_databases, :class_name => 'SoftwareCommunitiesPlugin::SoftwareDatabase' | |
| 10 | + has_many :software_info, :class_name => 'SoftwareCommunitiesPlugin::SoftwareInfo', :through => :software_databases | |
| 11 | + | |
| 12 | + validates_presence_of :name | |
| 13 | + validates_uniqueness_of :name | |
| 14 | + | |
| 15 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/download.rb
0 → 100644
| ... | ... | @@ -0,0 +1,51 @@ |
| 1 | +#FIX ME: Turn this into a proper model(next release) | |
| 2 | +class SoftwareCommunitiesPlugin::Download | |
| 3 | + def initialize data | |
| 4 | + @name = data[:name] | |
| 5 | + @link = data[:link] | |
| 6 | + @software_description = data[:software_description] | |
| 7 | + @minimum_requirements = data[:minimum_requirements] | |
| 8 | + @size = data[:size] | |
| 9 | + | |
| 10 | + @total_downloads = if data[:total_downloads] | |
| 11 | + data[:total_downloads] | |
| 12 | + else | |
| 13 | + 0 | |
| 14 | + end | |
| 15 | + end | |
| 16 | + | |
| 17 | + def self.validate_download_list download_list | |
| 18 | + download_list.select! do |download| | |
| 19 | + not download[:name].blank? | |
| 20 | + end | |
| 21 | + | |
| 22 | + download_list.map do |download| | |
| 23 | + SoftwareCommunitiesPlugin::Download.new(download).to_hash | |
| 24 | + end | |
| 25 | + end | |
| 26 | + | |
| 27 | + def to_hash | |
| 28 | + { | |
| 29 | + :name => @name, | |
| 30 | + :link => @link, | |
| 31 | + :software_description => @software_description, | |
| 32 | + :minimum_requirements => @minimum_requirements, | |
| 33 | + :size => @size, | |
| 34 | + :total_downloads => @total_downloads | |
| 35 | + } | |
| 36 | + end | |
| 37 | + | |
| 38 | + def total_downloads= value | |
| 39 | + if value.is_a? Integer | |
| 40 | + @total_downloads = value | |
| 41 | + end | |
| 42 | + end | |
| 43 | + | |
| 44 | + def total_downloads | |
| 45 | + @total_downloads | |
| 46 | + end | |
| 47 | + | |
| 48 | + def link | |
| 49 | + @link | |
| 50 | + end | |
| 51 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/download_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,36 @@ |
| 1 | +class SoftwareCommunitiesPlugin::DownloadBlock < Block | |
| 2 | + | |
| 3 | + attr_accessible :show_name, :downloads | |
| 4 | + | |
| 5 | + settings_items :show_name, :type => :boolean, :default => false | |
| 6 | + settings_items :downloads, :type => Array, :default => [] | |
| 7 | + | |
| 8 | + validate :download_values | |
| 9 | + | |
| 10 | + def download_values | |
| 11 | + self.downloads = SoftwareCommunitiesPlugin::Download.validate_download_list(self.downloads) | |
| 12 | + end | |
| 13 | + | |
| 14 | + def self.description | |
| 15 | + _('Download Stable Version') | |
| 16 | + end | |
| 17 | + | |
| 18 | + def help | |
| 19 | + _('This block displays the stable version of a software.') | |
| 20 | + end | |
| 21 | + | |
| 22 | + def content(args={}) | |
| 23 | + block = self | |
| 24 | + s = show_name | |
| 25 | + lambda do |object| | |
| 26 | + render( | |
| 27 | + :file => 'blocks/download', | |
| 28 | + :locals => { :block => block, :show_name => s } | |
| 29 | + ) | |
| 30 | + end | |
| 31 | + end | |
| 32 | + | |
| 33 | + def cacheable? | |
| 34 | + false | |
| 35 | + end | |
| 36 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/library.rb
0 → 100644
| ... | ... | @@ -0,0 +1,10 @@ |
| 1 | +class SoftwareCommunitiesPlugin::Library < ActiveRecord::Base | |
| 2 | + attr_accessible :name, :version, :license, :software_info_id | |
| 3 | + | |
| 4 | + validates :name, :version, :license, | |
| 5 | + presence: { message: _("can't be blank") }, | |
| 6 | + length: { | |
| 7 | + maximum: 20, | |
| 8 | + too_long: _("Too long (maximum is 20 characters)") | |
| 9 | + } | |
| 10 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/license_info.rb
0 → 100644
src/noosfero-spb/software_communities/models/software_communities_plugin/operating_system.rb
0 → 100644
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +class SoftwareCommunitiesPlugin::OperatingSystem < ActiveRecord::Base | |
| 2 | + attr_accessible :version | |
| 3 | + | |
| 4 | + belongs_to :software_info, :class_name => 'SoftwareCommunitiesPlugin::SoftwareInfo' | |
| 5 | + belongs_to :operating_system_name, :class_name => 'SoftwareCommunitiesPlugin::OperatingSystemName' | |
| 6 | + | |
| 7 | + validates :operating_system_name, presence: true | |
| 8 | + validates :version, | |
| 9 | + presence: true, | |
| 10 | + length: { | |
| 11 | + maximum: 20, | |
| 12 | + too_long: _('too long (maximum is 20 characters)') | |
| 13 | + } | |
| 14 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/operating_system_name.rb
0 → 100644
| ... | ... | @@ -0,0 +1,10 @@ |
| 1 | +class SoftwareCommunitiesPlugin::OperatingSystemName < ActiveRecord::Base | |
| 2 | + attr_accessible :name | |
| 3 | + | |
| 4 | + validates_presence_of :name | |
| 5 | + validates_uniqueness_of :name | |
| 6 | + | |
| 7 | + has_many :operating_systems, :class_name => 'SoftwareCommunitiesPlugin::OperatingSystem' | |
| 8 | + has_many :software_info, :class_name => 'SoftwareCommunitiesPlugin::SoftwareInfo', :through => :operating_systems | |
| 9 | + | |
| 10 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/programming_language.rb
0 → 100644
| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | +class SoftwareCommunitiesPlugin::ProgrammingLanguage < ActiveRecord::Base | |
| 2 | + | |
| 3 | + SEARCHABLE_SOFTWARE_FIELDS = { | |
| 4 | + :name => 1 | |
| 5 | + } | |
| 6 | + | |
| 7 | + attr_accessible :name | |
| 8 | + | |
| 9 | + validates_presence_of :name | |
| 10 | + validates_uniqueness_of :name | |
| 11 | + | |
| 12 | + has_many :software_languages, :class_name => 'SoftwareCommunitiesPlugin::SoftwareLanguages' | |
| 13 | + has_many :software_infos, :class_name => 'SoftwareCommunitiesPlugin::SoftwareInfo', :through => :software_languages | |
| 14 | + | |
| 15 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/repository_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +class SoftwareCommunitiesPlugin::RepositoryBlock < Block | |
| 2 | + | |
| 3 | + attr_accessible :show_name | |
| 4 | + | |
| 5 | + settings_items :show_name, :type => :boolean, :default => false | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Repository Link') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def help | |
| 12 | + _('This block displays the repository link of a software.') | |
| 13 | + end | |
| 14 | + | |
| 15 | + def content(args={}) | |
| 16 | + block = self | |
| 17 | + s = show_name | |
| 18 | + lambda do |object| | |
| 19 | + render( | |
| 20 | + :file => 'blocks/repository', | |
| 21 | + :locals => { :block => block, :show_name => s } | |
| 22 | + ) | |
| 23 | + end | |
| 24 | + end | |
| 25 | + | |
| 26 | + def cacheable? | |
| 27 | + false | |
| 28 | + end | |
| 29 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/search_catalog_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SearchCatalogBlock < Block | |
| 2 | + | |
| 3 | + attr_accessible :show_name | |
| 4 | + | |
| 5 | + settings_items :show_name, :type => :boolean, :default => false | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Search Softwares catalog') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def help | |
| 12 | + _('This block displays the search categories field ') | |
| 13 | + end | |
| 14 | + | |
| 15 | + def content(args={}) | |
| 16 | + block = self | |
| 17 | + s = show_name | |
| 18 | + lambda do |object| | |
| 19 | + render( | |
| 20 | + :file => 'blocks/search_catalog', | |
| 21 | + :locals => { :block => block, :show_name => s } | |
| 22 | + ) | |
| 23 | + end | |
| 24 | + end | |
| 25 | + | |
| 26 | + def cacheable? | |
| 27 | + false | |
| 28 | + end | |
| 29 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/software_database.rb
0 → 100644
| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SoftwareDatabase < ActiveRecord::Base | |
| 2 | + attr_accessible :version | |
| 3 | + | |
| 4 | + belongs_to :software_info, :class_name => 'SoftwareCommunitiesPlugin::SoftwareInfo' | |
| 5 | + belongs_to :database_description, :class_name => 'SoftwareCommunitiesPlugin::DatabaseDescription' | |
| 6 | + | |
| 7 | + validates_presence_of :database_description_id, :version | |
| 8 | + | |
| 9 | + validates_length_of( | |
| 10 | + :version, | |
| 11 | + :maximum => 20, | |
| 12 | + :too_long => _("Software database is too long (maximum is 20 characters)") | |
| 13 | + ) | |
| 14 | + | |
| 15 | + validates( | |
| 16 | + :database_description_id, | |
| 17 | + :numericality => {:greater_than_or_equal_to => 1} | |
| 18 | + ) | |
| 19 | + | |
| 20 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/software_highlights_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SoftwareHighlightsBlock < HighlightsBlock | |
| 2 | + | |
| 3 | + def self.description | |
| 4 | + _('Software Highlights Block') | |
| 5 | + end | |
| 6 | + | |
| 7 | + def help | |
| 8 | + _('This block displays the softwares icon into a highlight') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def content(args={}) | |
| 12 | + softwares = self.settings[:images].collect {|h| h[:address].split('/').last} | |
| 13 | + block = self | |
| 14 | + proc do | |
| 15 | + render :file => 'blocks/software_highlights', :locals => { :block => block, :softwares => softwares} | |
| 16 | + end | |
| 17 | + end | |
| 18 | + | |
| 19 | + | |
| 20 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/software_info.rb
0 → 100644
| ... | ... | @@ -0,0 +1,263 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SoftwareInfo < ActiveRecord::Base | |
| 2 | + acts_as_having_settings :field => :settings | |
| 3 | + | |
| 4 | + SEARCHABLE_SOFTWARE_FIELDS = { | |
| 5 | + :acronym => 1, | |
| 6 | + :finality => 2, | |
| 7 | + } | |
| 8 | + | |
| 9 | + SEARCHABLE_SOFTWARE_CLASSES = [ | |
| 10 | + SoftwareCommunitiesPlugin::SoftwareInfo, | |
| 11 | + Community, | |
| 12 | + SoftwareCommunitiesPlugin::ProgrammingLanguage, | |
| 13 | + SoftwareCommunitiesPlugin::DatabaseDescription | |
| 14 | + ] | |
| 15 | + | |
| 16 | + scope :search_by_query, lambda { |query = ""| | |
| 17 | + filtered_query = query.gsub(/[\|\(\)\\\/\s\[\]'"*%&!:]/,' ').split.map{|w| w += ":*"}.join('|') | |
| 18 | + search_fields = SoftwareCommunitiesPlugin::SoftwareInfo.pg_search_plugin_fields | |
| 19 | + | |
| 20 | + if query.empty? | |
| 21 | + SoftwareCommunitiesPlugin::SoftwareInfo.joins(:community).where("profiles.visible = ?", true) | |
| 22 | + else | |
| 23 | + searchable_software_objects = SoftwareCommunitiesPlugin::SoftwareInfo.transform_list_in_methods_list(SEARCHABLE_SOFTWARE_CLASSES) | |
| 24 | + includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')").where("profiles.visible = ?", true) | |
| 25 | + end | |
| 26 | + } | |
| 27 | + | |
| 28 | + def self.transform_list_in_methods_list list | |
| 29 | + methods_list = [] | |
| 30 | + | |
| 31 | + list.each do |element| | |
| 32 | + if SoftwareCommunitiesPlugin::SoftwareInfo.instance_methods.include?(element.to_s.underscore.to_sym) | |
| 33 | + methods_list << element.to_s.underscore.to_sym | |
| 34 | + elsif SoftwareCommunitiesPlugin::SoftwareInfo.instance_methods.include?(element.to_s.underscore.pluralize.to_sym) | |
| 35 | + methods_list << element.to_s.underscore.pluralize.to_sym | |
| 36 | + end | |
| 37 | + end | |
| 38 | + | |
| 39 | + methods_list | |
| 40 | + end | |
| 41 | + | |
| 42 | + def self.pg_search_plugin_fields | |
| 43 | + SEARCHABLE_SOFTWARE_CLASSES.collect { |one_class| | |
| 44 | + self.get_searchable_fields(one_class) | |
| 45 | + }.join(" || ' ' || ") | |
| 46 | + end | |
| 47 | + | |
| 48 | + def self.get_searchable_fields one_class | |
| 49 | + searchable_fields = one_class::SEARCHABLE_SOFTWARE_FIELDS.keys.map(&:to_s).sort.map {|f| "coalesce(#{one_class.table_name}.#{f}, '')"}.join(" || ' ' || ") | |
| 50 | + searchable_fields | |
| 51 | + end | |
| 52 | + | |
| 53 | + SEARCH_FILTERS = { | |
| 54 | + :order => %w[], | |
| 55 | + :display => %w[full] | |
| 56 | + } | |
| 57 | + | |
| 58 | + def self.default_search_display | |
| 59 | + 'full' | |
| 60 | + end | |
| 61 | + | |
| 62 | + attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, | |
| 63 | + :operating_platform | |
| 64 | + | |
| 65 | + attr_accessible :demonstration_url, :acronym, :objectives, :features, | |
| 66 | + :license_info | |
| 67 | + | |
| 68 | + attr_accessible :community_id, :finality, :repository_link, :public_software, | |
| 69 | + :first_edit | |
| 70 | + | |
| 71 | + has_many :libraries, :dependent => :destroy, :class_name => 'SoftwareCommunitiesPlugin::Library' | |
| 72 | + has_many :software_databases, :class_name => 'SoftwareCommunitiesPlugin::SoftwareDatabase' | |
| 73 | + has_many :database_descriptions, :class_name => 'SoftwareCommunitiesPlugin::SoftwareDatabaseDescription', :through => :software_databases | |
| 74 | + has_many :software_languages, :class_name => 'SoftwareCommunitiesPlugin::SoftwareLanguage' | |
| 75 | + has_many :operating_systems, :class_name => 'SoftwareCommunitiesPlugin::OperatingSystem' | |
| 76 | + has_many :programming_languages, :class_name => 'SoftwareCommunitiesPlugin::ProgrammingLanguage', :through => :software_languages | |
| 77 | + has_many :operating_system_names, :class_name => 'SoftwareCommunitiesPlugin::OperatingSystemName', :through => :operating_systems | |
| 78 | + | |
| 79 | + belongs_to :community, :dependent => :destroy | |
| 80 | + belongs_to :license_info, :class_name => 'SoftwareCommunitiesPlugin::LicenseInfo' | |
| 81 | + | |
| 82 | + has_one :software_categories | |
| 83 | + | |
| 84 | + validates_length_of :finality, :maximum => 120 | |
| 85 | + validates_length_of :objectives, :maximum => 4000 | |
| 86 | + validates_length_of :features, :maximum => 4000 | |
| 87 | + validates_presence_of :finality, :community | |
| 88 | + | |
| 89 | + validate :validate_acronym | |
| 90 | + | |
| 91 | + settings_items :another_license_version, :another_license_link | |
| 92 | + | |
| 93 | + # used on find_by_contents | |
| 94 | + scope :like_search, lambda{ |name| | |
| 95 | + joins(:community).where( | |
| 96 | + "name ILIKE ? OR acronym ILIKE ? OR finality ILIKE ?", | |
| 97 | + "%#{name}%", "%#{name}%", "%#{name}%" | |
| 98 | + ) | |
| 99 | + } | |
| 100 | + | |
| 101 | + scope :search, lambda { |name="", database_description_id = "", | |
| 102 | + programming_language_id = "", operating_system_name_id = "", | |
| 103 | + license_info_id = "", e_ping = "", e_mag = "", internacionalizable = "", | |
| 104 | + icp_brasil = "", e_arq = "", software_categories = "" | | |
| 105 | + | |
| 106 | + like_sql = "" | |
| 107 | + values = [] | |
| 108 | + | |
| 109 | + unless name.blank? | |
| 110 | + like_sql << "name ILIKE ? OR identifier ILIKE ? AND " | |
| 111 | + values << "%#{name}%" << "%#{name}%" | |
| 112 | + end | |
| 113 | + | |
| 114 | + like_sql = like_sql[0..like_sql.length-5] | |
| 115 | + | |
| 116 | + { | |
| 117 | + :joins => [:community], | |
| 118 | + :conditions=>[like_sql, *values] | |
| 119 | + } | |
| 120 | + } | |
| 121 | + | |
| 122 | + def license_info | |
| 123 | + license = SoftwareCommunitiesPlugin::LicenseInfo.find_by_id self.license_info_id | |
| 124 | + license_another = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version("Another") | |
| 125 | + | |
| 126 | + if license_another && license.id == license_another.id | |
| 127 | + SoftwareCommunitiesPlugin::LicenseInfo.new( | |
| 128 | + :version => self.another_license_version, | |
| 129 | + :link => self.another_license_link | |
| 130 | + ) | |
| 131 | + else | |
| 132 | + license | |
| 133 | + end | |
| 134 | + end | |
| 135 | + | |
| 136 | + def another_license(version, link) | |
| 137 | + license_another = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version("Another") | |
| 138 | + | |
| 139 | + if license_another | |
| 140 | + self.another_license_version = version | |
| 141 | + self.another_license_link = link | |
| 142 | + self.license_info = license_another | |
| 143 | + self.save! | |
| 144 | + end | |
| 145 | + end | |
| 146 | + | |
| 147 | + def validate_name_lenght | |
| 148 | + if self.community.name.size > 100 | |
| 149 | + self.errors.add( | |
| 150 | + :base, | |
| 151 | + _("Name is too long (maximum is %{count} characters)") | |
| 152 | + ) | |
| 153 | + false | |
| 154 | + end | |
| 155 | + true | |
| 156 | + end | |
| 157 | + | |
| 158 | + # if create_after_moderation receive a model object, would be possible to reuse core method | |
| 159 | + def self.create_after_moderation(requestor, attributes = {}) | |
| 160 | + environment = attributes.delete(:environment) | |
| 161 | + name = attributes.delete(:name) | |
| 162 | + identifier = attributes.delete(:identifier) | |
| 163 | + image_builder = attributes.delete(:image_builder) | |
| 164 | + license_info = attributes.delete(:license_info) | |
| 165 | + another_license_version = attributes.delete(:another_license_version) | |
| 166 | + another_license_link = attributes.delete(:another_license_link) | |
| 167 | + | |
| 168 | + software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new(attributes) | |
| 169 | + unless environment.admins.include? requestor | |
| 170 | + CreateSoftware.create!( | |
| 171 | + attributes.merge( | |
| 172 | + :requestor => requestor, | |
| 173 | + :environment => environment, | |
| 174 | + :name => name, | |
| 175 | + :identifier => identifier, | |
| 176 | + :license_info => license_info | |
| 177 | + ) | |
| 178 | + ) | |
| 179 | + else | |
| 180 | + software_template = SoftwareHelper.software_template | |
| 181 | + | |
| 182 | + community_hash = {:name => name} | |
| 183 | + community_hash[:identifier] = identifier | |
| 184 | + community_hash[:image_builder] = image_builder if image_builder | |
| 185 | + | |
| 186 | + community = Community.new(community_hash) | |
| 187 | + community.environment = environment | |
| 188 | + | |
| 189 | + unless software_template.blank? | |
| 190 | + community.template_id = software_template.id | |
| 191 | + end | |
| 192 | + | |
| 193 | + community.save! | |
| 194 | + community.add_admin(requestor) | |
| 195 | + | |
| 196 | + software_info.community = community | |
| 197 | + software_info.license_info = license_info | |
| 198 | + software_info.save! | |
| 199 | + end | |
| 200 | + | |
| 201 | + software_info.verify_license_info(another_license_version, another_license_link) | |
| 202 | + software_info.save | |
| 203 | + software_info | |
| 204 | + end | |
| 205 | + | |
| 206 | + def verify_license_info another_license_version, another_license_link | |
| 207 | + license_another = SoftwareCommunitiesPlugin::LicenseInfo.find_by_version("Another") | |
| 208 | + | |
| 209 | + if license_another && self.license_info_id == license_another.id | |
| 210 | + version = another_license_version | |
| 211 | + link = another_license_link | |
| 212 | + | |
| 213 | + self.another_license(version, link) | |
| 214 | + end | |
| 215 | + end | |
| 216 | + | |
| 217 | + | |
| 218 | + def validate_acronym | |
| 219 | + self.acronym = "" if self.acronym.nil? | |
| 220 | + if self.acronym.length > 10 && self.errors.messages[:acronym].nil? | |
| 221 | + self.errors.add(:acronym, _("can't have more than 10 characteres")) | |
| 222 | + false | |
| 223 | + elsif self.acronym.match(/\s+/) | |
| 224 | + self.errors.add(:acronym, _("can't have whitespaces")) | |
| 225 | + false | |
| 226 | + end | |
| 227 | + true | |
| 228 | + end | |
| 229 | + | |
| 230 | + def valid_operating_systems | |
| 231 | + if self.operating_systems.empty? | |
| 232 | + self.errors.add(:operating_system, _(": at least one must be filled")) | |
| 233 | + end | |
| 234 | + end | |
| 235 | + | |
| 236 | + def valid_software_info | |
| 237 | + if self.software_languages.empty? | |
| 238 | + self.errors.add(:software_languages, _(": at least one must be filled")) | |
| 239 | + end | |
| 240 | + end | |
| 241 | + | |
| 242 | + def valid_databases | |
| 243 | + if self.software_databases.empty? | |
| 244 | + self.errors.add(:software_databases, _(": at least one must be filled")) | |
| 245 | + end | |
| 246 | + end | |
| 247 | + | |
| 248 | + def visible? | |
| 249 | + self.community.visible? | |
| 250 | + end | |
| 251 | + | |
| 252 | + def name | |
| 253 | + self.community.name | |
| 254 | + end | |
| 255 | + | |
| 256 | + def short_name | |
| 257 | + self.community.short_name | |
| 258 | + end | |
| 259 | + | |
| 260 | + def identifier | |
| 261 | + self.community.identifier | |
| 262 | + end | |
| 263 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/software_information_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SoftwareInformationBlock < Block | |
| 2 | + | |
| 3 | + attr_accessible :show_name | |
| 4 | + | |
| 5 | + settings_items :show_name, :type => :boolean, :default => false | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Basic Software Information') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def help | |
| 12 | + _('This block displays the basic information of a software profile.') | |
| 13 | + end | |
| 14 | + | |
| 15 | + def content(args={}) | |
| 16 | + block = self | |
| 17 | + s = show_name | |
| 18 | + | |
| 19 | + lambda do |object| | |
| 20 | + render( | |
| 21 | + :file => 'blocks/software_information', | |
| 22 | + :locals => { :block => block, :show_name => s} | |
| 23 | + ) | |
| 24 | + end | |
| 25 | + end | |
| 26 | + | |
| 27 | + def cacheable? | |
| 28 | + false | |
| 29 | + end | |
| 30 | + | |
| 31 | + private | |
| 32 | + | |
| 33 | + def owner_has_ratings? | |
| 34 | + ratings = CommunityRating.where(community_id: block.owner.id) | |
| 35 | + !ratings.empty? | |
| 36 | + end | |
| 37 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/software_language.rb
0 → 100644
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SoftwareLanguage < ActiveRecord::Base | |
| 2 | + attr_accessible :version | |
| 3 | + | |
| 4 | + belongs_to :software_info, :class_name => 'SoftwareCommunitiesPlugin::SoftwareInfo' | |
| 5 | + belongs_to :programming_language, :class_name => 'SoftwareCommunitiesPlugin::ProgrammingLanguage' | |
| 6 | + | |
| 7 | + validates_length_of( | |
| 8 | + :version, | |
| 9 | + :maximum => 20, | |
| 10 | + :too_long => _("Software language is too long (maximum is 20 characters)") | |
| 11 | + ) | |
| 12 | + | |
| 13 | + validates_presence_of :version,:programming_language | |
| 14 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/software_tab_data_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,48 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SoftwareTabDataBlock < Block | |
| 2 | + attr_accessible :show_name, :displayed_blog | |
| 3 | + | |
| 4 | + settings_items :show_name, :type => :boolean, :default => false | |
| 5 | + settings_items :displayed_blog, :type => :integer, :default => 0 | |
| 6 | + | |
| 7 | + TOTAL_POSTS_DYSPLAYED = 5 | |
| 8 | + | |
| 9 | + def self.description | |
| 10 | + _('Software Tab Data') | |
| 11 | + end | |
| 12 | + | |
| 13 | + def help | |
| 14 | + _('This block is used by colab to insert data into Noosfero') | |
| 15 | + end | |
| 16 | + | |
| 17 | + def content(args={}) | |
| 18 | + block = self | |
| 19 | + | |
| 20 | + lambda do |object| | |
| 21 | + render( | |
| 22 | + :file => 'blocks/software_tab_data', | |
| 23 | + :locals => { | |
| 24 | + :block => block | |
| 25 | + } | |
| 26 | + ) | |
| 27 | + end | |
| 28 | + end | |
| 29 | + | |
| 30 | + def blogs | |
| 31 | + self.owner.blogs | |
| 32 | + end | |
| 33 | + | |
| 34 | + def actual_blog | |
| 35 | + # As :displayed_blog default value is 0, it falls to the first one | |
| 36 | + blogs.find_by_id(self.displayed_blog) || blogs.first | |
| 37 | + end | |
| 38 | + | |
| 39 | + def posts | |
| 40 | + blog = actual_blog | |
| 41 | + | |
| 42 | + if blog and (not blog.posts.empty?) | |
| 43 | + blog.posts.limit(TOTAL_POSTS_DYSPLAYED) | |
| 44 | + else | |
| 45 | + [] | |
| 46 | + end | |
| 47 | + end | |
| 48 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/softwares_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,105 @@ |
| 1 | +class SoftwareCommunitiesPlugin::SoftwaresBlock < CommunitiesBlock | |
| 2 | + | |
| 3 | + settings_items :software_type, :default => "All" | |
| 4 | + attr_accessible :accessor_id, :accessor_type, :role_id, | |
| 5 | + :resource_id, :resource_type, :software_type | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Softwares') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def default_title | |
| 12 | + if self.software_type == "Generic" | |
| 13 | + return n_('{#} generic software', '{#} generic softwares', profile_count) | |
| 14 | + elsif self.software_type == "Public" | |
| 15 | + return n_('{#} public software', '{#} public softwares', profile_count) | |
| 16 | + else | |
| 17 | + return n_('{#} software', '{#} softwares', profile_count) | |
| 18 | + end | |
| 19 | + end | |
| 20 | + | |
| 21 | + def help | |
| 22 | + _('This block displays the softwares in which the user is a member.') | |
| 23 | + end | |
| 24 | + | |
| 25 | + def footer | |
| 26 | + self.software_type ||= "All" | |
| 27 | + owner = self.owner | |
| 28 | + case owner | |
| 29 | + when Profile | |
| 30 | + lambda do |context| | |
| 31 | + link_to s_('softwares|View all'), :profile => owner.identifier, | |
| 32 | + :controller => 'profile', :action => 'communities', | |
| 33 | + :type => 'Software' | |
| 34 | + end | |
| 35 | + when Environment | |
| 36 | + lambda do |context| | |
| 37 | + link_to s_('softwares|View all'), :controller => 'search', | |
| 38 | + :action => 'software_infos' | |
| 39 | + end | |
| 40 | + else | |
| 41 | + '' | |
| 42 | + end | |
| 43 | + end | |
| 44 | + | |
| 45 | + def profile_count | |
| 46 | + profile_list.count | |
| 47 | + end | |
| 48 | + | |
| 49 | + def profiles | |
| 50 | + owner.communities | |
| 51 | + end | |
| 52 | + | |
| 53 | + def profile_list | |
| 54 | + profiles = get_visible_profiles | |
| 55 | + | |
| 56 | + software_profiles = profiles.select do |profile| | |
| 57 | + profile.class == Community && profile.software? | |
| 58 | + end | |
| 59 | + | |
| 60 | + block_softwares = if self.software_type == "Public" | |
| 61 | + software_profiles.select { |profile| profile.software_info.public_software? } | |
| 62 | + elsif self.software_type == "Generic" | |
| 63 | + software_profiles.select { |profile| !profile.software_info.public_software? } | |
| 64 | + else # All | |
| 65 | + software_profiles | |
| 66 | + end | |
| 67 | + | |
| 68 | + block_softwares.slice(0..get_limit-1) | |
| 69 | + end | |
| 70 | + | |
| 71 | + def content(arg={}) | |
| 72 | + if self.box.owner_type == "Environment" && self.box.position == 1 | |
| 73 | + block = self | |
| 74 | + | |
| 75 | + proc do | |
| 76 | + render :file => 'blocks/main_area_softwares', | |
| 77 | + :locals => {:profiles=> block.profile_list(), :block => block} | |
| 78 | + end | |
| 79 | + else | |
| 80 | + super(arg) | |
| 81 | + end | |
| 82 | + end | |
| 83 | + | |
| 84 | + protected | |
| 85 | + | |
| 86 | + def get_visible_profiles | |
| 87 | + profile_include_list = [:image, :domains, :preferred_domain, :environment] | |
| 88 | + visible_profiles = profiles.visible.includes(profile_include_list) | |
| 89 | + | |
| 90 | + if !prioritize_profiles_with_image | |
| 91 | + visible_profiles.all( :limit => get_limit, | |
| 92 | + :order => 'profiles.updated_at DESC' | |
| 93 | + ).sort_by{ rand } | |
| 94 | + elsif profiles.visible.with_image.count >= get_limit | |
| 95 | + visible_profiles.with_image.all( :limit => get_limit * 5, | |
| 96 | + :order => 'profiles.updated_at DESC' | |
| 97 | + ).sort_by{ rand } | |
| 98 | + else | |
| 99 | + visible_profiles.with_image.sort_by{ rand } + | |
| 100 | + visible_profiles.without_image.all( :limit => get_limit * 5, | |
| 101 | + :order => 'profiles.updated_at DESC' | |
| 102 | + ).sort_by{ rand } | |
| 103 | + end | |
| 104 | + end | |
| 105 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/statistic_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,52 @@ |
| 1 | +class SoftwareCommunitiesPlugin::StatisticBlock < Block | |
| 2 | + | |
| 3 | + settings_items :benefited_people, :type => :integer, :default => 0 | |
| 4 | + settings_items :saved_resources, :type => :float, :default => 0.0 | |
| 5 | + | |
| 6 | + attr_accessible :benefited_people, :saved_resources | |
| 7 | + | |
| 8 | + def self.description | |
| 9 | + _('Software Statistics') | |
| 10 | + end | |
| 11 | + | |
| 12 | + def help | |
| 13 | + _('This block displays software statistics.') | |
| 14 | + end | |
| 15 | + | |
| 16 | + def content(args={}) | |
| 17 | + download_blocks = get_profile_download_blocks(self.owner) | |
| 18 | + downloads = download_blocks.map do |download_block| | |
| 19 | + get_downloads_from_block(download_block) | |
| 20 | + end | |
| 21 | + | |
| 22 | + block = self | |
| 23 | + | |
| 24 | + lambda do |object| | |
| 25 | + render( | |
| 26 | + :file => 'blocks/software_statistics', | |
| 27 | + :locals => { | |
| 28 | + :block => block, | |
| 29 | + :total_downloads => downloads.sum | |
| 30 | + } | |
| 31 | + ) | |
| 32 | + end | |
| 33 | + end | |
| 34 | + | |
| 35 | + def cacheable? | |
| 36 | + false | |
| 37 | + end | |
| 38 | + | |
| 39 | + private | |
| 40 | + | |
| 41 | + def get_profile_download_blocks profile | |
| 42 | + SoftwareCommunitiesPlugin::DownloadBlock.joins(:box).where("boxes.owner_id = ?", profile.id) | |
| 43 | + end | |
| 44 | + | |
| 45 | + def get_downloads_from_block download_block | |
| 46 | + downloads = download_block.downloads.map do |download| | |
| 47 | + download[:total_downloads] unless download[:total_downloads].nil? | |
| 48 | + end | |
| 49 | + downloads.select! {|value| not value.nil? } | |
| 50 | + downloads.sum | |
| 51 | + end | |
| 52 | +end | ... | ... |
src/noosfero-spb/software_communities/models/software_communities_plugin/wiki_block.rb
0 → 100644
| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | +class SoftwareCommunitiesPlugin::WikiBlock < Block | |
| 2 | + | |
| 3 | + attr_accessible :show_name, :wiki_link | |
| 4 | + settings_items :show_name, :type => :boolean, :default => false | |
| 5 | + settings_items :wiki_link, :type => :string, :default => "" | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Wiki Link') | |
| 9 | + end | |
| 10 | + | |
| 11 | + def help | |
| 12 | + _('This block displays a link to the software wiki.') | |
| 13 | + end | |
| 14 | + | |
| 15 | + def content(args={}) | |
| 16 | + block = self | |
| 17 | + s = show_name | |
| 18 | + | |
| 19 | + lambda do |object| | |
| 20 | + render( | |
| 21 | + :file => 'blocks/wiki', | |
| 22 | + :locals => { :block => block, :show_name => s } | |
| 23 | + ) | |
| 24 | + end | |
| 25 | + end | |
| 26 | + | |
| 27 | + def cacheable? | |
| 28 | + true | |
| 29 | + end | |
| 30 | +end | ... | ... |
src/noosfero-spb/software_communities/test/functional/profile_editor_controller_test.rb
| ... | ... | @@ -58,7 +58,7 @@ class ProfileEditorControllerTest < ActionController::TestCase |
| 58 | 58 | |
| 59 | 59 | def create_software_info name, finality = "something", acronym = "" |
| 60 | 60 | community = create_community(name) |
| 61 | - software_info = SoftwareInfo.new | |
| 61 | + software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new | |
| 62 | 62 | software_info.community = community |
| 63 | 63 | software_info.finality = finality |
| 64 | 64 | software_info.acronym = acronym | ... | ... |
src/noosfero-spb/software_communities/test/functional/search_controller_test.rb
| ... | ... | @@ -21,8 +21,8 @@ class SearchControllerTest < ActionController::TestCase |
| 21 | 21 | @response = ActionController::TestResponse.new |
| 22 | 22 | |
| 23 | 23 | @licenses = [ |
| 24 | - LicenseInfo.create(:version => "GPL - 1"), | |
| 25 | - LicenseInfo.create(:version => "GPL - 2") | |
| 24 | + SoftwareCommunitiesPlugin::LicenseInfo.create(:version => "GPL - 1"), | |
| 25 | + SoftwareCommunitiesPlugin::LicenseInfo.create(:version => "GPL - 2") | |
| 26 | 26 | ] |
| 27 | 27 | |
| 28 | 28 | create_software_categories |
| ... | ... | @@ -145,7 +145,7 @@ class SearchControllerTest < ActionController::TestCase |
| 145 | 145 | |
| 146 | 146 | should "software_infos search by relevance" do |
| 147 | 147 | @softwares << create_software_info("Software Three", :acronym => "SFW", :finality => "Java") |
| 148 | - @softwares.last.license_info = LicenseInfo.create :version => "GPL - 3.0" | |
| 148 | + @softwares.last.license_info = SoftwareCommunitiesPlugin::LicenseInfo.create :version => "GPL - 3.0" | |
| 149 | 149 | |
| 150 | 150 | |
| 151 | 151 | @softwares.first.software_languages << create_software_language("Java", "8.0") |
| ... | ... | @@ -215,8 +215,8 @@ class SearchControllerTest < ActionController::TestCase |
| 215 | 215 | end |
| 216 | 216 | |
| 217 | 217 | should "software_infos search return only enabled softwares" do |
| 218 | - s1 = SoftwareInfo.first | |
| 219 | - s2 = SoftwareInfo.last | |
| 218 | + s1 = SoftwareCommunitiesPlugin::SoftwareInfo.first | |
| 219 | + s2 = SoftwareCommunitiesPlugin::SoftwareInfo.last | |
| 220 | 220 | |
| 221 | 221 | # First get them all normally |
| 222 | 222 | get( |
| ... | ... | @@ -276,12 +276,12 @@ class SearchControllerTest < ActionController::TestCase |
| 276 | 276 | end |
| 277 | 277 | |
| 278 | 278 | def create_software_language(name, version) |
| 279 | - unless ProgrammingLanguage.find_by_name(name) | |
| 280 | - ProgrammingLanguage.create(:name => name) | |
| 279 | + unless SoftwareCommunitiesPlugin::ProgrammingLanguage.find_by_name(name) | |
| 280 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name => name) | |
| 281 | 281 | end |
| 282 | 282 | |
| 283 | - software_language = SoftwareLanguage.new | |
| 284 | - software_language.programming_language = ProgrammingLanguage.find_by_name(name) | |
| 283 | + software_language = SoftwareCommunitiesPlugin::SoftwareLanguage.new | |
| 284 | + software_language.programming_language = SoftwareCommunitiesPlugin::ProgrammingLanguage.find_by_name(name) | |
| 285 | 285 | software_language.version = version |
| 286 | 286 | software_language.save! |
| 287 | 287 | |
| ... | ... | @@ -289,12 +289,12 @@ class SearchControllerTest < ActionController::TestCase |
| 289 | 289 | end |
| 290 | 290 | |
| 291 | 291 | def create_software_database(name, version) |
| 292 | - unless DatabaseDescription.find_by_name(name) | |
| 293 | - DatabaseDescription.create(:name => name) | |
| 292 | + unless SoftwareCommunitiesPlugin::DatabaseDescription.find_by_name(name) | |
| 293 | + SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => name) | |
| 294 | 294 | end |
| 295 | 295 | |
| 296 | - software_database = SoftwareDatabase.new | |
| 297 | - software_database.database_description = DatabaseDescription.find_by_name(name) | |
| 296 | + software_database = SoftwareCommunitiesPlugin::SoftwareDatabase.new | |
| 297 | + software_database.database_description = SoftwareCommunitiesPlugin::DatabaseDescription.find_by_name(name) | |
| 298 | 298 | software_database.version = version |
| 299 | 299 | software_database.save! |
| 300 | 300 | ... | ... |
src/noosfero-spb/software_communities/test/functional/software_communities_plugin_controller_test.rb
| ... | ... | @@ -14,20 +14,20 @@ class SoftwareCommunitiesPluginControllerTest < ActionController::TestCase |
| 14 | 14 | @environment.add_admin(@admin) |
| 15 | 15 | @environment.save |
| 16 | 16 | |
| 17 | - LicenseInfo.create(:version=>"CC-GPL-V2", :link=>"http://creativecommons.org/licenses/GPL/2.0/legalcode.pt") | |
| 18 | - LicenseInfo.create(:version=>"Academic Free License 3.0 (AFL-3.0)", :link=>"http://www.openfoundry.org/en/licenses/753-academic-free-license-version-30-afl") | |
| 19 | - LicenseInfo.create(:version=>"Apache License 2.0 (Apache-2.0)", :link=>"http://www.apache.org/licenses/LICENSE-2.0") | |
| 20 | - LicenseInfo.create(:version=>'BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause)', :link=>"http://opensource.org/licenses/BSD-2-Clause") | |
| 21 | - | |
| 22 | - ProgrammingLanguage.create(:name =>"Java") | |
| 23 | - ProgrammingLanguage.create(:name =>"Ruby") | |
| 24 | - ProgrammingLanguage.create(:name =>"C") | |
| 25 | - ProgrammingLanguage.create(:name =>"C++") | |
| 26 | - DatabaseDescription.create(:name => "PostgreSQL") | |
| 27 | - DatabaseDescription.create(:name => "MySQL") | |
| 28 | - DatabaseDescription.create(:name => "MongoDB") | |
| 29 | - DatabaseDescription.create(:name => "Oracle") | |
| 30 | - OperatingSystemName.create(:name=>"Debian") | |
| 17 | + SoftwareCommunitiesPlugin::LicenseInfo.create(:version=>"CC-GPL-V2", :link=>"http://creativecommons.org/licenses/GPL/2.0/legalcode.pt") | |
| 18 | + SoftwareCommunitiesPlugin::LicenseInfo.create(:version=>"Academic Free License 3.0 (AFL-3.0)", :link=>"http://www.openfoundry.org/en/licenses/753-academic-free-license-version-30-afl") | |
| 19 | + SoftwareCommunitiesPlugin::LicenseInfo.create(:version=>"Apache License 2.0 (Apache-2.0)", :link=>"http://www.apache.org/licenses/LICENSE-2.0") | |
| 20 | + SoftwareCommunitiesPlugin::LicenseInfo.create(:version=>'BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause)', :link=>"http://opensource.org/licenses/BSD-2-Clause") | |
| 21 | + | |
| 22 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name =>"Java") | |
| 23 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name =>"Ruby") | |
| 24 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name =>"C") | |
| 25 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name =>"C++") | |
| 26 | + SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => "PostgreSQL") | |
| 27 | + SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => "MySQL") | |
| 28 | + SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => "MongoDB") | |
| 29 | + SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => "Oracle") | |
| 30 | + SoftwareCommunitiesPlugin::OperatingSystemName.create(:name=>"Debian") | |
| 31 | 31 | |
| 32 | 32 | @response = ActionController::TestResponse.new |
| 33 | 33 | end | ... | ... |
src/noosfero-spb/software_communities/test/functional/software_communities_plugin_myprofile_controller_test.rb
| ... | ... | @@ -19,14 +19,14 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 19 | 19 | @offer_1 = create_user('Ana de Souza') |
| 20 | 20 | @offer_2 = create_user('Angelo Roberto') |
| 21 | 21 | |
| 22 | - LicenseInfo.create( | |
| 22 | + SoftwareCommunitiesPlugin::LicenseInfo.create( | |
| 23 | 23 | :version=>"CC-GPL-V2", |
| 24 | 24 | :link=>"http://creativecommons.org/licenses/GPL/2.0/legalcode.pt" |
| 25 | 25 | ) |
| 26 | 26 | |
| 27 | - ProgrammingLanguage.create(:name =>"language") | |
| 28 | - DatabaseDescription.create(:name => "database") | |
| 29 | - OperatingSystemName.create(:name=>"Debian") | |
| 27 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name =>"language") | |
| 28 | + SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => "database") | |
| 29 | + SoftwareCommunitiesPlugin::OperatingSystemName.create(:name=>"Debian") | |
| 30 | 30 | |
| 31 | 31 | login_as(@person.user_login) |
| 32 | 32 | @environment = Environment.default |
| ... | ... | @@ -54,7 +54,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 54 | 54 | :license => fields[0], |
| 55 | 55 | :software_info => fields[2] |
| 56 | 56 | ) |
| 57 | - assert_equal SoftwareInfo.last.community.name, "Debian" | |
| 57 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.community.name, "Debian" | |
| 58 | 58 | end |
| 59 | 59 | |
| 60 | 60 | should 'edit a new software adding basic information' do |
| ... | ... | @@ -72,7 +72,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 72 | 72 | :language => {}, |
| 73 | 73 | :database => {} |
| 74 | 74 | ) |
| 75 | - assert_equal SoftwareInfo.last.repository_link, "www.github.com/test" | |
| 75 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.repository_link, "www.github.com/test" | |
| 76 | 76 | end |
| 77 | 77 | |
| 78 | 78 | should 'edit a new software adding specific information' do |
| ... | ... | @@ -90,7 +90,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 90 | 90 | :software => fields[4], |
| 91 | 91 | :license => fields[5] |
| 92 | 92 | ) |
| 93 | - assert_equal SoftwareInfo.last.acronym, "test" | |
| 93 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.acronym, "test" | |
| 94 | 94 | end |
| 95 | 95 | |
| 96 | 96 | should 'upgrade a generic software to a public software' do |
| ... | ... | @@ -111,7 +111,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 111 | 111 | :license => fields[5] |
| 112 | 112 | ) |
| 113 | 113 | |
| 114 | - assert_equal true, SoftwareInfo.last.public_software? | |
| 114 | + assert_equal true, SoftwareCommunitiesPlugin::SoftwareInfo.last.public_software? | |
| 115 | 115 | end |
| 116 | 116 | |
| 117 | 117 | should "create software_info with existing license_info" do |
| ... | ... | @@ -121,15 +121,15 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 121 | 121 | :new_software, |
| 122 | 122 | :community => {:name =>"New Software", :identifier => "new-software"}, |
| 123 | 123 | :software_info => {:finality => "something", :repository_link => ""}, |
| 124 | - :license =>{:license_infos_id => LicenseInfo.last.id}, | |
| 124 | + :license =>{:license_infos_id => SoftwareCommunitiesPlugin::LicenseInfo.last.id}, | |
| 125 | 125 | :profile => @person.identifier |
| 126 | 126 | ) |
| 127 | 127 | |
| 128 | - assert_equal SoftwareInfo.last.license_info, LicenseInfo.last | |
| 128 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.license_info, SoftwareCommunitiesPlugin::LicenseInfo.last | |
| 129 | 129 | end |
| 130 | 130 | |
| 131 | 131 | should "create software_info with 'Another' license_info" do |
| 132 | - license_another = LicenseInfo.create(:version => "Another", :link => "#") | |
| 132 | + license_another = SoftwareCommunitiesPlugin::LicenseInfo.create(:version => "Another", :link => "#") | |
| 133 | 133 | @environment.add_admin(@person) |
| 134 | 134 | |
| 135 | 135 | another_license_version = "Different License" |
| ... | ... | @@ -146,10 +146,10 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 146 | 146 | :profile => @person.identifier |
| 147 | 147 | ) |
| 148 | 148 | |
| 149 | - assert_equal SoftwareInfo.last.license_info_id, license_another.id | |
| 150 | - assert_equal SoftwareInfo.last.license_info.id, nil | |
| 151 | - assert_equal SoftwareInfo.last.license_info.version, another_license_version | |
| 152 | - assert_equal SoftwareInfo.last.license_info.link, another_license_link | |
| 149 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.license_info_id, license_another.id | |
| 150 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.license_info.id, nil | |
| 151 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.license_info.version, another_license_version | |
| 152 | + assert_equal SoftwareCommunitiesPlugin::SoftwareInfo.last.license_info.link, another_license_link | |
| 153 | 153 | end |
| 154 | 154 | |
| 155 | 155 | should "show error messages on create software_info" do |
| ... | ... | @@ -173,14 +173,14 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 173 | 173 | :new_software, |
| 174 | 174 | :community => {:name =>"New Software", :identifier => "new-software"}, |
| 175 | 175 | :software_info => {:finality => "something", :repository_link => ""}, |
| 176 | - :license =>{:license_infos_id => LicenseInfo.last.id}, | |
| 176 | + :license =>{:license_infos_id => SoftwareCommunitiesPlugin::LicenseInfo.last.id}, | |
| 177 | 177 | :profile => @person.identifier |
| 178 | 178 | ) |
| 179 | 179 | post( |
| 180 | 180 | :new_software, |
| 181 | 181 | :community => {:name =>"New Software", :identifier => "new-software"}, |
| 182 | 182 | :software_info => {:finality => "something", :repository_link => ""}, |
| 183 | - :license =>{:license_infos_id => LicenseInfo.last.id}, | |
| 183 | + :license =>{:license_infos_id => SoftwareCommunitiesPlugin::LicenseInfo.last.id}, | |
| 184 | 184 | :profile => @person.identifier |
| 185 | 185 | ) |
| 186 | 186 | |
| ... | ... | @@ -194,7 +194,7 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 194 | 194 | :new_software, |
| 195 | 195 | :community => {:name =>"New Software", :identifier => "new-software"}, |
| 196 | 196 | :software_info => {:finality => "something", :repository_link => ""}, |
| 197 | - :license =>{:license_infos_id => LicenseInfo.last.id}, | |
| 197 | + :license =>{:license_infos_id => SoftwareCommunitiesPlugin::LicenseInfo.last.id}, | |
| 198 | 198 | :profile => @person.identifier |
| 199 | 199 | ) |
| 200 | 200 | |
| ... | ... | @@ -202,6 +202,6 @@ class SoftwareCommunitiesPluginMyprofileControllerTest < ActionController::TestC |
| 202 | 202 | Task.last.send('finish', @person) |
| 203 | 203 | |
| 204 | 204 | assert_equal "New Software", Task.last.data[:name] |
| 205 | - assert_equal "New Software", SoftwareInfo.last.community.name | |
| 205 | + assert_equal "New Software", SoftwareCommunitiesPlugin::SoftwareInfo.last.community.name | |
| 206 | 206 | end |
| 207 | 207 | end | ... | ... |
src/noosfero-spb/software_communities/test/functional/software_communities_plugin_profile_controller_test.rb
| ... | ... | @@ -16,7 +16,7 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas |
| 16 | 16 | @environment.enable_plugin('SoftwareCommunitiesPlugin') |
| 17 | 17 | @environment.save! |
| 18 | 18 | |
| 19 | - LicenseInfo.create( | |
| 19 | + SoftwareCommunitiesPlugin::LicenseInfo.create( | |
| 20 | 20 | :version=>"CC-GPL-V2", |
| 21 | 21 | :link=>"http://creativecommons.org/licenses/GPL/2.0/legalcode.pt" |
| 22 | 22 | ) |
| ... | ... | @@ -32,8 +32,8 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas |
| 32 | 32 | @software = create_software(software_fields) |
| 33 | 33 | @software.save! |
| 34 | 34 | |
| 35 | - download_block = DownloadBlock.new | |
| 36 | - download_block.downloads = Download.validate_download_list([@download_data]) | |
| 35 | + download_block = SoftwareCommunitiesPlugin::DownloadBlock.new | |
| 36 | + download_block.downloads = SoftwareCommunitiesPlugin::Download.validate_download_list([@download_data]) | |
| 37 | 37 | download_block.save! |
| 38 | 38 | |
| 39 | 39 | @software.community.blocks << download_block |
| ... | ... | @@ -41,7 +41,7 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas |
| 41 | 41 | end |
| 42 | 42 | |
| 43 | 43 | should 'redirect to download link with correct params' do |
| 44 | - download_block = DownloadBlock.last | |
| 44 | + download_block = SoftwareCommunitiesPlugin::DownloadBlock.last | |
| 45 | 45 | get :download_file, :profile=>@software.community.identifier, |
| 46 | 46 | :block => download_block.id, :download_index => 0 |
| 47 | 47 | |
| ... | ... | @@ -50,7 +50,7 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas |
| 50 | 50 | end |
| 51 | 51 | |
| 52 | 52 | should "notice when the download was not found" do |
| 53 | - download_block = DownloadBlock.last | |
| 53 | + download_block = SoftwareCommunitiesPlugin::DownloadBlock.last | |
| 54 | 54 | get :download_file, :profile=>@software.community.identifier, |
| 55 | 55 | :block => 123, :download_index => 0 |
| 56 | 56 | |
| ... | ... | @@ -58,7 +58,7 @@ class SoftwareCommunitiesPluginProfileControllerTest < ActionController::TestCas |
| 58 | 58 | end |
| 59 | 59 | |
| 60 | 60 | should "notice when given invalid download params" do |
| 61 | - download_block = DownloadBlock.last | |
| 61 | + download_block = SoftwareCommunitiesPlugin::DownloadBlock.last | |
| 62 | 62 | get :download_file, :profile=>@software.community.identifier, |
| 63 | 63 | :block => download_block.id, :download_index => -5 |
| 64 | 64 | ... | ... |
src/noosfero-spb/software_communities/test/helpers/plugin_test_helper.rb
| ... | ... | @@ -10,7 +10,7 @@ module PluginTestHelper |
| 10 | 10 | |
| 11 | 11 | def create_software_info name, finality = "something", acronym = "" |
| 12 | 12 | community = create_community(name) |
| 13 | - software_info = SoftwareInfo.new | |
| 13 | + software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new | |
| 14 | 14 | software_info.community = community |
| 15 | 15 | software_info.finality = finality |
| 16 | 16 | software_info.acronym = acronym |
| ... | ... | @@ -55,7 +55,7 @@ module PluginTestHelper |
| 55 | 55 | end |
| 56 | 56 | |
| 57 | 57 | def create_license_info version, link = "" |
| 58 | - license = LicenseInfo.create(:version => version) | |
| 58 | + license = SoftwareCommunitiesPlugin::LicenseInfo.create(:version => version) | |
| 59 | 59 | license.link = link |
| 60 | 60 | license.save |
| 61 | 61 | ... | ... |
src/noosfero-spb/software_communities/test/helpers/software_test_helper.rb
| 1 | 1 | module SoftwareTestHelper |
| 2 | 2 | |
| 3 | 3 | def create_language language_fields |
| 4 | - language = SoftwareLanguage.new | |
| 4 | + language = SoftwareCommunitiesPlugin::SoftwareLanguage.new | |
| 5 | 5 | |
| 6 | 6 | language_fields[0].each do |k,v| |
| 7 | 7 | language[k] = v |
| ... | ... | @@ -12,7 +12,7 @@ module SoftwareTestHelper |
| 12 | 12 | |
| 13 | 13 | def create_database database_fields |
| 14 | 14 | |
| 15 | - database = SoftwareDatabase.new | |
| 15 | + database = SoftwareCommunitiesPlugin::SoftwareDatabase.new | |
| 16 | 16 | |
| 17 | 17 | database_fields[0].each do |k,v| |
| 18 | 18 | database[k] = v |
| ... | ... | @@ -23,7 +23,7 @@ module SoftwareTestHelper |
| 23 | 23 | end |
| 24 | 24 | |
| 25 | 25 | def create_library library_fields |
| 26 | - library = Library.new | |
| 26 | + library = SoftwareCommunitiesPlugin::Library.new | |
| 27 | 27 | |
| 28 | 28 | library_fields[0].each do |k,v| |
| 29 | 29 | library[k] = v |
| ... | ... | @@ -33,7 +33,7 @@ module SoftwareTestHelper |
| 33 | 33 | end |
| 34 | 34 | |
| 35 | 35 | def create_operating_system operating_system_hash |
| 36 | - operating_system = OperatingSystem.new | |
| 36 | + operating_system = SoftwareCommunitiesPlugin::OperatingSystem.new | |
| 37 | 37 | |
| 38 | 38 | operating_system_hash[0].each do |k,v| |
| 39 | 39 | operating_system[k] = v |
| ... | ... | @@ -43,7 +43,7 @@ module SoftwareTestHelper |
| 43 | 43 | end |
| 44 | 44 | |
| 45 | 45 | def create_license license_hash |
| 46 | - license_info = LicenseInfo.new | |
| 46 | + license_info = SoftwareCommunitiesPlugin::LicenseInfo.new | |
| 47 | 47 | |
| 48 | 48 | license_hash.each do |k,v| |
| 49 | 49 | license_info[k] = v |
| ... | ... | @@ -64,7 +64,7 @@ module SoftwareTestHelper |
| 64 | 64 | |
| 65 | 65 | def create_software fields |
| 66 | 66 | |
| 67 | - software = SoftwareInfo.new | |
| 67 | + software = SoftwareCommunitiesPlugin::SoftwareInfo.new | |
| 68 | 68 | community = Community.new |
| 69 | 69 | software_hash = fields[2] |
| 70 | 70 | license_system_hash = fields[0] |
| ... | ... | @@ -97,7 +97,7 @@ module SoftwareTestHelper |
| 97 | 97 | hash_list << fields |
| 98 | 98 | |
| 99 | 99 | #Fields for license info |
| 100 | - fields_license['license_infos_id'] = LicenseInfo.last.id | |
| 100 | + fields_license['license_infos_id'] = SoftwareCommunitiesPlugin::LicenseInfo.last.id | |
| 101 | 101 | hash_list << fields_license |
| 102 | 102 | |
| 103 | 103 | hash_list |
| ... | ... | @@ -128,7 +128,7 @@ module SoftwareTestHelper |
| 128 | 128 | |
| 129 | 129 | #Fields for software language |
| 130 | 130 | fields_language['version'] = 'test' |
| 131 | - fields_language['programming_language_id'] = ProgrammingLanguage.last.id | |
| 131 | + fields_language['programming_language_id'] = SoftwareCommunitiesPlugin::ProgrammingLanguage.last.id | |
| 132 | 132 | fields_language['operating_system'] = 'test' |
| 133 | 133 | list_language << fields_language |
| 134 | 134 | list_language << {} |
| ... | ... | @@ -136,7 +136,7 @@ module SoftwareTestHelper |
| 136 | 136 | |
| 137 | 137 | #Fields for database |
| 138 | 138 | fields_database['version'] = 'test' |
| 139 | - fields_database['database_description_id'] = DatabaseDescription.last.id | |
| 139 | + fields_database['database_description_id'] = SoftwareCommunitiesPlugin::DatabaseDescription.last.id | |
| 140 | 140 | fields_database['operating_system'] = 'test' |
| 141 | 141 | list_database << fields_database |
| 142 | 142 | list_database << {} |
| ... | ... | @@ -144,7 +144,7 @@ module SoftwareTestHelper |
| 144 | 144 | |
| 145 | 145 | #Fields for operating system |
| 146 | 146 | fields_operating_system['version'] = 'version' |
| 147 | - fields_operating_system['operating_system_name_id'] = OperatingSystemName.last.id | |
| 147 | + fields_operating_system['operating_system_name_id'] = SoftwareCommunitiesPlugin::OperatingSystemName.last.id | |
| 148 | 148 | list_operating_system << fields_operating_system |
| 149 | 149 | list_operating_system << {} |
| 150 | 150 | hash_list << list_operating_system |
| ... | ... | @@ -158,7 +158,7 @@ module SoftwareTestHelper |
| 158 | 158 | hash_list << fields_software |
| 159 | 159 | |
| 160 | 160 | #Fields for license |
| 161 | - fields_license['license_infos_id'] = LicenseInfo.last.id | |
| 161 | + fields_license['license_infos_id'] = SoftwareCommunitiesPlugin::LicenseInfo.last.id | |
| 162 | 162 | hash_list << fields_license |
| 163 | 163 | |
| 164 | 164 | hash_list |
| ... | ... | @@ -169,7 +169,7 @@ module SoftwareTestHelper |
| 169 | 169 | |
| 170 | 170 | #Fields for license info |
| 171 | 171 | fields_license = { |
| 172 | - license_infos_id: LicenseInfo.last.id | |
| 172 | + license_infos_id: SoftwareCommunitiesPlugin::LicenseInfo.last.id | |
| 173 | 173 | } |
| 174 | 174 | hash_list << fields_license |
| 175 | 175 | |
| ... | ... | @@ -189,5 +189,5 @@ module SoftwareTestHelper |
| 189 | 189 | hash_list |
| 190 | 190 | end |
| 191 | 191 | end |
| 192 | -#version: LicenseInfo.last.version, | |
| 193 | -#id: LicenseInfo.last.id | |
| 194 | 192 | \ No newline at end of file |
| 193 | +#version: SoftwareCommunitiesPlugin::LicenseInfo.last.version, | |
| 194 | +#id: SoftwareCommunitiesPlugin::LicenseInfo.last.id | |
| 195 | 195 | \ No newline at end of file | ... | ... |
src/noosfero-spb/software_communities/test/unit/categories_and_tags_block_test.rb
| ... | ... | @@ -4,16 +4,16 @@ require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' |
| 4 | 4 | class CategoriesAndTagsBlockTest < ActiveSupport::TestCase |
| 5 | 5 | include PluginTestHelper |
| 6 | 6 | should 'inherit from Block' do |
| 7 | - assert_kind_of Block, CategoriesAndTagsBlock.new | |
| 7 | + assert_kind_of Block, SoftwareCommunitiesPlugin::CategoriesAndTagsBlock.new | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | should 'declare its default title' do |
| 11 | - CategoriesAndTagsBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | - assert_equal Block.new.default_title, CategoriesAndTagsBlock.new.default_title | |
| 11 | + SoftwareCommunitiesPlugin::CategoriesAndTagsBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | + assert_equal Block.new.default_title, SoftwareCommunitiesPlugin::CategoriesAndTagsBlock.new.default_title | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | should 'describe itself' do |
| 16 | - assert_not_equal Block.description, CategoriesAndTagsBlock.description | |
| 16 | + assert_not_equal Block.description, SoftwareCommunitiesPlugin::CategoriesAndTagsBlock.description | |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | 19 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/categories_software_block_test.rb
| ... | ... | @@ -4,16 +4,16 @@ require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' |
| 4 | 4 | class CategoriesSoftwareBlockTest < ActiveSupport::TestCase |
| 5 | 5 | include PluginTestHelper |
| 6 | 6 | should 'inherit from Block' do |
| 7 | - assert_kind_of Block, CategoriesSoftwareBlock.new | |
| 7 | + assert_kind_of Block, SoftwareCommunitiesPlugin::CategoriesSoftwareBlock.new | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | should 'declare its default title' do |
| 11 | - CategoriesSoftwareBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | - assert_equal Block.new.default_title, CategoriesSoftwareBlock.new.default_title | |
| 11 | + SoftwareCommunitiesPlugin::CategoriesSoftwareBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | + assert_equal Block.new.default_title, SoftwareCommunitiesPlugin::CategoriesSoftwareBlock.new.default_title | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | should 'describe itself' do |
| 16 | - assert_not_equal Block.description, CategoriesSoftwareBlock.description | |
| 16 | + assert_not_equal Block.description, SoftwareCommunitiesPlugin::CategoriesSoftwareBlock.description | |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | 19 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/create_software_test.rb
| ... | ... | @@ -7,11 +7,11 @@ class CreateSoftwareTest < ActiveSupport::TestCase |
| 7 | 7 | end |
| 8 | 8 | |
| 9 | 9 | should 'be a task' do |
| 10 | - ok { CreateSoftware.new.kind_of?(Task) } | |
| 10 | + ok { SoftwareCommunitiesPlugin::CreateSoftware.new.kind_of?(Task) } | |
| 11 | 11 | end |
| 12 | 12 | |
| 13 | 13 | should 'require a requestor' do |
| 14 | - task = CreateSoftware.new(:name => 'Software Test', :target => Environment.default) | |
| 14 | + task = SoftwareCommunitiesPlugin::CreateSoftware.new(:name => 'Software Test', :target => Environment.default) | |
| 15 | 15 | task.valid? |
| 16 | 16 | |
| 17 | 17 | assert task.errors[:requestor_id.to_s].present? |
| ... | ... | @@ -24,9 +24,9 @@ class CreateSoftwareTest < ActiveSupport::TestCase |
| 24 | 24 | end |
| 25 | 25 | |
| 26 | 26 | should 'actually create new software community when confirmed' do |
| 27 | - task = CreateSoftware.create!(:name => 'Software Test', :target => Environment.default, :requestor => @requestor, :finality => "Any") | |
| 27 | + task = SoftwareCommunitiesPlugin::CreateSoftware.create!(:name => 'Software Test', :target => Environment.default, :requestor => @requestor, :finality => "Any") | |
| 28 | 28 | |
| 29 | - assert_difference 'SoftwareInfo.count' do | |
| 29 | + assert_difference 'SoftwareCommunitiesPlugin::SoftwareInfo.count' do | |
| 30 | 30 | assert_difference 'Community.count' do |
| 31 | 31 | task.finish |
| 32 | 32 | end |
| ... | ... | @@ -36,7 +36,7 @@ class CreateSoftwareTest < ActiveSupport::TestCase |
| 36 | 36 | end |
| 37 | 37 | |
| 38 | 38 | should 'create new software community with all informed data when confirmed' do |
| 39 | - task = CreateSoftware.create!(:name => 'Software Test', :target => Environment.default, :requestor => @requestor, :finality => "Any", :repository_link => "#", ) | |
| 39 | + task = SoftwareCommunitiesPlugin::CreateSoftware.create!(:name => 'Software Test', :target => Environment.default, :requestor => @requestor, :finality => "Any", :repository_link => "#", ) | |
| 40 | 40 | |
| 41 | 41 | task.finish |
| 42 | 42 | software = Community["software-test"].software_info |
| ... | ... | @@ -47,7 +47,7 @@ class CreateSoftwareTest < ActiveSupport::TestCase |
| 47 | 47 | end |
| 48 | 48 | |
| 49 | 49 | should 'override message methods from Task' do |
| 50 | - task = CreateSoftware.create!(:name => 'Software Test', :target => Environment.default, :requestor => @requestor, :finality => "Any") | |
| 50 | + task = SoftwareCommunitiesPlugin::CreateSoftware.create!(:name => 'Software Test', :target => Environment.default, :requestor => @requestor, :finality => "Any") | |
| 51 | 51 | |
| 52 | 52 | task.finish |
| 53 | 53 | |
| ... | ... | @@ -59,13 +59,13 @@ class CreateSoftwareTest < ActiveSupport::TestCase |
| 59 | 59 | end |
| 60 | 60 | |
| 61 | 61 | should 'report as approved when approved' do |
| 62 | - request = CreateSoftware.new | |
| 62 | + request = SoftwareCommunitiesPlugin::CreateSoftware.new | |
| 63 | 63 | request.stubs(:status).returns(Task::Status::FINISHED) |
| 64 | 64 | assert request.approved? |
| 65 | 65 | end |
| 66 | 66 | |
| 67 | 67 | should 'report as rejected when rejected' do |
| 68 | - request = CreateSoftware.new | |
| 68 | + request = SoftwareCommunitiesPlugin::CreateSoftware.new | |
| 69 | 69 | request.stubs(:status).returns(Task::Status::CANCELLED) |
| 70 | 70 | assert request.rejected? |
| 71 | 71 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/database_helper_test.rb
| ... | ... | @@ -3,8 +3,8 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 3 | 3 | class DatabaseHelperTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | 5 | def setup |
| 6 | - dd1 = DatabaseDescription.create(:name => "Oracle") | |
| 7 | - dd2 = DatabaseDescription.create!(:name => "MySQL") | |
| 6 | + dd1 = SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => "Oracle") | |
| 7 | + dd2 = SoftwareCommunitiesPlugin::DatabaseDescription.create!(:name => "MySQL") | |
| 8 | 8 | |
| 9 | 9 | @database_objects = [ |
| 10 | 10 | {:database_description_id => dd1.id.to_s ,:version => "2.0"}, |
| ... | ... | @@ -14,8 +14,8 @@ class DatabaseHelperTest < ActiveSupport::TestCase |
| 14 | 14 | |
| 15 | 15 | def teardown |
| 16 | 16 | @database_objects = nil |
| 17 | - SoftwareDatabase.destroy_all | |
| 18 | - DatabaseDescription.destroy_all | |
| 17 | + SoftwareCommunitiesPlugin::SoftwareDatabase.destroy_all | |
| 18 | + SoftwareCommunitiesPlugin::DatabaseDescription.destroy_all | |
| 19 | 19 | end |
| 20 | 20 | |
| 21 | 21 | should "return an empty list" do | ... | ... |
src/noosfero-spb/software_communities/test/unit/database_validation_test.rb
| ... | ... | @@ -3,8 +3,8 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 3 | 3 | class DatabaseValidationTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | 5 | def setup |
| 6 | - @database_desc = DatabaseDescription.create(:name => "ABC") | |
| 7 | - @database = SoftwareDatabase.new | |
| 6 | + @database_desc = SoftwareCommunitiesPlugin::DatabaseDescription.create(:name => "ABC") | |
| 7 | + @database = SoftwareCommunitiesPlugin::SoftwareDatabase.new | |
| 8 | 8 | @database.database_description = @database_desc |
| 9 | 9 | @database.version = "MYSQL" |
| 10 | 10 | @database |
| ... | ... | @@ -12,8 +12,8 @@ class DatabaseValidationTest < ActiveSupport::TestCase |
| 12 | 12 | |
| 13 | 13 | def teardown |
| 14 | 14 | @database = nil |
| 15 | - DatabaseDescription.destroy_all | |
| 16 | - SoftwareDatabase.destroy_all | |
| 15 | + SoftwareCommunitiesPlugin::DatabaseDescription.destroy_all | |
| 16 | + SoftwareCommunitiesPlugin::SoftwareDatabase.destroy_all | |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | 19 | should "Save database if all fields are filled" do | ... | ... |
src/noosfero-spb/software_communities/test/unit/download_block_test.rb
| ... | ... | @@ -4,16 +4,16 @@ require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' |
| 4 | 4 | class DownloadBlockTest < ActiveSupport::TestCase |
| 5 | 5 | include PluginTestHelper |
| 6 | 6 | should 'inherit from Block' do |
| 7 | - assert_kind_of Block, DownloadBlock.new | |
| 7 | + assert_kind_of Block, SoftwareCommunitiesPlugin::DownloadBlock.new | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | should 'declare its default title' do |
| 11 | - DownloadBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | - assert_equal Block.new.default_title, DownloadBlock.new.default_title | |
| 11 | + SoftwareCommunitiesPlugin::DownloadBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | + assert_equal Block.new.default_title, SoftwareCommunitiesPlugin::DownloadBlock.new.default_title | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | should 'describe itself' do |
| 16 | - assert_not_equal Block.description, DownloadBlock.description | |
| 16 | + assert_not_equal Block.description, SoftwareCommunitiesPlugin::DownloadBlock.description | |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | 19 | should 'have software info to download it' do |
| ... | ... | @@ -24,7 +24,7 @@ class DownloadBlockTest < ActiveSupport::TestCase |
| 24 | 24 | link2 = "gitlab.com/teste/2" |
| 25 | 25 | name2 = "Test Software2" |
| 26 | 26 | |
| 27 | - block = DownloadBlock.create(:downloads => [{:name => name1, :link => link1}, {:name => name2, :link => link2}]) | |
| 27 | + block = SoftwareCommunitiesPlugin::DownloadBlock.create(:downloads => [{:name => name1, :link => link1}, {:name => name2, :link => link2}]) | |
| 28 | 28 | |
| 29 | 29 | assert_equal block.downloads[0][:link], link1, "Link should not be empty" |
| 30 | 30 | assert_equal block.downloads[0][:name], name1, "Name should not be empty" | ... | ... |
src/noosfero-spb/software_communities/test/unit/download_test.rb
| ... | ... | @@ -26,8 +26,8 @@ class DownloadTest < ActiveSupport::TestCase |
| 26 | 26 | end |
| 27 | 27 | |
| 28 | 28 | should "Set as 0(zero) total_downloads if it is not given" do |
| 29 | - without_total_downloads = Download.new({}) | |
| 30 | - with_total_downloads = Download.new(@downloads_sample_data.last) | |
| 29 | + without_total_downloads = SoftwareCommunitiesPlugin::Download.new({}) | |
| 30 | + with_total_downloads = SoftwareCommunitiesPlugin::Download.new(@downloads_sample_data.last) | |
| 31 | 31 | |
| 32 | 32 | assert_equal 0, without_total_downloads.total_downloads |
| 33 | 33 | assert_equal @downloads_sample_data.last[:total_downloads], with_total_downloads.total_downloads |
| ... | ... | @@ -35,14 +35,14 @@ class DownloadTest < ActiveSupport::TestCase |
| 35 | 35 | |
| 36 | 36 | should "Remove downloads without a name" do |
| 37 | 37 | @downloads_sample_data[1] = @downloads_sample_data[1].slice! :name |
| 38 | - downloads = Download.validate_download_list @downloads_sample_data | |
| 38 | + downloads = SoftwareCommunitiesPlugin::Download.validate_download_list @downloads_sample_data | |
| 39 | 39 | |
| 40 | 40 | assert_equal 1, downloads.size |
| 41 | 41 | assert_equal @downloads_sample_data[0][:name], downloads[0][:name] |
| 42 | 42 | end |
| 43 | 43 | |
| 44 | 44 | should "Only set total_downloads if the value is integer" do |
| 45 | - download = Download.new(@downloads_sample_data.last) | |
| 45 | + download = SoftwareCommunitiesPlugin::Download.new(@downloads_sample_data.last) | |
| 46 | 46 | |
| 47 | 47 | download.total_downloads = "456" |
| 48 | 48 | assert_not_equal 456, download.total_downloads | ... | ... |
src/noosfero-spb/software_communities/test/unit/library_helper_test.rb
| ... | ... | @@ -42,7 +42,7 @@ class LibraryHelperTest < ActiveSupport::TestCase |
| 42 | 42 | should "return a html text with license name equals to linux" do |
| 43 | 43 | libraries = [] |
| 44 | 44 | |
| 45 | - library_description = Library.new | |
| 45 | + library_description = SoftwareCommunitiesPlugin::Library.new | |
| 46 | 46 | library_description.name = "Lib" |
| 47 | 47 | |
| 48 | 48 | libraries << library_description | ... | ... |
src/noosfero-spb/software_communities/test/unit/library_validation_test.rb
| ... | ... | @@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 3 | 3 | class LibraryValidationTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | 5 | def setup |
| 6 | - @library = Library.new | |
| 6 | + @library = SoftwareCommunitiesPlugin::Library.new | |
| 7 | 7 | @library.name = "name" |
| 8 | 8 | @library.version = "version" |
| 9 | 9 | @library.license = "license" | ... | ... |
src/noosfero-spb/software_communities/test/unit/operating_system_helper_test.rb
| 1 | 1 | require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 2 | 2 | |
| 3 | -OperatingSystemName.create(:name=>"Debina") | |
| 4 | -OperatingSystemName.create(:name=>"Fedora") | |
| 5 | -OperatingSystemName.create(:name=>"CentOS") | |
| 3 | +SoftwareCommunitiesPlugin::OperatingSystemName.create(:name=>"Debina") | |
| 4 | +SoftwareCommunitiesPlugin::OperatingSystemName.create(:name=>"Fedora") | |
| 5 | +SoftwareCommunitiesPlugin::OperatingSystemName.create(:name=>"CentOS") | |
| 6 | 6 | |
| 7 | 7 | class OperatingSystemHelperTest < ActiveSupport::TestCase |
| 8 | 8 | |
| ... | ... | @@ -49,16 +49,16 @@ class OperatingSystemHelperTest < ActiveSupport::TestCase |
| 49 | 49 | should "return a html text with operating system" do |
| 50 | 50 | operating_systems = [] |
| 51 | 51 | |
| 52 | - operating_system = OperatingSystemName.new | |
| 52 | + operating_system = SoftwareCommunitiesPlugin::OperatingSystemName.new | |
| 53 | 53 | operating_system.name = "teste" |
| 54 | 54 | |
| 55 | - software_operating_system = OperatingSystem.new | |
| 55 | + software_operating_system = SoftwareCommunitiesPlugin::OperatingSystem.new | |
| 56 | 56 | software_operating_system.version = 2 |
| 57 | 57 | software_operating_system.operating_system_name = operating_system |
| 58 | 58 | |
| 59 | 59 | operating_systems << software_operating_system |
| 60 | 60 | op_table = OperatingSystemHelper.operating_system_as_tables(operating_systems) |
| 61 | 61 | |
| 62 | - assert_not_nil op_table.first.call.index(OperatingSystemName.first.name) | |
| 62 | + assert_not_nil op_table.first.call.index(SoftwareCommunitiesPlugin::OperatingSystemName.first.name) | |
| 63 | 63 | end |
| 64 | 64 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/operating_system_validation_test.rb
| ... | ... | @@ -3,8 +3,8 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 3 | 3 | class OperatingSystemValidationTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | 5 | def setup |
| 6 | - operating_system_name = OperatingSystemName::new :name=>"Linux" | |
| 7 | - @operating_system = OperatingSystem::new :version=>"3.0" | |
| 6 | + operating_system_name = SoftwareCommunitiesPlugin::OperatingSystemName::new :name=>"Linux" | |
| 7 | + @operating_system = SoftwareCommunitiesPlugin::OperatingSystem::new :version=>"3.0" | |
| 8 | 8 | @operating_system.operating_system_name = operating_system_name |
| 9 | 9 | @operating_system |
| 10 | 10 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/repository_block_test.rb
| ... | ... | @@ -5,15 +5,15 @@ class RepositoryBlockTest < ActiveSupport::TestCase |
| 5 | 5 | include PluginTestHelper |
| 6 | 6 | |
| 7 | 7 | should 'inherit from Block' do |
| 8 | - assert_kind_of Block, RepositoryBlock.new | |
| 8 | + assert_kind_of Block, SoftwareCommunitiesPlugin::RepositoryBlock.new | |
| 9 | 9 | end |
| 10 | 10 | |
| 11 | 11 | should 'declare its default title' do |
| 12 | - RepositoryBlock.any_instance.stubs(:profile_count).returns(0) | |
| 13 | - assert_equal Block.new.default_title, RepositoryBlock.new.default_title | |
| 12 | + SoftwareCommunitiesPlugin::RepositoryBlock.any_instance.stubs(:profile_count).returns(0) | |
| 13 | + assert_equal Block.new.default_title, SoftwareCommunitiesPlugin::RepositoryBlock.new.default_title | |
| 14 | 14 | end |
| 15 | 15 | |
| 16 | 16 | should 'describe itself' do |
| 17 | - assert_not_equal Block.description, RepositoryBlock.description | |
| 17 | + assert_not_equal Block.description, SoftwareCommunitiesPlugin::RepositoryBlock.description | |
| 18 | 18 | end |
| 19 | 19 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/search_catalog_block_test.rb
| ... | ... | @@ -4,16 +4,16 @@ require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' |
| 4 | 4 | class SearchCatalogBlockTest < ActiveSupport::TestCase |
| 5 | 5 | include PluginTestHelper |
| 6 | 6 | should 'inherit from Block' do |
| 7 | - assert_kind_of Block, SearchCatalogBlock.new | |
| 7 | + assert_kind_of Block, SoftwareCommunitiesPlugin::SearchCatalogBlock.new | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | should 'declare its default title' do |
| 11 | - SearchCatalogBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | - assert_equal Block.new.default_title, SearchCatalogBlock.new.default_title | |
| 11 | + SoftwareCommunitiesPlugin::SearchCatalogBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | + assert_equal Block.new.default_title, SoftwareCommunitiesPlugin::SearchCatalogBlock.new.default_title | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | should 'describe itself' do |
| 16 | - assert_not_equal Block.description, SearchCatalogBlock.description | |
| 16 | + assert_not_equal Block.description, SoftwareCommunitiesPlugin::SearchCatalogBlock.description | |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | 19 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_database_test.rb
| ... | ... | @@ -2,16 +2,16 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 2 | 2 | |
| 3 | 3 | class SoftwareDatabaseTest < ActiveSupport::TestCase |
| 4 | 4 | def setup |
| 5 | - DatabaseDescription.create!(name: "PostgreSQL") | |
| 6 | - @software_database = SoftwareDatabase.new( | |
| 5 | + SoftwareCommunitiesPlugin::DatabaseDescription.create!(name: "PostgreSQL") | |
| 6 | + @software_database = SoftwareCommunitiesPlugin::SoftwareDatabase.new( | |
| 7 | 7 | :version => "1.0" |
| 8 | 8 | ) |
| 9 | 9 | @software_database.database_description_id = 1 |
| 10 | 10 | end |
| 11 | 11 | |
| 12 | 12 | def teardown |
| 13 | - DatabaseDescription.destroy_all | |
| 14 | - SoftwareDatabase.destroy_all | |
| 13 | + SoftwareCommunitiesPlugin::DatabaseDescription.destroy_all | |
| 14 | + SoftwareCommunitiesPlugin::SoftwareDatabase.destroy_all | |
| 15 | 15 | end |
| 16 | 16 | |
| 17 | 17 | should "save if all informations of @software_database are filled" do | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_helper_test.rb
| ... | ... | @@ -5,16 +5,16 @@ class SoftwareHelperTest < ActiveSupport::TestCase |
| 5 | 5 | include SoftwareHelper |
| 6 | 6 | |
| 7 | 7 | should "Create ProgrammingLanguages based on file with languages names" do |
| 8 | - ProgrammingLanguage.delete_all | |
| 8 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.delete_all | |
| 9 | 9 | PATH_TO_FILE = "plugins/software_communities/public/static/languages.txt" |
| 10 | 10 | |
| 11 | - SoftwareHelper.create_list_with_file(PATH_TO_FILE, ProgrammingLanguage) | |
| 11 | + SoftwareHelper.create_list_with_file(PATH_TO_FILE, SoftwareCommunitiesPlugin::ProgrammingLanguage) | |
| 12 | 12 | |
| 13 | 13 | list = File.open(PATH_TO_FILE, "r") |
| 14 | 14 | count = list.readlines.count |
| 15 | 15 | list.close |
| 16 | 16 | |
| 17 | - assert(ProgrammingLanguage.count == count) | |
| 17 | + assert(SoftwareCommunitiesPlugin::ProgrammingLanguage.count == count) | |
| 18 | 18 | end |
| 19 | 19 | |
| 20 | 20 | should "return the software template specified in config.yml file" do | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_info_validation_test.rb
| ... | ... | @@ -9,29 +9,29 @@ class SoftwareInfoValidationTest < ActiveSupport::TestCase |
| 9 | 9 | :name => 'New Software' |
| 10 | 10 | ) |
| 11 | 11 | |
| 12 | - @language = ProgrammingLanguage.new(:name => 'C++') | |
| 12 | + @language = SoftwareCommunitiesPlugin::ProgrammingLanguage.new(:name => 'C++') | |
| 13 | 13 | @language.save |
| 14 | - @software_language = SoftwareLanguage.new( | |
| 14 | + @software_language = SoftwareCommunitiesPlugin::SoftwareLanguage.new( | |
| 15 | 15 | :version => '1' |
| 16 | 16 | ) |
| 17 | 17 | @software_language.programming_language = @language |
| 18 | 18 | @software_language.save |
| 19 | 19 | |
| 20 | - @database = DatabaseDescription.new(:name => 'Oracle') | |
| 20 | + @database = SoftwareCommunitiesPlugin::DatabaseDescription.new(:name => 'Oracle') | |
| 21 | 21 | @database.save |
| 22 | - @software_database = SoftwareDatabase.new( | |
| 22 | + @software_database = SoftwareCommunitiesPlugin::SoftwareDatabase.new( | |
| 23 | 23 | :version => '2' |
| 24 | 24 | ) |
| 25 | 25 | @software_database.database_description = @database |
| 26 | 26 | @software_database.save |
| 27 | 27 | |
| 28 | - @operating_system_name = OperatingSystemName.new(:name => 'Debian') | |
| 28 | + @operating_system_name = SoftwareCommunitiesPlugin::OperatingSystemName.new(:name => 'Debian') | |
| 29 | 29 | @operating_system_name.save |
| 30 | - @operating_system = OperatingSystem.new(:version => '1.0') | |
| 30 | + @operating_system = SoftwareCommunitiesPlugin::OperatingSystem.new(:version => '1.0') | |
| 31 | 31 | @operating_system.operating_system_name = @operating_system_name |
| 32 | 32 | @operating_system.save |
| 33 | 33 | |
| 34 | - @software_info = SoftwareInfo.new( | |
| 34 | + @software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new( | |
| 35 | 35 | :acronym => "SFTW", |
| 36 | 36 | :e_mag => true, |
| 37 | 37 | :icp_brasil => true, |
| ... | ... | @@ -53,13 +53,13 @@ class SoftwareInfoValidationTest < ActiveSupport::TestCase |
| 53 | 53 | end |
| 54 | 54 | |
| 55 | 55 | def teardown |
| 56 | - ProgrammingLanguage.destroy_all | |
| 57 | - SoftwareLanguage.destroy_all | |
| 58 | - DatabaseDescription.destroy_all | |
| 59 | - SoftwareDatabase.destroy_all | |
| 60 | - OperatingSystem.destroy_all | |
| 61 | - OperatingSystemName.destroy_all | |
| 62 | - SoftwareInfo.destroy_all | |
| 56 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.destroy_all | |
| 57 | + SoftwareCommunitiesPlugin::SoftwareLanguage.destroy_all | |
| 58 | + SoftwareCommunitiesPlugin::DatabaseDescription.destroy_all | |
| 59 | + SoftwareCommunitiesPlugin::SoftwareDatabase.destroy_all | |
| 60 | + SoftwareCommunitiesPlugin::OperatingSystem.destroy_all | |
| 61 | + SoftwareCommunitiesPlugin::OperatingSystemName.destroy_all | |
| 62 | + SoftwareCommunitiesPlugin::SoftwareInfo.destroy_all | |
| 63 | 63 | end |
| 64 | 64 | |
| 65 | 65 | should 'Save SoftwareInfo if all fields are filled' do | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_language_helper_test.rb
| ... | ... | @@ -3,8 +3,8 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 3 | 3 | class SoftwareLanguageHelperTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | 5 | def setup |
| 6 | - pl1 = ProgrammingLanguage.create(:name => "Python") | |
| 7 | - pl2 = ProgrammingLanguage.create(:name => "Java") | |
| 6 | + pl1 = SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name => "Python") | |
| 7 | + pl2 = SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name => "Java") | |
| 8 | 8 | |
| 9 | 9 | @software_language_objects = [ |
| 10 | 10 | {:programming_language_id => pl1.id.to_s ,:version => "2.0"}, |
| ... | ... | @@ -15,7 +15,7 @@ class SoftwareLanguageHelperTest < ActiveSupport::TestCase |
| 15 | 15 | |
| 16 | 16 | def teardown |
| 17 | 17 | @software_language_objects = nil |
| 18 | - ProgrammingLanguage.destroy_all | |
| 18 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.destroy_all | |
| 19 | 19 | end |
| 20 | 20 | |
| 21 | 21 | should "return an empty list" do | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_language_validation.rb
| ... | ... | @@ -9,7 +9,7 @@ class SoftwareLanguageValidationTest < ActiveSupport::TestCase |
| 9 | 9 | |
| 10 | 10 | def teardown |
| 11 | 11 | @software_info = nil |
| 12 | - SoftwareInfo.destroy_all | |
| 12 | + SoftwareCommunitiesPlugin::SoftwareInfo.destroy_all | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | should "Save SoftwareLanguage if version and prog_language are filled" do |
| ... | ... | @@ -38,15 +38,15 @@ class SoftwareLanguageValidationTest < ActiveSupport::TestCase |
| 38 | 38 | private |
| 39 | 39 | |
| 40 | 40 | def create_software_language |
| 41 | - software_language = SoftwareLanguage.new | |
| 41 | + software_language = SoftwareCommunitiesPlugin::SoftwareLanguage.new | |
| 42 | 42 | software_language.software_info = @software_info |
| 43 | - software_language.programming_language = ProgrammingLanguage.last | |
| 43 | + software_language.programming_language = SoftwareCommunitiesPlugin::ProgrammingLanguage.last | |
| 44 | 44 | software_language.version = "version" |
| 45 | 45 | software_language |
| 46 | 46 | end |
| 47 | 47 | |
| 48 | 48 | def create_software_info |
| 49 | - software_info = SoftwareInfo.new | |
| 49 | + software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new | |
| 50 | 50 | software_info.community_id = fast_create(Community).id |
| 51 | 51 | software_info.community.name = 'Noosfero' |
| 52 | 52 | software_info.e_mag = true |
| ... | ... | @@ -61,9 +61,9 @@ class SoftwareLanguageValidationTest < ActiveSupport::TestCase |
| 61 | 61 | end |
| 62 | 62 | |
| 63 | 63 | def create_programming_language |
| 64 | - ProgrammingLanguage.create(:name=>"C") | |
| 65 | - ProgrammingLanguage.create(:name=>"C++") | |
| 66 | - ProgrammingLanguage.create(:name=>"Ruby") | |
| 67 | - ProgrammingLanguage.create(:name=>"Python") | |
| 64 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name=>"C") | |
| 65 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name=>"C++") | |
| 66 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name=>"Ruby") | |
| 67 | + SoftwareCommunitiesPlugin::ProgrammingLanguage.create(:name=>"Python") | |
| 68 | 68 | end |
| 69 | 69 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_license_info_test.rb
| ... | ... | @@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 3 | 3 | class SoftwareDatabaseTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | 5 | should "save if all informations are filled" do |
| 6 | - @software_license_info = LicenseInfo.create( | |
| 6 | + @software_license_info = SoftwareCommunitiesPlugin::LicenseInfo.create( | |
| 7 | 7 | :version => "GPL", |
| 8 | 8 | :link => "www.gpl2.com" |
| 9 | 9 | ) |
| ... | ... | @@ -11,7 +11,7 @@ class SoftwareDatabaseTest < ActiveSupport::TestCase |
| 11 | 11 | end |
| 12 | 12 | |
| 13 | 13 | should "not save if license info version is empty" do |
| 14 | - @software_license_info = LicenseInfo.create( | |
| 14 | + @software_license_info = SoftwareCommunitiesPlugin::LicenseInfo.create( | |
| 15 | 15 | :version => "GPL", |
| 16 | 16 | :link => "www.gpl2.com" |
| 17 | 17 | ) |
| ... | ... | @@ -20,7 +20,7 @@ class SoftwareDatabaseTest < ActiveSupport::TestCase |
| 20 | 20 | end |
| 21 | 21 | |
| 22 | 22 | should "save if link is empty" do |
| 23 | - @software_license_info = LicenseInfo.create( | |
| 23 | + @software_license_info = SoftwareCommunitiesPlugin::LicenseInfo.create( | |
| 24 | 24 | :version => "GPL", |
| 25 | 25 | :link => "www.gpl2.com") |
| 26 | 26 | @software_license_info.link = nil | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_registration_test.rb
| ... | ... | @@ -9,17 +9,18 @@ class SoftwareRegistrationTest < ActiveSupport::TestCase |
| 9 | 9 | |
| 10 | 10 | def teardown |
| 11 | 11 | Community.destroy_all |
| 12 | - SoftwareInfo.destroy_all | |
| 12 | + SoftwareCommunitiesPlugin::SoftwareInfo.destroy_all | |
| 13 | 13 | Task.destroy_all |
| 14 | 14 | end |
| 15 | 15 | |
| 16 | 16 | should 'include software registration task if is admin' do |
| 17 | 17 | person = create_user('molly').person |
| 18 | 18 | @environment.add_admin(person) |
| 19 | - task = CreateSoftware.create!( | |
| 19 | + task = SoftwareCommunitiesPlugin::CreateSoftware.create!( | |
| 20 | 20 | :name => "Teste One", |
| 21 | 21 | :requestor => person, |
| 22 | - :environment => @environment | |
| 22 | + :environment => @environment, | |
| 23 | + :finality => "something" | |
| 23 | 24 | ) |
| 24 | 25 | assert_equal [task], Task.to(person).pending |
| 25 | 26 | end |
| ... | ... | @@ -27,16 +28,16 @@ class SoftwareRegistrationTest < ActiveSupport::TestCase |
| 27 | 28 | should 'create software when admin accept software create task' do |
| 28 | 29 | person = create_user('Pedro').person |
| 29 | 30 | @environment.add_admin(person) |
| 30 | - task = CreateSoftware.create!( | |
| 31 | + task = SoftwareCommunitiesPlugin::CreateSoftware.create!( | |
| 31 | 32 | :name => "Teste Two", |
| 32 | 33 | :requestor => person, |
| 33 | 34 | :environment => @environment, |
| 34 | 35 | :finality => "something" |
| 35 | 36 | ) |
| 36 | 37 | |
| 37 | - software_count = SoftwareInfo.count | |
| 38 | + software_count = SoftwareCommunitiesPlugin::SoftwareInfo.count | |
| 38 | 39 | task.finish |
| 39 | 40 | |
| 40 | - assert_equal software_count+1, SoftwareInfo.count | |
| 41 | + assert_equal software_count+1, SoftwareCommunitiesPlugin::SoftwareInfo.count | |
| 41 | 42 | end |
| 42 | 43 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/software_tab_data_block_test.rb
| ... | ... | @@ -14,15 +14,15 @@ class SoftwareTabDataBlockTest < ActiveSupport::TestCase |
| 14 | 14 | @soft_community.blogs << Blog.new(:name=>"Second blog") |
| 15 | 15 | @soft_community.save! |
| 16 | 16 | |
| 17 | - SoftwareTabDataBlock.any_instance.stubs(:owner).returns(@soft_community) | |
| 17 | + SoftwareCommunitiesPlugin::SoftwareTabDataBlock.any_instance.stubs(:owner).returns(@soft_community) | |
| 18 | 18 | end |
| 19 | 19 | |
| 20 | 20 | should "get its owner blogs" do |
| 21 | - assert_equal @soft_community.blogs, SoftwareTabDataBlock.new.blogs | |
| 21 | + assert_equal @soft_community.blogs, SoftwareCommunitiesPlugin::SoftwareTabDataBlock.new.blogs | |
| 22 | 22 | end |
| 23 | 23 | |
| 24 | 24 | should "actual_blog get the first blog if it is not defined" do |
| 25 | - assert_equal @soft_community.blogs.first, SoftwareTabDataBlock.new.actual_blog | |
| 25 | + assert_equal @soft_community.blogs.first, SoftwareCommunitiesPlugin::SoftwareTabDataBlock.new.actual_blog | |
| 26 | 26 | end |
| 27 | 27 | |
| 28 | 28 | should "actual_blog get the defined community blog" do |
| ... | ... | @@ -46,13 +46,13 @@ class SoftwareTabDataBlockTest < ActiveSupport::TestCase |
| 46 | 46 | soft_tab_data = create_software_tab_data_block(last_blog) |
| 47 | 47 | craete_sample_posts(last_blog, 6) |
| 48 | 48 | |
| 49 | - assert_equal SoftwareTabDataBlock::TOTAL_POSTS_DYSPLAYED, soft_tab_data.posts.count | |
| 49 | + assert_equal SoftwareCommunitiesPlugin::SoftwareTabDataBlock::TOTAL_POSTS_DYSPLAYED, soft_tab_data.posts.count | |
| 50 | 50 | end |
| 51 | 51 | |
| 52 | 52 | private |
| 53 | 53 | |
| 54 | 54 | def create_software_tab_data_block blog |
| 55 | - soft_tab_data = SoftwareTabDataBlock.new | |
| 55 | + soft_tab_data = SoftwareCommunitiesPlugin::SoftwareTabDataBlock.new | |
| 56 | 56 | soft_tab_data.displayed_blog = blog.id |
| 57 | 57 | soft_tab_data |
| 58 | 58 | end | ... | ... |
src/noosfero-spb/software_communities/test/unit/softwares_block_test.rb
| ... | ... | @@ -4,20 +4,20 @@ require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' |
| 4 | 4 | class SoftwaresBlockTest < ActiveSupport::TestCase |
| 5 | 5 | include PluginTestHelper |
| 6 | 6 | should 'inherit from ProfileListBlock' do |
| 7 | - assert_kind_of ProfileListBlock, SoftwaresBlock.new | |
| 7 | + assert_kind_of ProfileListBlock, SoftwareCommunitiesPlugin::SoftwaresBlock.new | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | should 'declare its default title' do |
| 11 | - SoftwaresBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | - assert_not_equal ProfileListBlock.new.default_title, SoftwaresBlock.new.default_title | |
| 11 | + SoftwareCommunitiesPlugin::SoftwaresBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | + assert_not_equal ProfileListBlock.new.default_title, SoftwareCommunitiesPlugin::SoftwaresBlock.new.default_title | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | should 'describe itself' do |
| 16 | - assert_not_equal ProfileListBlock.description, SoftwaresBlock.description | |
| 16 | + assert_not_equal ProfileListBlock.description, SoftwareCommunitiesPlugin::SoftwaresBlock.description | |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | 19 | should 'give empty footer on unsupported owner type' do |
| 20 | - block = SoftwaresBlock.new | |
| 20 | + block = SoftwareCommunitiesPlugin::SoftwaresBlock.new | |
| 21 | 21 | block.expects(:owner).returns(1) |
| 22 | 22 | assert_equal '', block.footer |
| 23 | 23 | end |
| ... | ... | @@ -34,7 +34,7 @@ class SoftwaresBlockTest < ActiveSupport::TestCase |
| 34 | 34 | software_info = create_software_info("new software") |
| 35 | 35 | software_info.community.add_member(user) |
| 36 | 36 | |
| 37 | - block = SoftwaresBlock.new | |
| 37 | + block = SoftwareCommunitiesPlugin::SoftwaresBlock.new | |
| 38 | 38 | block.expects(:owner).at_least_once.returns(user) |
| 39 | 39 | |
| 40 | 40 | assert_equivalent [software_info.community], block.profiles | ... | ... |