Commit 19a6208cff22262e9a8d770e08629b1f429ebb73
1 parent
525bb1ef
Exists in
sisp_simple_version
update migrations and create import_sisp script
Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com> Signed-off-by: Luciano Prestes <lucanopcbr@gmail.com> Signed-off-by: Marcos Ronaldo <marcos.rpj2@gmail.com>
Showing
3 changed files
with
117 additions
and
16 deletions
Show diff stats
... | ... | @@ -0,0 +1,95 @@ |
1 | +#!/usr/bin/env ruby | |
2 | +# encoding: UTF-8 | |
3 | + | |
4 | +require_relative '../config/environment' | |
5 | +include Noosfero::SampleDataHelper | |
6 | + | |
7 | +$imported_data = YAML.load_file('script/sisp-catalogo.yml') | |
8 | + | |
9 | +def create_community name | |
10 | + community = Community.new | |
11 | + community.name = name | |
12 | + community.identifier = "sisp-#{name.to_slug}" | |
13 | + community | |
14 | +end | |
15 | + | |
16 | +def create_software_info name, finality = "blank", acronym = "" | |
17 | + community = create_community(name) | |
18 | + software_info = SoftwareInfo.new | |
19 | + software_info.community = community | |
20 | + software_info.finality = finality | |
21 | + software_info.acronym = acronym | |
22 | + software_info.public_software = true | |
23 | + | |
24 | + software_info | |
25 | +end | |
26 | + | |
27 | +def set_software_category software, category_name | |
28 | + category = Category.find_by_name(category_name) | |
29 | + category ||= Category.create(:name => category_name, :parent => $software_category, :environment => $env) | |
30 | + software.community.categories << category | |
31 | +end | |
32 | + | |
33 | +def set_sisp_hashes software, sisp_hash | |
34 | + software.sisp_type = sisp_hash['3 - Identificação do software']['Tipo de Software'] | |
35 | + software.agency_identification = sisp_hash['1 - Identificação do órgão'] | |
36 | + software.softawre_requirements = sisp_hash['10 - Requisitos de software'] | |
37 | + software.hardware_requirements = sisp_hash['11 - Requisitos de Hardware'] | |
38 | + software.documentation = sisp_hash['12 - Documentação'] | |
39 | + software.system_applications = sisp_hash['13 - Aplicações do sistema'] | |
40 | + software.active_versions = sisp_hash['15 - Versões em uso'] | |
41 | + software.estimated_cost = sisp_hash['16 - Custo Estimado'] | |
42 | + software.responsible = sisp_hash['2 - Identificação do responsável no órgão para contato posterior'] | |
43 | + software.responsible_for_acquirement = sisp_hash['4 - Responsáveis pelo Desenvolvimento/Aquisição'] | |
44 | + software.system_info = sisp_hash['5 - Sistema'] | |
45 | + software.development_info = sisp_hash['6 - Características do Desenvolvimento'] | |
46 | + software.maintenance = sisp_hash['7 - Manutenção do Sistema'] | |
47 | + software.standards_adherence = sisp_hash['8 - Aderência a padrões'] | |
48 | + software.plataform = sisp_hash['9 - Ambiente / Plataforma'] | |
49 | +end | |
50 | + | |
51 | +def create_software_attrs sisp_hash | |
52 | + name = sisp_hash['3 - Identificação do software']['Nome'] | |
53 | + identifier = "sisp-#{name.to_slug}" | |
54 | + software = Community.find_by_identifier(identifier) | |
55 | + software = software.software_info if software | |
56 | + software ||= create_software_info(name) | |
57 | + | |
58 | + set_software_category software, sisp_hash['3 - Identificação do software']['Subtipo'] | |
59 | + software.features = sisp_hash['5 - Sistema']['Principais funcionalidades'] | |
60 | + software.finality = sisp_hash['5 - Sistema']['Objetivos do sistema'] | |
61 | + software.objectives = sisp_hash['5 - Sistema']['Objetivos do sistema'] | |
62 | + software.acronym = sisp_hash['3 - Identificação do software']['Sigla'].split[0] | |
63 | + software | |
64 | +end | |
65 | + | |
66 | +$env = Environment.default | |
67 | + | |
68 | +$software_category = Category.find_by_name("Software") | |
69 | +$software_category ||= Category.create(:name => "Software", :environment => $env) | |
70 | + | |
71 | +print 'Creating SISP Softwares: ' | |
72 | +$imported_data.keys.each do |key| | |
73 | + | |
74 | + sisp = $imported_data[key]['software_info'] | |
75 | + | |
76 | + sw = create_software_attrs sisp | |
77 | + | |
78 | + sw.sisp_url = $imported_data[key]['url'] | |
79 | + sw.sisp = true | |
80 | + sw.sisp_id = key.to_i | |
81 | + | |
82 | + set_sisp_hashes sw, sisp | |
83 | + | |
84 | + if sw.valid? && sw.community.valid? | |
85 | + sw.community.save | |
86 | + sw.save | |
87 | + print '.' | |
88 | + else | |
89 | + p sw.errors.full_messages | |
90 | + print 'F' | |
91 | + end | |
92 | +end | |
93 | + | |
94 | +puts "\n Done" | |
95 | + | ... | ... |
src/noosfero-spb/software_communities/db/migrate/20151125175514_change_software_info_structure.rb
1 | 1 | class ChangeSoftwareInfoStructure < ActiveRecord::Migration |
2 | 2 | def up |
3 | 3 | change_table :software_infos do |t| |
4 | + t.text :sisp_url | |
4 | 5 | t.text :agency_identification |
5 | 6 | t.text :softawre_requirements |
6 | 7 | t.text :hardware_requirements |
... | ... | @@ -16,24 +17,29 @@ class ChangeSoftwareInfoStructure < ActiveRecord::Migration |
16 | 17 | t.text :standards_adherence |
17 | 18 | t.text :plataform |
18 | 19 | t.text :sisp_type |
20 | + t.integer :sisp_id | |
19 | 21 | end |
22 | + | |
23 | + change_column :software_infos, :finality, :text | |
20 | 24 | end |
21 | 25 | |
22 | 26 | def down |
23 | - remove_column :agency_identification | |
24 | - remove_column :softawre_requirements | |
25 | - remove_column :hardware_requirements | |
26 | - remove_column :documentation | |
27 | - remove_column :system_applications | |
28 | - remove_column :active_versions | |
29 | - remove_column :estimated_cost | |
30 | - remove_column :responsible | |
31 | - remove_column :responsible_for_acquirement | |
32 | - remove_column :system_info | |
33 | - remove_column :development_info | |
34 | - remove_column :maintenance | |
35 | - remove_column :standards_adherence | |
36 | - remove_column :plataform | |
37 | - remove_column :sisp_type | |
27 | + remove_column :software_infos, :agency_identification | |
28 | + remove_column :software_infos, :softawre_requirements | |
29 | + remove_column :software_infos, :hardware_requirements | |
30 | + remove_column :software_infos, :documentation | |
31 | + remove_column :software_infos, :system_applications | |
32 | + remove_column :software_infos, :active_versions | |
33 | + remove_column :software_infos, :estimated_cost | |
34 | + remove_column :software_infos, :responsible | |
35 | + remove_column :software_infos, :responsible_for_acquirement | |
36 | + remove_column :software_infos, :system_info | |
37 | + remove_column :software_infos, :development_info | |
38 | + remove_column :software_infos, :maintenance | |
39 | + remove_column :software_infos, :standards_adherence | |
40 | + remove_column :software_infos, :plataform | |
41 | + remove_column :software_infos, :sisp_type | |
42 | + remove_column :software_infos, :sisp_id | |
43 | + remove_column :software_infos, :sisp_url | |
38 | 44 | end |
39 | 45 | end | ... | ... |
src/noosfero-spb/software_communities/lib/software_info.rb
... | ... | @@ -81,7 +81,7 @@ class SoftwareInfo < ActiveRecord::Base |
81 | 81 | |
82 | 82 | has_one :software_categories |
83 | 83 | |
84 | - validates_length_of :finality, :maximum => 120 | |
84 | + validates_length_of :finality, :maximum => 4000 | |
85 | 85 | validates_length_of :objectives, :maximum => 4000 |
86 | 86 | validates_length_of :features, :maximum => 4000 |
87 | 87 | validates_presence_of :finality, :community | ... | ... |