def index_finance_total_by_currency(addons, **kw): """ Bug 757581 Total finance stats, currency breakdown. """ index = kw.get('index', Contribution._get_index()) es = amo.search.get_es() log.info('Indexing total financial stats by currency for %s apps.' % len(addons)) for addon in addons: # Get all contributions for given add-on. qs = Contribution.objects.filter(addon=addon, uuid=None) if not qs.exists(): continue # Get list of distinct currencies. currencies = set(qs.values_list('currency', flat=True)) for currency in currencies: try: key = ord_word('cur' + str(addon) + currency.lower()) data = search.get_finance_total( qs, addon, 'currency', currency=currency) for index in get_indices(index): if not already_indexed(Contribution, data, index): Contribution.index(data, bulk=True, id=key, index=index) es.flush_bulk(forced=True) except Exception, exc: index_finance_total_by_currency.retry(args=[addons], exc=exc, **kw) raise
def index_finance_total(addons, **kw): """ Aggregates financial stats from all of the contributions for a given app. """ index = kw.get('index', Contribution._get_index()) es = amo.search.get_es() log.info('Indexing total financial stats for %s apps.' % len(addons)) for addon in addons: # Get all contributions for given add-on. qs = Contribution.objects.filter(addon=addon, uuid=None) if not qs.exists(): continue try: key = ord_word('tot' + str(addon)) data = search.get_finance_total(qs, addon) for index in get_indices(index): if not already_indexed(Contribution, data, index): Contribution.index(data, bulk=True, id=key, index=index) es.flush_bulk(forced=True) except Exception, exc: index_finance_total.retry(args=[addons], exc=exc, **kw) raise