def post(self): name = self.request_string("name") description = self.request_string("description") full_description = self.request_string("full_description") points = self.request_int("points", default = -1) badge_category = self.request_int("badge_category", default = -1) icon_src = self.request_string("icon_src", default="") # Create custom badge if CustomBadgeType.insert(name, description, full_description, points, badge_category, icon_src): util_badges.all_badges(bust_cache=True) util_badges.all_badges_dict(bust_cache=True) self.redirect("/badges/custom/award") return self.redirect("/badges/custom/create?failed=1")
def badge_notifications(): user_badges = badges.UserBadgeNotifier.pop_for_current_user() all_badges_dict = util_badges.all_badges_dict() for user_badge in user_badges: user_badge.badge = all_badges_dict.get(user_badge.badge_name) user_badges = filter(lambda user_badge: user_badge.badge is not None, user_badges) if len(user_badges) > 1: user_badges = sorted(user_badges, reverse=True, key=lambda user_badge: user_badge.badge.points)[:badges.UserBadgeNotifier.NOTIFICATION_LIMIT] return {"user_badges": user_badges}
def badge_notifications_html(user_badges): all_badges_dict = util_badges.all_badges_dict() for user_badge in user_badges: user_badge.badge = all_badges_dict.get(user_badge.badge_name) if user_badge.badge: user_badge.badge.is_owned = True user_badges = filter(lambda user_badge: user_badge.badge is not None, user_badges) if len(user_badges) > 1: user_badges = sorted(user_badges, reverse=True, key=lambda user_badge: user_badge.badge.points)[:badges.UserNotifier.NOTIFICATION_LIMIT] context = {"user_badges": user_badges} return shared_jinja.get().render_template("badges/notifications.html", **context)
def badge_notifications(): user_badges = badges.UserBadgeNotifier.pop_for_current_user() all_badges_dict = util_badges.all_badges_dict() for user_badge in user_badges: user_badge.badge = all_badges_dict.get(user_badge.badge_name) user_badges = filter(lambda user_badge: user_badge.badge is not None, user_badges) if len(user_badges) > 1: user_badges = sorted(user_badges, reverse=True, key=lambda user_badge: user_badge.badge.points )[:badges.UserBadgeNotifier.NOTIFICATION_LIMIT] return {"user_badges": user_badges}