From 7b993296ba48789f3a513d00a474748ccfa14336 Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Sun, 17 Nov 2024 21:47:38 +1100 Subject: [PATCH] Fix add page --- links/page_views.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/links/page_views.py b/links/page_views.py index 3593547..df4187d 100644 --- a/links/page_views.py +++ b/links/page_views.py @@ -23,6 +23,8 @@ from pathlib import Path from datetime import datetime from rest_framework.decorators import action from django.shortcuts import get_object_or_404 +from django.contrib import messages +from django.utils.translation import gettext_lazy as _ class PageListView(ListView): model = Page @@ -42,8 +44,23 @@ class PageCreateView(CreateView): def form_valid(self, form): response = super().form_valid(form) - # Use delay() to call the task asynchronously - capture_screenshot.delay(self.object.id) + page = self.object + + # Create a pending screenshot record + screenshot = Screenshot.objects.create( + page=page, + status=Screenshot.Status.PENDING + ) + + # Start processing the page + try: + process_page.delay(page.id) + messages.success(self.request, _('Page created successfully and processing started.')) + except Exception as e: + messages.error(self.request, _('Page created but processing failed to start.')) + page.error_message = str(e) + page.save() + return response class PageUpdateView(UpdateView):