Commit 228e43c28a958a90b9944311e45ff1ad5286f354
Committed by
Luciano Prestes
1 parent
353a9563
Exists in
software_as_organization
begin refactoring
Showing
4 changed files
with
66 additions
and
21 deletions
Show diff stats
src/noosfero-spb/software_communities/db/migrate/20151125175514_change_software_info_structure.rb
0 → 100644
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +class CreateSispInfo < ActiveRecord::Migration | |
| 2 | + def up | |
| 3 | + create_table :sosftware_infos do |t| | |
| 4 | + t.integer :software_id | |
| 5 | + t.text :agency_identification | |
| 6 | + t.text :softawre_requirements | |
| 7 | + t.text :hardware_requirements | |
| 8 | + t.text :documentation | |
| 9 | + t.text :system_applications | |
| 10 | + t.text :active_versions | |
| 11 | + t.text :estimated_cost | |
| 12 | + t.text :responsible | |
| 13 | + t.text :responsible_for_acquirement | |
| 14 | + t.text :system_info | |
| 15 | + t.text :development_info | |
| 16 | + t.text :maintenance | |
| 17 | + t.text :standards_adherence | |
| 18 | + t.text :plataform | |
| 19 | + t.text :sisp_type | |
| 20 | + end | |
| 21 | + end | |
| 22 | + | |
| 23 | + def down | |
| 24 | + drop_table :software_infos | |
| 25 | + end | |
| 26 | +end | ... | ... |
src/noosfero-spb/software_communities/lib/software_info.rb
| ... | ... | @@ -8,7 +8,7 @@ class SoftwareInfo < ActiveRecord::Base |
| 8 | 8 | |
| 9 | 9 | SEARCHABLE_SOFTWARE_CLASSES = [ |
| 10 | 10 | SoftwareInfo, |
| 11 | - Community, | |
| 11 | + Software, | |
| 12 | 12 | ProgrammingLanguage, |
| 13 | 13 | DatabaseDescription |
| 14 | 14 | ] |
| ... | ... | @@ -18,7 +18,7 @@ class SoftwareInfo < ActiveRecord::Base |
| 18 | 18 | search_fields = SoftwareInfo.pg_search_plugin_fields |
| 19 | 19 | |
| 20 | 20 | if query.empty? |
| 21 | - SoftwareInfo.joins(:community).where("profiles.visible = ?", true) | |
| 21 | + SoftwareInfo.joins(:software).where("profiles.visible = ?", true) | |
| 22 | 22 | else |
| 23 | 23 | searchable_software_objects = SoftwareInfo.transform_list_in_methods_list(SEARCHABLE_SOFTWARE_CLASSES) |
| 24 | 24 | includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')").where("profiles.visible = ?", true) |
| ... | ... | @@ -65,7 +65,7 @@ class SoftwareInfo < ActiveRecord::Base |
| 65 | 65 | attr_accessible :demonstration_url, :acronym, :objectives, :features, |
| 66 | 66 | :license_info |
| 67 | 67 | |
| 68 | - attr_accessible :community_id, :finality, :repository_link, :public_software, | |
| 68 | + attr_accessible :software_id, :finality, :repository_link, :public_software, | |
| 69 | 69 | :first_edit |
| 70 | 70 | |
| 71 | 71 | has_many :libraries, :dependent => :destroy |
| ... | ... | @@ -76,7 +76,7 @@ class SoftwareInfo < ActiveRecord::Base |
| 76 | 76 | has_many :programming_languages, :through => :software_languages |
| 77 | 77 | has_many :operating_system_names, :through => :operating_systems |
| 78 | 78 | |
| 79 | - belongs_to :community, :dependent => :destroy | |
| 79 | + belongs_to :software, :dependent => :destroy | |
| 80 | 80 | belongs_to :license_info |
| 81 | 81 | |
| 82 | 82 | has_one :software_categories |
| ... | ... | @@ -84,7 +84,7 @@ class SoftwareInfo < ActiveRecord::Base |
| 84 | 84 | validates_length_of :finality, :maximum => 120 |
| 85 | 85 | validates_length_of :objectives, :maximum => 4000 |
| 86 | 86 | validates_length_of :features, :maximum => 4000 |
| 87 | - validates_presence_of :finality, :community | |
| 87 | + validates_presence_of :finality, :software | |
| 88 | 88 | |
| 89 | 89 | validate :validate_acronym |
| 90 | 90 | |
| ... | ... | @@ -92,7 +92,7 @@ class SoftwareInfo < ActiveRecord::Base |
| 92 | 92 | |
| 93 | 93 | # used on find_by_contents |
| 94 | 94 | scope :like_search, lambda{ |name| |
| 95 | - joins(:community).where( | |
| 95 | + joins(:software).where( | |
| 96 | 96 | "name ILIKE ? OR acronym ILIKE ? OR finality ILIKE ?", |
| 97 | 97 | "%#{name}%", "%#{name}%", "%#{name}%" |
| 98 | 98 | ) |
| ... | ... | @@ -114,11 +114,15 @@ class SoftwareInfo < ActiveRecord::Base |
| 114 | 114 | like_sql = like_sql[0..like_sql.length-5] |
| 115 | 115 | |
| 116 | 116 | { |
| 117 | - :joins => [:community], | |
| 117 | + :joins => [:software], | |
| 118 | 118 | :conditions=>[like_sql, *values] |
| 119 | 119 | } |
| 120 | 120 | } |
| 121 | 121 | |
| 122 | + def community | |
| 123 | + return self.software | |
| 124 | + end | |
| 125 | + | |
| 122 | 126 | def license_info |
| 123 | 127 | license = LicenseInfo.find_by_id self.license_info_id |
| 124 | 128 | license_another = LicenseInfo.find_by_version("Another") |
| ... | ... | @@ -145,7 +149,7 @@ class SoftwareInfo < ActiveRecord::Base |
| 145 | 149 | end |
| 146 | 150 | |
| 147 | 151 | def validate_name_lenght |
| 148 | - if self.community.name.size > 100 | |
| 152 | + if self.software.name.size > 100 | |
| 149 | 153 | self.errors.add( |
| 150 | 154 | :base, |
| 151 | 155 | _("Name is too long (maximum is %{count} characters)") |
| ... | ... | @@ -181,21 +185,21 @@ class SoftwareInfo < ActiveRecord::Base |
| 181 | 185 | else |
| 182 | 186 | software_template = Community["software"] |
| 183 | 187 | |
| 184 | - community_hash = {:name => name} | |
| 185 | - community_hash[:identifier] = identifier | |
| 186 | - community_hash[:image_builder] = image_builder if image_builder | |
| 188 | + software_hash = {:name => name} | |
| 189 | + software_hash[:identifier] = identifier | |
| 190 | + software_hash[:image_builder] = image_builder if image_builder | |
| 187 | 191 | |
| 188 | - community = Community.new(community_hash) | |
| 189 | - community.environment = environment | |
| 192 | + software = Software.new(software_hash) | |
| 193 | + software.environment = environment | |
| 190 | 194 | |
| 191 | 195 | if (!software_template.blank? && software_template.is_template) |
| 192 | - community.template_id = software_template.id | |
| 196 | + software.template_id = software_template.id | |
| 193 | 197 | end |
| 194 | 198 | |
| 195 | - community.save! | |
| 196 | - community.add_admin(requestor) | |
| 199 | + software.save! | |
| 200 | + software.add_admin(requestor) | |
| 197 | 201 | |
| 198 | - software_info.community = community | |
| 202 | + software_info.software = software | |
| 199 | 203 | software_info.license_info = license_info |
| 200 | 204 | software_info.verify_license_info(another_license_version, another_license_link) |
| 201 | 205 | software_info.save! |
| ... | ... | @@ -247,18 +251,18 @@ class SoftwareInfo < ActiveRecord::Base |
| 247 | 251 | end |
| 248 | 252 | |
| 249 | 253 | def visible? |
| 250 | - self.community.visible? | |
| 254 | + self.software.visible? | |
| 251 | 255 | end |
| 252 | 256 | |
| 253 | 257 | def name |
| 254 | - self.community.name | |
| 258 | + self.software.name | |
| 255 | 259 | end |
| 256 | 260 | |
| 257 | 261 | def short_name |
| 258 | - self.community.short_name | |
| 262 | + self.software.short_name | |
| 259 | 263 | end |
| 260 | 264 | |
| 261 | 265 | def identifier |
| 262 | - self.community.identifier | |
| 266 | + self.software.identifier | |
| 263 | 267 | end |
| 264 | 268 | end | ... | ... |
src/noosfero-spb/software_communities/lib/software_info2.rb
0 → 100644
| ... | ... | @@ -0,0 +1,9 @@ |
| 1 | +class SispInfo < ActiveRecord::Base | |
| 2 | + | |
| 3 | + attr_accessible :agency_identification, :softawre_requirements, :hardware_requirements, :documentation, | |
| 4 | + :system_applications, :active_versions, :estimated_cost, :responsible, :sotware_identification, | |
| 5 | + :responsible_for_acquirement, :system_info, :development_info, :maintenance, :standards_adherence, :plataform | |
| 6 | + | |
| 7 | + belongs_to :sisp | |
| 8 | + | |
| 9 | +end | ... | ... |