candidates UI: full width, action and bulk buttons

- base.html: container -> container-fluid (nav and content full width)
- Right pane: large buttons Publish / Process with local model /
  Rewrite / Reject (for new candidates)
- Left pane bottom: bulk operations panel with 4 visible buttons
  (Publish / Process / Reject / Stale) instead of hidden select
- bulk: action 'process' reclassifies selected with local model
  (impl_reclassify extracted); ids optional (empty selection ->
  no_selection redirect instead of 422); redirect preserves filters
- Tests: full width, buttons present, bulk empty/process, published/metrics — green
This commit is contained in:
kpa39l
2026-09-13 21:01:30 +00:00
parent 60617de0cb
commit 0e487f672a
3 changed files with 69 additions and 42 deletions
+3 -3
View File
@@ -6,14 +6,14 @@
<title>VESTI — {% block title %}Управление{% endblock %}</title>
<link href="/static/bootstrap.min.css" rel="stylesheet">
<style>
body { padding-top: 2rem; background: #f5f6fa; }
body { padding-top: 1.5rem; background: #f5f6fa; }
.card { box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.post-text { white-space: pre-wrap; max-height: 140px; overflow-y: auto; font-size: .9rem; }
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container">
<div class="container-fluid">
<a class="navbar-brand" href="/candidates">📰 VESTI</a>
<div class="navbar-nav">
<a class="nav-link" href="/candidates">Кандидаты</a>
@@ -23,7 +23,7 @@
</div>
</div>
</nav>
<div class="container mt-4">
<div class="container-fluid mt-2 px-3">
{% block content %}{% endblock %}
</div>
</body>