Exemple #1
0
def payment_history(request):
    user = request.user
    if request.user.is_staff:
        user_id = request.REQUEST.get('user_id', request.user.pk)
        user = User.objects.get(pk=user_id)

    history = PaymentHistory.objects.filter(user=user)
    statistics = {
        "last_seen_date":
        user.profile.last_seen_on,
        "timezone":
        unicode(user.profile.timezone),
        "stripe_id":
        user.profile.stripe_id,
        "profile":
        user.profile,
        "feeds":
        UserSubscription.objects.filter(user=user).count(),
        "email":
        user.email,
        "read_story_count":
        RUserStory.read_story_count(user.pk),
        "feed_opens":
        UserSubscription.objects.filter(user=user).aggregate(
            sum=Sum('feed_opens'))['sum'],
    }

    return {
        'is_premium': user.profile.is_premium,
        'premium_expire': user.profile.premium_expire,
        'payments': history,
        'statistics': statistics,
    }
Exemple #2
0
def payment_history(request):
    user = request.user
    if request.user.is_staff:
        user_id = request.REQUEST.get('user_id', request.user.pk)
        user = User.objects.get(pk=user_id)

    history = PaymentHistory.objects.filter(user=user)
    statistics = {
        "created_date": user.date_joined,
        "last_seen_date": user.profile.last_seen_on,
        "timezone": unicode(user.profile.timezone),
        "stripe_id": user.profile.stripe_id,
        "profile": user.profile,
        "feeds": UserSubscription.objects.filter(user=user).count(),
        "email": user.email,
        "read_story_count": RUserStory.read_story_count(user.pk),
        "feed_opens": UserSubscription.objects.filter(user=user).aggregate(sum=Sum('feed_opens'))['sum'],
        "training": {
            'title': MClassifierTitle.objects.filter(user_id=user.pk).count(),
            'tag': MClassifierTag.objects.filter(user_id=user.pk).count(),
            'author': MClassifierAuthor.objects.filter(user_id=user.pk).count(),
            'feed': MClassifierFeed.objects.filter(user_id=user.pk).count(),
        }
    }
    
    return {
        'is_premium': user.profile.is_premium,
        'premium_expire': user.profile.premium_expire,
        'payments': history,
        'statistics': statistics,
    }
Exemple #3
0
def payment_history(request):
    user = request.user
    if request.user.is_staff:
        user_id = request.REQUEST.get('user_id', request.user.pk)
        user = User.objects.get(pk=user_id)

    history = PaymentHistory.objects.filter(user=user)
    statistics = {
        "created_date":
        user.date_joined,
        "last_seen_date":
        user.profile.last_seen_on,
        "last_seen_ip":
        user.profile.last_seen_ip,
        "timezone":
        unicode(user.profile.timezone),
        "stripe_id":
        user.profile.stripe_id,
        "profile":
        user.profile,
        "feeds":
        UserSubscription.objects.filter(user=user).count(),
        "email":
        user.email,
        "read_story_count":
        RUserStory.read_story_count(user.pk),
        "feed_opens":
        UserSubscription.objects.filter(user=user).aggregate(
            sum=Sum('feed_opens'))['sum'],
        "training": {
            'title': MClassifierTitle.objects.filter(user_id=user.pk).count(),
            'tag': MClassifierTag.objects.filter(user_id=user.pk).count(),
            'author':
            MClassifierAuthor.objects.filter(user_id=user.pk).count(),
            'feed': MClassifierFeed.objects.filter(user_id=user.pk).count(),
        }
    }

    return {
        'is_premium': user.profile.is_premium,
        'premium_expire': user.profile.premium_expire,
        'payments': history,
        'statistics': statistics,
    }
Exemple #4
0
def payment_history(request):
    user = request.user
    if request.user.is_staff:
        user_id = request.REQUEST.get("user_id", request.user.pk)
        user = User.objects.get(pk=user_id)

    history = PaymentHistory.objects.filter(user=user)
    statistics = {
        "last_seen_date": user.profile.last_seen_on,
        "timezone": unicode(user.profile.timezone),
        "stripe_id": user.profile.stripe_id,
        "profile": user.profile,
        "feeds": UserSubscription.objects.filter(user=user).count(),
        "email": user.email,
        "read_story_count": RUserStory.read_story_count(user.pk),
        "feed_opens": UserSubscription.objects.filter(user=user).aggregate(sum=Sum("feed_opens"))["sum"],
    }

    return {
        "is_premium": user.profile.is_premium,
        "premium_expire": user.profile.premium_expire,
        "payments": history,
        "statistics": statistics,
    }
Exemple #5
0
def payment_history(request):
    user = request.user
    if request.user.is_staff:
        user_id = request.GET.get('user_id', request.user.pk)
        user = User.objects.get(pk=user_id)

    history = PaymentHistory.objects.filter(user=user)
    statistics = {
        "created_date":
        user.date_joined,
        "last_seen_date":
        user.profile.last_seen_on,
        "last_seen_ip":
        user.profile.last_seen_ip,
        "timezone":
        str(user.profile.timezone),
        "stripe_id":
        user.profile.stripe_id,
        "paypal_email":
        user.profile.latest_paypal_email,
        "profile":
        user.profile,
        "feeds":
        UserSubscription.objects.filter(user=user).count(),
        "email":
        user.email,
        "read_story_count":
        RUserStory.read_story_count(user.pk),
        "feed_opens":
        UserSubscription.objects.filter(user=user).aggregate(
            sum=Sum('feed_opens'))['sum'],
        "training": {
            'title_ps':
            MClassifierTitle.objects.filter(user_id=user.pk,
                                            score__gt=0).count(),
            'title_ng':
            MClassifierTitle.objects.filter(user_id=user.pk,
                                            score__lt=0).count(),
            'tag_ps':
            MClassifierTag.objects.filter(user_id=user.pk,
                                          score__gt=0).count(),
            'tag_ng':
            MClassifierTag.objects.filter(user_id=user.pk,
                                          score__lt=0).count(),
            'author_ps':
            MClassifierAuthor.objects.filter(user_id=user.pk,
                                             score__gt=0).count(),
            'author_ng':
            MClassifierAuthor.objects.filter(user_id=user.pk,
                                             score__lt=0).count(),
            'feed_ps':
            MClassifierFeed.objects.filter(user_id=user.pk,
                                           score__gt=0).count(),
            'feed_ng':
            MClassifierFeed.objects.filter(user_id=user.pk,
                                           score__lt=0).count(),
        }
    }

    next_invoice = None
    stripe_customer = user.profile.stripe_customer()
    paypal_api = user.profile.paypal_api()
    if stripe_customer:
        try:
            invoice = stripe.Invoice.upcoming(customer=stripe_customer.id)
            for lines in invoice.lines.data:
                next_invoice = dict(
                    payment_date=datetime.datetime.fromtimestamp(
                        lines.period.start),
                    payment_amount=invoice.amount_due / 100.0,
                    payment_provider="(scheduled)",
                    scheduled=True)
                break
        except stripe.error.InvalidRequestError:
            pass

    if paypal_api and not next_invoice and user.profile.premium_renewal and len(
            history):
        next_invoice = dict(payment_date=history[0].payment_date +
                            dateutil.relativedelta.relativedelta(years=1),
                            payment_amount=history[0].payment_amount,
                            payment_provider="(scheduled)",
                            scheduled=True)

    return {
        'is_premium': user.profile.is_premium,
        'is_archive': user.profile.is_archive,
        'is_pro': user.profile.is_pro,
        'premium_expire': user.profile.premium_expire,
        'premium_renewal': user.profile.premium_renewal,
        'active_provider': user.profile.active_provider,
        'payments': history,
        'statistics': statistics,
        'next_invoice': next_invoice,
    }