Commit 7ecb0945580f9e4a9c374629cf62a8dc4eddf720

Authored by Marcos Pereira
1 parent 3ab32308

Generalize SoftwareInfo and add sisp software

Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
Signed-off-by: Gustavo Coelho <gust.rod.coelho@gmail.com>
Signed-off-by: Marcos Ronaldo <marcos.rpj2@gmail.com>
src/noosfero-spb/software_communities/db/migrate/20151125175514_create_sisp_info.rb 0 → 100644
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +class CreateSispInfo < ActiveRecord::Migration
  2 + def up
  3 + create_table :sisp_infos do |t|
  4 + t.integer :sisp_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 :sisp_infos
  25 + end
  26 +end
src/noosfero-spb/software_communities/db/migrate/20151125191157_update_software_info.rb 0 → 100644
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 +class UpdateSoftwareInfo < ActiveRecord::Migration
  2 + def up
  3 + rename_table :software_infos, :softwares
  4 + add_column :softwares, :name , :string
  5 + add_column :softwares, :identifier , :string
  6 + add_column :softwares, :type , :string, :default => 'SoftwareInfo'
  7 + end
  8 +
  9 + def down
  10 + remove_column :softwares, :name
  11 + remove_column :softwares, :identifier
  12 + remove_column :softwares, :type
  13 + rename_table :softwares, :software_infos
  14 + end
  15 +end
src/noosfero-spb/software_communities/lib/sisp.rb 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +class Sisp < Software
  2 + has_one :sisp_info
  3 + validates_presence_of :sisp_info
  4 + attr_accessible :sisp_info
  5 + after_save { sisp_info.save! }
  6 +end
src/noosfero-spb/software_communities/lib/sisp_info.rb 0 → 100644
@@ -0,0 +1,9 @@ @@ -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
src/noosfero-spb/software_communities/lib/software.rb 0 → 100644
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +class Software < ActiveRecord::Base
  2 +
  3 + attr_accessible :acronym, :objectives, :features, :finality, :name, :identifier
  4 +
  5 + has_one :software_categories
  6 +
  7 + validates_length_of :finality, :maximum => 120
  8 + validates_length_of :objectives, :maximum => 4000
  9 + validates_length_of :features, :maximum => 4000
  10 +
  11 + validate :validate_acronym
  12 + validates_presence_of :finality
  13 +
  14 + def validate_acronym
  15 + self.acronym = "" if self.acronym.nil?
  16 + if self.acronym.length > 10 && self.errors.messages[:acronym].nil?
  17 + self.errors.add(:acronym, _("can't have more than 10 characteres"))
  18 + false
  19 + elsif self.acronym.match(/\s+/)
  20 + self.errors.add(:acronym, _("can't have whitespaces"))
  21 + false
  22 + end
  23 + true
  24 + end
  25 +
  26 +end
src/noosfero-spb/software_communities/lib/software_info.rb
1 -class SoftwareInfo < ActiveRecord::Base 1 +class SoftwareInfo < Software
2 acts_as_having_settings :field => :settings 2 acts_as_having_settings :field => :settings
3 3
4 SEARCHABLE_SOFTWARE_FIELDS = { 4 SEARCHABLE_SOFTWARE_FIELDS = {
@@ -62,10 +62,9 @@ class SoftwareInfo &lt; ActiveRecord::Base @@ -62,10 +62,9 @@ class SoftwareInfo &lt; ActiveRecord::Base
62 attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, 62 attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq,
63 :operating_platform 63 :operating_platform
64 64
65 - attr_accessible :demonstration_url, :acronym, :objectives, :features,  
66 - :license_info 65 + attr_accessible :demonstration_url, :license_info
67 66
68 - attr_accessible :community_id, :finality, :repository_link, :public_software, 67 + attr_accessible :community_id, :repository_link, :public_software,
69 :first_edit 68 :first_edit
70 69
71 has_many :libraries, :dependent => :destroy 70 has_many :libraries, :dependent => :destroy
@@ -79,14 +78,8 @@ class SoftwareInfo &lt; ActiveRecord::Base @@ -79,14 +78,8 @@ class SoftwareInfo &lt; ActiveRecord::Base
79 belongs_to :community, :dependent => :destroy 78 belongs_to :community, :dependent => :destroy
80 belongs_to :license_info 79 belongs_to :license_info
81 80
82 - has_one :software_categories  
83 - 81 + validates_presence_of :community
84 validates_length_of :finality, :maximum => 120 82 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 83
91 settings_items :another_license_version, :another_license_link 84 settings_items :another_license_version, :another_license_link
92 85
@@ -215,19 +208,6 @@ class SoftwareInfo &lt; ActiveRecord::Base @@ -215,19 +208,6 @@ class SoftwareInfo &lt; ActiveRecord::Base
215 end 208 end
216 end 209 end
217 210
218 -  
219 - def validate_acronym  
220 - self.acronym = "" if self.acronym.nil?  
221 - if self.acronym.length > 10 && self.errors.messages[:acronym].nil?  
222 - self.errors.add(:acronym, _("can't have more than 10 characteres"))  
223 - false  
224 - elsif self.acronym.match(/\s+/)  
225 - self.errors.add(:acronym, _("can't have whitespaces"))  
226 - false  
227 - end  
228 - true  
229 - end  
230 -  
231 def valid_operating_systems 211 def valid_operating_systems
232 if self.operating_systems.empty? 212 if self.operating_systems.empty?
233 self.errors.add(:operating_system, _(": at least one must be filled")) 213 self.errors.add(:operating_system, _(": at least one must be filled"))