def render(self): settings = self.request.registry.settings use_ldap = False if 'pyvac.use_ldap' in settings: use_ldap = asbool(settings.get('pyvac.use_ldap')) user_attr = {} users_teams = {} active_users = [] if use_ldap: # synchronise user groups/roles User.sync_ldap_info(self.session) ldap = LdapCache() user_attr = ldap.get_users_units() users_teams = {} for team, members in ldap.list_teams().iteritems(): for member in members: users_teams.setdefault(member, []).append(team) active_users = ldap.list_active_users() return { u'user_count': User.find(self.session, count=True), u'users': User.find(self.session, order_by=[User.dn]), 'use_ldap': use_ldap, 'ldap_info': user_attr, 'users_teams': users_teams, 'active_users': active_users, }
def render(self): settings = self.request.registry.settings use_ldap = False if 'pyvac.use_ldap' in settings: use_ldap = asbool(settings.get('pyvac.use_ldap')) user_attr = {} users_teams = {} if use_ldap: # synchronise user groups/roles User.sync_ldap_info(self.session) ldap = LdapCache() user_attr = ldap.get_users_units() users_teams = {} for team, members in ldap.list_teams().iteritems(): for member in members: users_teams.setdefault(member, []).append(team) return {u'user_count': User.find(self.session, count=True), u'users': User.find(self.session, order_by=[User.dn]), 'use_ldap': use_ldap, 'ldap_info': user_attr, 'users_teams': users_teams, }
def render(self): from datetime import datetime today = datetime.now() end_date = datetime(today.year, 10, 31) previsions = Request.get_previsions(self.session, end_date) users_per_id = dict([(user.id, user) for user in User.find(self.session)]) settings = self.request.registry.settings use_ldap = False if 'pyvac.use_ldap' in settings: use_ldap = asbool(settings.get('pyvac.use_ldap')) user_attr = {} users_teams = {} if use_ldap: # synchronise user groups/roles User.sync_ldap_info(self.session) ldap = LdapCache() user_attr = ldap.get_users_units() users_teams = {} for team, members in ldap.list_teams().iteritems(): for member in members: users_teams.setdefault(member, []).append(team) return {'users_per_id': users_per_id, 'use_ldap': use_ldap, 'ldap_info': user_attr, 'users_teams': users_teams, 'previsions': previsions, 'today': today, 'end_date': end_date, }
def render(self): from datetime import datetime today = datetime.now() end_date = datetime(today.year, 10, 31) previsions = Request.get_previsions(self.session, end_date) users_per_id = dict([(user.id, user) for user in User.find(self.session)]) settings = self.request.registry.settings use_ldap = False if 'pyvac.use_ldap' in settings: use_ldap = asbool(settings.get('pyvac.use_ldap')) user_attr = {} users_teams = {} if use_ldap: # synchronise user groups/roles User.sync_ldap_info(self.session) ldap = LdapCache() user_attr = ldap.get_users_units() users_teams = {} for team, members in list(ldap.list_teams().items()): for member in members: users_teams.setdefault(member, []).append(team) return {'users_per_id': users_per_id, 'use_ldap': use_ldap, 'ldap_info': user_attr, 'users_teams': users_teams, 'previsions': previsions, 'today': today, 'end_date': end_date, }
def get_squad_stats(self, target_squad, users_entity): # retrieve squad members users_per_id = {} for user in User.find(self.session): if target_squad in users_entity.get(user.dn, []): users_per_id[user.id] = user return self.get_users_stats(users_per_id)
def render(self): settings = self.request.registry.settings use_ldap = False if 'pyvac.use_ldap' in settings: use_ldap = asbool(settings.get('pyvac.use_ldap')) user_attr = {} if use_ldap: # synchronise user groups/roles User.sync_ldap_info(self.session) ldap = LdapCache() user_attr = ldap.get_users_units() return {u'user_count': User.find(self.session, count=True), u'users': User.find(self.session, order_by=[User.dn]), 'use_ldap': use_ldap, 'ldap_info': user_attr, }
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
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
def render(self): duration = 1 def fmt_req_type(req): label = ' %s' % req.label if req.label else '' if duration and req.days > 1: label = '%s (until %s)' % (label, req.date_to.strftime('%d/%m/%Y')) return '%s%s' % (req.type, label) order_by = (User.country_id.asc(), User.id) users = User.find(self.session, order_by=order_by) users = [user for user in users if user.login not in self.ignore_users] requests = Request.get_active(self.session) data_off = dict([(req.user.login, fmt_req_type(req)) for req in requests]) data = { 'users': [], } users_teams = {} settings = self.request.registry.settings use_ldap = False if 'pyvac.use_ldap' in settings: use_ldap = asbool(settings.get('pyvac.use_ldap')) if use_ldap: ldap_users = {} # synchronise user groups/roles # User.sync_ldap_info(self.session) ldap = LdapCache() ldap_users = ldap.list_users() # discard users which should be deleted users = [user for user in users if user.dn in ldap_users] teams = ldap.list_teams() data['teams'] = teams.keys() for team, members in teams.iteritems(): for member in members: users_teams.setdefault(member, []).append(team) for user in users: uteams = users_teams.get(user.dn, []) item = { 'name': user.name, 'email': user.email, 'bu': user.country, 'nickname': user.nickname or '-', 'teams': ', '.join(uteams) if uteams else '-', } item['vacation'] = data_off.get(user.login) item['status'] = 'off' if item['vacation'] else 'on' if use_ldap: ldap_user = ldap_users[user.dn] jpeg = ldap_user.get('jpegPhoto') photo = None if jpeg: photo = base64.b64encode(jpeg) item['photo'] = photo item['mobile'] = ldap_user.get('mobile', '-') data['users'].append(item) return {'data': data}