hospital-management/templates/appointments/scheduling_calendar.html
2025-08-12 13:33:25 +03:00

113 lines
5.2 KiB
HTML

{% extends "base.html" %}
{% load static %}
{% block title %}Scheduling Calendar - {{ block.super }}{% endblock %}
{% block content %}
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">
<i class="fas fa-calendar-alt me-2"></i>Scheduling Calendar
</h4>
</div>
<div class="card-body">
<!-- Filters -->
<div class="row mb-3">
<div class="col-md-3">
<label for="provider-filter" class="form-label">Provider</label>
<select id="provider-filter" class="form-select">
<option value="">All Providers</option>
{% for provider in providers %}
<option value="{{ provider.id }}">{{ provider.get_full_name }}</option>
{% endfor %}
</select>
</div>
<div class="col-md-3">
<label for="specialty-filter" class="form-label">Specialty</label>
<select id="specialty-filter" class="form-select">
<option value="">All Specialties</option>
{% for specialty in specialties %}
<option value="{{ specialty }}">{{ specialty }}</option>
{% endfor %}
</select>
</div>
<div class="col-md-3">
<label for="date-picker" class="form-label">Date</label>
<input type="date" id="date-picker" class="form-control" value="{{ today|date:'Y-m-d' }}">
</div>
<div class="col-md-3">
<label class="form-label">&nbsp;</label>
<div class="d-grid">
<button type="button" class="btn btn-primary" onclick="loadCalendarData()">
<i class="fas fa-search me-1"></i>Update View
</button>
</div>
</div>
</div>
<div class="row">
<!-- Calendar View -->
<div class="col-lg-8">
<div class="card">
<div class="card-header">
<h5 class="mb-0">Appointments</h5>
</div>
<div class="card-body"
id="calendar-appointments"
hx-get="{% url 'appointments:calendar_appointments' %}"
hx-trigger="load"
hx-include="#date-picker, #provider-filter">
<div class="text-center">
<div class="spinner-border text-primary" role="status"></div>
</div>
</div>
</div>
</div>
<!-- Available Slots -->
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<h5 class="mb-0">Available Slots</h5>
</div>
<div class="card-body"
id="available-slots"
hx-get="{% url 'appointments:available_slots' %}"
hx-trigger="load"
hx-include="#date-picker, #provider-filter, #specialty-filter">
<div class="text-center">
<div class="spinner-border text-primary" role="status"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block js %}
<script>
function loadCalendarData() {
// Trigger HTMX refresh for both calendar and slots
htmx.trigger('#calendar-appointments', 'refresh');
htmx.trigger('#available-slots', 'refresh');
}
document.addEventListener('DOMContentLoaded', function() {
// Auto-refresh when filters change
document.getElementById('provider-filter').addEventListener('change', loadCalendarData);
document.getElementById('specialty-filter').addEventListener('change', loadCalendarData);
document.getElementById('date-picker').addEventListener('change', loadCalendarData);
});
</script>
{% endblock %}