DRF_Template/backend/accounts/tasks.py

29 lines
793 B
Python

from celery import shared_task
@shared_task
def get_paying_users():
from subscriptions.models import UserSubscription
# Get a list of user subscriptions
active_subscriptions = UserSubscription.objects.filter(valid=True).distinct("user")
# Get paying users
active_users = []
# Paying regular users
active_users += [
subscription.user.id
for subscription in active_subscriptions
if subscription.user is not None and subscription.user.user_group is None
]
# Paying users within groups
active_users += [
subscription.user_group.members
for subscription in active_subscriptions
if subscription.user_group is not None and subscription.user is None
]
# Return paying users
return active_users