161 lines
8.5 KiB
HTML
161 lines
8.5 KiB
HTML
{% extends "portal_base.html" %}
|
|
{% load static i18n %}
|
|
|
|
{% block title %}{{ message.subject }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="max-w-4xl mx-auto py-6 px-4">
|
|
|
|
<!-- Message Header Card -->
|
|
<div class="bg-white rounded-xl shadow-sm border border-gray-200 mb-6">
|
|
<!-- Header with gradient background -->
|
|
<div class="px-6 py-4 border-b border-gray-100" style="background: linear-gradient(135deg, #f5f7fa 0%, #ffffff 100%);">
|
|
<div class="flex flex-col sm:flex-row justify-between items-start gap-4">
|
|
<div>
|
|
<h1 class="text-xl sm:text-2xl font-bold mb-2">{{ message.subject }}</h1>
|
|
{% if message.parent_message %}
|
|
<span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-semibold"
|
|
style="background-color: rgba(157, 34, 53, 0.1); color: #9d2235;">
|
|
{% trans "Reply" %}
|
|
</span>
|
|
{% endif %}
|
|
</div>
|
|
<div class="flex flex-wrap gap-2">
|
|
<a href="{% url 'message_reply' message.id %}"
|
|
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium text-white transition-all duration-200"
|
|
style="background-color: #9d2235;"
|
|
onmouseover="this.style.backgroundColor='#7a1a29'"
|
|
onmouseout="this.style.backgroundColor='#9d2235'">
|
|
<i class="fas fa-reply"></i>
|
|
{% trans "Reply" %}
|
|
</a>
|
|
<a href="{% url 'message_list' %}"
|
|
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium border-2 border-gray-200 text-gray-700 hover:bg-gray-50 transition-all duration-200">
|
|
<i class="fas fa-arrow-left"></i>
|
|
{% trans "Back" %}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Message Details -->
|
|
<div class="p-6">
|
|
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4 mb-4">
|
|
<div>
|
|
<span class="text-sm text-gray-500 block mb-1">{% trans "From:" %}</span>
|
|
<span class="font-semibold" style="color: #9d2235;">
|
|
{% if message.sender == request.user %}
|
|
{% trans "Me" %}
|
|
{% else %}
|
|
{{ message.sender.get_full_name|default:message.sender.username }}
|
|
{% endif %}
|
|
</span>
|
|
</div>
|
|
<div>
|
|
<span class="text-sm text-gray-500 block mb-1">{% trans "To:" %}</span>
|
|
<span class="font-semibold">{{ message.recipient.get_full_name|default:message.recipient.username }}</span>
|
|
</div>
|
|
<div>
|
|
<span class="text-sm text-gray-500 block mb-1">{% trans "Type:" %}</span>
|
|
<span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-semibold"
|
|
style="background-color: rgba(157, 34, 53, 0.1); color: #9d2235;">
|
|
{{ message.get_message_type_display }}
|
|
</span>
|
|
</div>
|
|
<div>
|
|
<span class="text-sm text-gray-500 block mb-1">{% trans "Status:" %}</span>
|
|
{% if message.is_read %}
|
|
<span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-semibold bg-green-100 text-green-800">
|
|
{% trans "Read" %}
|
|
</span>
|
|
{% if message.read_at %}
|
|
<span class="text-gray-500 text-xs ml-2">({{ message.read_at|date:"M d, Y H:i" }})</span>
|
|
{% endif %}
|
|
{% else %}
|
|
<span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-semibold bg-yellow-100 text-yellow-800">
|
|
{% trans "Unread" %}
|
|
</span>
|
|
{% endif %}
|
|
</div>
|
|
<div>
|
|
<span class="text-sm text-gray-500 block mb-1">{% trans "Created:" %}</span>
|
|
<span class="font-semibold">{{ message.created_at|date:"M d, Y H:i" }}</span>
|
|
</div>
|
|
{% if message.job %}
|
|
<div>
|
|
<span class="text-sm text-gray-500 block mb-1">{% trans "Related Job:" %}</span>
|
|
<span class="font-semibold">{{ message.job.title }}</span>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if message.parent_message %}
|
|
<div class="px-4 py-3 rounded-lg" style="background-color: rgba(157, 34, 53, 0.05); border: 1px solid rgba(157, 34, 53, 0.1);">
|
|
<strong class="text-sm">{% trans "In reply to:" %}</strong>
|
|
<a href="{% url 'message_detail' message.parent_message.id %}"
|
|
class="ml-2 hover:underline"
|
|
style="color: #9d2235;">
|
|
{{ message.parent_message.subject }}
|
|
</a>
|
|
<div class="text-gray-500 text-sm mt-2">
|
|
{% trans "From" %} {{ message.parent_message.sender.get_full_name|default:message.parent_message.sender.username }}
|
|
{% trans "on" %} {{ message.parent_message.created_at|date:"M d, Y H:i" }}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Message Content Card -->
|
|
<div class="bg-white rounded-xl shadow-sm border border-gray-200 mb-6">
|
|
<div class="p-6">
|
|
<div class="message-content whitespace-pre-wrap break-words leading-relaxed p-6 rounded-lg"
|
|
style="background-color: #f8f9fa; border: 1px solid #e9ecef;">
|
|
{{ message.content|linebreaks }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Replies Section -->
|
|
{% if message.replies.all %}
|
|
<div class="bg-white rounded-xl shadow-sm border border-gray-200">
|
|
<div class="px-6 py-4 border-b border-gray-100" style="background-color: #f8f9fa;">
|
|
<h2 class="text-lg font-bold flex items-center gap-2">
|
|
<i class="fas fa-comments" style="color: #9d2235;"></i>
|
|
{% trans "Replies" %}
|
|
<span class="inline-flex items-center justify-center w-5 h-5 rounded-full text-xs font-semibold text-white"
|
|
style="background-color: #9d2235;">
|
|
{{ message.replies.count }}
|
|
</span>
|
|
</h2>
|
|
</div>
|
|
<div class="p-6 space-y-4">
|
|
{% for reply in message.replies.all %}
|
|
<div class="p-4 rounded-lg hover:shadow-md transition-shadow"
|
|
style="background-color: #f8f9fa;">
|
|
<div class="flex justify-between items-start mb-2">
|
|
<div>
|
|
<span class="font-semibold">{{ reply.sender.get_full_name|default:reply.sender.username }}</span>
|
|
<span class="text-gray-500 text-sm ml-2">{{ reply.created_at|date:"M d, Y H:i" }}</span>
|
|
</div>
|
|
<span class="inline-flex items-center px-2.5 py-1 rounded-full text-xs font-semibold"
|
|
style="background-color: rgba(157, 34, 53, 0.1); color: #9d2235;">
|
|
{{ reply.get_message_type_display }}
|
|
</span>
|
|
</div>
|
|
<div class="whitespace-pre-wrap break-words leading-relaxed mb-3">
|
|
{{ reply.content|linebreaks }}
|
|
</div>
|
|
<a href="{% url 'message_reply' reply.id %}"
|
|
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium border-2 border-gray-200 text-gray-700 hover:bg-gray-50 transition-all duration-200">
|
|
<i class="fas fa-reply"></i>
|
|
{% trans "Reply" %}
|
|
</a>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
</div>
|
|
{% endblock %} |