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

@ -37,9 +37,5 @@ class StatisticsView(AdminMixin, LogListView, ListView):
def get_object_list(self, logs, full=False):
if not logs.exists():
logs = (
LogArchiver().load(self.station, self.date)
if self.date
else []
)
logs = LogArchiver().load(self.station, self.date) if self.date else []
return super().get_object_list(logs, True)

View File

@ -9,11 +9,7 @@ class ArticleDetailView(PageDetailView):
model = Article
def get_sidebar_queryset(self):
qs = (
Article.objects.published()
.select_related("cover")
.order_by("-pub_date")
)
qs = Article.objects.published().select_related("cover").order_by("-pub_date")
return qs

View File

@ -24,9 +24,7 @@ class BaseView(TemplateResponseMixin, ContextMixin):
def get_sidebar_queryset(self):
"""Return a queryset of items to render on the side nav."""
return (
Page.objects.select_subclasses().published().order_by("-pub_date")
)
return Page.objects.select_subclasses().published().order_by("-pub_date")
def get_sidebar_url(self):
return reverse("page-list")
@ -43,20 +41,14 @@ class BaseView(TemplateResponseMixin, ContextMixin):
if has_sidebar and "sidebar_object_list" not in kwargs:
sidebar_object_list = self.get_sidebar_queryset()
if sidebar_object_list is not None:
kwargs["sidebar_object_list"] = sidebar_object_list[
: self.list_count
]
kwargs["sidebar_object_list"] = sidebar_object_list[: self.list_count]
kwargs["sidebar_list_url"] = self.get_sidebar_url()
if "audio_streams" not in kwargs:
kwargs["audio_streams"] = self.station.streams
if "model" not in kwargs:
model = (
getattr(self, "model", None)
or hasattr(self, "object")
and type(self.object)
)
model = getattr(self, "model", None) or hasattr(self, "object") and type(self.object)
kwargs["model"] = model
return super().get_context_data(**kwargs)

View File

@ -30,9 +30,7 @@ class HomeView(BaseView, ListView):
current_diff = Diffusion.objects.on_air().now(now).first()
next_diffs = Diffusion.objects.on_air().after(now)
if current_diff:
diffs = [current_diff] + list(
next_diffs.exclude(pk=current_diff.pk)[:2]
)
diffs = [current_diff] + list(next_diffs.exclude(pk=current_diff.pk)[:2])
else:
diffs = next_diffs[:3]
return diffs

View File

@ -27,13 +27,7 @@ class LogListMixin(GetDateMixin):
def get_queryset(self):
# only get logs for tracks: log for diffusion will be retrieved
# by the diffusions' queryset.
qs = (
super()
.get_queryset()
.on_air()
.filter(track__isnull=False)
.filter(date__lte=tz.now())
)
qs = super().get_queryset().on_air().filter(track__isnull=False).filter(date__lte=tz.now())
return (
qs.date(self.date)
if self.date is not None
@ -43,11 +37,7 @@ class LogListMixin(GetDateMixin):
)
def get_diffusions_queryset(self):
qs = (
Diffusion.objects.station(self.station)
.on_air()
.filter(start__lte=tz.now())
)
qs = Diffusion.objects.station(self.station).on_air().filter(start__lte=tz.now())
return (
qs.date(self.date)
if self.date is not None
@ -87,9 +77,7 @@ class LogListView(AttachedToMixin, BaseView, LogListMixin, ListView):
kwargs.update(
{
"date": self.date,
"dates": (
today - datetime.timedelta(days=i) for i in range(0, 7)
),
"dates": (today - datetime.timedelta(days=i) for i in range(0, 7)),
"object_list": self.get_object_list(self.object_list),
}
)
@ -124,6 +112,4 @@ class LogListAPIView(LogListMixin, BaseAPIView, ListAPIView):
def get_serializer(self, queryset, *args, **kwargs):
full = bool(self.request.GET.get("full"))
return super().get_serializer(
self.get_object_list(queryset, full), *args, **kwargs
)
return super().get_serializer(self.get_object_list(queryset, full), *args, **kwargs)

View File

@ -14,13 +14,7 @@ class GetDateMixin:
def get_date(self):
date = self.request.GET.get("date")
return (
str_to_date(date, "-")
if date is not None
else self.kwargs["date"]
if "date" in self.kwargs
else None
)
return str_to_date(date, "-") if date is not None else self.kwargs["date"] if "date" in self.kwargs else None
def get(self, *args, **kwargs):
if self.redirect_date_url and self.request.GET.get("date"):
@ -55,9 +49,7 @@ class ParentMixin:
return
lookup = {self.parent_field: kwargs[self.parent_url_kwarg]}
return get_object_or_404(
self.parent_model.objects.select_related("cover"), **lookup
)
return get_object_or_404(self.parent_model.objects.select_related("cover"), **lookup)
def get(self, request, *args, **kwargs):
self.parent = self.get_parent(request, *args, **kwargs)
@ -83,11 +75,7 @@ class AttachedToMixin:
def get_page(self):
if self.attach_to_value is not None:
return (
StaticPage.objects.filter(attach_to=self.attach_to_value)
.published()
.first()
)
return StaticPage.objects.filter(attach_to=self.attach_to_value).published().first()
return super().get_page()

View File

@ -32,13 +32,7 @@ class BasePageListView(AttachedToMixin, ParentMixin, BaseView, ListView):
return super().get(*args, **kwargs)
def get_queryset(self):
return (
super()
.get_queryset()
.select_subclasses()
.published()
.select_related("cover")
)
return super().get_queryset().select_subclasses().published().select_related("cover")
def get_context_data(self, **kwargs):
kwargs.setdefault("item_template_name", self.item_template_name)
@ -97,12 +91,7 @@ class PageListView(FiltersMixin, BasePageListView):
return super().get_filterset(data, query)
def get_queryset(self):
qs = (
super()
.get_queryset()
.select_related("category")
.order_by("-pub_date")
)
qs = super().get_queryset().select_related("category").order_by("-pub_date")
return qs
def get_context_data(self, **kwargs):
@ -131,9 +120,7 @@ class PageDetailView(BasePageDetailView):
def get_context_data(self, **kwargs):
if self.object.allow_comments and "comment_form" not in kwargs:
kwargs["comment_form"] = CommentForm()
kwargs["comments"] = Comment.objects.filter(page=self.object).order_by(
"-date"
)
kwargs["comments"] = Comment.objects.filter(page=self.object).order_by("-date")
return super().get_context_data(**kwargs)
@classmethod

View File

@ -12,9 +12,7 @@ class BaseProgramMixin:
return self.object
def get_sidebar_url(self):
return reverse(
"program-page-list", kwargs={"parent_slug": self.program.slug}
)
return reverse("program-page-list", kwargs={"parent_slug": self.program.slug})
def get_context_data(self, **kwargs):
self.program = self.get_program()