anhetegua 9.34 KB
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
require 'console_with_helpers'

GetText.locale = 'pt_BR'

User.destroy_all
Profile.destroy_all

Category.destroy_all
Product.destroy_all
Article.destroy_all
Environment.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), :display_in_menu => true)
  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), :display_in_menu => true)
  region.save!
  region
end

def new_state(parent, name)
  State.create!(:name => name, :parent => parent, :environment => Environment.default)
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 Sistema FBES:
A Comunidade virtual das Redes de Economia Solidária!
</h1>

<img src='/images/logo-anhetegua.png' style='float: right'/>

<p>
O Sistema FBES é 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 => 'Sistema FBES', :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, 'Formação')
new_category(tematicas, 'Produção, comercialização e consumo')
new_category(tematicas, 'Relações internacionais')
new_category(tematicas, 'Marco Legal')
new_category(tematicas, 'Finanças Solidárias')
new_category(tematicas, 'Comunicação')
new_category(tematicas, 'Políticas públicas')
new_category(tematicas, 'Organização do movimento')
new_category(tematicas, 'Software, cultura e conhecimentos livres')
new_category(tematicas, 'Agroecologia')
new_category(tematicas, 'Pesquisa e tecnologia')
new_category(tematicas, 'Comércio justo e solidário')
new_category(tematicas, 'Cultura')

territorios = new_region(nil, 'Territórios', 2)
nacional = new_region(territorios, 'Nacional')
internacional = new_region(territorios, 'Internacional')
centro_oeste = new_region(nacional, 'Região Centro-Oeste')
mt = new_state(centro_oeste, 'Mato Grosso')
ms = new_state(centro_oeste, 'Mato Grosso do Sul')
go = new_state(centro_oeste, 'Goiás')
df = new_state(centro_oeste, 'Distrito Federal')
nordeste = new_region(nacional, 'Região Nordeste')
al = new_state(nordeste, 'Alagoas')
ba = new_state(nordeste, 'Bahia')
ce = new_state(nordeste, 'Ceará')
ma = new_state(nordeste, 'Maranhão')
pb = new_state(nordeste, 'Paraíba')
pe = new_state(nordeste, 'Pernambuco')
pi = new_state(nordeste, 'Piauí')
rn = new_state(nordeste, 'Rio Grande do Norte')
se = new_state(nordeste, 'Sergipe')
norte = new_region(nacional, 'Região Norte')
ac = new_state(norte, 'Acre')
ap = new_state(norte, 'Amapá')
am = new_state(norte, 'Amazonas')
pa = new_state(norte, 'Pará')
ro = new_state(norte, 'Rondônia')
rr = new_state(norte, 'Roraima')
to = new_state(norte, 'Tocantins')
sudeste = new_region(nacional, 'Região Sudeste')
mg = new_state(sudeste, 'Minas Gerais')
sp = new_state(sudeste, 'São Paulo')
rj = new_state(sudeste, 'Rio de Janeiro')
es = new_state(sudeste, 'Espírito Santo')
sul = new_region(nacional, 'Região Sul')
pr = new_state(sul, 'Paraná')
rs = new_state(sul, 'Rio Grande do Sul')
sc = new_state(sul, 'Santa Catarina')

cadeias = new_category(nil, 'Redes/Cadeias', 3)
new_category(cadeias, 'Agropecuária, extrativismo e pesca')
new_category(cadeias, 'Alimentação')
new_category(cadeias, 'Artesanato')
new_category(cadeias, 'Indústria')
new_category(cadeias, 'Confecção, fiação e tecelagem')
new_category(cadeias, 'Reciclagem')
new_category(cadeias, 'Turismo')
new_category(cadeias, 'Construção')
new_category(cadeias, 'Crédito e finanças')
new_category(cadeias, 'Saúde')
new_category(cadeias, 'Educação e formação')
new_category(cadeias, 'Limpeza e higiene')
new_category(cadeias, 'Cultura')
new_category(cadeias, 'Cadeia do mel')
new_category(cadeias, 'Cadeia do algodão agroecológico')
new_category(cadeias, 'Cadeia das sementes')
new_category(cadeias, 'Cadeia da fruta')

# 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(Environment.default.id)

# Sample user and sample enterprise owned by him
ze = User.create!(:login => 'ze', :email => 'ze@localhost.localdomain', :password => 'test', :password_confirmation => 'test').person

Environment.default.affiliate(ze, Environment::Roles.admin(Environment.default.id))
empa = Enterprise.create!(:name => 'Cooperativa A', :identifier => 'coop_a')

empa.affiliate(ze, owner_role)
colivre.affiliate(ze, owner_role)

member_role = Profile::Roles.member(Environment.default.id)
moderator_role = Profile::Roles.moderator(Environment.default.id)

# product categories
produtos = ProductCategory.create!(:name => 'Produtos', :environment => Environment.default)

alimentacao = ProductCategory.create!(:name => 'Alimentação', :environment => Environment.default, :parent => produtos)
vegetais = ProductCategory.create!(:name => 'Vegetais', :environment => Environment.default, :parent => alimentacao)

feijao = ProductCategory.create!(:name => 'Feijão', :environment => Environment.default, :parent => vegetais)

arroz = ProductCategory.create!(:name => 'Arroz', :environment => Environment.default, :parent => vegetais)

batata = ProductCategory.create!(:name => 'Batata', :environment => Environment.default, :parent => vegetais)

carnes = ProductCategory.create!(:name => 'Carnes', :environment => Environment.default, :parent => alimentacao)

boi = ProductCategory.create!(:name => 'Boi', :environment => Environment.default, :parent => carnes)

frango = ProductCategory.create!(:name => 'Frango', :environment => Environment.default, :parent => carnes)

vestuario = ProductCategory.create!(:name => 'Vestuário', :environment => Environment.default, :parent => produtos)

camisetas = ProductCategory.create!(:name => 'Camisetas', :environment => Environment.default, :parent => vestuario)

calcas = ProductCategory.create!(:name => 'Calças', :environment => Environment.default, :parent => vestuario)

software_livre = ProductCategory.create!(:name => 'Software Livre', :environment => Environment.default, :parent => produtos)

desenv = ProductCategory.create!(:name => 'Desenvolvimento', :environment => Environment.default, :parent => software_livre)
capacitacao = ProductCategory.create!(:name => 'Capacitação', :environment => Environment.default, :parent => software_livre)
admin_de_sistemas = ProductCategory.create!(:name => 'Administração de sistemas', :environment => Environment.default, :parent => software_livre)
arte_digital = ProductCategory.create!(:name => 'Arte Digital', :environment => Environment.default, :parent => software_livre)


# 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!

# 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)