def test_by_country(self): from pyvac.models import User country_id = 1 users = User.by_country(self.session, country_id) self.assertEqual(len(users), 5) country_id = 3 users = User.by_country(self.session, country_id) self.assertEqual(len(users), 1)
def render(self): if self.user and not self.user.is_admin: return HTTPFound(location=route_url('home', self.request)) country = Countries.by_name(self.session, self.user.country) users = User.by_country(self.session, country.id) today = datetime.now() data = [] rtt_usage = {} cp_usage = {} for user in users: if self.user.country == 'fr': rtts = user.get_rtt_usage(self.session) if rtts: rtt_usage[user.login] = rtts['left'] cps = user.get_cp_usage(self.session, today=today, taken_end=today) total = 0 if cps: total = cps['restant']['left'] + cps['acquis']['left'] if self.user.country == 'fr': total = total + cps['n_1']['left'] + cps.get( 'extra', {}).get('left', 0) # noqa cp_usage[user.login] = total if self.user.country == 'fr': if user.login not in self.ignore_users: data.append('%s,%s,%s,%s' % ( user.login, rtt_usage.get(user.login, 0), cps.get('extra', {}).get('left', 0) if cps else 0, # noqa cps['restant']['left'] if cps else 0, )) if data: # sort list by name data = sorted(data) header = ('%s,%s,%s,%s' % ('Login', 'RTT', 'CP N-1', 'CP N')) data.insert(0, header) ret = { u'user_count': User.find(self.session, count=True), u'users': users, u'today': today, u'cp_usage': cp_usage, u'exported': '\n'.join(data) } if self.user.country == 'fr': ret['rtt_usage'] = rtt_usage return ret
def render(self): if self.user and not self.user.is_admin: return HTTPFound(location=route_url('home', self.request)) country = Countries.by_name(self.session, self.user.country) users = User.by_country(self.session, country.id) today = datetime.now() data = [] rtt_usage = {} cp_usage = {} for user in users: if user.login in self.ignore_users: continue usage = dict([(k, v.amount) for k, v in user.pool.items()]) rtt_usage[user.login] = usage.get('RTT', 0) cp_total = usage.get('CP acquis', 0) + usage.get('CP restant', 0) cp_usage[user.login] = cp_total if user.login not in self.ignore_users: data.append('%s,%s,%s' % ( user.login, rtt_usage[user.login], cp_usage[user.login], )) if data: # sort list by name data = sorted(data) header = ('%s,%s,%s' % ('Login', 'RTT', 'CP')) data.insert(0, header) ret = { u'user_count': User.find(self.session, count=True), u'users': users, u'today': today, u'cp_usage': cp_usage, u'exported': '\n'.join(data) } if self.user.country == 'fr': ret['rtt_usage'] = rtt_usage return ret