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}
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
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