def _annually_report(self, year): year_start = datetime.date(year, 1, 1) year_end = datetime.date(year, 12, 31) excuses_error = None config_obj = ApplicationConfig.get_current_config() query = DBSession.query('uid', 'date', 'presence').from_statement(""" SELECT p.user_id as "uid", date_trunc('day', p.ts) as "date", MIN(p.ts) as "presence" FROM presence_entry p WHERE p.ts >= :year_start AND p.ts <= :year_end GROUP BY p.user_id, date_trunc('day', p.ts) """).params(year_start=year_start, year_end=year_end) data = query.all() users = User.query.filter(User.is_active==True)\ .filter(User.is_not_client())\ .filter(User.is_not_freelancer())\ .order_by(User.name).all() _excuses = excuses.presence() data = self._group_by_user_monthly(data, _excuses) stats = self._prepare_statistics(data) return dict( data=data, users=users, stats=stats, today=datetime.datetime.today(), year_start=year_start, deltazero=deltazero, late_limit=config_obj.monthly_late_limit, excuses_error=excuses_error, )
def get(self): full = self.request.GET.get('full') == '1' inactive = self.request.GET.get('inactive') == '1' users = User.query.order_by(User.name) if not (self.request.has_perm('can_see_inactive_users') and inactive): users = users.filter(User.is_active==True) if full: return dict( users=[u.to_dict(full=True) for u in users], ) else: users = users.filter(User.is_not_client())\ .filter(User.is_not_freelancer()) return dict( users=[u.to_dict() for u in users], )
def get(self): year = self.request.GET.get('year', datetime.date.today().year) users = User.query.filter(User.is_not_client())\ .filter(User.is_active==True)\ .filter(User.is_not_freelancer()) users = users.all() used = Leave.get_used_for_year(year) applications = m.Absence.get_for_year(year) return dict( users=users, mandated=Leave.get_for_year(year), used=used, applications=applications, year=int(year), serialize_url=h.serialize_url, str=str, )
def get(self): year = self.request.GET.get('year', datetime.date.today().year) users = User.query.filter(User.is_not_client())\ .filter(User.is_active==True)\ .filter(User.is_not_freelancer()) users = users.all() used = Leave.get_used_for_year(year) applications = m.Absence.get_for_year(year) return dict( users=users, mandated=Leave.get_for_year(year), used=used, applications=applications, year=int(year), serialize_url=h.serialize_url, str=str, )
def _annually_report(self, year): year_start = datetime.date(year, 1, 1) year_end = datetime.date(year, 12, 31) excuses_error = None config_obj = ApplicationConfig.get_current_config() query = DBSession.query('uid', 'date', 'presence').from_statement(""" SELECT p.user_id as "uid", date_trunc('day', p.ts) as "date", MIN(p.ts) as "presence" FROM presence_entry p WHERE p.ts >= :year_start AND p.ts <= :year_end GROUP BY p.user_id, date_trunc('day', p.ts) """).params(year_start=year_start, year_end=year_end) data = query.all() users = User.query.filter(User.is_active==True)\ .filter(User.is_not_client())\ .filter(User.is_not_freelancer())\ .order_by(User.name).all() _excuses = excuses.presence() data = self._group_by_user_monthly(data, _excuses) stats = self._prepare_statistics(data) return dict( data=data, users=users, stats=stats, today=datetime.datetime.today(), year_start=year_start, deltazero=deltazero, late_limit=config_obj.monthly_late_limit, excuses_error=excuses_error, )