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.freelancer==False).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): # Requested (or current) year year = self.request.GET.get('year') year = int(year) if year else datetime.date.today().year # Year start day and end day start = datetime.date(year, 1, 1) end = datetime.date(year, 12, 31) start_day = dict( day=start.day, dow=start.weekday(), ) day_count, date_range, months = self.necessary_data(start, end) holidays = Holiday.query \ .filter(Holiday.date >= start) \ .all() # Users users = [] user_groups = [] for name, (fullname, shortcut) in self.request.user.get_locations(): usersq = User.query.filter(User.is_not_client()) \ .filter(User.is_active==True) \ .filter(User.location==name) \ .order_by(User.is_freelancer(), User.name).all() users.extend(usersq) user_groups.append((fullname, len(usersq))) # Leaves leave_mandated = Leave.get_for_year(start.year) leave_used = Leave.get_used_for_year(start.year) # Transform users to dictionary, group by city and order by leave days users = [dict( id=str(u.id), name=u.name, leave_mandated=leave_mandated[u.id][0], leave_used=leave_used[u.id], location=u.location, ) for u in users] users = sorted( users, key=lambda u: u['location'], ) user_groups = sorted( user_groups, key=lambda u: u, ) absences, absences_months = self.get_absences(start, end, users) lates = self.get_lates(start, end) absences_sum = ( reduce(lambda s, u: s + u['leave_used'], users, 0), reduce(lambda s, u: s + u['leave_mandated'], users, 0), ) data = { 'users': users, 'userGroups': user_groups, 'year': start.year, 'startDay': start_day, 'dayCount': day_count, 'months': months, 'absences': absences, 'absencesSum': absences_sum, 'absencesMonths': absences_months, 'lates': lates, 'holidays': [h.date.strftime('%Y-%m-%d') for h in holidays], } return dict( data=json.dumps(data, ensure_ascii=False), year=start.year, v=self, )
def get(self): # Requested (or current) year year = self.request.GET.get('year') year = int(year) if year else datetime.date.today().year # Year start day and end day start = datetime.date(year, 1, 1) end = datetime.date(year, 12, 31) start_day = dict( day=start.day, dow=start.weekday(), ) day_count, date_range, months = self.necessary_data(start, end) holidays = Holiday.query \ .filter(Holiday.date >= start) \ .all() # Users users_p = User.query.filter(User.is_not_client()) \ .filter(User.is_active==True) \ .filter(User.location=='poznan') \ .order_by(User.freelancer, User.name).all() users_w = User.query.filter(User.is_not_client()) \ .filter(User.is_active==True) \ .filter(User.location=='wroclaw') \ .order_by(User.freelancer, User.name).all() user_groups = [ (u'Poznań', len(users_p)), (u'Wrocław', len(users_w)), ] reverse = False if self.request.user.location == 'wroclaw': user_groups.insert(0, user_groups.pop()) reverse = True users_p.extend(users_w) # Leaves leave_mandated = Leave.get_for_year(start.year) leave_used = Leave.get_used_for_year(start.year) # Transform users to dictionary, group by city and order by leave days users = [ dict( id=str(u.id), name=u.name, leave_mandated=leave_mandated[u.id][0], leave_used=leave_used[u.id], location=u.location, ) for u in users_p ] employees, students = [], [] for user in users: if user['leave_mandated'] > 0: employees.append(user) else: students.append(user) users = employees + students # groupby location users = sorted(users, key=lambda u: u['location'], reverse=reverse) absences, absences_months = self.get_absences(start, end, users) lates = self.get_lates(start, end) absences_sum = ( reduce(lambda s, u: s + u['leave_used'], users, 0), reduce(lambda s, u: s + u['leave_mandated'], users, 0), ) data = { 'users': users, 'userGroups': user_groups, 'year': start.year, 'startDay': start_day, 'dayCount': day_count, 'months': months, 'absences': absences, 'absencesSum': absences_sum, 'absencesMonths': absences_months, 'lates': lates, 'holidays': [h.date.strftime('%Y-%m-%d') for h in holidays], } return dict( data=json.dumps(data, ensure_ascii=False), year=start.year, v=self, )
def get(self): # Requested (or current) year year = self.request.GET.get('year') year = int(year) if year else datetime.date.today().year # Year start day and end day start = datetime.date(year, 1, 1) end = datetime.date(year, 12, 31) start_day = dict( day=start.day, dow=start.weekday(), ) day_count, date_range, months = self.necessary_data(start, end) holidays = Holiday.query \ .filter(Holiday.date >= start) \ .all() # Users users_p = User.query.filter(User.is_not_client()) \ .filter(User.is_active==True) \ .filter(User.location=='poznan') \ .order_by(User.freelancer, User.name).all() users_w = User.query.filter(User.is_not_client()) \ .filter(User.is_active==True) \ .filter(User.location=='wroclaw') \ .order_by(User.freelancer, User.name).all() user_groups = [ (u'Poznań', len(users_p)), (u'Wrocław', len(users_w)), ] reverse = False if self.request.user.location == 'wroclaw': user_groups.insert(0, user_groups.pop()) reverse = True users_p.extend(users_w) # Leaves leave_mandated = Leave.get_for_year(start.year) leave_used = Leave.get_used_for_year(start.year) # Transform users to dictionary, group by city and order by leave days users = [dict( id=str(u.id), name=u.name, leave_mandated=leave_mandated[u.id][0], leave_used=leave_used[u.id], location=u.location, ) for u in users_p] employees, students = [], [] for user in users: if user['leave_mandated'] > 0: employees.append(user) else: students.append(user) users = employees + students # groupby location users = sorted( users, key=lambda u: u['location'], reverse=reverse ) absences, absences_months = self.get_absences(start, end, users) lates = self.get_lates(start, end) absences_sum = ( reduce(lambda s, u: s + u['leave_used'], users, 0), reduce(lambda s, u: s + u['leave_mandated'], users, 0), ) data = { 'users': users, 'userGroups': user_groups, 'year': start.year, 'startDay': start_day, 'dayCount': day_count, 'months': months, 'absences': absences, 'absencesSum': absences_sum, 'absencesMonths': absences_months, 'lates': lates, 'holidays': [h.date.strftime('%Y-%m-%d') for h in holidays], } return dict( data=json.dumps(data, ensure_ascii=False), year=start.year, v=self, )
def get(self): # Requested (or current) year year = self.request.GET.get('year') year = int(year) if year else datetime.date.today().year # Year start day and end day start = datetime.date(year, 1, 1) end = datetime.date(year, 12, 31) start_day = dict( day=start.day, dow=start.weekday(), ) day_count, date_range, months = self.necessary_data(start, end) holidays = Holiday.query \ .filter(Holiday.date >= start) \ .all() # Users users = [] user_groups = [] for name, (fullname, shortcut) in self.request.user.get_locations(): usersq = User.query.filter(User.is_not_client()) \ .filter(User.is_active==True) \ .filter(User.location==name) \ .order_by(User.is_freelancer(), User.name).all() users.extend(usersq) user_groups.append((fullname, len(usersq))) # Leaves leave_mandated = Leave.get_for_year(start.year) leave_used = Leave.get_used_for_year(start.year) # Transform users to dictionary, group by city and order by leave days users = [ dict( id=str(u.id), name=u.name, leave_mandated=leave_mandated[u.id][0], leave_used=leave_used[u.id], location=u.location, ) for u in users ] users = sorted( users, key=lambda u: u['location'], ) user_groups = sorted( user_groups, key=lambda u: u, ) absences, absences_months = self.get_absences(start, end, users) lates = self.get_lates(start, end) absences_sum = ( reduce(lambda s, u: s + u['leave_used'], users, 0), reduce(lambda s, u: s + u['leave_mandated'], users, 0), ) data = { 'users': users, 'userGroups': user_groups, 'year': start.year, 'startDay': start_day, 'dayCount': day_count, 'months': months, 'absences': absences, 'absencesSum': absences_sum, 'absencesMonths': absences_months, 'lates': lates, 'holidays': [h.date.strftime('%Y-%m-%d') for h in holidays], } return dict( data=json.dumps(data, ensure_ascii=False), year=start.year, v=self, )