From 5ada856f8405ec80a07d53fbb530a722d9a795a1 Mon Sep 17 00:00:00 2001
From: Matthieu Simon <matthieu.simon@qarnot-computing.com>
Date: Fri, 2 Jan 2015 15:55:58 +0100
Subject: [PATCH] fix job current frame updating

---
 brender/server/application/modules/jobs/__init__.py  | 2 +-
 brender/server/application/modules/tasks/__init__.py | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/brender/server/application/modules/jobs/__init__.py b/brender/server/application/modules/jobs/__init__.py
index 23763901..8c035736 100644
--- a/brender/server/application/modules/jobs/__init__.py
+++ b/brender/server/application/modules/jobs/__init__.py
@@ -137,7 +137,7 @@ class JobListApi(Resource):
             if job.status == 'running':
                 self.stop(job_id)
 
-            tasks = Task.query.filter_by(job_id=job_id)
+            tasks = db.session.query(Task).filter(Task.job_id == job_id, Task.status.notin_(['finished','failed']))
             best_managers = filter(lambda m : m.total_workers == -1, app.config['MANAGERS'])
 
             if best_managers:
diff --git a/brender/server/application/modules/tasks/__init__.py b/brender/server/application/modules/tasks/__init__.py
index 48f9de3c..12f7e068 100644
--- a/brender/server/application/modules/tasks/__init__.py
+++ b/brender/server/application/modules/tasks/__init__.py
@@ -352,6 +352,10 @@ class TaskApi(Resource):
                 # if task.current_frame == job.frame_end:
                 #     job.status = 'finished'
                 db.session.add(job)
+            if task.chunk_end > job.current_frame:
+                job.current_frame = task.chunk_end
+                db.session.add(job)
+
             db.session.commit()
 
         Thread(target=TaskApi.dispatch_tasks).start()
-- 
GitLab