From 8d26c97e6b110caf6b32469ffc59d93d10174b39 Mon Sep 17 00:00:00 2001 From: kpa39l Date: Tue, 15 Sep 2026 18:17:07 +0000 Subject: [PATCH] =?UTF-8?q?selected-layout-stay:=20=D0=BE=D1=82=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=20=D0=BE=D1=81=D1=82=D0=B0=D1=91=D1=82=D1=81=D1=8F?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=BA=D0=B0=D0=BD=D0=B4=D0=B8=D0=B4=D0=B0?= =?UTF-8?q?=D1=82=D0=B0=D1=85;=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B5=20=E2=80=94=20layout=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B2=D1=81=D1=8E=20=D0=B2=D1=8B=D1=81=D0=BE=D1=82=D1=83=20(?= =?UTF-8?q?=D1=80=D0=B5=D0=B7=D1=8E=D0=BC=D0=B5=20=D0=BF=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=D0=BC=D0=B8,=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=BE=D1=80+=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D0=B3=D0=B8=D0=BD=D0=B0=D0=BB=20=D0=B2=20=D1=80=D0=BE=D1=81?= =?UTF-8?q?=D1=82,=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=D0=BD=D0=B8=D0=B7=D1=83)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- STATUS.md | 3 +- .../selected-layout-stay/.openspec.yaml | 3 + .../changes/selected-layout-stay/design.md | 92 +++++++++ .../changes/selected-layout-stay/proposal.md | 68 +++++++ .../changes/selected-layout-stay/tasks.md | 13 ++ web/app.py | 8 +- web/templates/candidates.html | 4 +- web/templates/selected.html | 189 +++++++++--------- 8 files changed, 283 insertions(+), 97 deletions(-) create mode 100644 openspec/changes/selected-layout-stay/.openspec.yaml create mode 100644 openspec/changes/selected-layout-stay/design.md create mode 100644 openspec/changes/selected-layout-stay/proposal.md create mode 100644 openspec/changes/selected-layout-stay/tasks.md diff --git a/STATUS.md b/STATUS.md index 176807b..b35b5ab 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,8 +1,9 @@ # VESTI — Статус -Обновлено: 2026-09-14 (кандидаты: сохраняем группировку после действий) +Обновлено: 2026-09-15 (отбор без ухода со страницы + layout отобранных на всю высоту)
-
+
Группировка: {% for val, label in [('source', 'источник'), ('date', 'дата'), ('status', 'статус')] %} @@ -119,7 +119,7 @@
-
+
{% if selected %}
#{{ selected.id }} {{ selected.source_name or '?' }}
diff --git a/web/templates/selected.html b/web/templates/selected.html index 4eaccee..7b2d71c 100644 --- a/web/templates/selected.html +++ b/web/templates/selected.html @@ -43,7 +43,7 @@
-
+
Группировка: {% for val, label in [('source', 'источник'), ('date', 'дата'), ('status', 'статус')] %} @@ -111,103 +111,112 @@
-
-
- {% if selected %} -
-
#{{ selected.id }} {{ selected.source_name or '?' }}
- {{ (selected.published_at or selected.fetched_at) | dt }} -
-
- {% if selected.direction %}{{ selected.direction }}{% endif %} - {% if selected.relevance %}{{ selected.relevance }}{% endif %} - {% if selected.interest %}interest {{ selected.interest }}{% endif %} - {% if selected.is_own %}⭐ СВОЙ{% endif %} - {% if selected.fwd_from_channel_id %}↩︎ форвард{% endif %} - 👁 {{ selected.views }} 💬 {{ selected.reactions_total }} - {% if selected.url %}Исходник{% endif %} -
-
- {% set hid %}{% endset %} -
- {% if selected.status != 'published' %} -
- {{ hid }} - -
- {% endif %} - {% if selected.status != 'published' %} -
- {{ hid }} - -
- {% endif %} - {% if selected.status != 'rejected' and selected.status != 'published' %} -
- {{ hid }} - -
- {% endif %} +
+
+ {% if selected %} +
+
#{{ selected.id }} {{ selected.source_name or '?' }}
+ {{ (selected.published_at or selected.fetched_at) | dt }}
- {% if selected.status != 'published' %} -
- {{ hid }} - - -
- - -
-
- {% endif %} -
- - -
-
-
-
✍️ Мой пост (редактируйте/сохраните — пойдёт в канал от вашего имени)
-
+
+ {% if selected.direction %}{{ selected.direction }}{% endif %} + {% if selected.relevance %}{{ selected.relevance }}{% endif %} + {% if selected.interest %}interest {{ selected.interest }}{% endif %} + {% if selected.is_own %}⭐ СВОЙ{% endif %} + {% if selected.fwd_from_channel_id %}↩︎ форвард{% endif %} + 👁 {{ selected.views }} 💬 {{ selected.reactions_total }} + {% if selected.url %}Исходник{% endif %} +
+ {% set hid %}{% endset %} + +
+ {% if selected.status != 'published' %} + {{ hid }} - -
- + + + {% endif %} + {% if selected.status != 'published' %} +
+ {{ hid }} + +
+ {% endif %} + {% if selected.status != 'rejected' and selected.status != 'published' %} +
+ {{ hid }} + +
+ {% endif %} +
+ + {% if selected.summary %} +
+
+ резюме {{ selected.summary }} +
+
+ {% endif %} +
+ +
+
+
✍️ Мой пост (редактируйте/сохраните — пойдёт в канал от вашего имени)
+
+ {{ hid }} + +
+ +
+
+
+
+
Оригинальный пост
+
+ {% if selected.text %} +
{{ selected.text | markdown }}
+ {% endif %} + {% if selected.media_path %} + {% set media_src = '/media/' ~ selected.media_path.split('/')[-1] %} + {% set media_ext = selected.media_path.lower().rsplit('.', 1)[-1] if '.' in selected.media_path else '' %} + {% if media_ext in ['jpg','jpeg','png','gif','webp'] %} + + медиа поста + + {% elif media_ext in ['mp4','webm','mov'] %} + + {% else %} + 📎 Медиафайл + {% endif %} + {% endif %} +
+
+
+
+ + {% if selected.status != 'published' %} +
+
+ {{ hid }} + + +
+ +
-
-
Оригинальный пост
-
- {% if selected.text %} -
{{ selected.text | markdown }}
- {% endif %} - {% if selected.media_path %} - {% set media_src = '/media/' ~ selected.media_path.split('/')[-1] %} - {% set media_ext = selected.media_path.lower().rsplit('.', 1)[-1] if '.' in selected.media_path else '' %} - {% if media_ext in ['jpg','jpeg','png','gif','webp'] %} - - медиа поста - - {% elif media_ext in ['mp4','webm','mov'] %} - - {% else %} - 📎 Медиафайл - {% endif %} - {% endif %} - {% if selected.summary %}
резюме {{ selected.summary }}
{% endif %} -
-
-
+ {% endif %} - {% else %} -
Выберите отобранный пост слева
- {% endif %} + {% else %} +
Выберите отобранный пост слева
+ {% endif %} +
-
{% endblock %} {% block scripts %}