Beispiel #1
0
    def render(self):
        user = User.by_id(self.session,
                          int(self.request.matchdict['user_id']))

        if self.user.has_no_role:
            # can only see own requests
            if user.id != self.user.id:
                return HTTPFound(location=route_url('list_request',
                                                    self.request))

        if self.user.is_manager:
            # can only see own requests and managed user requests
            if ((user.id != self.user.id)
                    and (user.manager_id != self.user.id)):
                return HTTPFound(location=route_url('list_request',
                                                    self.request))

        today = datetime.now()
        year = int(self.request.params.get('year', today.year))

        start = datetime(2014, 5, 1)
        years = [item for item in reversed(range(start.year, today.year + 1))]

        pool_history = User.get_rtt_history(self.session, user, year)

        return {'user': user, 'year': year, 'years': years,
                'pool_history': pool_history}
Beispiel #2
0
    def get_old_history(self, user, today, year):
        """Retrieve pool history using epoch recomputing."""
        pool_history = {}
        pool_history['RTT'] = User.get_rtt_history(self.session, user, year)

        if today.year > year:
            if user.country == 'lu':
                today = datetime(year, 12, 31)
            else:
                today = datetime(year, 5, 31)

        history, restant = User.get_cp_history(self.session, user, year, today)

        vac_class = user.get_cp_class(self.session)

        cp_history = []
        pool_acquis = 0
        pool_restant = 0
        for idx, entry in enumerate(history):
            if idx == 0:
                pool_restant = restant[entry['date']]

            if entry['value'] < 0:
                if user.country == 'lu':
                    pool_restant, pool_acquis = vac_class.consume(
                        taken=entry['value'],
                        restant=pool_restant,
                        acquis=pool_acquis)
                else:
                    _, pool_restant, pool_acquis, _ = vac_class.consume(
                        taken=entry['value'],
                        restant=pool_restant,
                        acquis=pool_acquis,
                        n_1=0,
                        extra=0)
            else:
                pool_acquis = pool_acquis + entry['value']

            item = {
                'date': entry['date'],
                'value': entry['value'],
                'restant': pool_restant,
                'acquis': pool_acquis,
                'flavor': entry.get('flavor', ''),
            }
            cp_history.append(item)

        pool_history['CP'] = cp_history

        return pool_history
Beispiel #3
0
    def render(self):
        user = User.by_id(self.session, int(self.request.matchdict['user_id']))

        if self.user.has_no_role:
            # can only see own requests
            if user.id != self.user.id:
                return HTTPFound(
                    location=route_url('list_request', self.request))

        if self.user.is_manager:
            # can only see own requests and managed user requests
            if ((user.id != self.user.id)
                    and (user.manager_id != self.user.id)):
                return HTTPFound(
                    location=route_url('list_request', self.request))

        today = datetime.now()
        year = int(self.request.params.get('year', today.year))

        start = datetime(2014, 5, 1)
        years = [item for item in reversed(range(start.year, today.year + 1))]

        pool_history = {}
        pool_history['RTT'] = User.get_rtt_history(self.session, user, year)

        if today.year > year:
            if user.country == 'lu':
                today = datetime(year, 12, 31)
            else:
                today = datetime(year, 5, 31)

        history, restant = User.get_cp_history(self.session, user, year, today)
        vac_class = user.get_cp_class(self.session)

        cp_history = []
        pool_acquis = 0
        pool_restant = 0
        for idx, entry in enumerate(history):
            if idx == 0:
                pool_restant = restant[entry['date']]

            if entry['value'] < 0:
                if user.country == 'lu':
                    pool_restant, pool_acquis = vac_class.consume(
                        taken=entry['value'],
                        restant=pool_restant,
                        acquis=pool_acquis)
                else:
                    _, pool_restant, pool_acquis, _ = vac_class.consume(
                        taken=entry['value'],
                        restant=pool_restant,
                        acquis=pool_acquis,
                        n_1=0,
                        extra=0)
            else:
                pool_acquis = pool_acquis + entry['value']

            item = {
                'date': entry['date'].strftime('%Y-%m-%d'),
                'value': entry['value'],
                'restant': pool_restant,
                'acquis': pool_acquis,
                'flavor': entry.get('flavor', ''),
            }
            cp_history.append(item)

        pool_history['CP'] = cp_history

        ret = {
            'user': user,
            'year': year,
            'years': years,
            'pool_history': pool_history
        }

        return ret