Commit dd4560bd7c8e5ba97c561187b45847e3a671518e
1 parent
2ce3f49a
Exists in
master
and in
39 other branches
Logged Exception in update_badges script
Showing
1 changed file
with
11 additions
and
5 deletions
Show diff stats
src/badger/management/commands/update_badges.py
@@ -6,17 +6,26 @@ from haystack.query import SearchQuerySet | @@ -6,17 +6,26 @@ from haystack.query import SearchQuerySet | ||
6 | from accounts.models import User | 6 | from accounts.models import User |
7 | from badger.models import Badge | 7 | from badger.models import Badge |
8 | 8 | ||
9 | +import logging | ||
9 | 10 | ||
10 | class Command(BaseCommand): | 11 | class Command(BaseCommand): |
11 | help = "Update the user's badges" | 12 | help = "Update the user's badges" |
12 | 13 | ||
14 | + def search(self, object_type, **opts={}): | ||
15 | + try: | ||
16 | + sqs = SearchQuerySet().filter(type=object_type, **opts) | ||
17 | + except Exception, e: | ||
18 | + logging.except(e) | ||
19 | + raise | ||
20 | + return sqs | ||
21 | + | ||
13 | def handle(self, *args, **kwargs): | 22 | def handle(self, *args, **kwargs): |
14 | for badge in Badge.objects.filter(type='auto'): | 23 | for badge in Badge.objects.filter(type='auto'): |
15 | if not badge.comparison: | 24 | if not badge.comparison: |
16 | continue | 25 | continue |
17 | elif badge.comparison == 'biggest': | 26 | elif badge.comparison == 'biggest': |
18 | order = u'-{}'.format(Badge.USER_ATTR_OPTS[badge.user_attr]) | 27 | order = u'-{}'.format(Badge.USER_ATTR_OPTS[badge.user_attr]) |
19 | - sqs = SearchQuerySet().filter(type='user') | 28 | + sqs = self.search('user') |
20 | user = sqs.order_by(order)[0] | 29 | user = sqs.order_by(order)[0] |
21 | badge.awardees.add(User.objects.get(pk=user.pk)) | 30 | badge.awardees.add(User.objects.get(pk=user.pk)) |
22 | continue | 31 | continue |
@@ -30,10 +39,7 @@ class Command(BaseCommand): | @@ -30,10 +39,7 @@ class Command(BaseCommand): | ||
30 | ) | 39 | ) |
31 | opts = {key: badge.value} | 40 | opts = {key: badge.value} |
32 | 41 | ||
33 | - sqs = SearchQuerySet().filter( | ||
34 | - type='user', | ||
35 | - **opts | ||
36 | - ) | 42 | + sqs = self.search('user', **opts) |
37 | 43 | ||
38 | for user in sqs: | 44 | for user in sqs: |
39 | badge.awardees.add(User.objects.get(pk=user.pk)) | 45 | badge.awardees.add(User.objects.get(pk=user.pk)) |