diff --git a/camlaps/forms.py b/camlaps/forms.py
index 7f0e1b4..0532031 100644
--- a/camlaps/forms.py
+++ b/camlaps/forms.py
@@ -1,9 +1,19 @@
+from datetime import timedelta
+
from django import forms
+from django.utils import timezone
from .models import TimelapseJob
class TimelapseJobCreateForm(forms.ModelForm):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ if not self.is_bound:
+ today = timezone.localdate()
+ self.initial.setdefault('date_to', today)
+ self.initial.setdefault('date_from', today - timedelta(days=7))
+
class Meta:
model = TimelapseJob
fields = (
diff --git a/camlaps/templates/camlaps/job_list.html b/camlaps/templates/camlaps/job_list.html
index def7e34..23438a1 100644
--- a/camlaps/templates/camlaps/job_list.html
+++ b/camlaps/templates/camlaps/job_list.html
@@ -2,7 +2,7 @@
{% block content %}
{% if has_active_jobs %}
-
+
{% endif %}
Очередь задач
@@ -25,6 +25,8 @@
Воркер очереди запущен. Обнови страницу через несколько секунд.
{% elif queue_started == 'error' %}
Не удалось запустить воркер. Проверь логи Django.
+{% elif queue_started == 'running' %}
+
Задача уже выполняется.
{% elif queue_started %}
Запущена задача #{{ queue_started }}.
{% endif %}
diff --git a/camlaps/views.py b/camlaps/views.py
index 765e452..aa044cf 100644
--- a/camlaps/views.py
+++ b/camlaps/views.py
@@ -193,7 +193,7 @@ def run_job_now(request, job_id: int):
if job.status == TimelapseJob.Status.RUNNING:
logger.info('job:run_now:done job_id=%s blocked=running', job_id)
- return redirect(f"{reverse('camlaps:job_detail', kwargs={'job_id': job_id})}?run_now=running")
+ return redirect(f"{reverse('camlaps:job_list')}?started=running")
cmd = [sys.executable, 'manage.py', 'run_timelapse_worker', '--job-id', str(job_id)]
kwargs = {
@@ -208,10 +208,10 @@ def run_job_now(request, job_id: int):
try:
subprocess.Popen(cmd, **kwargs)
logger.info('job:run_now:done job_id=%s worker_started=true', job_id)
- return redirect(f"{reverse('camlaps:job_detail', kwargs={'job_id': job_id})}?run_now=started")
+ return redirect(f"{reverse('camlaps:job_list')}?started={job_id}")
except Exception:
logger.exception('job:run_now:error job_id=%s', job_id)
- return redirect(f"{reverse('camlaps:job_detail', kwargs={'job_id': job_id})}?run_now=error")
+ return redirect(f"{reverse('camlaps:job_list')}?started=error")
def job_create(request, camera_id: int):