Add all_customers management command

This commit is contained in:
PCoder 2019-12-14 10:18:39 +05:30
parent fbfc1152b8
commit 70f0fed63f
1 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,36 @@
import json
import logging
import sys
from django.core.management.base import BaseCommand
from membership.models import CustomUser
from hosting.models import (
HostingOrder, VMDetail, UserCardDetail, UserHostingKey
)
logger = logging.getLogger(__name__)
class Command(BaseCommand):
help = '''Dumps the email addresses of all customers who have a VM'''
def add_arguments(self, parser):
parser.add_argument('-a', '--all_registered', action='store_true',
help='All registered users')
def handle(self, *args, **options):
all_registered = options['all_registered']
all_customers_set = set()
if all_registered:
all_customers = CustomUser.objects.filter(
is_admin=False, validated=True
)
for customer in all_customers:
all_customers_set.add(customer.email)
print(customer.email)
else:
all_hosting_orders = HostingOrder.objects.all()
for order in all_hosting_orders:
all_customers_set.add(order.customer.user.email)
print(order.customer.user.email)
print("Total customers = %s" % len(all_customers_set))