Allow to manually set single media dependencies

master
Felix Stupp 2 years ago
parent e964b3f3f3
commit d8bfb5061d
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -1169,6 +1169,46 @@ def api_media_element(media_id: int) -> ResponseReturnValue:
}, 405
@flask_app.route("/api/media/add_blocking", methods=["POST"])
def api_media_add_blocking() -> ResponseReturnValue:
data = request.form.to_dict()
blocked_by_id = data.get("blocked_by")
is_blocking_id = data.get("is_blocking")
blocked_by: Optional[MediaElement] = (
MediaElement.get(id=blocked_by_id) if blocked_by_id else None
)
is_blocking: Optional[MediaElement] = (
MediaElement.get(id=is_blocking_id) if is_blocking_id else None
)
if not blocked_by or not is_blocking:
return {
"status": False,
"error": f"Object not found",
}, 404
blocked_by.is_blocking.add(is_blocking)
return redirect_back_or_okay()
@flask_app.route("/api/media/remove_blocking", methods=["POST"])
def api_media_remove_blocking() -> ResponseReturnValue:
data = request.form.to_dict()
blocked_by_id = data.get("blocked_by")
is_blocking_id = data.get("is_blocking")
blocked_by: Optional[MediaElement] = (
MediaElement.get(id=blocked_by_id) if blocked_by_id else None
)
is_blocking: Optional[MediaElement] = (
MediaElement.get(id=is_blocking_id) if is_blocking_id else None
)
if not blocked_by or not is_blocking:
return {
"status": False,
"error": f"Object not found",
}, 404
blocked_by.is_blocking.remove(is_blocking)
return redirect_back_or_okay()
def _api_media_set_x(call: Callable[[MediaElement], Any]) -> ResponseReturnValue:
data = request.form.to_dict()
ids = _parse_cs_ids(data.get("ids", "NULL"))

@ -81,6 +81,52 @@
<li>{{ link.uri | as_link }} {% if element.uri == link.uri %}*{% endif %}</li>
{% endfor %}
</ul>
<h2>Blocked By</h2>
<form class="form-single-button" action="/api/media/add_blocking" method="post">
{{ macros.hidden_redirect_back() }}
<input type="hidden" name="is_blocking" value="{{ element.id }}" />
<input type="number" name="blocked_by" />
<button type="submit">
add
</button>
</form>
{% if element.blocked_by %}
<div class="thumbnail_list">
{% for sub_elem in element.blocked_by %}
{% call macros.media_thumbnail_view(
element=sub_elem,
check_considered=True,
) %}
{% call macros.post_form("/api/media/remove_blocking", "blocked_by", sub_elem.id|string, "X") %}
<input type="hidden" name="is_blocking" value="{{ element.id }}" />
{% endcall %}
{% endcall %}
{% endfor %}
</div>
{% endif %}
<h2>Is Blocking</h2>
<form class="form-single-button" action="/api/media/add_blocking" method="post">
{{ macros.hidden_redirect_back() }}
<input type="hidden" name="blocked_by" value="{{ element.id }}" />
<input type="number" name="is_blocking" />
<button type="submit">
add
</button>
</form>
{% if element.is_blocking %}
<div class="thumbnail_list">
{% for sub_elem in element.is_blocking %}
{% call macros.media_thumbnail_view(
element=sub_elem,
check_considered=True,
) %}
{% call macros.post_form("/api/media/remove_blocking", "is_blocking", sub_elem.id|string, "X") %}
<input type="hidden" name="blocked_by" value="{{ element.id }}" />
{% endcall %}
{% endcall %}
{% endfor %}
</div>
{% endif %}
</div>
</div>
</body>

Loading…
Cancel
Save