diff --git a/HISTORY.rst b/HISTORY.rst index 593b08cd44..d402cf08f1 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -148,6 +148,9 @@ - Support running specific tests inside the Docker container. docker run --rm mayanedms/mayanedms:3.3 run_tests - Make the statistics slug field unique. +- Self-heal statistics results model when multiple + results are created using the same slug value. + Forum topic 1404. 3.2.10 (2019-XX-XX) =================== diff --git a/docs/releases/3.3.rst b/docs/releases/3.3.rst index e138330134..37db7da2ef 100644 --- a/docs/releases/3.3.rst +++ b/docs/releases/3.3.rst @@ -211,6 +211,7 @@ Backward incompatible changes Bugs fixed or issues closed --------------------------- +- :forum-topic:`1404` Mayan EDMS 3.2.8 statistics error - :gitlab-issue:`399` Archive of processed e-mails - :gitlab-issue:`526` RuntimeWarning: Never call result.get() within a task! - :gitlab-issue:`532` Workflow preview isn't updated right after transitions are modified @@ -222,5 +223,4 @@ Bugs fixed or issues closed - :gitlab-issue:`640` UX: "Toast" Popup position prevents access to actions - :gitlab-issue:`644` Update sane-utils package in docker image. - .. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/mayan/apps/mayan_statistics/classes.py b/mayan/apps/mayan_statistics/classes.py index 671dab799e..0e30a96fa4 100644 --- a/mayan/apps/mayan_statistics/classes.py +++ b/mayan/apps/mayan_statistics/classes.py @@ -158,6 +158,11 @@ class Statistic(object): return StatisticResult.objects.get(slug=self.slug) except StatisticResult.DoesNotExist: return StatisticResult.objects.none() + except StatisticResult.MultipleObjectsReturned: + # This should not happen. Self-heal by deleting the duplicate + # results. + StatisticResult.objects.filter(slug=self.slug).delete() + return StatisticResult.objects.none() def get_results_data(self): results = self.get_results()