123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- module FillDB
- def self.load( agents, customers, groups, organizations, tickets )
- puts "load db with:"
- puts " agents:#{agents}"
- puts " customers:#{customers}"
- puts " groups:#{groups}"
- puts " organizations:#{organizations}"
- puts " tickets:#{tickets}"
- # set current user
- UserInfo.current_user_id = 1
- # organizations
- organization_pool = []
- if organizations && !organizations.zero?
- (1..organizations).each {|count|
- organization = Organization.create( :name => 'FillOrganization::' + rand(999999).to_s, :active => true )
- organization_pool.push organization
- }
- else
- organization_pool = Organization.where(:active => true)
- end
- # create agents
- agent_pool = []
- if agents && !agents.zero?
- roles = Role.where( :name => [ 'Agent'] )
- groups_all = Group.all
- (1..agents).each {|count|
- suffix = rand(99999).to_s
- user = User.create_or_update(
- :login => "filldb-agent-#{suffix}",
- :firstname => "agent #{suffix}",
- :lastname => "agent #{suffix}",
- :email => "filldb-agent-#{suffix}@example.com",
- :password => 'agentpw',
- :active => true,
- :roles => roles,
- :groups => groups_all,
- )
- agent_pool.push user
- }
- else
- agent_pool = Role.where(:name => 'Agent').first.users.where(:active => true)
- puts " take #{agent_pool.length} agents"
- end
- # create customer
- customer_pool = []
- if customers && !customers.zero?
- roles = Role.where( :name => [ 'Customer'] )
- groups_all = Group.all
- (1..customers).each {|count|
- suffix = rand(99999).to_s
- organization = nil
- if !organization_pool.empty? && rand(2) == 1
- organization = organization_pool[ organization_pool.length-1 ]
- end
- user = User.create_or_update(
- :login => "filldb-customer-#{suffix}",
- :firstname => "customer #{suffix}",
- :lastname => "customer #{suffix}",
- :email => "filldb-customer-#{suffix}@example.com",
- :password => 'customerpw',
- :active => true,
- :organization => organization,
- :roles => roles,
- )
- customer_pool.push user
- }
- else
- customer_pool = Role.where(:name => 'Customer').first.users.where(:active => true)
- end
- # create groups
- group_pool = []
- if groups && !groups.zero?
- puts "1..#{groups}"
- (1..groups).each {|count|
- group = Group.create( :name => 'FillGroup::' + rand(999999).to_s, :active => true )
- group_pool.push group
- Role.where(:name => 'Agent').first.users.where(:active => true).each {|user|
- user_groups = user.groups
- user_groups.push group
- user.groups = user_groups
- user.save
- }
- }
- else
- group_pool = Group.where(:active => true)
- end
- # create tickets
- priority_pool = Ticket::Priority.all
- state_pool = Ticket::State.all
- if tickets && !tickets.zero?
- (1..tickets).each {|count|
- customer = customer_pool[ rand(customer_pool.length-1) ]
- agent = agent_pool[ rand(agent_pool.length-1) ]
- ticket = Ticket.create(
- :title => 'some title äöüß' + rand(999999).to_s,
- :group => group_pool[ rand(group_pool.length-1) ],
- :customer => customer,
- :owner => agent,
- :state => state_pool[ rand(state_pool.length-1) ],
- :priority => priority_pool[ rand(priority_pool.length-1) ],
- :updated_by_id => agent.id,
- :created_by_id => agent.id,
- )
- # create article
- article = Ticket::Article.create(
- :ticket_id => ticket.id,
- :from => customer.email,
- :to => 'some_recipient@example.com',
- :subject => 'some subject' + rand(999999).to_s,
- :message_id => 'some@id-' + rand(999999).to_s,
- :body => 'some message ...',
- :internal => false,
- :sender => Ticket::Article::Sender.where(:name => 'Customer').first,
- :type => Ticket::Article::Type.where(:name => 'phone').first,
- :updated_by_id => agent.id,
- :created_by_id => agent.id,
- )
- }
- end
- end
- end
|