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, }
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, }
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, }
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, }
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, }