diff --git a/home/templates/partials/store/store_novawow.html b/home/templates/partials/store/store_novawow.html index 403c275..1f822bd 100644 --- a/home/templates/partials/store/store_novawow.html +++ b/home/templates/partials/store/store_novawow.html @@ -85,7 +85,7 @@ alert("¡Por favor, selecciona un personaje antes de añadir un ítem al carrito!"); return; } - + carrito.push({ id, nombre, precio }); actualizarCarrito(); } diff --git a/home/views.py b/home/views.py index b032fec..ba7d093 100644 --- a/home/views.py +++ b/home/views.py @@ -1,10 +1,4 @@ -import socket -import hashlib -import gmpy2 -import binascii -import os -import re -import json +import socket, hashlib, gmpy2, binascii, os, re, json, logging, secrets from django.shortcuts import render, redirect from django.urls import reverse from django.http import HttpResponse, JsonResponse @@ -15,7 +9,6 @@ from django import forms from .pagos_stripe import create_checkout_session from .models import Noticia, ClienteCategoria, ServerSelection, RecruitAFriend, DownloadClientPage, ContentCreator, RecruitReward, ClaimedReward, AccountActivation, SecurityToken, GuildRenameSettings, VoteSite, VoteLog, HomeApiPoints, UnstuckHistory, ReviveHistory, RenamePrice, CustomizePrice, ChangeRacePrice, ChangeFactionPrice, LevelUpPrice, GoldPrice, TransferPrice, Category, Item from django.views.decorators.csrf import csrf_exempt -import logging from datetime import datetime, timedelta from .zone_definitions import get_zone_name from .ac_soap import execute_soap_command @@ -23,8 +16,8 @@ from django.utils import timezone from .library_correo import enviar_correo from django.utils.crypto import get_random_string from django.conf import settings -import secrets from django.utils.timezone import now +from decimal import Decimal # Configuración del logger logger = logging.getLogger(__name__) @@ -1749,12 +1742,6 @@ def transfer_success_view(request): def transfer_cancel_view(request): return render(request, 'account/transfer_cancel.html') - - -from decimal import Decimal - -from django.http import JsonResponse - def store_novawow_success_view(request): return render(request, 'store/store_novawow_success.html') @@ -1793,15 +1780,21 @@ def store_novawow_view(request): # Si el carrito está en la sesión carrito = request.session.get('carrito', []) - total_price = sum(item['price'] for item in carrito) * Decimal('1.21') # Incluir IVA + total_price = sum(Decimal(item['precio']) for item in carrito) * Decimal('1.21') if request.method == 'POST': # Obtener datos del body data = json.loads(request.body) character_name = data.get('character') + carrito = data.get('carrito') + request.session['carrito'] = carrito if not character_name: return JsonResponse({'success': False, 'message': 'Por favor, selecciona un personaje.'}) + + if category_name: + items_in_category = Category.objects.get(name=category_name).items.values() + return JsonResponse({'success': True, 'items': list(items_in_category)}) # Verificar si el personaje pertenece al usuario if character_name not in characters: @@ -1841,9 +1834,9 @@ def store_novawow_success_view(request): if response is None or response.strip() == "": message = f"El personaje {character_name} se a anadido los items de la compra." request.session.pop('store_novawow', None) # Limpiar la sesión - return render(request, 'store/store_success.html', {'message': message}) + return render(request, 'store/store_novawow_success.html', {'message': message}) else: - return render(request, 'store/store_success.html', {'message': f"Error: {response}"}) + return render(request, 'store/store_novawow_success.html', {'message': f"Error: {response}"}) def store_novawow_buscar_categoria_view(request, categoria):