def process_action(self): badge = self.__dict__['_badge'] trigger = self.__dict__['_trigger'] award = Award(user=self.user, badge=badge, trigger=trigger, action=self) if self.node: award.node = self.node award.save() award.badge.awarded_count = F('awarded_count') + 1 award.badge.save() if award.badge.type == Badge.GOLD: self.user.gold += 1 if award.badge.type == Badge.SILVER: self.user.silver += 1 if award.badge.type == Badge.BRONZE: self.user.bronze += 1 self.user.save() self.user.message_set.create(message=_( """Congratulations, you have received a badge '%(badge_name)s'. <a href="%(badge_url)s">Find out who has it, too</a>.""" ) % dict(badge_name=award.badge.name, badge_url=award.badge.get_absolute_url()))
def __process_activities_badge(self, query, badge, content_object, update_auditted=True): content_type = ContentType.objects.get_for_model(content_object) cursor = connection.cursor() try: cursor.execute(query) rows = cursor.fetchall() if update_auditted: activity_ids = [] badge = get_object_or_404(Badge, id=badge) for row in rows: activity_id = row[0] user_id = row[1] object_id = row[2] user = get_object_or_404(User, id=user_id) award = Award(user=user, badge=badge, content_type=content_type, object_id=object_id) award.save() if update_auditted: activity_ids.append(activity_id) if update_auditted: self.update_activities_auditted(cursor, activity_ids) finally: cursor.close()
def process_action(self): badge = self.__dict__['_badge'] trigger = self.__dict__['_trigger'] award = Award(user=self.user, badge=badge, trigger=trigger, action=self) if self.node: award.node = self.node award.save() award.badge.awarded_count = F('awarded_count') + 1 award.badge.save() if award.badge.type == Badge.GOLD: self.user.gold += 1 if award.badge.type == Badge.SILVER: self.user.silver += 1 if award.badge.type == Badge.BRONZE: self.user.bronze += 1 self.user.save() self.user.message_set.create(message=_( """Congratulations, you have received a badge '%(badge_name)s'. <a href="%(badge_url)s">Find out who has it, too</a>.""" ) % dict( badge_name=award.badge.name, badge_url=award.badge.get_absolute_url()))
def process_action(self): badge = self.__dict__['_badge'] trigger = self.__dict__['_trigger'] award = Award(user=self.user, badge=badge, trigger=trigger, action=self) if self.node: award.node = self.node award.save() award.badge.awarded_count = F('awarded_count') + 1 award.badge.save() if award.badge.type == Badge.GOLD: self.user.gold += 1 if award.badge.type == Badge.SILVER: self.user.silver += 1 if award.badge.type == Badge.BRONZE: self.user.bronze += 1 self.user.save() offline_msg_utils.create_offline_message(self.user, message=_( """Congratulations, you have received a badge '%(badge_name)s'. Check out <a href=\"%(profile_url)s\">your profile</a>.""" ) % dict(badge_name=award.badge.name, profile_url=self.user.get_profile_url()), level=offline_msg_utils.constants.SUCCESS)
def process_action(self): badge = self.__dict__["_badge"] trigger = self.__dict__["_trigger"] award = Award(user=self.user, badge=badge, trigger=trigger, action=self) if self.node: award.node = self.node award.save() award.badge.awarded_count = F("awarded_count") + 1 award.badge.save() if award.badge.type == Badge.GOLD: self.user.gold += 1 if award.badge.type == Badge.SILVER: self.user.silver += 1 if award.badge.type == Badge.BRONZE: self.user.bronze += 1 self.user.save() self.user.message_set.create( message=_( """Congratulations, you have received a badge '%(badge_name)s'. Check out <a href=\"%(profile_url)s\">your profile</a>.""" ) % dict(badge_name=award.badge.name, profile_url=self.user.get_profile_url()) )
def award_badge(self, user, obj=None, award_once=False): try: badge = Badge.objects.get(slug=self.badge) except: logging.log( 'Trying to award a badge not installed in the database.') return content_type = ContentType.objects.get_for_model(obj.__class__) awarded = user.awards.filter(badge=badge) if not award_once: awarded = awarded.filter(content_type=content_type, object_id=obj.id) if len(awarded): logging.log(1, 'Trying to award badged already awarded.') return award = Award(user=user, badge=badge, content_type=content_type, object_id=obj.id) award.save()
def __process_badge(self, query, badge, content_object): content_type = ContentType.objects.get_for_model(Answer) cursor = connection.cursor() try: cursor.execute(query) rows = cursor.fetchall() badge = get_object_or_404(Badge, id=badge) for row in rows: object_id = row[0] user_id = row[1] user = get_object_or_404(User, id=user_id) award = Award(user=user, badge=badge, content_type=content_type, object_id=object_id) award.save() finally: cursor.close()
def award_badge(self, user, obj=None, award_once=False): try: badge = Badge.objects.get(slug=self.badge) except: logging.log('Trying to award a badge not installed in the database.') return content_type = ContentType.objects.get_for_model(obj.__class__) awarded = user.awards.filter(badge=badge) if not award_once: awarded = awarded.filter(content_type=content_type, object_id=obj.id) if len(awarded): logging.log(1, 'Trying to award badged already awarded.') return award = Award(user=user, badge=badge, content_type=content_type, object_id=obj.id) award.save()
def process_action(self): badge = self.__dict__['_badge'] trigger = self.__dict__['_trigger'] award = Award(user=self.user, badge=badge, trigger=trigger, action=self) if self.node: award.node = self.node award.save() award.badge.awarded_count = F('awarded_count') + 1 award.badge.save() if award.badge.type == Badge.GOLD: self.user.gold += 1 if award.badge.type == Badge.SILVER: self.user.silver += 1 if award.badge.type == Badge.BRONZE: self.user.bronze += 1 self.user.save()