def get_last_versions()

in crashclouseau/models.py [0:0]


    def get_last_versions(date, channel, product, n=0):
        qs = (
            db.session.query(Build.buildid, Build.version, Node.node)
            .select_from(Build)
            .filter(
                Build.buildid <= date,
                Build.product == product,
                Build.channel == channel,
            )
        )
        qs = qs.join(Node).order_by(Build.buildid.desc())
        if n >= 1:
            qs = qs.limit(n)

        res = []
        major = 0
        for q in qs:
            if major == 0:
                major = utils.get_major(q.version)
            elif major != utils.get_major(q.version):
                break
            res.append(
                {
                    "buildid": utils.get_buildid(q.buildid),
                    "revision": q.node,
                    "version": q.version,
                }
            )

        if len(res) >= 2:
            return res

        return []