38827-vm/core/templates/core/dashboard.html
Flatlogic Bot d702332e91 v1
2026-02-28 04:54:16 +00:00

212 lines
6.1 KiB
HTML

{% extends "base.html" %}
{% block title %}Discover Students | Warwick Connect{% endblock %}
{% block extra_css %}
<style>
.discovery-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 1.5rem;
margin-top: 2rem;
}
.profile-card {
background: white;
border-radius: 20px;
overflow: hidden;
border: 1px solid rgba(0,0,0,0.03);
box-shadow: 0 4px 15px rgba(0,0,0,0.02);
transition: transform 0.2s, box-shadow 0.2s;
cursor: pointer;
position: relative;
}
.profile-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}
.profile-img-container {
width: 100%;
height: 320px;
background-color: #E2E8F0;
position: relative;
overflow: hidden;
}
.profile-img {
width: 100%;
height: 100%;
object-fit: cover;
}
.placeholder-img {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #f1f5f9 0%, #cbd5e1 100%);
color: var(--warwick-navy);
font-size: 3rem;
font-weight: 800;
}
.profile-info {
padding: 1.25rem;
}
.profile-name {
font-weight: 800;
font-size: 1.25rem;
margin-bottom: 0.25rem;
color: var(--warwick-navy);
}
.profile-meta {
font-size: 0.85rem;
color: var(--text-muted);
margin-bottom: 0.75rem;
font-weight: 500;
}
.profile-tags {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.badge-tag {
background-color: var(--bg-light);
color: var(--warwick-navy);
padding: 0.35rem 0.75rem;
border-radius: 50px;
font-size: 0.75rem;
font-weight: 600;
}
.locked-overlay {
position: absolute;
inset: 0;
background: rgba(255, 255, 255, 0.4);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
z-index: 10;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 2rem;
text-align: center;
}
.locked-card {
background: white;
padding: 1.5rem;
border-radius: 16px;
box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}
.locked-title {
font-weight: 800;
font-size: 1.1rem;
margin-bottom: 0.5rem;
color: var(--warwick-navy);
}
.locked-price {
color: var(--accent-coral);
font-weight: 700;
font-size: 1.25rem;
margin-bottom: 1rem;
}
.discovery-title {
font-weight: 800;
font-size: 2.5rem;
margin-bottom: 0.5rem;
color: var(--warwick-navy);
}
.discovery-subtitle {
color: var(--text-muted);
font-size: 1.1rem;
}
.online-indicator {
position: absolute;
bottom: 12px;
right: 12px;
width: 12px;
height: 12px;
background-color: #10B981;
border: 2px solid white;
border-radius: 50%;
box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2);
}
</style>
{% endblock %}
{% block content %}
<div class="header-section mt-4">
<h1 class="discovery-title">Who's Online</h1>
<p class="discovery-subtitle">Find fellow students at Warwick university.</p>
</div>
<div class="discovery-grid">
{% for profile in visible_profiles %}
<div class="profile-card">
<div class="profile-img-container">
{% if profile.primary_photo %}
<img src="{{ profile.primary_photo.image.url }}" class="profile-img" alt="{{ profile.user.username }}">
{% else %}
<div class="placeholder-img">{{ profile.user.username|slice:":1"|upper }}</div>
{% endif %}
<div class="online-indicator"></div>
</div>
<div class="profile-info">
<div class="profile-name">{{ profile.user.first_name|default:profile.user.username }}</div>
<div class="profile-meta">{{ profile.course|default:"Student" }} · {{ profile.year }}</div>
<div class="profile-tags">
<span class="badge-tag">{{ profile.location }}</span>
<span class="badge-tag">Looking for: {{ profile.looking_for }}</span>
</div>
</div>
</div>
{% empty %}
<div class="text-center py-5 col-12">
<h3 class="text-muted">No students found yet. Be the first to join!</h3>
</div>
{% endfor %}
{% for profile in locked_profiles %}
<div class="profile-card">
<div class="profile-img-container" style="filter: blur(15px);">
<div class="placeholder-img">{{ profile.user.username|slice:":1"|upper }}</div>
</div>
<div class="locked-overlay">
<div class="locked-card">
<div class="locked-title">Unlock Full Grid</div>
<div class="locked-price">£3.99/mo</div>
<button class="btn btn-primary btn-sm w-100">Subscribe</button>
<p class="small text-muted mt-2 mb-0">See all students online</p>
</div>
</div>
<div class="profile-info" style="filter: blur(10px);">
<div class="profile-name">Student Name</div>
<div class="profile-meta">Course · Year</div>
</div>
</div>
{% endfor %}
</div>
{% if not is_subscribed and locked_profiles %}
<div class="alert mt-5 p-4 text-center rounded-4" style="background: white; border: 2px dashed #CBD5E1;">
<h4 class="fw-bold" style="color: var(--warwick-navy);">Ready to see everyone?</h4>
<p class="text-muted">Join other subscribers and unlock the full discovery grid, messaging, and more.</p>
<button class="btn btn-accent px-5">Subscribe for £3.99/month</button>
</div>
{% endif %}
{% endblock %}