Commit dd4560bd7c8e5ba97c561187b45847e3a671518e

Authored by Lucas Kanashiro
1 parent 2ce3f49a

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