Ya da los items al juego
This commit is contained in:
+20
-4
@@ -1828,18 +1828,34 @@ def store_novawow_view(request):
|
|||||||
'total_price': total_price_with_iva
|
'total_price': total_price_with_iva
|
||||||
})
|
})
|
||||||
|
|
||||||
|
from collections import Counter
|
||||||
|
|
||||||
def store_novawow_success_view(request):
|
def store_novawow_success_view(request):
|
||||||
# Procesar el comando SOAP tras el pago exitoso
|
# Procesar el comando SOAP tras el pago exitoso
|
||||||
character_name = request.session.get('store_novawow')
|
character_name = request.session.get('store_novawow')
|
||||||
if not character_name:
|
carrito = request.session.get('carrito', [])
|
||||||
|
|
||||||
|
if not character_name or not carrito:
|
||||||
return redirect('store-novawow')
|
return redirect('store-novawow')
|
||||||
|
|
||||||
command = f".send item {character_name}"
|
# Contar correctamente los ítems por ID
|
||||||
|
item_counts = Counter(item["id"] for item in carrito)
|
||||||
|
|
||||||
|
# Generar la lista de ítems en formato "ID:Cantidad"
|
||||||
|
items_str = " ".join(f"{item_id}:{count}" for item_id, count in item_counts.items())
|
||||||
|
|
||||||
|
# Construir el comando SOAP
|
||||||
|
command = f".send items {character_name} 'Gracias por donar a Nova WoW' 'Aquí tienes tu donación' {items_str}"
|
||||||
|
|
||||||
|
# Ejecutar el comando SOAP
|
||||||
response = execute_soap_command(command)
|
response = execute_soap_command(command)
|
||||||
|
|
||||||
|
# Limpiar la sesión después del envío
|
||||||
|
request.session.pop('store_novawow', None)
|
||||||
|
request.session.pop('carrito', None)
|
||||||
|
|
||||||
if response is None or response.strip() == "":
|
if response is None or response.strip() == "":
|
||||||
message = f"El personaje {character_name} se a anadido los items de la compra."
|
message = f"Los ítems han sido añadidos al personaje {character_name} correctamente."
|
||||||
request.session.pop('store_novawow', None) # Limpiar la sesión
|
|
||||||
return render(request, 'store/store_novawow_success.html', {'message': message})
|
return render(request, 'store/store_novawow_success.html', {'message': message})
|
||||||
else:
|
else:
|
||||||
return render(request, 'store/store_novawow_success.html', {'message': f"Error: {response}"})
|
return render(request, 'store/store_novawow_success.html', {'message': f"Error: {response}"})
|
||||||
|
|||||||
Reference in New Issue
Block a user