152 lines
5.3 KiB
Python
152 lines
5.3 KiB
Python
from django.shortcuts import render
|
|
|
|
from uuid import uuid1
|
|
from .models import *
|
|
from django.contrib import auth
|
|
from django.http import HttpResponse, Http404, JsonResponse, HttpResponseRedirect
|
|
from django.template import loader, RequestContext
|
|
from django.contrib.auth.decorators import login_required
|
|
from BaseModels.mailSender import techSendMail
|
|
from django.utils.translation import gettext as _
|
|
from datetime import datetime
|
|
from django.template.loader import render_to_string
|
|
from django.urls import reverse
|
|
from .funcs import *
|
|
import json
|
|
from datetime import datetime, time, timedelta
|
|
from channels.layers import get_channel_layer
|
|
from asgiref.sync import async_to_sync
|
|
from GeneralApp.funcs import get_and_set_lang
|
|
from django.shortcuts import redirect
|
|
|
|
|
|
def receive_finish_subscribe_msg_ajax(request):
|
|
if request.method != 'POST':
|
|
raise Http404
|
|
|
|
lang = get_and_set_lang(request)
|
|
|
|
try:
|
|
|
|
data = json.loads(request.body)
|
|
|
|
user_subscribe = get_cur_user_subscribe(request.user)
|
|
user_subscribe.receive_finish_subscribe_msg = data['receive_finish_subscribe_msg']
|
|
user_subscribe.save(update_fields=['receive_finish_subscribe_msg'])
|
|
|
|
except Exception as e:
|
|
msg = f'msg_send_after_subscribe_end_ajax Exception = {str(e)}'
|
|
return JsonResponse({'error': msg}, status=400)
|
|
|
|
return JsonResponse({'status': user_subscribe.receive_finish_subscribe_msg}, status=200)
|
|
|
|
|
|
@login_required()#login_url='/profile/login/')
|
|
def subscribe_now_ajax(request):
|
|
|
|
if request.method != 'POST':
|
|
raise Http404
|
|
|
|
lang = get_and_set_lang(request)
|
|
|
|
try:
|
|
|
|
data = json.loads(request.body)
|
|
|
|
subscribe = Subscribe.objects.get(id=data['subscribe_id'])
|
|
|
|
kwargs_for_order = {
|
|
'user': request.user,
|
|
'subscribe': subscribe,
|
|
'currency': 'USD',
|
|
'sum': subscribe.price,
|
|
}
|
|
|
|
subscribe_for_user = None
|
|
|
|
if subscribe.price > 0:
|
|
from BillingApp.funcs import create_subscribe_order
|
|
order = create_subscribe_order(kwargs_for_order)
|
|
if order:
|
|
return JsonResponse({'redirect_url': order.pay_page})
|
|
else:
|
|
subscribe_for_user = subscribe_user_to_null_price_subscribe(request.user)
|
|
|
|
# kwargs = {
|
|
# 'user': request.user,
|
|
# 'subscribe': subscribe,
|
|
# 'last_paid_DT': datetime.now(),
|
|
# 'paid_period_from_DT': datetime.now(),
|
|
# 'paid_period_to_DT': datetime.now() + timedelta(hours=subscribe.period),
|
|
# 'receive_finish_subscribe_msg': True,
|
|
# }
|
|
# subscribe_for_user = SubscribeForUser.objects.filter(enable=True, user=request.user)
|
|
# if subscribe_for_user:
|
|
# subscribe_for_user.update(**kwargs)
|
|
# subscribe_for_user = subscribe_for_user[0]
|
|
|
|
if not subscribe_for_user:
|
|
tpl_name = 'blocks/profile/b_subscribe_variants.html'
|
|
else:
|
|
tpl_name = 'blocks/profile/b_subscribe_current.html'
|
|
|
|
all_options = SubscribeOption.objects.filter(enable=True)
|
|
subscribes = Subscribe.objects.filter(enable=True)
|
|
for subscribe in subscribes:
|
|
subscribe_options_ids = subscribe.options.values_list('id', flat=True)
|
|
subscribe.disabled_options = all_options.exclude(id__in=subscribe_options_ids)
|
|
|
|
Dict = {
|
|
'subscribe_for_user': subscribe_for_user,
|
|
'subscribes': subscribes
|
|
}
|
|
|
|
html = render_to_string(tpl_name, Dict, request=request)
|
|
return JsonResponse({'html': html}, status=200)
|
|
|
|
except Exception as e:
|
|
msg = f'show_cur_subscribe_ajax Error = {str(e)}'
|
|
return JsonResponse({'error': msg}, status=400)
|
|
|
|
|
|
@login_required()#login_url='/profile/login/')
|
|
def show_cur_subscribe_ajax(request):
|
|
|
|
if request.method != 'POST':
|
|
raise Http404
|
|
|
|
lang = get_and_set_lang(request)
|
|
|
|
Dict = get_profile_subscribe_page_content_Dict(request)
|
|
return JsonResponse(Dict, status=200)
|
|
|
|
# try:
|
|
#
|
|
# # data = json.loads(request.body)
|
|
# all_options = SubscribeOption.objects.filter(enable=True)
|
|
#
|
|
# subscribe_for_user = SubscribeForUser.objects.filter(user=request.user)
|
|
# if not subscribe_for_user:
|
|
# tpl_name = 'blocks/profile/b_subscribe_variants.html'
|
|
# else:
|
|
# tpl_name = 'blocks/profile/b_subscribe_current.html'
|
|
# subscribe_for_user = subscribe_for_user[0]
|
|
# subscribe_options_ids = subscribe_for_user.subscribe.options.values_list('id', flat=True)
|
|
# subscribe_for_user.subscribe.disabled_options = all_options.exclude(id__in=subscribe_options_ids)
|
|
#
|
|
# subscribes = Subscribe.objects.filter(enable=True)
|
|
# for subscribe in subscribes:
|
|
# subscribe_options_ids = subscribe.options.values_list('id', flat=True)
|
|
# subscribe.disabled_options = all_options.exclude(id__in=subscribe_options_ids)
|
|
#
|
|
# Dict = {
|
|
# 'subscribe_for_user': subscribe_for_user,
|
|
# 'subscribes': subscribes
|
|
# }
|
|
#
|
|
# html = render_to_string(tpl_name, Dict, request=request)
|
|
# return JsonResponse({'html': html}, status=200)
|
|
#
|
|
# except Exception as e:
|
|
# msg = f'show_cur_subscribe_ajax Error = {str(e)}'
|
|
# return JsonResponse({'error': msg}, status=400) |