Files
central-task/tasks/views_frontend.py

55 lines
1.8 KiB
Python
Raw Normal View History

2025-12-05 13:45:16 +08:00
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib import messages
from .models import Task, Client, TaskResult
# Home view
def index(request):
return render(request, 'tasks/index.html')
# Task views
def task_list(request):
tasks = Task.objects.all()
return render(request, 'tasks/task_list.html', {'tasks': tasks})
def task_create(request):
if request.method == 'POST':
name = request.POST['name']
client_name = request.POST.get('client_name', '')
script = request.POST.get('script', '')
timeout_seconds = int(request.POST.get('timeout_seconds', 259200))
Task.objects.create(
name=name,
client_name=client_name if client_name else None,
script=script if script else None,
timeout_seconds=timeout_seconds
)
messages.success(request, '任务创建成功!')
return redirect('task_list')
return render(request, 'tasks/task_create.html')
def task_detail(request, task_id):
task = get_object_or_404(Task, id=task_id)
results = task.results.all()
return render(request, 'tasks/task_detail.html', {'task': task, 'results': results})
# Client views
def client_list(request):
clients = Client.objects.all()
return render(request, 'tasks/client_list.html', {'clients': clients})
def client_create(request):
if request.method == 'POST':
name = request.POST['name']
# Generate a simple token for demo purposes
import secrets
token = secrets.token_urlsafe(32)
Client.objects.create(
name=name,
token=token
)
messages.success(request, '客户端创建成功!')
return redirect('client_list')
return render(request, 'tasks/client_create.html')