Exemplo n.º 1
0
def rewards_for_posting(request, quest_id, facebook=False, tumblr=False):
    rewards = defaultdict(int)

    def reward(name):
        rewards[name] += knobs.REWARDS[name]

    if not request.user.is_authenticated() or QuestComment.posting_in_first_quest(request.user):
        reward('first_quest')
        return {'rewards': rewards}

    quest = get_object_or_404(Quest, id=quest_id)

    if QuestComment.posting_would_complete_quest_of_the_day(request.user, quest):
        reward('quest_of_the_day')
    elif QuestComment.posting_would_complete_archived_quest(request.user, quest):
        reward('archived_quest')

    if QuestComment.posting_in_first_quest(request.user):
        reward('first_quest')

    if facebook:
        reward('personal_share')

    if tumblr:
        reward('personal_share')

    streak = QuestComment.posting_would_reward_streak(request.user, quest)
    if streak:
        reward('streak_{}'.format(streak))

    return {'rewards': rewards}
Exemplo n.º 2
0
def rewards_for_posting(request, quest_id, facebook=False, tumblr=False):
    rewards = defaultdict(int)

    def reward(name):
        rewards[name] += knobs.REWARDS[name]

    if not request.user.is_authenticated(
    ) or QuestComment.posting_in_first_quest(request.user):
        reward('first_quest')
        return {'rewards': rewards}

    quest = get_object_or_404(Quest, id=quest_id)

    if QuestComment.posting_would_complete_quest_of_the_day(
            request.user, quest):
        reward('quest_of_the_day')
    elif QuestComment.posting_would_complete_archived_quest(
            request.user, quest):
        reward('archived_quest')

    if QuestComment.posting_in_first_quest(request.user):
        reward('first_quest')

    if facebook:
        reward('personal_share')

    if tumblr:
        reward('personal_share')

    streak = QuestComment.posting_would_reward_streak(request.user, quest)
    if streak:
        reward('streak_{}'.format(streak))

    return {'rewards': rewards}
Exemplo n.º 3
0
def rewards_for_posting(request, quest_id, facebook=False, tumblr=False, twitter=False):
    rewards = defaultdict(int)

    def reward(name):
        rewards[name] += knobs.REWARDS[name]

    if not request.user.is_authenticated() or QuestComment.posting_in_first_quest(request.user):
        reward('first_quest')

        ret = {'rewards': rewards}

        if request.user.is_authenticated():
            streak, days_to_next_streak, next_streak_goal = QuestComment.posting_would_reward_streak(request.user)

            ret.update({
                'days_to_next_streak': days_to_next_streak,
                'next_streak_goal': next_streak_goal,
            })

        return ret

    quest = get_object_or_404(Quest, id=quest_id)

    if QuestComment.posting_would_complete_quest_of_the_day(request.user, quest):
        reward('quest_of_the_day')
    elif QuestComment.posting_would_complete_archived_quest(request.user, quest):
        reward('archived_quest')

    if QuestComment.posting_in_first_quest(request.user):
        reward('first_quest')

    if facebook:
        reward('personal_share')

    if twitter:
        reward('personal_twitter_share')

    streak, days_to_next_streak, next_streak_goal = QuestComment.posting_would_reward_streak(request.user)
    if streak:
        reward('streak_{}'.format(streak))

    return {
        'rewards': rewards,
        'days_to_next_streak': days_to_next_streak,
        'next_streak_goal': next_streak_goal,
    }