🎨 Complete Tailwind CSS conversion - Redesigned post detail page with modern gradient backgrounds - Updated profile page with consistent design language - Converted from Bootstrap to Tailwind CSS throughout ✨ New Features & Improvements - Enhanced community post management system - Added admin panel with analytics dashboard - Improved post creation and editing workflows - Interactive GPS map integration with Leaflet.js - Photo gallery with modal view and hover effects - Adventure statistics and metadata display - Like system and community engagement features 🔧 Technical Improvements - Fixed template syntax errors and CSRF token issues - Updated database models and relationships - Enhanced media file management - Improved responsive design patterns - Added proper error handling and validation 📱 Mobile-First Design - Responsive grid layouts - Touch-friendly interactions - Optimized for all screen sizes - Modern card-based UI components 🏍️ Adventure Platform Features - GPS track visualization and statistics - Photo uploads with thumbnail generation - GPX file downloads for registered users - Community comments and discussions - Post approval workflow for admins - Difficulty rating system with star indicators
70 lines
4.1 KiB
HTML
70 lines
4.1 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Simple Post Creation Test{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container mt-5">
|
|
<div class="row justify-content-center">
|
|
<div class="col-md-8">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3>Simple Post Creation Test</h3>
|
|
</div>
|
|
<div class="card-body">
|
|
<form method="POST" action="{{ url_for('community.new_post') }}" enctype="multipart/form-data">
|
|
<div class="mb-3">
|
|
<label for="title" class="form-label">Title *</label>
|
|
<input type="text" class="form-control" id="title" name="title" required
|
|
value="{{ request.args.get('title', '') }}">
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="subtitle" class="form-label">Subtitle</label>
|
|
<input type="text" class="form-control" id="subtitle" name="subtitle"
|
|
value="{{ request.args.get('subtitle', '') }}">
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="difficulty" class="form-label">Difficulty *</label>
|
|
<select class="form-control" id="difficulty" name="difficulty" required>
|
|
<option value="">Select difficulty...</option>
|
|
<option value="1" {% if request.args.get('difficulty') == '1' %}selected{% endif %}>🟢 Easy</option>
|
|
<option value="2" {% if request.args.get('difficulty') == '2' %}selected{% endif %}>🟡 Moderate</option>
|
|
<option value="3" {% if request.args.get('difficulty') == '3' %}selected{% endif %}>🟠 Challenging</option>
|
|
<option value="4" {% if request.args.get('difficulty') == '4' %}selected{% endif %}>🔴 Difficult</option>
|
|
<option value="5" {% if request.args.get('difficulty') == '5' %}selected{% endif %}>🟣 Expert</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="content" class="form-label">Content</label>
|
|
<textarea class="form-control" id="content" name="content" rows="4"
|
|
placeholder="Adventure details (optional for testing)">{{ request.args.get('content', 'Adventure details will be added later.') }}</textarea>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="cover_picture" class="form-label">Cover Picture</label>
|
|
<input type="file" class="form-control" id="cover_picture" name="cover_picture" accept="image/*">
|
|
{% if request.args.get('cover_picture') %}
|
|
<small class="text-muted">Suggested: {{ request.args.get('cover_picture') }}</small>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="gpx_file" class="form-label">GPX File</label>
|
|
<input type="file" class="form-control" id="gpx_file" name="gpx_file" accept=".gpx">
|
|
{% if request.args.get('gpx_file') %}
|
|
<small class="text-muted">Suggested: {{ request.args.get('gpx_file') }}</small>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-primary">Create Post</button>
|
|
<a href="{{ url_for('community.index') }}" class="btn btn-secondary">Cancel</a>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|