anhetegua
5.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
GetText.locale = 'pt_BR'
Environment.destroy_all
User.destroy_all
Profile.destroy_all
Role.destroy_all
RoleAssignment.destroy_all
Category.destroy_all
Article.destroy_all
def new_category(parent, name, color = nil)
category = Environment.default.categories.build(:name => name, :display_color => color, :parent_id => (parent ? parent.id: nil))
category.save!
category
end
def new_region(parent, name, color = nil)
region = Environment.default.regions.build(:name => name, :display_color => color, :parent_id => (parent ? parent.id: nil))
region.save!
region
end
def new_validator(region, name, identifier, klass = Organization)
org = klass.new(:name => name, :identifier => identifier)
org.validation_info = ValidationInfo.new(:validation_methodology => 'some methodology we don\'t care about')
org.save!
region.validators << org
region.save!
org
end
environment_description = <<-EOF
<h1>
Boas vindas ao Anheteguá:
A Comunidade virtual das Redes de Economia Solidária!
</h1>
<img src='/images/logo-anhetegua.png' style='float: right'/>
<p>
O Anheteguá é uma plataforma livre e colaborativa que visa contribuir para o fortalecimento das redes de economia solidária em todo o Brasil, facilitando os fluxos de produção, comercialização, troca e consumo solidários. Cadastre-se, divirta-se e navegue nessa outra economia!
</p>
<p>
O menu superior é o principal instrumento de navegação:
</p>
<ul>
<li>Do lado esquerdo, estão os recortes. <strong>Temáticas</strong> reune os principais temas debatidos. <strong>Territórios</strong> limita sua navegação a um estado de sua escolha. <strong>Cadeias</strong> exibe apenas informação relacionada à cadeia produtiva de sua preferência. </li>
<li>Do lado direito, estão as opções do usuário, bem como a nevegação por tipo de conteúdo. <strong>Busca</strong> permite que você procure conteúdo por palavras chave. <strong>Blogs</strong> te levará a ver blogs de outros usuário. <strong>Produtos</strong> permitirá nevegar pelos produtos ... etc. </li>
</ul>
EOF
env = Environment.create!(:name => 'Anheteguá', :is_default => true, :description => environment_description)
# on production (i.e. anhetegua demo site, use a real domain)
if ENV['RAILS_ENV'] == 'production'
domain = Domain.new(:name => 'ecosol.noosfero.com.br')
domain.owner = env
domain.save!
end
tematicas = new_category(nil, 'Temáticas', 1)
new_category(tematicas, 'Finanças Solidárias')
new_category(tematicas, 'Marco Legal')
new_category(tematicas, 'Software Livre')
territorios = new_region(nil, 'Territórios', 2)
ba = new_region(territorios, 'Bahia')
df = new_region(territorios, 'Distrito Federal')
rs = new_region(territorios, 'Rio Grande do Sul')
cadeias = new_category(nil, 'Cadeias', 3)
new_category(cadeias, 'Algodão')
new_category(cadeias, 'Tecnologia de Informação')
# validators
colivre = new_validator(ba, "Colivre", 'colivre', Enterprise)
#forum_bahia = new_validator(ba, "Forum Baiano de Economia Solidaraia", 'ecosolbahia')
#
#caritas = new_validator(df, 'Caritas', 'caritas')
#fbes = new_validator(df, 'Forum Brasileiro de Economia Solidaria', 'fbes')
#
#asl = new_validator(rs, 'Associacao Software Livre.Org', 'asl')
#forum_rs = new_validator(rs, 'Forum Gaucho de Economia Solidaria', 'ecosolrs')
# Role for own things
owner_role = Profile::Roles.admin
# root user of the system, admin_role for him, the assignment of the role for him and the ownership of the system homepage
root = User.create!(:login => 'root', :email => 'root@noosfero.org', :password => 'root', :password_confirmation => 'root').person
admin_role = Environment::Roles.admin
RoleAssignment.create!(:accessor => root, :role => admin_role, :resource => Environment.default)
# Sample user and sample enterprise owned by him
ze = User.create!(:login => 'ze', :email => 'ze@localhost.localdomain', :password => 'test', :password_confirmation => 'test').person
empa = Enterprise.create!(:name => 'Cooperativa A', :identifier => 'coop_a')
empa.affiliate(ze, owner_role)
colivre.affiliate(ze, owner_role)
member_role = Profile::Roles.member
moderator_role = Profile::Roles.moderator
# actual products
empa.products.build(:name => 'Feijão Mulatinho da Bahia', :product_category => feijao).save!
empa.products.build(:name => 'Arroz plantado lá em casa', :product_category => arroz).save!
empa.products.build(:name => 'Carne da vaca mimosa', :product_category => boi).save!
colivre.products.build(:name => 'desenvolvimento de software livre', :product_category => desenv).save!
colivre.products.build(:name => 'capacitação em software livre', :product_category => capacitacao).save!
colivre.products.build(:name => 'arte digital', :product_category => arte_digital).save!
colivre.products.build(:name => 'instalação e manutenção de servidores', :product_category => admin_de_sistemas).save!
colivre_hp = TinyMceArticle.new(:name => 'Colivre - Cooperativa de Tecnologias Livres', :body => '<p>A Colivre, Cooperativa de Tecnologias Livres, é uma organização baiana que presta serviços de instalação de redes, segurança, capacitação, migração e desenvolvimento de novas soluções, trabalhando exclusivamente com Tecnologias Livres. Para tanto, contamos com uma equipe formada por desenvolvedores/as de software, webdesigners e gestoras/es com vasta experiência na área.</p>', :tag_list => 'software livre, colivre, cooperativa' )
colivre_hp.profile = colivre
colivre_hp.save!
colivre.home_page = colivre_hp
colivre.save!
empa_hp = TinyMceArticle.new(:name => 'Empreendimento A - um empreendimento genérico', :body => '<p>Esse é um empreendimento cadastrado como exemplo no sitema</p>', :tag_list => 'cooperativa, teste')
empa_hp.profile = empa
empa.home_page = empa_hp
empa.save!
# creating sample communities
comm1 = Community.create!(:name => 'Outra Economia é Possível')
comm1.affiliate(ze, owner_role)
comm2 = Community.create!(:name => 'Software Livre e Economia Solidária')
comm2.affiliate(ze, owner_role)