Marwan Alwali a710d1c4d8 update
2025-09-11 19:01:55 +03:00

140 lines
6.3 KiB
HTML

{% extends 'base/base.html' %}
{% block title %}User Management - Hospital Management System{% endblock %}
{% block content %}
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">
<i class="fas fa-users"></i> User Management
</h1>
<div class="btn-toolbar mb-2 mb-md-0">
<div class="btn-group me-2">
<button type="button" class="btn btn-sm btn-outline-secondary">
<i class="fas fa-download"></i> Export
</button>
</div>
<button type="button" class="btn btn-sm btn-primary">
<i class="fas fa-user-plus"></i> Add User
</button>
</div>
</div>
<!-- User Statistics -->
<div id="user-stats"
hx-get="{% url 'accounts:user_stats' %}"
hx-trigger="load, every 60s"
class="auto-refresh mb-4">
<div class="htmx-indicator">
<div class="spinner-border spinner-border-sm" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
<!-- Search and Filters -->
<div class="card mb-4">
<div class="card-body">
<form method="get" class="row g-3">
<div class="col-md-4">
<label for="search" class="form-label">Search Users</label>
<input type="text"
class="form-control"
id="search"
name="search"
value="{{ request.GET.search }}"
placeholder="Name, email, employee ID..."
hx-get="{% url 'accounts:user_search' %}"
hx-target="#user-list"
hx-trigger="keyup changed delay:500ms">
</div>
<div class="col-md-2">
<label for="role" class="form-label">Role</label>
<select class="form-select" id="role" name="role">
<option value="">All Roles</option>
{% for role in roles %}
<option value="{{ role }}" {% if request.GET.role == role %}selected{% endif %}>
{{ role|title }}
</option>
{% endfor %}
</select>
</div>
<div class="col-md-2">
<label for="department" class="form-label">Department</label>
<select class="form-select" id="department" name="department">
<option value="">All Departments</option>
{% for dept in departments %}
<option value="{{ dept }}" {% if request.GET.department == dept %}selected{% endif %}>
{{ dept }}
</option>
{% endfor %}
</select>
</div>
<div class="col-md-2">
<label for="status" class="form-label">Status</label>
<select class="form-select" id="status" name="status">
<option value="">All Status</option>
<option value="active" {% if request.GET.status == 'active' %}selected{% endif %}>Active</option>
<option value="inactive" {% if request.GET.status == 'inactive' %}selected{% endif %}>Inactive</option>
<option value="pending" {% if request.GET.status == 'pending' %}selected{% endif %}>Pending Approval</option>
</select>
</div>
<div class="col-md-2">
<label class="form-label">&nbsp;</label>
<div class="d-grid">
<button type="submit" class="btn btn-primary">
<i class="fas fa-search"></i> Filter
</button>
</div>
</div>
</form>
</div>
</div>
<!-- User List -->
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h5 class="card-title mb-0">
<i class="fas fa-list"></i> Users
</h5>
<span class="badge bg-primary">{{ page_obj.paginator.count }} total</span>
</div>
<div class="card-body p-0">
<div id="user-list">
{% include 'account/partials/user_list.html' %}
</div>
</div>
</div>
<!-- Pagination -->
{% if is_paginated %}
<nav aria-label="User pagination" class="mt-3">
<ul class="pagination justify-content-center">
{% if page_obj.has_previous %}
<li class="page-item">
<a class="page-link" href="?page=1{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}{% if request.GET.role %}&role={{ request.GET.role }}{% endif %}{% if request.GET.department %}&department={{ request.GET.department }}{% endif %}{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}">First</a>
</li>
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.previous_page_number }}{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}{% if request.GET.role %}&role={{ request.GET.role }}{% endif %}{% if request.GET.department %}&department={{ request.GET.department }}{% endif %}{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}">Previous</a>
</li>
{% endif %}
<li class="page-item active">
<span class="page-link">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
</span>
</li>
{% if page_obj.has_next %}
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.next_page_number }}{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}{% if request.GET.role %}&role={{ request.GET.role }}{% endif %}{% if request.GET.department %}&department={{ request.GET.department }}{% endif %}{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}">Next</a>
</li>
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.paginator.num_pages }}{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}{% if request.GET.role %}&role={{ request.GET.role }}{% endif %}{% if request.GET.department %}&department={{ request.GET.department }}{% endif %}{% if request.GET.status %}&status={{ request.GET.status }}{% endif %}">Last</a>
</li>
{% endif %}
</ul>
</nav>
{% endif %}
{% endblock %}