This commit is contained in:
Iliyan Angelov
2025-11-26 22:32:20 +02:00
commit ed94dd22dd
150 changed files with 14058 additions and 0 deletions

View File

@@ -0,0 +1,193 @@
{% extends 'base.html' %}
{% load static %}
{% block title %}{{ report.title }} - Портал за Докладване на Измами{% endblock %}
{% block schema_type %}Article{% endblock %}
{% block extra_head %}
<!-- Article Structured Data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "{{ report.title|escapejs }}",
"description": "{{ report.description|truncatewords:30|escapejs }}",
"datePublished": "{{ report.created_at|date:'c' }}",
"dateModified": "{{ report.updated_at|date:'c'|default:report.created_at|date:'c' }}",
"author": {
"@type": "Organization",
"name": "{{ seo.site_name }}"
},
"publisher": {
"@type": "GovernmentOrganization",
"name": "{{ seo.site_name }}",
"logo": {
"@type": "ImageObject",
"url": "{{ seo.site_image }}"
}
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "{{ seo.canonical_url }}"
},
"articleSection": "{{ report.get_scam_type_display }}",
"keywords": "{{ report.tags.all|join:', ' }}, измама, {{ report.get_scam_type_display }}"
}
</script>
{% endblock %}
{% block content %}
<div class="gov-card">
<div class="gov-card-header">
<h1>{{ report.title }}</h1>
<div class="report-badges">
<span class="badge badge-{{ report.scam_type }}">{{ report.get_scam_type_display }}</span>
{% if report.status == 'verified' %}
<span class="badge badge-verified">Потвърдено</span>
{% elif report.status == 'rejected' %}
<span class="badge badge-rejected">Отхвърлено</span>
{% elif report.status == 'pending' %}
<span class="badge badge-pending">Чака Преглед</span>
{% elif report.status == 'under_review' %}
<span class="badge badge-under_review">В Преглед</span>
{% endif %}
{% if report.verification_score %}
<span class="badge badge-score">Проверка: {{ report.verification_score }}%</span>
{% endif %}
</div>
</div>
<div class="gov-card-body">
{% if report.status == 'rejected' and user.is_authenticated and report.reporter == user and rejection_action and rejection_action.reason %}
<div class="gov-alert gov-alert-error" style="margin-bottom: 1.5rem;">
<div class="alert-icon"></div>
<div class="alert-content">
<strong>Докладът е отхвърлен</strong>
<p style="margin: 0.75rem 0 0 0; font-size: 1.05rem;"><strong>Причина за отхвърляне:</strong></p>
<p style="margin: 0.5rem 0 0 0; padding: 0.75rem; background: rgba(220, 53, 69, 0.1); border-radius: 6px; border-left: 3px solid var(--gov-danger);">
{{ rejection_action.reason }}
</p>
<p style="margin: 0.75rem 0 0 0; font-size: 0.9rem; color: var(--gov-gray);">
<strong>Отхвърлен на:</strong> {{ rejection_action.created_at|date:"d.m.Y в H:i" }}<br>
<strong>От:</strong> {{ rejection_action.moderator.username|default:"модератор" }}
</p>
<div style="margin-top: 1rem;">
<a href="{% url 'reports:edit' report.pk %}" class="btn btn-primary btn-sm">Редактиране и Повторно Изпращане</a>
</div>
</div>
</div>
{% endif %}
<div class="info-grid" style="margin-bottom: 2rem;">
<div class="info-item">
<strong>Статус:</strong> <span class="badge badge-{{ report.status }}">{{ report.get_status_display }}</span>
</div>
<div class="info-item">
<strong>Докладвано на:</strong> {{ report.created_at|date:"d F Y, H:i" }}
</div>
<div class="info-item">
<strong>Докладвано от:</strong> {{ report.get_reporter_display }}
</div>
{% if report.verified_at %}
<div class="info-item">
<strong>Потвърдено на:</strong> {{ report.verified_at|date:"d F Y, H:i" }}
</div>
{% endif %}
</div>
<div class="info-section">
<h3>Описание</h3>
<p style="line-height: 1.8; color: var(--gov-dark);">{{ report.description|linebreaks }}</p>
</div>
<div class="info-section">
<h3>Докладвани Обекти</h3>
<ul style="list-style: none; padding: 0;">
{% if report.reported_url %}
<li style="padding: 0.75rem; background: var(--gov-light); margin-bottom: 0.5rem; border-radius: 6px;">
<strong>URL:</strong> <a href="{{ report.reported_url }}" target="_blank" rel="noopener">{{ report.reported_url }}</a>
</li>
{% endif %}
{% if report.reported_email %}
<li style="padding: 0.75rem; background: var(--gov-light); margin-bottom: 0.5rem; border-radius: 6px;">
<strong>Имейл:</strong> {{ report.reported_email }}
</li>
{% endif %}
{% if report.reported_phone %}
<li style="padding: 0.75rem; background: var(--gov-light); margin-bottom: 0.5rem; border-radius: 6px;">
<strong>Телефон:</strong> {{ report.reported_phone }}
</li>
{% endif %}
{% if report.reported_company %}
<li style="padding: 0.75rem; background: var(--gov-light); margin-bottom: 0.5rem; border-radius: 6px;">
<strong>Фирма:</strong> {{ report.reported_company }}
</li>
{% endif %}
</ul>
</div>
{% if report.tags.all %}
<div class="info-section">
<h3>Етикети</h3>
<div class="report-tags">
{% for tag in report.tags.all %}
<span class="tag" style="background-color: {{ tag.color }}">{{ tag.name }}</span>
{% endfor %}
</div>
</div>
{% endif %}
{% if report.verifications.all %}
<div class="info-section">
<h3>Детайли за Проверка</h3>
{% for verification in report.verifications.all %}
<div class="verification-item" style="padding: 1rem; background: var(--gov-light); margin-bottom: 1rem; border-radius: 8px; border-left: 4px solid var(--gov-secondary);">
<strong>{{ verification.get_verification_method_display }}:</strong>
<span>Увереност: {{ verification.confidence_score }}%</span>
{% if verification.notes %}
<p style="margin-top: 0.5rem; color: var(--gov-gray);">{{ verification.notes }}</p>
{% endif %}
</div>
{% endfor %}
</div>
{% endif %}
{% if user.is_authenticated and report.reporter == user %}
<div class="report-actions">
{% if report.status == 'pending' %}
<a href="{% url 'reports:edit' report.pk %}" class="btn btn-secondary">Редактиране</a>
<a href="{% url 'reports:delete' report.pk %}"
class="btn btn-danger"
data-confirm="Сигурни ли сте, че искате да изтриете този доклад? Това действие не може да бъде отменено."
data-confirm-title="Изтриване на Доклад">Изтриване</a>
{% elif report.status == 'rejected' %}
<a href="{% url 'reports:edit' report.pk %}" class="btn btn-primary">Редактиране и Повторно Изпращане</a>
<a href="{% url 'reports:delete' report.pk %}"
class="btn btn-danger"
data-confirm="Сигурни ли сте, че искате да изтриете този отхвърлен доклад? Това действие не може да бъде отменено."
data-confirm-title="Изтриване на Доклад">Изтриване</a>
{% endif %}
</div>
{% endif %}
{% if report.status == 'verified' and report.is_public %}
<div class="report-actions" style="margin-top: 2rem; padding-top: 2rem; border-top: 2px solid var(--gov-gray-light);">
<div style="background: var(--gov-light); padding: 1.5rem; border-radius: 8px; border-left: 4px solid var(--gov-warning);">
<h4 style="margin: 0 0 0.75rem 0; color: var(--gov-primary); display: flex; align-items: center; gap: 0.5rem;">
<span>⚠️</span>
<span>Смятате ли, че този доклад е несправедлив?</span>
</h4>
<p style="margin: 0 0 1rem 0; color: var(--gov-gray); line-height: 1.6;">
Ако сте обект на този доклад и смятате, че информацията е невярна или несправедлива, можете да подадете заявка за премахване.
</p>
<a href="{% url 'reports:takedown_request' report.pk %}" class="btn btn-secondary">
📝 Заявка за Премахване на Доклад
</a>
</div>
</div>
{% endif %}
</div>
</div>
{% endblock %}