Added branding and updated layouts using base_authenticated.html; applied consistent Tailwind styling across authentication and ticket pages; improved usability with hover effects and clearer typography. New Features: - Enhancements: - Refactored login page layout to use a centered card with branding and modern styling. - Updated profile page to use the authenticated base template and a refined card design. - Enhanced ticket list page with a descriptive subtitle, SVG icon, and refined table styling including hover states and better typography. Bug Fixes: - Fixed template inheritance to use base_authenticated.html for profile and tickets pages. - Corrected form button text and styling for consistency.
46 lines
2.5 KiB
HTML
46 lines
2.5 KiB
HTML
{% extends "base_authenticated.html" %}
|
|
{% block title %}Expenses{% endblock %}
|
|
{% block content_inner %}
|
|
<div class="flex items-center justify-between mb-6">
|
|
<div>
|
|
<h1 class="text-2xl font-bold text-gray-900">Expenses</h1>
|
|
<p class="text-gray-500 mt-1">Track project expenses.</p>
|
|
</div>
|
|
<a href="{% url 'expense_create' %}" class="btn bg-blue-600 text-white hover:bg-blue-700 border-0">
|
|
<svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"/></svg>
|
|
New Expense
|
|
</a>
|
|
</div>
|
|
<div class="bg-white rounded-2xl shadow-sm border border-gray-100 overflow-hidden">
|
|
<table class="table w-full">
|
|
<thead>
|
|
<tr class="bg-gray-50">
|
|
<th class="text-xs font-semibold text-gray-500 uppercase tracking-wider">Category</th>
|
|
<th class="text-xs font-semibold text-gray-500 uppercase tracking-wider">Amount</th>
|
|
<th class="text-xs font-semibold text-gray-500 uppercase tracking-wider">Project</th>
|
|
<th class="text-xs font-semibold text-gray-500 uppercase tracking-wider">Raised By</th>
|
|
<th class="text-xs font-semibold text-gray-500 uppercase tracking-wider">Date</th>
|
|
{% if user.is_admin %}<th class="text-xs font-semibold text-gray-500 uppercase tracking-wider"></th>{% endif %}
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for expense in expenses %}
|
|
<tr class="hover:bg-gray-50 transition-colors">
|
|
<td class="text-sm font-medium text-gray-900">{{ expense.category }}</td>
|
|
<td class="text-sm font-semibold text-gray-900">${{ expense.amount }}</td>
|
|
<td class="text-sm text-gray-600">{{ expense.project.name }}</td>
|
|
<td class="text-sm text-gray-600">{{ expense.raised_by.username }}</td>
|
|
<td class="text-sm text-gray-500">{{ expense.date|date:"M d" }}</td>
|
|
{% if user.is_admin %}
|
|
<td><a href="{% url 'expense_delete' expense.pk %}" class="text-xs text-red-500 hover:text-red-700">Delete</a></td>
|
|
{% endif %}
|
|
</tr>
|
|
{% empty %}
|
|
<tr><td colspan="{% if user.is_admin %}6{% else %}5{% endif %}" class="text-center py-12 text-gray-500">No expenses recorded.</td></tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|