def get_recent_change_descs(num_changes= config.LayoutConfig.num_recent_changes): changelog = [] changes = (Change.select() .order_by(Change.timestamp.desc()) .limit(num_changes)) for change in changes: username = change.user.username pos_chars = 0 neg_chars = 0 new_pages = 0 if change.size_diff >= 0: char_diff = ('<span class="plus-chars">+%s</span> chars' % change.size_diff) pos_chars = change.size_diff else: char_diff = ('<span class="minus-chars">-%s</span> chars' % -change.size_diff) neg_chars = change.size_diff if change.change_type == 'new': change_action = 'created page' new_pages = 1 elif change.change_type == 'edit': change_action = 'edited page' page_title = change.page.page_title page_url = '#' page_link = '<a href="%s">%s</a>' % (page_url, page_title) timeago = parse_datetime(change.timestamp) points = calc_user_score(pos_chars, neg_chars, new_pages) points_html = ('<span class="change-points">%s wikipoints</span>' % points) # [Ckarpfinger] # [created page] # [What the f is git] # [2 days ago] # [(+31 chars)] # for [9001 wikipoints]. summary_str = '<span class="username">%s</span> %s %s %s (%s) for %s.' summary = summary_str % (username, change_action, page_link, timeago, char_diff, points_html) changelog.append({'summary': summary, 'change': change}) return changelog
def get_recent_changes(num_changes= config.LayoutConfig.num_recent_changes): changes = (Change.select() .order_by(Change.timestamp.desc()) .limit(num_changes)) return changes