intent/templates/orgs/detail.html
Alec Perkins b9378b8397 Add projects and features with revision history (Phase 2)
Projects under organizations with fixed URL name and feature ID
prefix, three visibility levels, open contribution, per-project
roles, settings and typed-confirmation delete. Hidden projects 404.
Leaving an org drops its project roles. Project access rules live in
intent/access.py alongside org access.

Features numbered per project (INT-12) in a tree. Every change is a
revision with a required note; history, old revisions, and
side-by-side field and line diffs between any two. Cycles and
superseded-without-replacement are rejected. Markdown renders safely
with source-line attributes for Phase 3 line comments and headings
shifted below the page h1. Server-side preview works without JS.

Structural accessibility check runs on every page in tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 07:58:16 -04:00

45 lines
1.6 KiB
HTML

{% extends "base.html" %}
{% block title %}{{ org.name }} · Intent{% endblock %}
{% block content %}
<h1>{{ org.name }}</h1>
<section aria-labelledby="projects-heading">
<h2 id="projects-heading">Projects</h2>
{% if projects %}
<ul>
{% for project in projects %}
<li>
<a href="{% url 'projects:home' org_slug=org.slug project_slug=project.slug %}">{{ project.name }}</a>
{% if project.visibility != "public" %}<span class="muted">({{ project.visibility }})</span>{% endif %}
</li>
{% endfor %}
</ul>
{% else %}
<p>No projects{% if not access.is_member %} you can see{% endif %} yet.</p>
{% endif %}
{% if access.can_create_projects %}
<p><a href="{% url 'project_create' org_slug=org.slug %}">New project</a></p>
{% endif %}
</section>
{% if access.is_member %}
<section aria-labelledby="team-heading">
<h2 id="team-heading">Team</h2>
<p>You're {% if access.is_owner %}an owner{% else %}a collaborator{% endif %} of this organization.</p>
<ul>
<li><a href="{% url 'orgs:members' org_slug=org.slug %}">Members</a></li>
</ul>
<details>
<summary>Leave {{ org.name }}</summary>
<form method="post" action="{% url 'orgs:member_remove' org_slug=org.slug membership_id=access.membership.pk %}">
{% csrf_token %}
<p>You'll need a new invitation to rejoin, and you'll lose your project roles.</p>
<p><button type="submit">Leave {{ org.name }}</button></p>
</form>
</details>
</section>
{% endif %}
{% endblock %}