#!/usr/bin/python
+import datetime
import logging
from . import base
@lazy_property
def latest_release(self):
"""
- Returns the latest (released) release
+ Returns the latest and published release
"""
return self.backend.distros.releases._get_release("""
SELECT
AND
deleted_at IS NULL
AND
- released_at IS NOT NULL
+ published_at IS NOT NULL
AND
- released_at <= CURRENT_TIMESTAMP
+ published_at <= CURRENT_TIMESTAMP
""", self.id,
)
def url(self):
return "/distros/%s/releases/%s" % (self.distro.slug, self.slug)
- # Release
+ # Publish
- def is_released(self):
- if self.released_at:
+ def is_published(self):
+ if self.published_at and self.published_at <= datetime.datetime.utcnow():
return True
return False
@property
- def released_at(self):
- return self.data.released_at
+ def published_at(self):
+ return self.data.published_at
- async def release(self, when=None):
+ async def publish(self, when=None):
"""
- Called to prepare releasing the release
+ Called to publish the release
"""
if when:
- self._set_attribute("released_at", when)
+ self._set_attribute("published_at", when)
else:
- self._set_attribute_now("released_at")
+ self._set_attribute_now("published_at")
# XXX TODO
UNION ALL
- -- Releases Released
+ -- Releases Published
SELECT
- 'release-released' AS type,
- releases.released_at AS t,
+ 'release-published' AS type,
+ releases.published_at AS t,
CASE WHEN releases.stable IS TRUE
THEN 5 ELSE 4 END AS priority,
NULL AS build,
FROM
releases
WHERE
- released_at IS NOT NULL
+ published_at IS NOT NULL
AND
- released_at <= CURRENT_TIMESTAMP
+ published_at <= CURRENT_TIMESTAMP
UNION ALL
);
+--
+-- Name: releases; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.releases (
+ id integer NOT NULL,
+ distro_id integer NOT NULL,
+ name text NOT NULL,
+ slug text NOT NULL,
+ created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ created_by integer NOT NULL,
+ deleted_at timestamp without time zone,
+ deleted_by integer,
+ published_at timestamp without time zone,
+ stable boolean DEFAULT false NOT NULL,
+ announcement text
+);
+
+
--
-- Name: repository_builds; Type: TABLE; Schema: public; Owner: -
--
ALTER SEQUENCE public.release_monitorings_id_seq OWNED BY public.release_monitorings.id;
---
--- Name: releases; Type: TABLE; Schema: public; Owner: -
---
-
-CREATE TABLE public.releases (
- id integer NOT NULL,
- distro_id integer NOT NULL,
- name text NOT NULL,
- slug text NOT NULL,
- created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
- created_by integer NOT NULL,
- deleted_at timestamp without time zone,
- deleted_by integer,
- released_at timestamp without time zone,
- stable boolean DEFAULT false NOT NULL,
- announcement text
-);
-
-
--
-- Name: releases_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
{# Release Date #}
<div class="level-item">
- {% if release.is_released() %}
- {{ locale.format_date(release.released_at) }}
+ {% if release.is_published() %}
+ {{ locale.format_date(release.published_at) }}
{% else %}
<span class="has-text-warning">
- {{ _("Not released, yet") }}
+ {{ _("Not published, yet") }}
</span>
{% end %}
</div>
<p class="icon is-large has-text-danger">
<i class="fa-solid fa-2x fa-box"></i>
</p>
- {% elif event.type == "release-released" %}
+ {% elif event.type == "release-published" %}
<p class="icon is-large has-text-info">
<i class="fa-solid fa-2x fa-cake-candles"></i>
</p>
{{ _("Release Created")}}
{% elif event.type == "release-deleted" %}
{{ _("Release Deleted") }}
- {% elif event.type == "release-released" %}
+ {% elif event.type == "release-published" %}
{{ _("Release of %s") % event.release }}
{% else %}
{{ _("- Unknown Event %s -") % event.type }}