You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
342 lines
15 KiB
HTML
342 lines
15 KiB
HTML
{% load static %}
|
|
|
|
<div class="flex justify-between items-center gap-3 bg-slate-700 border border-slate-700 text-white py-2 px-3 rounded-md shadow-md">
|
|
<div>
|
|
<p>{{epic.start_date}} - {{epic.end_date}}<p>
|
|
</div>
|
|
<div class="flex justify-end items-center gap-3">
|
|
<button class="bg-transparent border border-white text-white rounded-md py-2 px-3 cursor-pointer hover:bg-white hover:text-slate-700">Edit Epic</button>
|
|
<button class="bg-transparent border border-white text-white rounded-md py-2 px-3 cursor-pointer hover:bg-white hover:text-slate-700">Delete Epic</button>
|
|
<button class="bg-transparent border border-white text-white rounded-md py-2 px-3 cursor-pointer hover:bg-white hover:text-slate-700">View Epic</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- TASKS ON DESKTOP -->
|
|
<div class="hidden md:block mt-5">
|
|
<!-- TASKS TABLE -->
|
|
{% for task in related_tasks %}
|
|
<div class="w-full h-fit bg-white p-3 rounded-md shadow-md mb-5">
|
|
<div class="w-full bg-white h-fit rounded-md border border-gray-200">
|
|
<!-- TABLE HEADER -->
|
|
<div class="w-full h-[70px] rounded-t-md grid grid-cols-2">
|
|
{% if task.status == 'Open' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 bg-blue-500 rounded-tl-md text-xl text-white font-semibold">
|
|
<p>{{task.name}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 bg-yellow-500 rounded-tl-md text-xl text-white font-semibold">
|
|
<p>{{task.name}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Closed' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 bg-green-700 rounded-tl-md text-xl text-white font-semibold">
|
|
<p>{{task.name}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="grid grid-cols-3">
|
|
{% if task.status == 'Open' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-blue-500">
|
|
<p>{{task.status}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-yellow-500">
|
|
<p>{{task.status}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Closed' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-green-700">
|
|
<p>{{task.status}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Open' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-blue-500">
|
|
<p>{{task.formatted_start_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-yellow-500">
|
|
<p>{{task.formatted_start_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Closed' %}
|
|
<div
|
|
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-green-700">
|
|
<p>{{task.formatted_start_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Open' %}
|
|
{% if task.end_date < current_date %} <div
|
|
class="flex justify-center items-center border-b border-gray-200 text-white bg-red-500 rounded-tr-md">
|
|
<p>{{task.formatted_end_date}}</p>
|
|
</div>
|
|
{% else %}
|
|
<div
|
|
class="flex justify-center items-center border-b border-gray-200 text-white bg-blue-500 rounded-tr-md">
|
|
<p>{{task.formatted_end_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
{% if task.end_date < current_date %} <div
|
|
class="flex justify-center items-center border-b border-gray-200 text-white bg-red-500 rounded-tr-md">
|
|
<p>{{task.formatted_end_date}}</p>
|
|
</div>
|
|
{% else %}
|
|
<div
|
|
class="flex justify-center items-center border-b border-gray-200 text-white bg-yellow-500 rounded-tr-md">
|
|
<p>{{task.formatted_end_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Closed' %}
|
|
{% if task.end_date < current_date %} <div
|
|
class="flex justify-center items-center border-b border-gray-200 text-white bg-red-500 rounded-tr-md">
|
|
<p>{{task.formatted_end_date}}</p>
|
|
</div>
|
|
{% else %}
|
|
<div class="flex justify-center items-center border-b border-gray-200 text-white bg-green-700 rounded-tr-md">
|
|
<p>{{task.formatted_end_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- TABLE BODY -->
|
|
<div class="w-full h-fit grid grid-cols-2">
|
|
<!-- LEFT SIDE OF TABLE BODY -->
|
|
<div class="h-fit bg-white p-3 rounded-bl-md">
|
|
<!-- 1st row -->
|
|
<div class="w-full flex flex-col gap-2">
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Project:</p>
|
|
<p class="text-slate-700 text-base">{{task.project.name}}</p>
|
|
</div>
|
|
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Epic:</p>
|
|
<p class="text-slate-700 text-base">{{task.epic.title}}</p>
|
|
</div>
|
|
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Assigned To:</p>
|
|
<p class="text-slate-700 text-base">{{task.assigned_to.user.first_name}}
|
|
{{task.assigned_to.user.last_name}}</p>
|
|
</div>
|
|
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Files:</p>
|
|
<p class="text-slate-700 text-base"></p>
|
|
</div>
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Tags:</p>
|
|
<p class="text-slate-700 text-base"></p>
|
|
</div>
|
|
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Extra:</p>
|
|
<p class="text-slate-700 text-base">{{task.extra}}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- RIGHT SIDE OF TABLE BODY -->
|
|
<div class="h-fit bg-white grid grid-cols-3 rounded-br-md">
|
|
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500">Close</button>
|
|
|
|
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 updateStatusButton"
|
|
data-modal-url="{% url 'edittaskstatusmodal' task.task_id %}">Update
|
|
Status</button>
|
|
|
|
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500"
|
|
>Add
|
|
Time</button>
|
|
|
|
<button
|
|
class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 deleteTaskButton">Delete</button>
|
|
|
|
<a href="{% url 'edittask' task.task_id %}">
|
|
<button class="w-full p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500">Edit</button>
|
|
</a>
|
|
|
|
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 showPointsButton"
|
|
data-modal-url="{% url 'showpoints' task.task_id %}">Show
|
|
Points</button>
|
|
|
|
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 addPointButton"
|
|
data-modal-url="{% url 'addpointmodal' task.task_id %}">Add
|
|
Point</button>
|
|
|
|
<a href="{% url 'detailed-task' task.task_id %}">
|
|
<button
|
|
class="w-full p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500">Details</button>
|
|
</a>
|
|
|
|
<button
|
|
class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 rounded-br-md timelineButton"
|
|
data-modal-url="{% url 'timeline' %}">Timeline</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<!-- TASKS ON MOBILE -->
|
|
<div class="block md:hidden">
|
|
{% for task in related_tasks %}
|
|
<div class="w-full h-fit bg-white p-3 rounded-md shadow-md mb-5">
|
|
<div class="border border-gray-200 rounded-t-md">
|
|
<div class="w-full rounded-t-md">
|
|
{% if task.status == 'Open' %}
|
|
<div
|
|
class="w-full flex justify-center items-center text-white text-center bg-red-500 rounded-t-md py-5 px-3">
|
|
<p>{{task.name}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
<div
|
|
class="w-full flex justify-center items-center text-white text-center bg-orange-500 rounded-t-md py-5 px-3">
|
|
<p>{{task.name}}</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
|
|
<div class="grid grid-cols-3 border-t border-gray-200">
|
|
{% if task.status == 'Open' %}
|
|
<div
|
|
class="text-white bg-red-500 border-r border-gray-200 flex justify-center items-center text-center py-3 text-sm">
|
|
<p>{{task.status}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
<div
|
|
class="text-white bg-orange-500 border-r border-gray-200 flex justify-center items-center text-center py-3 text-sm">
|
|
<p>{{task.status}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
{% if task.status == 'Open' %}
|
|
<div
|
|
class="text-white bg-red-500 border-r border-gray-200 flex justify-center items-center text-center py-3 text-sm">
|
|
<p>{{task.start_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
<div
|
|
class="text-white bg-orange-500 border-r border-gray-200 flex justify-center items-center text-center py-3 text-sm">
|
|
<p>{{task.start_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
{% if task.status == 'Open' %}
|
|
<div class="text-white bg-red-500 flex justify-center items-center text-center py-3 text-sm">
|
|
<p>{{task.end_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if task.status == 'Working On' %}
|
|
<div class="text-white bg-orange-500 flex justify-center items-center text-center py-3 text-sm">
|
|
<p>{{task.end_date}}</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
|
|
<div class="w-full flex flex-col gap-2 p-3">
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Project:</p>
|
|
<p class="text-slate-700 text-base">{{task.project.name}}</p>
|
|
</div>
|
|
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Epic:</p>
|
|
<p class="text-slate-700 text-base">{{task.epic.title}}</p>
|
|
</div>
|
|
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Assigned To:</p>
|
|
<p class="text-slate-700 text-base">{{task.assigned_to.user.first_name}}
|
|
{{task.assigned_to.user.last_name}}</p>
|
|
</div>
|
|
|
|
<div class="flex justify-start items-center gap-2">
|
|
<p class="text-gray-400 text-base">Extra:</p>
|
|
<p class="text-slate-700 text-base">{{task.extra}}</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="w-full bg-gray-100 flex justify-between items-center py-3 px-3 text-slate-700 actionsButton">
|
|
<p>Actions</p>
|
|
<i class="fa fa-angle-down" style="font-size: 20px;"></i>
|
|
<i class="fa fa-angle-up" style="font-size: 20px; display: none;"></i>
|
|
</div>
|
|
|
|
|
|
<div class="grid-cols-3 actionsContainer hidden">
|
|
<button class="p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500">Close</button>
|
|
|
|
<button class="p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500 updateStatusButton"
|
|
data-modal-url="{% url 'edittaskstatusmodal' task.task_id %}">Update
|
|
Status</button>
|
|
|
|
<button class="p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500"
|
|
>Add
|
|
Time</button>
|
|
|
|
<button
|
|
class="p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500 deleteTaskButton">Delete</button>
|
|
|
|
<a href="{% url 'edittask' task.task_id %}">
|
|
<button
|
|
class="w-full p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500">Edit</button>
|
|
</a>
|
|
|
|
<button class="p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500 showPointsButton"
|
|
data-modal-url="{% url 'showpoints' task.task_id %}">Show
|
|
Points</button>
|
|
|
|
<button class="p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500 addPointButton"
|
|
data-modal-url="{% url 'addpointmodal' task.task_id %}">Add
|
|
Point</button>
|
|
|
|
<a href="{% url 'detailed-task' task.task_id %}">
|
|
<button
|
|
class="w-full p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500">Details</button>
|
|
</a>
|
|
|
|
<button class="p-2 border border-gray-200 text-sm h-[70px] bg-gray-100 text-gray-500 timelineButton"
|
|
data-modal-url="{% url 'timeline' %}">Timeline</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div> |