2026-05-11 07:02:06 +02:00
{% extends "base.html" %}
{% block extra_head %}
< link rel = "stylesheet" href = "/static/css/projects.css" >
2026-05-11 20:49:45 +02:00
< link rel = "stylesheet" href = "/static/css/post.css" >
2026-05-11 07:02:06 +02:00
{% endblock %}
{% block content %}
< div class = "project-detail-page" >
< a href = "/projects" class = "back-link" > ← Back to Projects< / a >
< article class = "project-detail" >
< div class = "project-detail-header" >
< h1 class = "project-detail-title" > {{ project['title'] }}< / h1 >
< div class = "project-status {% if project.get('status') == 'Released' %}released{% else %}dev{% endif %}" >
● {{ project.get('status', 'In Development') }}
< / div >
< / div >
< div class = "project-detail-meta" >
2026-05-12 15:07:34 +02:00
< span class = "badge badge-type" > {{ project.get('project_type', 'software').replace('_', ' ') }}< / span >
2026-05-11 07:02:06 +02:00
{% if project.get('release_date') %}
< span > 📅 Released: {{ project['release_date'] }}< / span >
{% endif %}
{% if project.get('demo_date') %}
< span > 🎭 Demo: {{ project['demo_date'] }}< / span >
{% endif %}
< / div >
< div class = "project-detail-author" >
{% set _size = 32 %}{% set _size_class = "sm" %}{% set _user = author %}{% include "_avatar_link.html" %}
< div >
2026-06-02 23:17:51 +02:00
{% set _user = author %}{% set _class = none %}{% include "_user_link.html" %}
2026-06-08 17:38:33 +02:00
{% if is_admin(user) and author and author.get('role') %}
2026-05-11 07:02:06 +02:00
< span style = "font-size: 0.75rem; color: var(--text-muted);" > · {{ author['role'] }}< / span >
{% endif %}
< / div >
< / div >
< div class = "project-detail-desc rendered-content" data-render > {{ project.get('description', '') }}< / div >
2026-05-12 15:07:34 +02:00
{% if attachments %}
{% include "_attachment_display.html" %}
{% endif %}
2026-05-11 07:02:06 +02:00
{% if platforms %}
< div style = "margin-bottom: 1.5rem;" >
< h4 style = "font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); margin-bottom: 0.5rem;" > Platforms< / h4 >
< div class = "project-card-platforms" >
{% for plat in platforms %}
< span class = "platform-tag" > {{ plat.strip() }}< / span >
{% endfor %}
< / div >
< / div >
{% endif %}
< div class = "project-detail-actions" >
2026-06-08 22:51:09 +02:00
< a href = "/projects/{{ project['slug'] or project['uid'] }}/files" class = "project-star-btn" > 📁 Files< / a >
2026-05-23 03:21:55 +02:00
< button type = "button" class = "project-star-btn" data-share = "/projects/{{ project['slug'] or project['uid'] }}" > 🔗 Share< / button >
2026-05-11 07:02:06 +02:00
{% if user %}
2026-05-30 20:16:39 +02:00
{% set _type = "project" %}{% set _uid = project['uid'] %}{% set _my_vote = my_vote %}{% set _count = star_count %}{% set _btn_class = "project-star-btn" %}{% include "_star_vote.html" %}
2026-05-11 07:02:06 +02:00
{% endif %}
2026-06-06 16:31:42 +02:00
{% set _type = "project" %}{% set _uid = project['uid'] %}{% set _bookmarked = bookmarked %}{% include "_bookmark_button.html" %}
2026-05-11 07:02:06 +02:00
{% if is_owner %}
2026-05-11 20:49:45 +02:00
< form method = "POST" action = "/projects/delete/{{ project['slug'] or project['uid'] }}" style = "display:inline;" >
2026-05-27 22:03:12 +02:00
< button type = "submit" class = "project-star-btn" data-confirm = "Delete this project?" > < span class = "icon" > 🗑 ️ < / span > Delete< / button >
2026-05-11 07:02:06 +02:00
< / form >
{% endif %}
2026-06-06 16:31:42 +02:00
{% set _type = "project" %}{% set _uid = project['uid'] %}{% set _reactions = reactions %}{% include "_reaction_bar.html" %}
2026-05-11 07:02:06 +02:00
< / div >
< / article >
2026-05-11 20:49:45 +02:00
{% with target_uid=project['uid'], target_type="project" %}
{% include "_comment_section.html" %}
{% endwith %}
2026-05-11 07:02:06 +02:00
< / div >
{% endblock %}