From 47915d8df5403df2351d687a75faed00fdd10e6f Mon Sep 17 00:00:00 2001 From: ?ngel ?lvarez Date: Sun, 1 Jul 2018 18:10:47 +0200 Subject: [PATCH] fix depends --- bom.py | 2 +- production.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/bom.py b/bom.py index 1b05f5b..2d711d5 100644 --- a/bom.py +++ b/bom.py @@ -17,7 +17,7 @@ class BOM: drawing_image = fields.Function(fields.Binary('Drawing Image'), 'on_change_with_drawing_image') - @fields.depends('drawing') + @fields.depends('drawing', 'drawing_lines') def on_change_with_drawing_lines(self): if not self.drawing: to_remove = [x.id for x in self.drawing_lines] diff --git a/production.py b/production.py index f3d658d..9f74691 100644 --- a/production.py +++ b/production.py @@ -24,6 +24,7 @@ class Production: super(Production, cls).__setup__() cls.bom.on_change.add('drawing_lines') + @fields.depends('bom') def on_change_bom(self): super(Production, self).on_change_bom() self.drawing = (self.bom.drawing.id if self.bom and self.bom.drawing @@ -31,10 +32,10 @@ class Production: self.on_change_with_drawing_image() self.on_change_with_drawing_lines() - @fields.depends('drawing') + @fields.depends('bom', 'drawing', 'drawing_lines') def on_change_with_drawing_lines(self): - if not self.bom or not self.bom.drawing: - to_remove = [x.id for x in getattr(self, 'drawing_lines')] + if not self.bom or not self.bom.drawing and hasattr(self, 'drawing_lines'): + to_remove = [x.id for x in getattr(self, 'drawing_lines', [])] return { 'remove': to_remove, }