diff --git a/server/app.py b/server/app.py index 70a6b3a..44e2853 100644 --- a/server/app.py +++ b/server/app.py @@ -48,6 +48,7 @@ from entertainment_decider.models import ( PreferenceScore, Query, Tag, + are_multiple_considered, db, MediaCollection, MediaCollectionLink, @@ -332,6 +333,11 @@ def time_since(date: datetime) -> str: return "today" if missing_time else "now" +@flask_app.template_filter("are_considered") +def _template_are_multiple_considered(elem_ids: Iterable[int]) -> Mapping[int, bool]: + return are_multiple_considered(elem_ids) + + #### # Routes #### diff --git a/server/templates/macros.htm b/server/templates/macros.htm index 40f09d0..51dfae4 100644 --- a/server/templates/macros.htm +++ b/server/templates/macros.htm @@ -382,6 +382,7 @@ element=None, link=None, check_considered=True, + is_considered=True, link_collection=True, ) %} {% set element = link.element if link else element %} @@ -415,7 +416,9 @@ {%- if element.watched %} watched {%- elif element.ignored %} ignored {%- elif ( - check_considered and not element.can_considered + not check_considered and not is_considered + ) or ( + check_considered and not element.can_considered ) %} not_considered {%- endif -%} "> @@ -454,6 +457,7 @@ link_collection=True, ) %} {%- set l = elements or links -%} + {%- set considered = (links|map(attribute="element") if links else elements)|map(attribute="id")|are_considered -%}
{% for o in l %} {% set elem = o.element if links else o %} @@ -461,6 +465,7 @@ element=o if not links else None, link=o if links else None, check_considered=False, + is_considered=considered[elem.id] if check_considered else True, link_collection=link_collection, ) }} {% endfor %}