diff --git a/categories/__init__.py b/categories/__init__.py index 3b0c07e..c0553cd 100644 --- a/categories/__init__.py +++ b/categories/__init__.py @@ -1,7 +1,7 @@ __version_info__ = { 'major': 0, 'minor': 8, - 'micro': 6, + 'micro': 7, 'releaselevel': 'final', 'serial': 1 } diff --git a/categories/models.py b/categories/models.py index a39cb29..ed62c52 100644 --- a/categories/models.py +++ b/categories/models.py @@ -107,10 +107,14 @@ class Category(MPTTModel): super(Category, self).save(*args, **kwargs) - for item in self.get_descendants(): - if item.active != self.active: - item.active = self.active - item.save() + # While you can activate an item without activating its descendants, + # It doesn't make sense that you can deactivate an item and have its + # decendants remain active. + if not self.active: + for item in self.get_descendants(): + if item.active != self.active: + item.active = self.active + item.save() class Meta: verbose_name_plural = 'categories'