Exemple #1
0
    slug = "Recipe Submitted"
    levels = ["Bronze"]
    events = [
        "recipe_submitted",
    ]
    multiple = False
    user_message = "Recipe Submited Award"

    def award(self, **state):
        user = get_object_or_404(User, username=state["user"].username)
        recipes = user.recipes_submitted.all()
        if len(recipes) == 1:
            return BadgeAwarded()


badges.register(FirstRecipeBadge)


class FirstRecipeVote(Badge):
    slug = "Recipe Vote"
    levels = ["Bronze"]
    events = [
        "vote_submitted",
    ]
    multiple = False
    user_message = "Recipe Vote Award"

    def award(self, **state):
        user = get_object_or_404(User, username=state["user"].username)
        if user.get_profile().votePoints == 1:
            return BadgeAwarded()
Exemple #2
0
        "points_awarded",
    ]
    multiple = False
    
    def award(self, **state):
        user = state["user"]
        points = user.stats.points
        if points > 10000:
            return BadgeAwarded(3)
        elif points > 7500:
            return BadgeAwarded(2)
        elif points > 5000:
            return BadgeAwarded(1)


badges.register(PointsBadge)


class BaseTestCase(TestCase):
    def assert_num_queries(self, n, func):
        current_debug = settings.DEBUG
        settings.DEBUG = True
        current = len(connection.queries)
        func()
        self.assertEqual(current+n, len(connection.queries), connection.queries[current:])
        settings.DEBUG = current_debug

class BadgesTests(BaseTestCase):
    def test_award(self):
        u = User.objects.create_user("Lars Bak", "*****@*****.**", "x864lyfe")
        PlayerStat.objects.create(user=u)
Exemple #3
0
        "points_awarded",
    ]
    multiple = False

    def award(self, **state):
        user = state["user"]
        points = user.stats.points
        if points > 10000:
            return BadgeAwarded(3)
        elif points > 7500:
            return BadgeAwarded(2)
        elif points > 5000:
            return BadgeAwarded(1)


badges.register(PointsBadge)


class BaseTestCase(TestCase):
    def assert_num_queries(self, n, func):
        current_debug = settings.DEBUG
        settings.DEBUG = True
        current = len(connection.queries)
        func()
        self.assertEqual(current + n, len(connection.queries),
                         connection.queries[current:])
        settings.DEBUG = current_debug


class BadgesTests(BaseTestCase):
    def test_award(self):

#class MemeMagnate(MetaBadge):
#    slug="meme_magnate"
#    levels = [
#        BadgeDetail("Meme Magnate", "Slowly learning to be a magnate..."),
#    ]
#    requirements = [
#        { 'likes' : 0, 'donor' : 0 }
#    ]
#    events = ['badge_awarded_'+s for s in set(s for s_l in requirements for s in s_l.keys())]

#class FavouriteMagnate(MetaBadge):
#    slug='favourite'
#    levels = [
#        BadgeDetail("Starter Magnate", "Good job, but it's kind of easy to earn this one..."),
#        BadgeDetail("Favourite Magnate", "Given after you win Meme Magnate and Favourite Magnate"),
#    ]
#    requirements = [
#        { 'rater' : 0, 'donor' : 0 },
#        { 'favourite' : 0, 'meme_magnate' : 0 },
#    ]
#    events = ['badge_awarded_'+s for s in set(s for s_l in requirements for s in s_l.keys())]

badges.register(LikesBadge)
#badges.register(DonorBadge)
badges.register(RaterBadge)
badges.register(QuestionerBadge)
#badges.register(MemeMagnate)
#badges.register(FavouriteMagnate)
        "Expert",
    ]
    events = [
        "skill_awarded",
    ]
    multiple = False

    def award(self, **state):
        user = state["user"]
        level = state.pop("level", None)
        current_highest = user.profile.highest_level(self.slug).level

        if (level and level == current_highest + 1) or state.get('force', None):
            return BadgeAwarded(level=level + 1)

badges.register(SkillBadge)


class PointsBadge(Badge):
    slug = "points"
    levels = [
        "Novice Magic Marker",
        "Magic Marker",
        "Expert Magic Marker",
        "Novice Marker Bee",
        "Marker Bee",
        "Expert Marker Bee",
        "Novice Marksman",
        "Marksman",
        "Expert Marksman",
        "Novice Mark up",
Exemple #6
0
		BadgeDetail("I can see dead zeroes",
			"Complete a run with time ending with .000", 50),
		BadgeDetail("Pi",
			"Complete a run with exactly 3.142 seconds", 50),
	]
	events = [
		'run_finished',
	]
	multiple = False

	def award(self, **state):
		run = state['run']
		time = run.time
		after_dec_point = time % 1 # 7.148 -> 0.148
		if after_dec_point == Decimal('0.999'):
			return BadgeAwarded(level=1)
		if after_dec_point == Decimal('0.777'):
			return BadgeAwarded(level=2)
		if after_dec_point == Decimal('0.666'):
			return BadgeAwarded(level=3)
		if after_dec_point == Decimal('0.000'):
			return BadgeAwarded(level=4)
		if time == Decimal('3.142'):
			return BadgeAwarded(level=5)

badges.register(RunCountBadge)
badges.register(RuntimeBadge)
badges.register(RunScoreBadge)
badges.register(GlobetrotterBadge)
badges.register(HailToTheKingBadge)
Exemple #7
0

class NewbieBadge(Badge):
    slug = "newbie"
    levels = [
        {"name":"Newbie", "description":"Signed Up"},
    ]
    events = [
        "registered",
    ]
    multiple = False
    
    def award(self, **state):
        user = state["user"]
        return BadgeAwarded(level=1)
badges.register(NewbieBadge)




class VeteranBadge(Badge):
    slug = "veteran"
    levels = [
        {"name":"Veteran", "description":"Signed Up in V1 of Maptales"},
    ]
    events = [
        "existing_account",
    ]
    multiple = False
    
    def award(self, **state):
Exemple #8
0
from brabeion import badges
from brabeion.base import Badge as BadgeBase, BadgeAwarded
from lib.brabeion_utils import BadgeDetail


class MinionBadge(BadgeBase):
	slug = 'minion'
	levels = [
		BadgeDetail("Teerace Minion", "Teerace staff member", 200),
	]
	events = [
		'logged_in',
	]
	multiple = False

	def award(self, **state):
		user = state['user']
		if user.is_staff or user.is_superuser:
			return BadgeAwarded(level=1)


badges.register(MinionBadge)
    ]
    events = ["user_rated_something"]
    multiple = False

    def award(self, **state):
        user = state["user"]
        ratings = total_ratings_by_user(user)
        if ratings >= 2:
            return BadgeAwarded(2)
        elif ratings >= 1:
            return BadgeAwarded(1)


assert badges._registry == {}

badges.register(TestLikesBadge_0)

assert (len(badges._registry) == 1)
assert isinstance(badges._registry[TestLikesBadge_0.slug], TestLikesBadge_0)

badges.register(DonatedSomethingTestBadge)

assert (len(badges._registry) == 2)
assert isinstance(badges._registry[TestLikesBadge_0.slug], TestLikesBadge_0)
assert isinstance(badges._registry[DonatedSomethingTestBadge.slug],
                  DonatedSomethingTestBadge)

badges.register(FearlessRaterBadge)
assert (len(badges._registry) == 3)
assert isinstance(badges._registry[TestLikesBadge_0.slug], TestLikesBadge_0)
assert isinstance(badges._registry[DonatedSomethingTestBadge.slug],
Exemple #10
0
from brabeion import badges
from brabeion.base import Badge as BadgeBase, BadgeAwarded
from lib.brabeion_utils import BadgeDetail
from annoying.functions import get_config


class LabRatBadge(BadgeBase):
	slug = 'labrat'
	levels = [
		BadgeDetail("Lab Rat", "Participate in Teerace closed beta", 200),
	]
	events = [
		'logged_in',
	]
	multiple = False

	def award(self, **state):
		if get_config('BETA', False):
			return BadgeAwarded(level=1)


badges.register(LabRatBadge)
def create_action_badge(action):
    slug = '%s-action-badge' % action.slug
    attributes = {'slug': slug, 'action': action, 'events': [event_name(action)]}
    action_badge = type(str(slug), (ActionBadge,), attributes)
    badge_cache.register(action_badge)
def update_action_badge(sender, instance, created, **kwargs):
    if created:
        create_action_badge(instance)
models.signals.post_save.connect(update_action_badge, sender=Action)

class TrendsetterBadge(Badge):
    events = ['took_the_pledge']
    multiple = False
    levels = ['']
    slug = 'trendsetter-badge'
    name = 'Trendsetter'
    description = 'Took the Trendsetter Pledge'

    def award(self, **state):
        return BadgeAwarded()
badge_cache.register(TrendsetterBadge)

class FoundingFatherBadge(Badge):
    events = ['created_a_community']
    multiple = False
    levels = ['']
    slug = 'founding-father-badge'
    name = 'Founding Father'
    description = 'Started a community'

    def award(self, **state):
        return BadgeAwarded()
badge_cache.register(FoundingFatherBadge)

class HostingHeroBadge(Badge):
    events = ['created_an_event']
Exemple #13
0
		BadgeDetail("I can see dead zeroes",
			"Complete a run with time ending with .000", 50),
		BadgeDetail("Pi",
			"Complete a run with exactly 3.142 seconds", 50),
	]
	events = [
		'run_finished',
	]
	multiple = False

	def award(self, **state):
		run = state['run']
		time = run.time
		after_dec_point = time % 1 # 7.148 -> 0.148
		if after_dec_point == Decimal('0.999'):
			return BadgeAwarded(level=1)
		if after_dec_point == Decimal('0.777'):
			return BadgeAwarded(level=2)
		if after_dec_point == Decimal('0.666'):
			return BadgeAwarded(level=3)
		if after_dec_point == Decimal('0.000'):
			return BadgeAwarded(level=4)
		if time == Decimal('3.142'):
			return BadgeAwarded(level=5)

badges.register(RunCountBadge)
badges.register(RuntimeBadge)
badges.register(RunScoreBadge)
badges.register(GlobetrotterBadge)
badges.register(HailToTheKingBadge)
Exemple #14
0
	slug = "Recipe Submitted"
	levels = [
	"Bronze"
	]
	events = [
	"recipe_submitted",
	]
	multiple = False
	user_message ="Recipe Submited Award"
	def award(self, **state):
		user=get_object_or_404(User,username=state["user"].username)
		recipes = user.recipes_submitted.all()
		if len(recipes) == 1:
			return BadgeAwarded()

badges.register(FirstRecipeBadge)

class FirstRecipeVote(Badge):
	slug = "Recipe Vote"
	levels = [
	"Bronze"
	]
	events = [
	"vote_submitted",
	]
	multiple = False
	user_message ="Recipe Vote Award"
	def award(self, **state):
		user=get_object_or_404(User,username=state["user"].username)
		if user.get_profile().votePoints == 1:
			return BadgeAwarded()