def get_available_subscriptions(): goal = int(getattr(settings, "SUBSCRIPTION_PROGRESS_GOAL", "10") or "10") target = SubscriptionPart.objects.filter( ~q_cancelled() & ~q_deactivated(), type__size__product__is_extra=False, subscription__in=SubscriptionDao.future_subscriptions()).aggregate( total=Sum('type__size__units'))['total'] return goal - target
def active_parts(self): return self.parts.filter(q_activated() & ~q_deactivated())
def future_extra_subscriptions(self): return self.extra_subscription_set.filter(~q_cancelled() & ~q_deactivated())
def extra_subscriptions(self): return self.extra_subscription_set.filter(q_activated() & ~q_deactivated())
def types_changed(self): return self.parts.filter(~q_activated() | (q_cancelled() & ~q_deactivated())).count()
def active_and_future_parts(self): return self.parts.filter(~q_deactivated())
def members_for_email_with_subscription(): return Member.objects.filter( MemberDao.has_subscription() | MemberDao.has_cancelled_subscription()).exclude(q_deactivated())
def future_subscriptions(): return Subscription.objects.filter(~q_cancelled() & ~q_deactivated()).filter( deactivation_date=None)
def members_in_area(area): return area.members.all().filter(~q_deactivated())
def canceled_members(): return Member.objects.filter(q_cancelled()).exclude(q_deactivated())
def active_members(): return Member.objects.filter(~q_deactivated())
def member_with_active_subscription_for_depot(depot): return Member.objects.filter(MemberDao.has_subscription() | MemberDao.has_cancelled_subscription())\ .filter(subscriptionmembership__subscription__depot=depot)\ .exclude(q_deactivated()).distinct()
def members_for_email_with_shares(): return Member.objects.filter(share__isnull=False).exclude( q_deactivated())
def canceled_extra_subs(): return ExtraSubscription.objects.filter(q_activated() & q_cancelled() & ~q_deactivated())
def active_subscriptions(self): return self.subscription_set.filter(q_activated() & ~q_deactivated()).order_by( 'primary_member__first_name')
def all_active_extrasubscritions(): return ExtraSubscription.objects.filter(q_activated() & ~q_deactivated())
def future_parts(self): return self.parts.filter(~q_cancelled() & ~q_deactivated())
def canceled_subscriptions(): return Subscription.objects.filter( q_cancelled() & ~q_deactivated()).order_by('end_date')
def members_for_email(): return Member.objects.exclude(q_deactivated())