def render_kansha_tab(self, h, comp, *args): user = security.get_user() if user is None: h << h.a(self.app_title) else: app_user = UserManager.get_app_user(user.username) h << h.a(component.Component(app_user, "avatar"), self.app_title) return h.root
def send_notifications(self, hours, url): mail_sender = self._services['mail_sender'] # Group users by board boards = {} for subscriber_bo in notifications.get_subscribers(): # FIXME: don't use the data directly subscriber = subscriber_bo.data boards.setdefault(subscriber.board.id, {'board': subscriber.board, 'subscribers': []})['subscribers'].append(subscriber) for board in boards.itervalues(): if not board['board'].archived: events = services.ActionLog.get_events_for_data(board['board'], hours) for subscriber in board['subscribers']: data = notifications.filter_events(events, subscriber) if not data: continue locale = UserManager.get_app_user(subscriber.user.username).get_locale() self.set_locale(locale) subject, content, content_html = notifications.generate_email(self.app_title, board['board'], subscriber.user, hours, url, data) mail_sender.send(subject, [subscriber.user.email], content, content_html) if self.activity_monitor: events = services.ActionLog.get_events_for_data(None, hours) new_users = UserManager.get_all_users(hours) if not (events or new_users): return h = xhtml5.Renderer() with h.html: h << h.h1('Boards') with h.ul: for event in events: notif = event.to_string() if event.card: # IDs are interpreted as anchors since HTML4. So don't use the ID of # the card as a URL fragment, because the browser # jumps to it. ev_url = urlparse.urljoin(url, event.board.url) id_ = '%s#id_card_%s' % (ev_url, event.card.id) notif = h.a(notif, href=id_, style='text-decoration: none;') h << h.li(u'%s : ' % (event.board.title), notif) h << h.h1('New users') with h.table(border=1): with h.tr: h << h.th('Login') h << h.th('Fullname') h << h.th('Email') h << h.th('Registration date') for usr in new_users: with h.tr: h << h.td(usr.username) h << h.td(usr.fullname) h << h.td(usr.email) h << h.td(usr.registration_date.isoformat()) mail_sender.send('Activity report for '+url, [self.activity_monitor], u'', h.root.write_htmlstring())
def create_demo(app): # demo users user_manager = UserManager() assets_manager = app.assets_manager for i in xrange(1, 4): email = u'*****@*****.**' % i username = u'user%d' % i user = user_manager.create_user(username, u'password', u'user %d' % i, email) user.confirm_email() appuser = user_manager.get_app_user(username, user) appuser.reset_avatar(assets_manager) database.session.flush()