Feat: packaging (#127)

- Add configuration files for packaging
- Precommit now uses ruff

Co-authored-by: bkfox <thomas bkfox net>
Reviewed-on: rc/aircox#127
This commit is contained in:
Thomas Kairos
2023-10-11 10:58:34 +02:00
parent 5ea092dba6
commit f7a61fe6c0
82 changed files with 332 additions and 935 deletions

View File

@@ -25,9 +25,7 @@ __all__ = (
)
headline_re = re.compile(
r"(<p>)?" r"(?P<headline>[^\n]{1,140}(\n|[^\.]*?\.))" r"(</p>)?"
)
headline_re = re.compile(r"(<p>)?" r"(?P<headline>[^\n]{1,140}(\n|[^\.]*?\.))" r"(</p>)?")
class Category(models.Model):
@@ -54,17 +52,11 @@ class BasePageQuerySet(InheritanceQuerySet):
def parent(self, parent=None, id=None):
"""Return pages having this parent."""
return (
self.filter(parent=parent)
if id is None
else self.filter(parent__id=id)
)
return self.filter(parent=parent) if id is None else self.filter(parent__id=id)
def search(self, q, search_content=True):
if search_content:
return self.filter(
models.Q(title__icontains=q) | models.Q(content__icontains=q)
)
return self.filter(models.Q(title__icontains=q) | models.Q(content__icontains=q))
return self.filter(title__icontains=q)
@@ -89,9 +81,7 @@ class BasePage(models.Model):
related_name="child_set",
)
title = models.CharField(max_length=100)
slug = models.SlugField(
_("slug"), max_length=120, blank=True, unique=True, db_index=True
)
slug = models.SlugField(_("slug"), max_length=120, blank=True, unique=True, db_index=True)
status = models.PositiveSmallIntegerField(
_("status"),
default=STATUS_DRAFT,
@@ -132,11 +122,7 @@ class BasePage(models.Model):
super().save(*args, **kwargs)
def get_absolute_url(self):
return (
reverse(self.detail_url_name, kwargs={"slug": self.slug})
if self.is_published
else "#"
)
return reverse(self.detail_url_name, kwargs={"slug": self.slug}) if self.is_published else "#"
@property
def is_draft(self):
@@ -177,9 +163,7 @@ class BasePage(models.Model):
class PageQuerySet(BasePageQuerySet):
def published(self):
return self.filter(
status=Page.STATUS_PUBLISHED, pub_date__lte=tz.now()
)
return self.filter(status=Page.STATUS_PUBLISHED, pub_date__lte=tz.now())
class Page(BasePage):
@@ -193,9 +177,7 @@ class Page(BasePage):
null=True,
db_index=True,
)
pub_date = models.DateTimeField(
_("publication date"), blank=True, null=True, db_index=True
)
pub_date = models.DateTimeField(_("publication date"), blank=True, null=True, db_index=True)
featured = models.BooleanField(
_("featured"),
default=False,
@@ -296,9 +278,7 @@ class Comment(models.Model):
class NavItem(models.Model):
"""Navigation menu items."""
station = models.ForeignKey(
Station, models.CASCADE, verbose_name=_("station")
)
station = models.ForeignKey(Station, models.CASCADE, verbose_name=_("station"))
menu = models.SlugField(_("menu"), max_length=24)
order = models.PositiveSmallIntegerField(_("order"))
text = models.CharField(_("title"), max_length=64)
@@ -318,13 +298,7 @@ class NavItem(models.Model):
ordering = ("order", "pk")
def get_url(self):
return (
self.url
if self.url
else self.page.get_absolute_url()
if self.page
else None
)
return self.url if self.url else self.page.get_absolute_url() if self.page else None
def render(self, request, css_class="", active_class=""):
url = self.get_url()
@@ -336,6 +310,4 @@ class NavItem(models.Model):
elif not css_class:
return format_html('<a href="{}">{}</a>', url, self.text)
else:
return format_html(
'<a href="{}" class="{}">{}</a>', url, css_class, self.text
)
return format_html('<a href="{}" class="{}">{}</a>', url, css_class, self.text)