def handle(self, *args, **options): total = options['total'] username = options['agent'] farmer = options['farmer'] if farmer: msisdns = [int(farmer)] else: msisdns = [2776123456 + i for i in range(total)] if username: actor = Actor.objects.get(user__username=username) agent = actor.as_agent() self.generate_farmers(msisdns, agent) else: # create the agent with msisdn offset of the total generated to # avoid collissions on usernames agent_msisdn = 2776123456 + total + 1 agent = utils.create_agent(msisdn=str(agent_msisdn), name=utils.random_name(), surname=utils.random_surname()) self.generate_farmers(msisdns, agent)
def generate_farmers(self, msisdns, agent): for msisdn in msisdns: # create a district district = utils.random_district() farmergroup_name = "%s Farmer Group" % (district.name,) # create the farmer farmer = utils.create_farmer(msisdn=str(msisdn), name=utils.random_name(), surname=utils.random_surname(), ) # cultivates two types of crops farmer.grows_crop(utils.random_crop()) farmer.grows_crop(utils.random_crop()) # create a market in the district market_name = '%s Market' % district.name market = utils.create_market(market_name, district) # have the farmer sells crops at that market through the agent farmer.operates_at(market, agent)