diff --git a/main/templates/main/ranking_detail.html b/main/templates/main/ranking_detail.html index 908fa1b0..2104bea8 100644 --- a/main/templates/main/ranking_detail.html +++ b/main/templates/main/ranking_detail.html @@ -1,6 +1,4 @@ {% extends "base.html" %} -{% load custom_filter %} -{% load ranking_detail_filter %} {% load static %} {% load bootstrap3 %} diff --git a/main/templatetags/__init__.py b/main/templatetags/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/main/templatetags/custom_filter.py b/main/templatetags/custom_filter.py deleted file mode 100644 index a4789d7a..00000000 --- a/main/templatetags/custom_filter.py +++ /dev/null @@ -1,86 +0,0 @@ -from django import template - -from main.models import Music, Medal, Bad_Count, Extra_Option - -register = template.Library() - - -@register.filter -def get_at_index(list, index): - """ - リストの添字に変数を与える - :param list: - :param index: - :return: - """ - return list[index] - - -@register.filter -def join_comma(var, args): - """ - 2つの変数をコンマで区切った文字列を作成 (filterに3つ引数を渡すため) - :param var: - :param args: - :return: - """ - return "%s,%s" % (var, args) - - -@register.filter -def medal_int(medal_list: list[Medal], music: Music) -> int: - """ - 指定された曲の値をlistから探して返す - :param medal_list: - :param music: - :return: - """ - if not medal_list: - return 0 - - for medal in medal_list: - if medal.music.id == music.id: - if medal.int() != 12: - # 未プレイ以外ならメダルを返す - return medal.int() # 1-11 - else: - return 0 - - return 0 - - -@register.filter -def bad_count_int(bad_count_list: list[Bad_Count], music: Music): - if not bad_count_list: - return '-' - - for bad_count in bad_count_list: - if bad_count.music.id == music.id: - return bad_count.int() - - return '-' - - -@register.filter -def bad_count_updated_at(bad_count_list: list[Bad_Count], music: Music): - if not bad_count_list: - return '-' - - for bad_count in bad_count_list: - if bad_count.music.id == music.id: - return bad_count.updated_at - - return '-' - - -@register.filter -def is_hard(extra_option_list: list[Extra_Option], music: Music) -> bool: - if not extra_option_list: - return False - - for extra_option in extra_option_list: - if extra_option.music.id == music.id: - if extra_option.is_hard(): - return True - else: - return False diff --git a/main/templatetags/ranking_detail_filter.py b/main/templatetags/ranking_detail_filter.py deleted file mode 100644 index 97c50f7c..00000000 --- a/main/templatetags/ranking_detail_filter.py +++ /dev/null @@ -1,125 +0,0 @@ -from django import template - -from main.models import Bad_Count, Medal, Extra_Option -from users.models import CustomUser - -register = template.Library() - - -@register.filter -def bad_count_rank(bad_count_list_ordered: list[Bad_Count], user: CustomUser) -> int | None: - """ - 曲とユーザーを指定で順位を返す - :param bad_count_list_ordered: 曲で絞込済みのBAD数リスト(昇順) - :param user: 指定されたユーザー - :return: 順位 - """ - if not bad_count_list_ordered: - return None - - bad_count_num = 0 # BAD数の個数 - bad_count_now = -1 # 現在のBAD数 - rank = -1 # ランク - found = False # BAD数を登録済であればTrueを返す - tmp_rank = 0 - - for bad_count in bad_count_list_ordered: - bad_count_before = bad_count_now - bad_count_now = bad_count.bad_count - - # BAD数が前後で重複した場合 - if bad_count_now == bad_count_before: - # 指定されたユーザーの記録が見つかれば rank にランクを格納 - if bad_count.user.id == user.id: - found = True - rank = tmp_rank - - bad_count_num += 1 - - # BAD数が重複しなかった場合 - else: - bad_count_num += 1 - - # 一時ランクを更新 - tmp_rank = bad_count_num - - # 自分の記録が見つかれば rank にランクを格納 - if bad_count.user.id == user.id: - found = True - rank = bad_count_num - - if found: - return rank - else: - return None - - -@register.filter -def medal_int(medal_list: list[Medal], user: CustomUser) -> int: - """ - 指定されたユーザーのメダルをlistから探して返す - :param medal_list: 曲で絞込済みのメダルリスト - :param user: 指定されたユーザー - :return: メダル (0-12) - """ - if not medal_list: - return 0 - - for medal in medal_list: - if medal.user.id == user.id: - if medal.int() != 12: - # 未プレイ以外ならメダルを返す - return medal.int() # 1-11 - else: - return 0 - - return 0 - - -@register.filter -def bad_count_int(bad_count_list: list[Bad_Count], user: CustomUser) -> int | None: - """ - 指定されたユーザーのBAD数をlistから探して返す - :param bad_count_list: 曲で絞込済みのBAD数リスト - :param user: 指定されたユーザー - :return: BAD数 - """ - if not bad_count_list: - return None - - for bad_count in bad_count_list: - if bad_count.user.id == user.id: - return bad_count.int() - - return None - - -@register.filter -def bad_count_updated_at(bad_count_list: list[Bad_Count], user: CustomUser): - """ - 指定されたユーザーのBAD数をlistから探して返す - :param bad_count_list: 曲で絞込済みのBAD数リスト - :param user: 指定されたユーザー - :return: 更新日時 (datetime) - """ - if not bad_count_list: - return None - - for bad_count in bad_count_list: - if bad_count.user.id == user.id: - return bad_count.updated_at - - return None - - -@register.filter -def is_hard(extra_option_list: list[Extra_Option], user: CustomUser) -> bool: - if not extra_option_list: - return False - - for extra_option in extra_option_list: - if extra_option.user.id == user.id: - if extra_option.is_hard(): - return True - else: - return False diff --git a/main/templatetags/ranking_filter.py b/main/templatetags/ranking_filter.py deleted file mode 100644 index a29fb87f..00000000 --- a/main/templatetags/ranking_filter.py +++ /dev/null @@ -1,84 +0,0 @@ -from django import template - -from main.models import Music, Bad_Count - -register = template.Library() - - -@register.filter -def bad_count_avg(bad_count_list: list[Bad_Count], music: Music) -> int | None: - """ - 指定された曲の平均BAD数を返す - :param bad_count_list: - :param music: - :return: 平均BAD数 - """ - if not bad_count_list: - return None - - bad_count_sum = 0 # BAD数の合計 - bad_count_num = 0 # BAD数の個数 - - for bad_count in bad_count_list: - if bad_count.music.id == music.id: - bad_count_sum += bad_count.int() - bad_count_num += 1 - - # BAD数の平均を計算 (小数点以下四捨五入) - return round(bad_count_sum / bad_count_num) - - -@register.filter -def bad_count_rank(bad_count_list_ordered: list[Bad_Count], music_id_and_myself_id: str) -> str: - """ - 指定された曲の順位を返す - :param bad_count_list_ordered: - :param music_id_and_myself_id: - :return: 順位 - """ - if not bad_count_list_ordered: - return '-' - - # コンマで分割 - music_id_and_myself_id = music_id_and_myself_id.split(",") - music_id = int(music_id_and_myself_id[0]) - myself_id = int(music_id_and_myself_id[1]) - - bad_count_num = 0 # BAD数の個数 - bad_count_now = -1 # 現在のBAD数 - myrank = -1 # 自ランク - found = False # BAD数を登録済であればTrueを返す - tmp_rank = 0 - - for bad_count in bad_count_list_ordered: - if bad_count.music.id == music_id: - bad_count_before = bad_count_now - bad_count_now = bad_count.bad_count - - # BAD数が前後で重複した場合 - if bad_count_now == bad_count_before: - # 指定されたユーザーの記録が見つかれば myrank にランクを格納 - if bad_count.user.id == myself_id: - found = True - myrank = tmp_rank - - bad_count_num += 1 - - # BAD数が重複しなかった場合 - else: - bad_count_num += 1 - - # 一時ランクを更新 - tmp_rank = bad_count_num - - # 自分の記録が見つかれば myrank にランクを格納 - if bad_count.user.id == myself_id: - found = True - myrank = bad_count_num - - if found: - return '%d / %d' % (myrank, bad_count_num) - elif bad_count_num != 0: - return '- / %d' % bad_count_num - else: - return '- / -'