def __call__(self): dbsession = DBSession() location = "A" location = "%s%s" % (location, self.request.matchdict.get("galaxy")) location = "%s:%s" % (location, self.request.matchdict.get("region")) bases = None params = {} if "form.base_submitted" in self.request.params or self.request.cookies.get('search','') == 'base': systems = makeLocationDict(dbsession, location, 1, 9, 7, 8, do_base=False) if self.request.cookies.get('search','') == 'base': params = self.request.cookies else: params = self.request.params bases, legenda, systems = self.processBase(dbsession,params, systems, location, 1, 9) label = '' else: systems = makeLocationDict(dbsession, location, 1, 9, 7, 8) legenda = getAgeLegenda() label = 'Avg. age' stars = ['bluegiant.jpg','blue.jpg','neutron.jpg','orange.jpg','redgiant.jpg','red.jpg','supergiant.jpg','whitedwarf.jpg','white.jpg','yellow.jpg'] returnvalue = {'base_filters': self.basefilters, 'fleet_filters': self.fleetfilters, 'location':location, 'legenda':legenda, 'params': params, 'stars':stars, 'label':label, 'systems': systems, 'bases':bases, 'datetime':datetime} returnvalue.update(self.request.matchdict) return returnvalue
def __call__(self): dbsession = DBSession() bases = dbsession.query(Base.loc_gal, func.count('*').\ label('base_count'), select(["FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(base.timestamp)))"]).label("average_age")).\ group_by(Base.loc_gal) astros = dbsession.query(Location.loc_gal,func.count(Location.location).label('astro_count')) astros = astros.group_by(Location.loc_gal) galaxies = {} for row in range(0,80): galaxies["A%s"%twodigitNumbers(row)] = {} for astro_location,astro_count in astros: row = astro_location galaxy_info = galaxies[row] galaxy_info['astro_count'] = astro_count galaxy_info['base_count'] = 0 galaxy_info['base_age'] = -1 for base_location, base_count, base_age in bases: row = base_location if row: galaxy_info = galaxies[row] galaxy_info['base_count'] = base_count galaxy_info['base_age'] = getAgeColorTimedelta(datetime.now() - base_age) galaxies[row] = galaxy_info legenda = getAgeLegenda() return {'galaxies':galaxies, 'legenda':legenda, 'datetime':datetime}
def __call__(self): dbsession = DBSession() returnvalue = {'location':None} location = "A" location = "%s%s" % (location, self.request.matchdict.get("galaxy")) regions = {} legenda = None bases = None params = {} base_search = False fleet_search = False if "form.base_submitted" in self.request.params: base_search = True params = self.request.params elif "form.fleet_submitted" in self.request.params: fleet_search = True params = self.request.params elif self.request.cookies.get('search','') == 'base': base_search = True params = self.request.cookies elif self.request.cookies.get('search','') == 'fleet': fleet_search = True params = self.request.cookies # .outerjoin(Base).filter(Location.location.like("%s%%"%location)) if base_search: regions = makeLocationDict(dbsession, location, 1, 6, 4, 5, do_base=False) bases, legenda, regions = self.processBase(dbsession, params, regions, location, 1, 6) label = '' cookie_key = ['owner','occupier','jumpgate','agevalue', 'maxagefield'] cookie_set= False if "form.base_submitted" in self.request.params: for key in cookie_key: if self.request.params.get(key,''): cookie_set = True self.request.response.set_cookie(key, self.request.params.get(key), max_age=timedelta(days=1), path='/') else: self.request.response.delete_cookie(key) if cookie_set: self.request.response.set_cookie('search', 'base', max_age=timedelta(days=1), path='/') elif fleet_search: fleets = dbsession.query(func.substring(Fleet.location,1,6).label('location'),\ func.count('*').label('fleet_count'), \ func.sum(Fleet.size).label("fleet_sum"), \ select(["FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(fleet.timestamp)))"]).label("average_age")).\ group_by(func.substring(Fleet.location,1,6)).filter(Fleet.location.like("%s%%"%location)) fleets = performFleetFilter(fleets, self.request.params) regions = makeLocationDict(dbsession, location, 1, 6, 4, 5, do_base=False) cookie_key = ['owner','size','flying','agevalue', 'maxagefield'] cookie_set= False if "form.fleet_submitted" in self.request.params: for key in cookie_key: if self.request.params.get(key,''): cookie_set = True self.request.response.set_cookie(key, self.request.params.get(key), max_age=timedelta(days=1), path='/') else: self.request.response.delete_cookie(key) if cookie_set: self.request.response.set_cookie('search', 'fleet', max_age=timedelta(days=1), path='/') min_count = 1 max_count = 1000000 for fleet_location, fleet_count, fleet_sum, fleet_age in fleets: fleet_sum = fleet_sum / 1000 row = int(fleet_location[4]) col = int(fleet_location[5]) location_info = regions[row][col] location_info['fleet_count'] = fleet_count location_info['fleet_sum'] = fleet_sum # if fleet_sum > max_count: # max_count = fleet_sum # if fleet_sum < min_count or min_count == None: # min_count = fleet_sum # location_info['base_age'] = getCountColor(base_count) regions[row][col] = location_info legenda = getCountLegenda(min=min_count,max=max_count, single='fleet', plural='fleets') for fleet_location, fleet_count, fleet_sum, fleet_age in fleets: row = int(fleet_location[4]) col = int(fleet_location[5]) location_info = regions[row][col] location_info['base_age'] = getCountColor(math.trunc(fleet_sum), min=min_count,max=max_count, single='fleet', plural='fleets') label = 'Fleet sum:' else: regions = makeLocationDict(dbsession, location, 1, 6, 4, 5) label = 'Avg. age' legenda = getAgeLegenda() returnvalue = {'base_filters': self.basefilters, 'fleet_filters': self.fleetfilters, 'label': label, 'params': params, 'bases':bases, 'location':location, 'regions': regions, 'legenda': legenda, 'datetime':datetime} returnvalue.update(self.request.matchdict) return returnvalue