diff --git a/work.py b/work.py index a8cea0af86..a265801521 100644 --- a/work.py +++ b/work.py @@ -227,7 +227,9 @@ class Work(sequence_ordered(), ModelSQL, ModelView): @classmethod def set_state(cls, works): for work in works: - work.state = work._state + state = work._state + if work.state != state: + work.state = state cls.save(works) def get_rec_name(self, name): @@ -250,6 +252,12 @@ class Work(sequence_ordered(), ModelSQL, ModelView): cls.set_state(works) return works + @classmethod + def write(cls, *args): + super().write(*args) + works = sum(args[0:None:2], []) + cls.set_state(works) + @classmethod def delete(cls, works): for work in works: