Files
vesti/web/templates/candidates.html
T

97 lines
5.0 KiB
HTML

{% extends "base.html" %}
{% block title %}Кандидаты{% endblock %}
{% block content %}
<h4 class="mb-3">Кандидаты</h4>
{% if error %}<div class="alert alert-danger py-2">❌ {{ error }}</div>{% endif %}
<form class="row g-2 mb-3" method="get" action="/candidates">
<div class="col-auto">
<select name="direction" class="form-select" onchange="this.form.submit()">
<option value="">Все направления</option>
{% for d in directions %}
<option value="{{ d }}" {% if direction == d %}selected{% endif %}>{{ d }}</option>
{% endfor %}
</select>
</div>
<div class="col-auto">
<select name="status" class="form-select" onchange="this.form.submit()">
<option value="new" {% if status=='new' %}selected{% endif %}>Черновики (new)</option>
<option value="rejected" {% if status=='rejected' %}selected{% endif %}>Отклонённые</option>
<option value="published" {% if status=='published' %}selected{% endif %}>Опубликованные</option>
</select>
</div>
<div class="col-auto">
<select name="own" class="form-select" onchange="this.form.submit()">
<option value="" {% if own=='' %}selected{% endif %}>Все посты</option>
<option value="1" {% if own=='1' %}selected{% endif %}>⭐ Только свои</option>
<option value="0" {% if own=='0' %}selected{% endif %}>Только внешние</option>
</select>
</div>
<div class="col-auto">
<button class="btn btn-sm btn-outline-secondary" type="submit">Применить</button>
</div>
</form>
<div id="post-list">
{% for p in posts %}
<div class="card mb-3" id="post-{{ p.id }}">
<div class="card-body">
<div class="d-flex justify-content-between">
<span class="badge bg-secondary">{{ p.direction or '?' }}</span>
<small class="text-muted">{{ p.source_name }} · {{ p.published_at | dt }}</small>
</div>
<div class="post-text mt-2">{{ (p.text or '')[:2000] | markdown }}</div>
{% if p.is_own %}<span class="badge bg-warning text-dark">⭐ СВОЙ</span>{% endif %}
{% if p.relevance %}<span class="badge bg-{{ 'success' if p.relevance=='critical' else 'info' }}">{{ p.relevance }}</span>{% endif %}
{% if p.interest %}<span class="badge bg-warning text-dark">interest {{ p.interest }}</span>{% endif %}
<small class="text-muted ms-2">👁 {{ p.views }} 💬 {{ p.reactions_total }}</small>
{% if p.media_path %}
<span class="badge bg-light text-dark ms-2">🖼 медиа</span>
{% set media_src = '/media/' ~ p.media_path.split('/')[-1] %}
{% set media_ext = p.media_path.lower().rsplit('.', 1)[-1] if '.' in p.media_path else '' %}
{% if media_ext in ['jpg','jpeg','png','gif','webp'] %}
<a href="{{ media_src }}" target="_blank" title="Открыть полноразмер">
<img src="{{ media_src }}" class="img-fluid rounded mt-2 d-block" style="max-height:180px" alt="медиа поста">
</a>
{% elif media_ext in ['mp4','webm','mov'] %}
<video src="{{ media_src }}" controls class="mt-2 d-block" style="max-height:180px"></video>
{% endif %}
{% endif %}
{% if p.fwd_from_channel_id %}<span class="badge bg-light text-dark ms-2">↩︎ форвард</span>{% endif %}
<div class="mt-2">
{% if p.status == 'new' %}
<form class="d-inline" method="post" action="/posts/{{ p.id }}/approve">
<div class="mb-2">
<textarea class="form-control form-control-sm" name="comment" rows="2"
placeholder="Комментарий к посту (по желанию) — будет первым в канале"></textarea>
</div>
{% if p.is_own %}
<div class="mb-2">
<small class="text-muted">Рассылка (fan-out):</small>
{% for d in directions %}
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" name="dirs" value="{{ d }}" id="dir-{{ p.id }}-{{ d }}"
{% if d == (p.direction or 'linux') %}checked{% endif %}>
<label class="form-check-label" for="dir-{{ p.id }}-{{ d }}">{{ d }}</label>
</div>
{% endfor %}
</div>
{% endif %}
<button class="btn btn-sm btn-success" type="submit">✅ Опубликовать</button>
</form>
<form class="d-inline" method="post" action="/posts/{{ p.id }}/reject">
<button class="btn btn-sm btn-outline-danger" type="submit">🚫 Отклонить</button>
</form>
{% elif p.status == 'rejected' %}
<span class="text-danger">Отклонён</span>
{% endif %}
<a class="btn btn-sm btn-outline-secondary" href="{{ p.url }}" target="_blank">Исходник</a>
</div>
</div>
</div>
{% else %}
<div class="alert alert-info">Нет постов</div>
{% endfor %}
</div>
{% endblock %}