import django, sys, os os.environ['DJANGO_SETTINGS_MODULE'] = 'apiserver.settings' django.setup() from django.db.models import Prefetch, Sum from apiserver.api import models, utils today = utils.today_alberta_tz() members = models.Member.objects.filter(paused_date__isnull=True) related_tx = Prefetch( 'user__transactions', queryset=models.Transaction.objects.filter(category='Membership'), ) sub_total = 0 sub_count = 0 other_total = 0 other_count = 0 for member in members.prefetch_related(related_tx): name = member.preferred_name + ' ' + member.last_name[0] start = member.application_date length = today - member.application_date days = length.days if member.user.transactions.count(): if member.user.transactions.latest('date').paypal_txn_type == 'subscr_payment': print('subscriber,{},{},{}'.format(name, start, days)) sub_total += days sub_count += 1 continue print('non-subscr,{},{},{}'.format(name, start, days)) other_total += days other_count += 1 print('subscriber avg:', int(sub_total / sub_count)) print('non-subscr avg:', int(other_total / other_count))