110 lines
6.0 KiB
HTML
110 lines
6.0 KiB
HTML
{% extends 'base.html' %}
|
|
|
|
{% block title %}Автоматично Генерирани Доклади - OSINT{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="gov-card">
|
|
<div class="gov-card-header">
|
|
<h2>Автоматично Генерирани Доклади от OSINT</h2>
|
|
</div>
|
|
<div class="gov-card-body">
|
|
<!-- Statistics -->
|
|
<div class="stats-grid" style="margin-bottom: 2rem;">
|
|
<div class="stat-card">
|
|
<h3>{{ pending_count }}</h3>
|
|
<p>Чакащи Преглед</p>
|
|
</div>
|
|
<div class="stat-card">
|
|
<h3>{{ approved_count }}</h3>
|
|
<p>Одобрени</p>
|
|
</div>
|
|
<div class="stat-card">
|
|
<h3>{{ published_count }}</h3>
|
|
<p>Публикувани</p>
|
|
</div>
|
|
<div class="stat-card">
|
|
<h3>{{ rejected_count }}</h3>
|
|
<p>Отхвърлени</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Filter Bar -->
|
|
<div class="filter-bar" style="margin-bottom: 2rem;">
|
|
<a href="?status=" class="btn btn-sm {% if not request.GET.status %}btn-primary{% else %}btn-secondary{% endif %}">Всички</a>
|
|
<a href="?status=pending" class="btn btn-sm {% if request.GET.status == 'pending' %}btn-primary{% else %}btn-secondary{% endif %}">Чакащи</a>
|
|
<a href="?status=approved" class="btn btn-sm {% if request.GET.status == 'approved' %}btn-primary{% else %}btn-secondary{% endif %}">Одобрени</a>
|
|
<a href="?status=published" class="btn btn-sm {% if request.GET.status == 'published' %}btn-primary{% else %}btn-secondary{% endif %}">Публикувани</a>
|
|
<a href="?status=rejected" class="btn btn-sm {% if request.GET.status == 'rejected' %}btn-primary{% else %}btn-secondary{% endif %}">Отхвърлени</a>
|
|
</div>
|
|
|
|
{% if auto_reports %}
|
|
<div class="reports-list">
|
|
{% for auto_report in auto_reports %}
|
|
<div class="report-card" style="border-left: 4px solid {% if auto_report.status == 'pending' %}#ffc107{% elif auto_report.status == 'approved' %}#28a745{% elif auto_report.status == 'published' %}#17a2b8{% else %}#dc3545{% endif %};">
|
|
<div class="report-header">
|
|
<h3>
|
|
<a href="{% url 'osint:auto_report_detail' auto_report.pk %}">{{ auto_report.title }}</a>
|
|
</h3>
|
|
<div>
|
|
<span class="badge badge-{{ auto_report.status }}">{{ auto_report.get_status_display }}</span>
|
|
<span class="badge" style="background: linear-gradient(135deg, #17a2b8 0%, #138496 100%); color: white;">
|
|
Увереност: {{ auto_report.confidence_score }}%
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="report-meta">
|
|
<span>🔗 <a href="{{ auto_report.source_url }}" target="_blank" rel="noopener">{{ auto_report.source_url|truncatechars:60 }}</a></span>
|
|
<span>📅 Създадено: {{ auto_report.created_at|date:"d F Y, H:i" }}</span>
|
|
{% if auto_report.reviewed_by %}
|
|
<span>👤 Прегледано от: {{ auto_report.reviewed_by.username }}</span>
|
|
{% endif %}
|
|
</div>
|
|
<div class="report-description">
|
|
{{ auto_report.description|truncatewords:50 }}
|
|
</div>
|
|
{% if auto_report.matched_keywords.all %}
|
|
<div class="report-tags">
|
|
<strong>Намерени Ключови Думи:</strong>
|
|
{% for keyword in auto_report.matched_keywords.all %}
|
|
<span class="badge badge-info">{{ keyword.name }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
<div class="report-actions">
|
|
<a href="{% url 'osint:auto_report_detail' auto_report.pk %}" class="btn btn-sm btn-primary">Преглед</a>
|
|
{% if auto_report.status == 'pending' %}
|
|
<a href="{% url 'osint:approve_auto_report' auto_report.pk %}" class="btn btn-sm btn-success">Одобри</a>
|
|
<a href="{% url 'osint:reject_auto_report' auto_report.pk %}" class="btn btn-sm btn-danger">Отхвърли</a>
|
|
{% endif %}
|
|
{% if auto_report.report %}
|
|
<a href="{% url 'reports:detail' auto_report.report.pk %}" class="btn btn-sm btn-secondary">Виж Доклад</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<!-- Pagination -->
|
|
{% if page_obj.has_other_pages %}
|
|
<div class="pagination">
|
|
{% if page_obj.has_previous %}
|
|
<a href="?page=1{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}" class="btn btn-secondary">Първа</a>
|
|
<a href="?page={{ page_obj.previous_page_number }}{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}" class="btn btn-secondary">Предишна</a>
|
|
{% endif %}
|
|
<span class="page-info">Страница {{ page_obj.number }} от {{ page_obj.paginator.num_pages }}</span>
|
|
{% if page_obj.has_next %}
|
|
<a href="?page={{ page_obj.next_page_number }}{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}" class="btn btn-secondary">Следваща</a>
|
|
<a href="?page={{ page_obj.paginator.num_pages }}{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}" class="btn btn-secondary">Последна</a>
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
{% else %}
|
|
<div class="empty-state">
|
|
<p>Няма автоматично генерирани доклади.</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|