diff --git a/backend/requests_app/views.py b/backend/requests_app/views.py index 90f7db02..837481e3 100644 --- a/backend/requests_app/views.py +++ b/backend/requests_app/views.py @@ -278,7 +278,18 @@ def my_requests(request): @login_required def request_detail(request, pk): req = get_object_or_404(DETAIL_REQUEST_QS, pk=pk, employee=request.user) - return render(request, "requests_app/request_detail.html", {"request_obj": req}) + + # Проверяем, может ли пользователь обрабатывать заявления + # (является получателем этого заявления или имеет права) + user_can_process = ( + request.user in req.recipients.all() or + can_process_requests(request.user) + ) + + return render(request, "requests_app/request_detail.html", { + "request_obj": req, + "can_process": user_can_process + }) @login_required diff --git a/backend/templates/requests_app/request_detail.html b/backend/templates/requests_app/request_detail.html index 3c4c035a..120a8724 100644 --- a/backend/templates/requests_app/request_detail.html +++ b/backend/templates/requests_app/request_detail.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% load static %} -{% block title %}Заявление #{{ request_obj.id }}{% endblock %} +{% block title %}Заявление #{{ request.id }}{% endblock %} {% block extra_css %} @@ -29,16 +29,20 @@ {# ===== Основная информация о заявлении ===== #}
-
-
- +
+
+ {% if request.employee.avatar %} + Аватар + {% else %} + + {% endif %}
-
- +
+ {{ request_obj.employee.full_name|default:request_obj.employee.display_name }} - + {# статус — бейдж #} {% if request_obj.status == 'pending' %} @@ -55,42 +59,116 @@ Неизвестно {% endif %} + {# тип заявления #} + + {{ request_obj.get_type_display }} +
-
- +
+ {% if request_obj.date_from or request_obj.date_to %} · Период: {{ request_obj.date_from|date:'d.m.Y' }}{% if request_obj.date_to %} — {{ request_obj.date_to|date:'d.m.Y' }}{% endif %} {% endif %}
- {# Отозвать — временно отключено (TODO: добавить в urls_front.py) - {% if request_obj.status == 'pending' and not request_obj.is_final %} - - Отозвать - + {# Кнопки действий #} + {% if can_process and request_obj.status == 'pending' %} +
+ + +
{% endif %} - #} +
+ {# Тема заявления #} {% if request_obj.title %} -
{{ request_obj.title }}
+
+ Тема: +
{{ request_obj.title }}
+
{% endif %} + {# Комментарий сотрудника #}
Комментарий:
{{ request_obj.comment|default:"—"|linebreaksbr }}
+ {# Получатели #} + {% if request_obj.recipients.exists %} +
+ + Получатели: + +
+ {% for recipient in request_obj.recipients.all %} + + {{ recipient.full_name|default:recipient.display_name }} + + {% endfor %} +
+
+ {% endif %} + + {# Копия #} + {% if request_obj.cc_users.exists %} +
+ + В копии: + +
+ {% for cc_user in request_obj.cc_users.all %} + + {{ cc_user.full_name|default:cc_user.display_name }} + + {% endfor %} +
+
+ {% endif %} + + {# Согласующий #} + {% if request_obj.approver %} +
+ + Согласовал: + + + {{ request_obj.approver.full_name|default:request_obj.approver.display_name }} + + {% if request_obj.decided_at %} + + {{ request_obj.decided_at|date:"d.m.Y H:i" }} + + {% endif %} +
+ {% endif %} + + {# Вложение #} {% if request_obj.attachment_url %} - - - Вложение - + {% endif %}
@@ -98,7 +176,7 @@ {# ===== Комментарии ===== #}
-
+
@@ -114,14 +192,14 @@
- {{ c.author.full_name|default:c.author.display_name }} + {{ c.author.full_name|default:c.author.display_name }} · - +
{# удалить — только автору комментария #} {% if c.author.id == request.user.id %} -
+ {% csrf_token %} +
+ + +
+
+ + +