From f9f18fbce24dcde7e0a5b6888361228b423cba32 Mon Sep 17 00:00:00 2001 From: volpino Date: Sat, 22 Sep 2012 16:08:38 +0200 Subject: [PATCH] euscan: last_version property added Signed-off-by: volpino --- TODO | 2 -- euscanwww/djeuscan/models.py | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index 9fda0b9..a0e3a26 100644 --- a/TODO +++ b/TODO @@ -79,8 +79,6 @@ Move log models into djeuscanhistory ? - Url ad ManyToMany - Arches and Keyword - Metadata, herds, maintainers and homepage are per-version, not per package. Store it in Version instead. - Define last_version that refers to the last version (can be last_version_gentoo or last_version_overlay) - Fix update_counter, to update this field. ### djportage (LOW-PRIORITY)) diff --git a/euscanwww/djeuscan/models.py b/euscanwww/djeuscan/models.py index cb0e0e0..a328522 100644 --- a/euscanwww/djeuscan/models.py +++ b/euscanwww/djeuscan/models.py @@ -116,6 +116,20 @@ class Package(models.Model): def homepages(self): return self.homepage.split(' ') + @property + def last_version(self): + from euscan.helpers import vercmp + + versions = [ + self.last_version_gentoo, + self.last_version_overlay, + self.last_version_upstream + ] + _cmp = lambda x, y: vercmp( + unicode(self), x.version if x else "", y.version if y else "" + ) + return sorted(versions, cmp=_cmp)[-1] + class Version(models.Model): """