Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
    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
Beispiel #4
0
    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