202 lines
9.3 KiB
HTML
202 lines
9.3 KiB
HTML
{% extends 'schasite/base2.html' %}
|
|
{% load static %}
|
|
|
|
{% block pagetitle %}
|
|
<title>Stonehedge Community Homeowners Association</title>
|
|
<style type="text/css">
|
|
/* Calendar Page Specific Styles */
|
|
.event-card {
|
|
transition: transform 0.3s ease;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.event-card:hover {
|
|
transform: translateY(-5px);
|
|
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.event-card .card-header {
|
|
padding: 0.75rem 1.25rem;
|
|
}
|
|
|
|
.event-card img {
|
|
height: 180px;
|
|
width: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.nav-tabs .nav-link {
|
|
color: var(--bs-success);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.nav-tabs .nav-link.active {
|
|
color: var(--bs-success);
|
|
border-color: var(--bs-success);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 767.98px) {
|
|
.event-card img {
|
|
height: 120px;
|
|
}
|
|
|
|
.event-card .col-md-4 {
|
|
margin-bottom: 1rem;
|
|
}
|
|
}
|
|
|
|
/* Icon alignment */
|
|
.bi-calendar-event,
|
|
.bi-calendar-range,
|
|
.bi-clock,
|
|
.bi-geo-alt,
|
|
.bi-house,
|
|
.bi-person,
|
|
.bi-envelope {
|
|
width: 1.25rem;
|
|
text-align: center;
|
|
}
|
|
</style>
|
|
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<main class="py-5">
|
|
<div class="container">
|
|
<!-- Calendar Navigation -->
|
|
<div class="row mb-4">
|
|
<div class="col-12">
|
|
<ul class="nav nav-tabs" id="calendarTabs" role="tablist">
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link active" id="upcoming-tab" data-bs-toggle="tab" data-bs-target="#upcoming" type="button" role="tab">
|
|
Upcoming Events
|
|
</button>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link" id="past-tab" data-bs-toggle="tab" data-bs-target="#past" type="button" role="tab">
|
|
Past Events
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Calendar Content -->
|
|
<div class="tab-content" id="calendarTabContent">
|
|
<!-- Upcoming Events Tab -->
|
|
<div class="tab-pane fade show active" id="upcoming" role="tabpanel">
|
|
<div class="row g-4">
|
|
{% for event in future_events %}
|
|
<div class="col-lg-6">
|
|
<div class="card h-100 shadow-sm">
|
|
<div class="card-header bg-success text-white">
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<h3 class="h5 mb-0">{{ event.event_name }}</h3>
|
|
<span class="badge bg-light text-success">Upcoming</span>
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<img src="../images/events/picnic.jpg" alt="Community Picnic" class="img-fluid rounded mb-3 mb-md-0">
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="mb-3">
|
|
<p class="mb-1"><i class="bi bi-calendar-event text-success me-2"></i><strong>Date:</strong> {{ event.start_date }}</p>
|
|
<p class="mb-1"><i class="bi bi-clock text-success me-2"></i><strong>Time:</strong> 11:00 AM - 3:00 PM</p>
|
|
<p class="mb-1"><i class="bi bi-geo-alt text-success me-2"></i><strong>Location:</strong> {{ event.location_name }}</p>
|
|
<p class="mb-1"><i class="bi bi-house text-success me-2"></i><strong>Address:</strong> </p>
|
|
<p class="mb-1"><i class="bi bi-person text-success me-2"></i><strong>Coordinator:</strong> {{ event.coordinator_name }}</p>
|
|
<p class="mb-1"><i class="bi bi-envelope text-success me-2"></i><strong>Email:</strong> <a href="mailto:{{ event.coordinator_email }}">{{ event.coordinator_email }}</a></p>
|
|
</div>
|
|
<p>{{ event.description }}</p>
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<a href="{{ event.event_url }}" class="btn btn-sm btn-success">{{ event.event_link_name }}</a>
|
|
{% if event.rsvp_date %}
|
|
<small class="text-muted">RSVP by {{ event.rsvp_date }}</small>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Past Events Tab -->
|
|
<div class="tab-pane fade" id="past" role="tabpanel">
|
|
<div class="row g-4">
|
|
<!-- Past Event 1 -->
|
|
{% for event in future_events %}
|
|
<div class="col-lg-6">
|
|
<div class="card h-100 shadow-sm">
|
|
<div class="card-header bg-secondary text-white">
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<h3 class="h5 mb-0">{{ event.event_name }}</h3>
|
|
<span class="badge bg-light text-secondary">Completed</span>
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<img src="../images/events/spring-cleanup.jpg" alt="Spring Cleanup" class="img-fluid rounded mb-3 mb-md-0">
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="mb-3">
|
|
<p class="mb-1"><i class="bi bi-calendar-event text-secondary me-2"></i><strong>Date:</strong> {{ event.start_date }}</p>
|
|
<p class="mb-1"><i class="bi bi-clock text-secondary me-2"></i><strong>Time:</strong> 9:00 AM - 12:00 PM</p>
|
|
<p class="mb-1"><i class="bi bi-geo-alt text-secondary me-2"></i><strong>Location:</strong> {{ event.location_name }}</p>
|
|
<p class="mb-1"><i class="bi bi-house text-secondary me-2"></i><strong>Address:</strong> </p>
|
|
<p class="mb-1"><i class="bi bi-person text-secondary me-2"></i><strong>Coordinator:</strong> {{ event.coordinator_name }}</p>
|
|
<p class="mb-1"><i class="bi bi-envelope text-secondary me-2"></i><strong>Email:</strong> <a href="mailto:{{ event.coordinator_email }}">{{ event.coordinator_email }}</a></p>
|
|
</div>
|
|
<p>{{ event.description }}</p>
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<a href="https://greenwoodestates.org/events/spring-cleanup-2024" class="btn btn-sm btn-secondary">Event Recap</a>
|
|
<small class="text-muted">52 volunteers participated</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
{% endblock %}
|
|
{% block extra_js %}
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// This would be replaced with actual event loading from a database
|
|
console.log('Calendar page loaded');
|
|
|
|
// Example: Highlight current tab in URL
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
const tab = urlParams.get('tab');
|
|
if (tab === 'past') {
|
|
const pastTab = new bootstrap.Tab(document.getElementById('past-tab'));
|
|
pastTab.show();
|
|
}
|
|
|
|
// Example: Add event to Google Calendar
|
|
document.querySelectorAll('.add-to-calendar').forEach(button => {
|
|
button.addEventListener('click', function() {
|
|
// In a real implementation, this would generate a calendar event
|
|
alert('This would add the event to your calendar');
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
|
|
{% endblock %} |