refactor: replace 'check' with 'condition' in CheckConstraints for clarity

This commit is contained in:
FuzzyGrim
2025-05-24 12:34:55 +02:00
parent c702241662
commit 2398a3e8c4
4 changed files with 33 additions and 35 deletions

View File

@@ -108,7 +108,7 @@ class Item(CalendarTriggerMixin, models.Model):
), ),
# Enforces that season items must have a season number but no episode number # Enforces that season items must have a season number but no episode number
CheckConstraint( CheckConstraint(
check=Q( condition=Q(
media_type=MediaTypes.SEASON.value, media_type=MediaTypes.SEASON.value,
season_number__isnull=False, season_number__isnull=False,
episode_number__isnull=True, episode_number__isnull=True,
@@ -118,7 +118,7 @@ class Item(CalendarTriggerMixin, models.Model):
), ),
# Enforces that episode items must have both season and episode numbers # Enforces that episode items must have both season and episode numbers
CheckConstraint( CheckConstraint(
check=Q( condition=Q(
media_type=MediaTypes.EPISODE.value, media_type=MediaTypes.EPISODE.value,
season_number__isnull=False, season_number__isnull=False,
episode_number__isnull=False, episode_number__isnull=False,
@@ -128,7 +128,7 @@ class Item(CalendarTriggerMixin, models.Model):
), ),
# Prevents season/episode numbers from being set on non-TV media types # Prevents season/episode numbers from being set on non-TV media types
CheckConstraint( CheckConstraint(
check=Q( condition=Q(
~Q( ~Q(
media_type__in=[ media_type__in=[
MediaTypes.SEASON.value, MediaTypes.SEASON.value,
@@ -143,12 +143,12 @@ class Item(CalendarTriggerMixin, models.Model):
), ),
# Validate source choices # Validate source choices
CheckConstraint( CheckConstraint(
check=Q(source__in=Sources.values), condition=Q(source__in=Sources.values),
name="%(app_label)s_%(class)s_source_valid", name="%(app_label)s_%(class)s_source_valid",
), ),
# Validate media_type choices # Validate media_type choices
CheckConstraint( CheckConstraint(
check=Q(media_type__in=MediaTypes.values), condition=Q(media_type__in=MediaTypes.values),
name="%(app_label)s_%(class)s_media_type_valid", name="%(app_label)s_%(class)s_media_type_valid",
), ),
] ]

View File

@@ -206,8 +206,8 @@ def tv_with_seasons(media_id, season_numbers):
season_key = f"season/{season_number}" season_key = f"season/{season_number}"
if season_key not in response: if season_key not in response:
msg = ( msg = (
f"Season {season_number} not found for {media_id} " f"Season {season_number} not found in {Sources.TMDB.label} "
f"in {Sources.TMDB.label}." f"with ID {media_id}."
) )
# Create a new response object with 404 status # Create a new response object with 404 status
not_found_response = requests.Response() not_found_response = requests.Response()

View File

@@ -364,14 +364,12 @@ def sync_metadata(request, source, media_type, media_id, season_number=None):
episodes_to_update.append(episode_item) episodes_to_update.append(episode_item)
episode_count += 1 episode_count += 1
# Log before bulk update
logger.info( logger.info(
"Found %s existing episodes to update for %s", "Found %s existing episodes to update for %s",
episode_count, episode_count,
title, title,
) )
# Bulk update existing episodes
if episodes_to_update: if episodes_to_update:
updated_count = Item.objects.bulk_update( updated_count = Item.objects.bulk_update(
episodes_to_update, episodes_to_update,

View File

@@ -291,107 +291,107 @@ class User(AbstractUser):
constraints = [ constraints = [
models.CheckConstraint( models.CheckConstraint(
name="last_search_type_valid", name="last_search_type_valid",
check=models.Q(last_search_type__in=VALID_SEARCH_TYPES), condition=models.Q(last_search_type__in=VALID_SEARCH_TYPES),
), ),
models.CheckConstraint( models.CheckConstraint(
name="home_sort_valid", name="home_sort_valid",
check=models.Q(home_sort__in=HomeSortChoices.values), condition=models.Q(home_sort__in=HomeSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="tv_layout_valid", name="tv_layout_valid",
check=models.Q(tv_layout__in=LayoutChoices.values), condition=models.Q(tv_layout__in=LayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="season_layout_valid", name="season_layout_valid",
check=models.Q(season_layout__in=LayoutChoices.values), condition=models.Q(season_layout__in=LayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="movie_layout_valid", name="movie_layout_valid",
check=models.Q(movie_layout__in=LayoutChoices.values), condition=models.Q(movie_layout__in=LayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="anime_layout_valid", name="anime_layout_valid",
check=models.Q(anime_layout__in=LayoutChoices.values), condition=models.Q(anime_layout__in=LayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="manga_layout_valid", name="manga_layout_valid",
check=models.Q(manga_layout__in=LayoutChoices.values), condition=models.Q(manga_layout__in=LayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="game_layout_valid", name="game_layout_valid",
check=models.Q(game_layout__in=LayoutChoices.values), condition=models.Q(game_layout__in=LayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="book_layout_valid", name="book_layout_valid",
check=models.Q(book_layout__in=LayoutChoices.values), condition=models.Q(book_layout__in=LayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="tv_sort_valid", name="tv_sort_valid",
check=models.Q(tv_sort__in=MediaSortChoices.values), condition=models.Q(tv_sort__in=MediaSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="season_sort_valid", name="season_sort_valid",
check=models.Q(season_sort__in=MediaSortChoices.values), condition=models.Q(season_sort__in=MediaSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="movie_sort_valid", name="movie_sort_valid",
check=models.Q(movie_sort__in=MediaSortChoices.values), condition=models.Q(movie_sort__in=MediaSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="anime_sort_valid", name="anime_sort_valid",
check=models.Q(anime_sort__in=MediaSortChoices.values), condition=models.Q(anime_sort__in=MediaSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="manga_sort_valid", name="manga_sort_valid",
check=models.Q(manga_sort__in=MediaSortChoices.values), condition=models.Q(manga_sort__in=MediaSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="game_sort_valid", name="game_sort_valid",
check=models.Q(game_sort__in=MediaSortChoices.values), condition=models.Q(game_sort__in=MediaSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="book_sort_valid", name="book_sort_valid",
check=models.Q(book_sort__in=MediaSortChoices.values), condition=models.Q(book_sort__in=MediaSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="calendar_layout_valid", name="calendar_layout_valid",
check=models.Q(calendar_layout__in=CalendarLayoutChoices.values), condition=models.Q(calendar_layout__in=CalendarLayoutChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="lists_sort_valid", name="lists_sort_valid",
check=models.Q(lists_sort__in=ListSortChoices.values), condition=models.Q(lists_sort__in=ListSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="list_detail_sort_valid", name="list_detail_sort_valid",
check=models.Q(list_detail_sort__in=ListDetailSortChoices.values), condition=models.Q(list_detail_sort__in=ListDetailSortChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="tv_status_valid", name="tv_status_valid",
check=models.Q(tv_status__in=MediaStatusChoices.values), condition=models.Q(tv_status__in=MediaStatusChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="season_status_valid", name="season_status_valid",
check=models.Q(season_status__in=MediaStatusChoices.values), condition=models.Q(season_status__in=MediaStatusChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="movie_status_valid", name="movie_status_valid",
check=models.Q(movie_status__in=MediaStatusChoices.values), condition=models.Q(movie_status__in=MediaStatusChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="anime_status_valid", name="anime_status_valid",
check=models.Q(anime_status__in=MediaStatusChoices.values), condition=models.Q(anime_status__in=MediaStatusChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="manga_status_valid", name="manga_status_valid",
check=models.Q(manga_status__in=MediaStatusChoices.values), condition=models.Q(manga_status__in=MediaStatusChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="game_status_valid", name="game_status_valid",
check=models.Q(game_status__in=MediaStatusChoices.values), condition=models.Q(game_status__in=MediaStatusChoices.values),
), ),
models.CheckConstraint( models.CheckConstraint(
name="book_status_valid", name="book_status_valid",
check=models.Q(book_status__in=MediaStatusChoices.values), condition=models.Q(book_status__in=MediaStatusChoices.values),
), ),
] ]