126 lines
3.6 KiB
Python
126 lines
3.6 KiB
Python
import os
|
|
import platform
|
|
|
|
from django import get_version as django_version
|
|
from django.shortcuts import render, redirect
|
|
from django.contrib.auth import login, authenticate, logout
|
|
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
|
|
from django.utils import timezone
|
|
|
|
|
|
def home(request):
|
|
"""Render the landing screen with loader and environment details."""
|
|
host_name = request.get_host().lower()
|
|
agent_brand = "AppWizzy" if host_name == "appwizzy.com" else "Flatlogic"
|
|
now = timezone.now()
|
|
|
|
context = {
|
|
"project_name": "New Style",
|
|
"agent_brand": agent_brand,
|
|
"django_version": django_version(),
|
|
"python_version": platform.python_version(),
|
|
"current_time": now,
|
|
"host_name": host_name,
|
|
"project_description": os.getenv("PROJECT_DESCRIPTION", ""),
|
|
"project_image_url": os.getenv("PROJECT_IMAGE_URL", ""),
|
|
}
|
|
return render(request, "core/index.html", context)
|
|
|
|
|
|
def about(request):
|
|
return render(request, "core/about.html")
|
|
|
|
|
|
def services(request):
|
|
return render(request, "core/services.html")
|
|
|
|
|
|
def portfolio(request):
|
|
return render(request, "core/portfolio.html")
|
|
|
|
|
|
def blog(request):
|
|
return render(request, "core/blog.html")
|
|
|
|
|
|
def contact(request):
|
|
return render(request, "core/contact.html")
|
|
|
|
|
|
from django.conf import settings
|
|
|
|
def pricing(request):
|
|
return render(request, "core/pricing.html")
|
|
|
|
import stripe
|
|
from django.http import JsonResponse
|
|
|
|
def payment_view(request):
|
|
product = request.GET.get('product')
|
|
context = {
|
|
'stripe_publishable_key': settings.STRIPE_PUBLISHABLE_KEY,
|
|
'product': product
|
|
}
|
|
return render(request, 'core/payment.html', context)
|
|
|
|
def create_checkout_session(request):
|
|
product = request.GET.get('product')
|
|
if product == 'website':
|
|
price = 50000 # $500 in cents
|
|
name = 'Website'
|
|
elif product == 'agent':
|
|
price = 100000 # $1000 in cents
|
|
name = 'AI Agent'
|
|
else:
|
|
return JsonResponse({'error': 'Invalid product'})
|
|
|
|
stripe.api_key = settings.STRIPE_SECRET_KEY
|
|
try:
|
|
checkout_session = stripe.checkout.Session.create(
|
|
payment_method_types=['card'],
|
|
line_items=[
|
|
{
|
|
'price_data': {
|
|
'currency': 'usd',
|
|
'product_data': {
|
|
'name': name,
|
|
},
|
|
'unit_amount': price,
|
|
},
|
|
'quantity': 1,
|
|
},
|
|
],
|
|
mode='payment',
|
|
success_url=request.build_absolute_uri('/') + '?success=true',
|
|
cancel_url=request.build_absolute_uri('/') + '?canceled=true',
|
|
)
|
|
return JsonResponse({'id': checkout_session.id})
|
|
except Exception as e:
|
|
return JsonResponse({'error': str(e)})
|
|
|
|
def signup_view(request):
|
|
if request.method == 'POST':
|
|
form = UserCreationForm(request.POST)
|
|
if form.is_valid():
|
|
user = form.save()
|
|
login(request, user)
|
|
return redirect('home')
|
|
else:
|
|
form = UserCreationForm()
|
|
return render(request, 'core/signup.html', {'form': form})
|
|
|
|
def login_view(request):
|
|
if request.method == 'POST':
|
|
form = AuthenticationForm(data=request.POST)
|
|
if form.is_valid():
|
|
user = form.get_user()
|
|
login(request, user)
|
|
return redirect('home')
|
|
else:
|
|
form = AuthenticationForm()
|
|
return render(request, 'core/login.html', {'form': form})
|
|
|
|
def logout_view(request):
|
|
logout(request)
|
|
return redirect('home')
|