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)) |