<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/lib/ccc_conventions.rb, branch master</title>
<subtitle>[no description]</subtitle>
<id>https://erdgeist.org/gitweb/cccms/atom?h=master</id>
<link rel='self' href='https://erdgeist.org/gitweb/cccms/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/'/>
<updated>2026-07-12T00:15:44Z</updated>
<entry>
<title>Give the sitemap its own view, with collapse and descendant counts</title>
<updated>2026-07-12T00:15:44Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-12T00:15:44Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=45bf65d04d046c0ea4a1150096b2a9b846d6c0b8'/>
<id>urn:sha1:45bf65d04d046c0ea4a1150096b2a9b846d6c0b8</id>
<content type='text'>
Extracted from admin#index's inline table into NodesController#sitemap.
Nested &lt;details&gt;/&lt;summary&gt; per branch, one linear pass over the
existing flat [node, level] list (no added queries) -- each node's own
descendant count computed the same way, via a small stack rather than
re-walking the tree per node. Branches under updates/, club/erfas,
club/chaostreffs, and disclosure start collapsed by default
(CccConventions::SITEMAP_COLLAPSED_PATHS); any branch currently
collapsed, whether by that default or because someone just closed it,
is highlighted via a plain :not([open]) selector -- no state tracked
outside the DOM itself.

Dropped the update?-post exclusion this view used to rely on -- no
longer needed now that updates/ collapses instead of being filtered
out, so its real children (previously silently absent) now show up
correctly. admin#index's own, separate @sitemap query is unchanged;
that view has no collapse mechanism to compensate and wasn't part of
this.
</content>
</entry>
<entry>
<title>Add context-aware child-creation shortcuts to nodes#show</title>
<updated>2026-07-07T01:48:09Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-07T01:48:09Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=1bf719d6ac58187cf406d92a40b665d3fa6e658b'/>
<id>urn:sha1:1bf719d6ac58187cf406d92a40b665d3fa6e658b</id>
<content type='text'>
parent_match Procs on CccConventions::NODE_KINDS, matched against
unique_path, decide which "add child" kinds show on a given node. Fixes
nodes#new not honoring a pre-selected kind (radio group and parent-field
visibility both defaulted to "generic" unconditionally).
</content>
</entry>
<entry>
<title>Add erfa/chaostreff node-kind creation conventions, part 2</title>
<updated>2026-07-06T02:15:46Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-06T02:15:46Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=4c47031f9693fc04b01cbb005ad864cd1e3d2425'/>
<id>urn:sha1:4c47031f9693fc04b01cbb005ad864cd1e3d2425</id>
<content type='text'>
The following changes were already announced in the last commit, but
the files forgotten. Here's them actually attached.

lib/ccc_conventions.rb: NODE_KINDS registry replaces the kind-specific
branches previously scattered across nodes_controller#create (tags),
unique_path-position check). Each kind declares its parent lookup
(a Proc - Update's "update"/"press_release" continue to genuinely
find-or-create their year-folder via Update.find_or_create_parent;
erfa/chaostreff use a plain find_by_unique_name!, since their parent
nodes are fixed and a missing one should fail loudly, not be silently
created), its tags, and (new) its default template.

New read-only admin/conventions view dumps the NODE_KINDS registry as
a reference table for whoever's confused later about how a given kind
behaves - deliberately just renders the same label/hint text used on
nodes#new rather than re-describing parent/tags/template separately,
since decomposing the parent Proc would mean either invoking it
(Update's has a real side effect - creates the year folder) or
re-stating its logic a second time in a different shape, either of
which risks drifting from the actual behavior.
</content>
</entry>
</feed>
