90 lines
3.1 KiB
Python
90 lines
3.1 KiB
Python
import os
|
|
import platform
|
|
|
|
from django import get_version as django_version
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.shortcuts import render, redirect, get_object_or_404
|
|
from django.views.decorators.http import require_POST
|
|
from django.http import JsonResponse
|
|
from django.utils import timezone
|
|
from .models import Agent
|
|
from .forms import SignUpForm
|
|
from django.contrib.auth import login
|
|
from django.contrib.auth import views as auth_views
|
|
|
|
class CustomLoginView(auth_views.LoginView):
|
|
template_name = 'core/login.html'
|
|
|
|
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()
|
|
published_agents = Agent.objects.filter(published=True)
|
|
|
|
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", ""),
|
|
"agents": published_agents,
|
|
}
|
|
return render(request, "core/index.html", context)
|
|
|
|
@login_required
|
|
def create_agent(request):
|
|
if request.method == 'POST':
|
|
name = request.POST.get('name')
|
|
description = request.POST.get('description')
|
|
agent = Agent.objects.create(name=name, description=description, owner=request.user)
|
|
return redirect('my_agents')
|
|
return render(request, "core/create_agent.html")
|
|
|
|
@login_required
|
|
def my_agents(request):
|
|
agents = Agent.objects.filter(owner=request.user)
|
|
return render(request, "core/my_agents.html", {"agents": agents})
|
|
|
|
@login_required
|
|
def publish_agent(request, agent_id):
|
|
agent = get_object_or_404(Agent, id=agent_id, owner=request.user)
|
|
agent.published = not agent.published
|
|
agent.save()
|
|
return redirect('my_agents')
|
|
|
|
@login_required
|
|
@require_POST
|
|
def delete_agent(request, agent_id):
|
|
agent = get_object_or_404(Agent, id=agent_id, owner=request.user)
|
|
agent.delete()
|
|
return redirect('my_agents')
|
|
|
|
@login_required
|
|
def edit_agent(request, agent_id):
|
|
agent = get_object_or_404(Agent, id=agent_id, owner=request.user)
|
|
if request.method == 'POST':
|
|
agent.name = request.POST.get('name')
|
|
agent.description = request.POST.get('description')
|
|
agent.save()
|
|
return redirect('my_agents')
|
|
return render(request, 'core/edit_agent.html', {'agent': agent})
|
|
|
|
def agent_detail(request, agent_id):
|
|
agent = get_object_or_404(Agent, id=agent_id)
|
|
return render(request, 'core/article_detail.html', {'agent': agent})
|
|
|
|
def signup(request):
|
|
if request.method == 'POST':
|
|
form = SignUpForm(request.POST)
|
|
if form.is_valid():
|
|
user = form.save()
|
|
login(request, user)
|
|
return redirect('home')
|
|
else:
|
|
form = SignUpForm()
|
|
return render(request, 'core/signup.html', {'form': form})
|