From 8ee526776e1f3865b80b3ce0803828f5a72a5733 Mon Sep 17 00:00:00 2001 From: Klaas van Schelven Date: Mon, 30 Sep 2024 21:22:34 +0200 Subject: [PATCH] Show 'no version' on a button when this applies --- projects/models.py | 2 +- releases/models.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/projects/models.py b/projects/models.py index 0fecada..36524be 100644 --- a/projects/models.py +++ b/projects/models.py @@ -80,7 +80,7 @@ class Project(models.Model): def get_latest_release(self): from releases.models import ordered_releases - if not hasattr(self, "_latest_release"): + if not hasattr(self, "_latest_release"): # per-instance cache self._latest_release = list(ordered_releases(project=self))[-1] return self._latest_release diff --git a/releases/models.py b/releases/models.py index ab0d44b..b1f81c5 100644 --- a/releases/models.py +++ b/releases/models.py @@ -84,6 +84,14 @@ class Release(models.Model): unique_together = ("project", "version") def get_short_version(self): + if self.version == "": + # the reason for this little hack is to have something show up in the UI for this case. I 'assume' (mother + # of all ...) that in most reasonable cases we actually don't show releases if there's an empty release + # (i.e. for the single empty release we really shouldn't, because then project.has_releases should be false) + # but I've seen at least one case where you still have to show something even for the empty release: when + # switching back to "no release". (that's why I say "most reasonable cases"). (observed in testing, because + # test-events generally wildly vary in the release info they carry). + return "«no version»" if self.is_semver: return self.version return self.version[:12]