示例#1
0
 def test_improperly_configured(self):
     self.setup_users(1)
     user = self.users[0]
     try:
         award_points(user, True)
     except ImproperlyConfigured as e:
         self.assertEqual(str(e), "PointValue for 'True' does not exist")
示例#2
0
 def test_simple_generic_point_award(self):
     self.setup_points({
         "ATE_SOMETHING": 5,
     })
     group = Group.objects.create(name="Dwarfs")
     award_points(group, "ATE_SOMETHING")
     self.assertEqual(points_awarded(group), 5)
示例#3
0
 def test_unicode_user_one_off_point_award(self):
     self.setup_users(1)
     user = self.users[0]
     award_points(user, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(str(apv),
                      "{0} points awarded to {1}".format(500, str(user)))
示例#4
0
 def test_improperly_configured_point_value(self):
     self.setup_users(1)
     user = self.users[0]
     try:
         award_points(user, "JOINED_SITE")
     except ImproperlyConfigured as e:
         self.assertEqual(str(e), "PointValue for 'JOINED_SITE' does not exist")
示例#5
0
 def test_simple_generic_point_award(self):
     self.setup_points({
         "ATE_SOMETHING": 5,
     })
     group = Group.objects.create(name="Dwarfs")
     award_points(group, "ATE_SOMETHING")
     self.assertEqual(points_awarded(group), 5)
示例#6
0
 def test_user_object_without_as(self):
     self.setup_users(1)
     award_points(self.users[0], 15)
     t = Template(
         "{% load pinax_points_tags %}{% points_for_object user %} Points")
     self.assertEqual(t.render(Context({"user": self.users[0]})),
                      "15 Points")
示例#7
0
 def test_user_object_with_limit_30_days(self):
     self.setup_users(1)
     ap = award_points(self.users[0], 10)
     ap.timestamp = ap.timestamp - timedelta(days=14)
     ap.save()
     award_points(self.users[0], 18)
     t = Template("{% load pinax_points_tags %}{% points_for_object user limit 30 days as points %}{{ points }} Points")  # noqa
     self.assertEqual(t.render(Context({"user": self.users[0]})), "28 Points")
示例#8
0
 def test_simple_user_point_award(self):
     self.setup_users(1)
     self.setup_points({
         "JOINED_SITE": 1,
     })
     user = self.users[0]
     award_points(user, "JOINED_SITE")
     self.assertEqual(points_awarded(user), 1)
示例#9
0
 def test_improperly_configured_point_value(self):
     self.setup_users(1)
     user = self.users[0]
     try:
         award_points(user, "JOINED_SITE")
     except ImproperlyConfigured as e:
         self.assertEqual(str(e),
                          "PointValue for 'JOINED_SITE' does not exist")
示例#10
0
 def test_unicode_generic_one_off_point_award(self):
     group = Group.objects.create(name="Dwarfs")
     award_points(group, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(
         str(apv),
         "{0} points awarded to {1}".format(500, str(group))
     )
示例#11
0
def actions_when_user_profile_filled(instance):
    action.send(instance,
                verb='filled profile',
                description=_('Filled Profile'),
                action_object=instance,
                target=instance)
    badges.possibly_award_badge("user_profile_filled", user=instance)
    award_points(instance, 'user_profile_filled')
示例#12
0
 def test_simple_user_point_award(self):
     self.setup_users(1)
     self.setup_points({
         "JOINED_SITE": 1,
     })
     user = self.users[0]
     award_points(user, "JOINED_SITE")
     self.assertEqual(points_awarded(user), 1)
示例#13
0
 def test_user_object_with_as(self):
     self.setup_users(1)
     award_points(self.users[0], 10)
     t = Template(
         "{% load pinax_points_tags %}{% points_for_object user as points %}{{ points }} Points"
     )  # noqa
     self.assertEqual(t.render(Context({"user": self.users[0]})),
                      "10 Points")
示例#14
0
def actions_when_user_created(instance):
    action.send(instance,
                verb='user created',
                description=_('Was Created'),
                action_object=instance,
                target=instance,
                timestamp=instance.date_joined)
    badges.possibly_award_badge("user_created", user=instance)
    award_points(instance, 'user_created', reason="User Created")
示例#15
0
 def test_unicode_user_one_off_point_award(self):
     self.setup_users(1)
     user = self.users[0]
     award_points(user, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(
         str(apv),
         "{0} points awarded to {1}".format(500, str(user))
     )
示例#16
0
 def test_improperly_configured(self):
     self.setup_users(1)
     user = self.users[0]
     try:
         award_points(user, True)
     except ImproperlyConfigured as e:
         self.assertEqual(
             str(e),
             "PointValue for 'True' does not exist"
         )
示例#17
0
 def test_unicode_simple_generic_point_award(self):
     self.setup_points({
         "ATE_SOMETHING": 5,
     })
     group = Group.objects.create(name="Dwarfs")
     award_points(group, "ATE_SOMETHING")
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(
         str(apv),
         "{0} points for {1} awarded to {2}".format(5, "ATE_SOMETHING",
                                                    str(group)))
示例#18
0
 def test_user_object_with_limit_30_days(self):
     self.setup_users(1)
     ap = award_points(self.users[0], 10)
     ap.timestamp = ap.timestamp - timedelta(days=14)
     ap.save()
     award_points(self.users[0], 18)
     t = Template(
         "{% load pinax_points_tags %}{% points_for_object user limit 30 days as points %}{{ points }} Points"
     )  # noqa
     self.assertEqual(t.render(Context({"user": self.users[0]})),
                      "28 Points")
示例#19
0
def results(request):
    answer = request.POST.get('capital')
    correct_answer = request.POST.get('correct_answer')
    correct = bool(answer == correct_answer)
    if request.user.is_authenticated:
        user = request.user
    if correct:
        award_points(user, 1)
    else:
        award_points(user, -1)
    return render(request, 'core/results.html', {'correct': correct})
示例#20
0
 def test_unicode_simple_generic_point_award(self):
     self.setup_points({
         "ATE_SOMETHING": 5,
     })
     group = Group.objects.create(name="Dwarfs")
     award_points(group, "ATE_SOMETHING")
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(
         str(apv),
         "{0} points for {1} awarded to {2}".format(5, "ATE_SOMETHING", str(group))
     )
示例#21
0
 def test_unicode_simple_user_point_award(self):
     self.setup_users(1)
     self.setup_points({
         "JOINED_SITE": 1,
     })
     user = self.users[0]
     award_points(user, "JOINED_SITE")
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(
         str(apv),
         "{0} points for {1} awarded to {2}".format(1, "JOINED_SITE",
                                                    str(user)))
示例#22
0
 def test_unicode_simple_user_point_award(self):
     self.setup_users(1)
     self.setup_points({
         "JOINED_SITE": 1,
     })
     user = self.users[0]
     award_points(user, "JOINED_SITE")
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(
         str(apv),
         "{0} points for {1} awarded to {2}".format(1, "JOINED_SITE", str(user))
     )
示例#23
0
def actions_when_comment_saved(instance):
    action.send(instance.author,
                verb='created comment',
                description=_('Created Comment'),
                action_object=instance,
                target=instance.conversation,
                timestamp=instance.created_at)
    if instance.approval == Comment.APPROVED:
        award_points(instance.author,
                     'comment_approved',
                     reason="Comment Approved",
                     source=instance)
        action.send(instance.author,
                    verb='had comment approved',
                    description=_('Had Comment Approved'),
                    action_object=instance,
                    target=instance.conversation)
示例#24
0
def actions_when_vote_created(instance):
    award_points(instance.author,
                 'voted',
                 reason="Voted on Conversation",
                 source=instance)

    if instance.value == Vote.AGREE:
        action.send(instance.author,
                    verb='agreed with',
                    description=_('Agreed With'),
                    action_object=instance,
                    target=instance.comment,
                    timestamp=instance.created_at)

    if instance.value == Vote.PASS:
        action.send(instance.author,
                    verb='passed on',
                    description=_('Passed On'),
                    action_object=instance,
                    target=instance.comment,
                    timestamp=instance.created_at)

    if instance.value == Vote.DISAGREE:
        action.send(instance.author,
                    verb='disagreed with',
                    description=_('Disagreed With'),
                    action_object=instance,
                    target=instance.comment,
                    timestamp=instance.created_at)

    # Let's find out whether vote is in a new conversation
    conversations = Conversation.objects.filter(
        comments__votes__author=instance.author,
        comments__votes__created_at__lte=instance.created_at).distinct(
        ).annotate(number_of_votes=Count('comments__votes'))
    number_of_first_votes = sum(
        [x.number_of_votes for x in conversations if x.number_of_votes == 1])
    if len(conversations) == 2 and number_of_first_votes >= 1:
        award_points(instance.author,
                     'voted_first_time_in_second_conversation',
                     reason='Voted first time in second conversation',
                     source=instance)
    if len(conversations) > 2 and number_of_first_votes >= 1:
        award_points(instance.author,
                     'voted_first_time_in_new_conversation_after_second',
                     reason='Voted first time in new conversation',
                     source=instance)

    # And finally, the badges
    badges.possibly_award_badge('vote_cast', user=instance.author)
示例#25
0
 def test_user_one_off_point_award_value_is_null(self):
     self.setup_users(1)
     user = self.users[0]
     award_points(user, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertTrue(apv.value is None)
示例#26
0
 def test_generic_one_off_point_award(self):
     group = Group.objects.create(name="Dwarfs")
     award_points(group, 500)
     self.assertEqual(points_awarded(group), 500)
示例#27
0
 def test_user_one_off_point_award(self):
     self.setup_users(1)
     user = self.users[0]
     award_points(user, 500)
     self.assertEqual(points_awarded(user), 500)
示例#28
0
 def test_unicode_generic_one_off_point_award(self):
     group = Group.objects.create(name="Dwarfs")
     award_points(group, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertEqual(str(apv),
                      "{0} points awarded to {1}".format(500, str(group)))
示例#29
0
 def test_user_object_with_as(self):
     self.setup_users(1)
     award_points(self.users[0], 10)
     t = Template("{% load pinax_points_tags %}{% points_for_object user as points %}{{ points }} Points")  # noqa
     self.assertEqual(t.render(Context({"user": self.users[0]})), "10 Points")
示例#30
0
 def test_user_object_without_as(self):
     self.setup_users(1)
     award_points(self.users[0], 15)
     t = Template("{% load pinax_points_tags %}{% points_for_object user %} Points")
     self.assertEqual(t.render(Context({"user": self.users[0]})), "15 Points")
示例#31
0
 def test_user_one_off_point_award(self):
     self.setup_users(1)
     user = self.users[0]
     award_points(user, 500)
     self.assertEqual(points_awarded(user), 500)
示例#32
0
 def setUp(self):
     self.setup_users(5)
     self.setup_points({
         "TEST_THIS_TAG": 10,
     })
     group = Group.objects.create(name="Eldarion")
     user = self.users[0]
     # award 40 now and 10 set three weeks ago
     award_points(group, "TEST_THIS_TAG")
     apv = award_points(group, "TEST_THIS_TAG")
     apv.timestamp = apv.timestamp - timedelta(days=14)
     apv.save()
     award_points(user, "TEST_THIS_TAG")
     award_points(user, "TEST_THIS_TAG")
     award_points(user, "TEST_THIS_TAG")
     award_points(user, "TEST_THIS_TAG")
     apv = award_points(user, "TEST_THIS_TAG")
     apv.timestamp = apv.timestamp - timedelta(days=21)
     apv.save()
示例#33
0
 def test_generic_one_off_point_award(self):
     group = Group.objects.create(name="Dwarfs")
     award_points(group, 500)
     self.assertEqual(points_awarded(group), 500)
示例#34
0
 def test_generic_one_off_point_award_value_is_null(self):
     group = Group.objects.create(name="Dwarfs")
     award_points(group, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertTrue(apv.value is None)
示例#35
0
 def setUp(self):
     self.setup_users(5)
     self.setup_points({
         "TEST_THIS_TAG": 10,
     })
     group = Group.objects.create(name="Eldarion")
     user = self.users[0]
     # award 40 now and 10 set three weeks ago
     award_points(group, "TEST_THIS_TAG")
     apv = award_points(group, "TEST_THIS_TAG")
     apv.timestamp = apv.timestamp - timedelta(days=14)
     apv.save()
     award_points(user, "TEST_THIS_TAG")
     award_points(user, "TEST_THIS_TAG")
     award_points(user, "TEST_THIS_TAG")
     award_points(user, "TEST_THIS_TAG")
     apv = award_points(user, "TEST_THIS_TAG")
     apv.timestamp = apv.timestamp - timedelta(days=21)
     apv.save()
示例#36
0
 def test_user_one_off_point_award_value_is_null(self):
     self.setup_users(1)
     user = self.users[0]
     award_points(user, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertTrue(apv.value is None)
示例#37
0
 def test_generic_one_off_point_award_value_is_null(self):
     group = Group.objects.create(name="Dwarfs")
     award_points(group, 500)
     apv = AwardedPointValue.objects.all()[0]
     self.assertTrue(apv.value is None)