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 6 from accounts.models import User
7 7 from badger.models import Badge
8 8  
  9 +import logging
9 10  
10 11 class Command(BaseCommand):
11 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 22 def handle(self, *args, **kwargs):
14 23 for badge in Badge.objects.filter(type='auto'):
15 24 if not badge.comparison:
16 25 continue
17 26 elif badge.comparison == 'biggest':
18 27 order = u'-{}'.format(Badge.USER_ATTR_OPTS[badge.user_attr])
19   - sqs = SearchQuerySet().filter(type='user')
  28 + sqs = self.search('user')
20 29 user = sqs.order_by(order)[0]
21 30 badge.awardees.add(User.objects.get(pk=user.pk))
22 31 continue
... ... @@ -30,10 +39,7 @@ class Command(BaseCommand):
30 39 )
31 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 44 for user in sqs:
39 45 badge.awardees.add(User.objects.get(pk=user.pk))
... ...