mAi
f292338919
feat(submissions): auto-name new drafts <date> <client>./.<forum>./.<opponent> ( m/paliad#155 )
...
New project-bound submission drafts now default to a sortable, legal-
convention title instead of the bare "Entwurf N" counter:
<YYYY-MM-DD> <ClientName> ./. <ForumShort> ./. <OpponentName>
- Date leads (ISO, Europe/Berlin) so drafts list chronologically; " ./. "
is the German legal "gegen" separator.
- Client = root 'client' ancestor of the project tree.
- Forum = proceeding-type jurisdiction (UPC/EPA/DPMA); German proceedings
resolve to the deciding court (LG/OLG/BGH/BPatG) from the code tail.
- Opponent = primary opposing party, picked by our_side posture
(active → defendant bucket, reactive → claimant bucket).
- Any segment that resolves empty is omitted with its leading separator;
a project-less draft keeps the legacy "Entwurf N" scheme entirely.
- Create-time only: existing drafts are never renamed, and a lawyer's
later manual rename via Update is untouched. Same-slot collisions
de-duplicate with a " (N)" suffix.
Customization scope (per-user / firm / template, issue #155 Q4) is v1.1 —
the template is hardcoded in submission_autoname.go for now; the override
string is documented as the single extension point on AutoSubmissionTitle.
Example output:
full: 2026-05-31 Bayer AG ./. UPC ./. Novartis Pharma
no opponent: 2026-05-31 Bayer AG ./. BPatG
no forum: 2026-05-31 Bayer AG ./. Novartis Pharma
date only: 2026-05-31
AutoSubmissionTitle + segment resolvers are pure and table-tested
(submission_autoname_test.go); the Create flow is covered end-to-end
against real Postgres in submission_draft_autoname_live_test.go (gated
on TEST_DATABASE_URL).
2026-05-31 15:28:54 +02:00
..
2026-05-06 16:05:00 +02:00
2026-05-22 15:17:24 +02:00
2026-05-26 19:24:41 +02:00
2026-05-21 21:21:32 +02:00
2026-05-22 15:17:24 +02:00
2026-05-20 13:05:27 +02:00
2026-05-20 14:46:36 +02:00
2026-05-20 14:46:36 +02:00
2026-05-25 15:49:39 +02:00
2026-04-30 16:46:31 +02:00
2026-05-19 12:51:52 +02:00
2026-05-26 18:19:55 +02:00
2026-05-26 18:17:21 +02:00
2026-05-25 15:28:37 +02:00
2026-05-20 13:05:27 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 20:58:57 +02:00
2026-05-20 13:26:23 +02:00
2026-04-17 11:59:49 +02:00
2026-05-13 00:11:14 +02:00
2026-05-13 00:11:14 +02:00
2026-05-20 13:26:23 +02:00
2026-04-30 16:46:31 +02:00
2026-05-07 22:41:18 +02:00
2026-05-07 22:41:18 +02:00
2026-05-20 15:50:21 +02:00
2026-05-20 15:50:21 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:38:30 +02:00
2026-05-20 15:50:21 +02:00
2026-05-27 15:22:53 +02:00
2026-05-27 15:22:53 +02:00
2026-05-06 12:47:12 +02:00
2026-05-20 13:55:56 +02:00
2026-05-20 19:15:32 +02:00
2026-05-22 15:53:19 +02:00
2026-05-22 15:53:19 +02:00
2026-05-20 13:55:56 +02:00
2026-05-20 19:15:32 +02:00
2026-05-04 12:03:56 +02:00
2026-05-25 16:06:35 +02:00
2026-05-25 16:06:35 +02:00
2026-05-15 17:53:44 +02:00
2026-05-26 20:07:48 +02:00
2026-05-25 15:36:08 +02:00
2026-05-27 20:34:54 +02:00
2026-04-30 16:46:31 +02:00
2026-05-28 00:47:08 +02:00
2026-05-06 17:16:17 +02:00
2026-05-22 15:48:47 +02:00
2026-05-29 15:16:02 +02:00
2026-05-26 19:53:24 +02:00
2026-05-26 19:53:24 +02:00
2026-05-19 13:05:54 +02:00
2026-05-20 15:19:48 +02:00
2026-04-29 22:09:39 +02:00
2026-05-20 15:19:48 +02:00
2026-05-20 15:19:48 +02:00
2026-05-05 13:29:47 +02:00
2026-05-18 12:13:24 +02:00
2026-05-25 16:45:07 +02:00
2026-05-25 16:45:07 +02:00
2026-05-16 01:17:23 +02:00
2026-05-26 17:59:58 +02:00
2026-05-04 19:49:37 +02:00
2026-05-25 14:54:51 +02:00
2026-05-15 01:09:31 +02:00
2026-05-18 15:06:04 +02:00
2026-04-30 16:46:31 +02:00
2026-05-20 13:03:57 +02:00
2026-05-20 13:03:57 +02:00
2026-05-26 18:17:21 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-20 19:15:32 +02:00
2026-05-20 19:15:32 +02:00
2026-05-26 22:01:10 +02:00
2026-05-27 15:07:01 +02:00
2026-05-27 10:14:37 +02:00
2026-05-27 15:07:01 +02:00
2026-05-26 11:21:29 +02:00
2026-05-26 11:19:01 +02:00
2026-05-28 09:48:32 +02:00
2026-05-06 12:47:12 +02:00
2026-05-26 13:01:07 +02:00
2026-04-20 12:34:38 +02:00
2026-04-29 22:09:39 +02:00
2026-05-07 22:41:18 +02:00
2026-05-07 22:41:18 +02:00
2026-04-30 03:18:03 +02:00
2026-05-27 15:11:48 +02:00
2026-05-20 15:19:48 +02:00
2026-05-07 20:58:57 +02:00
2026-05-07 20:58:57 +02:00
2026-05-03 18:39:06 +02:00
2026-05-15 03:03:12 +02:00
2026-05-08 12:42:57 +02:00
2026-05-08 21:48:08 +02:00
2026-05-22 15:17:24 +02:00
2026-05-08 21:48:08 +02:00
2026-05-08 21:48:08 +02:00
2026-05-06 16:41:41 +02:00
2026-05-26 09:41:07 +02:00
2026-05-07 22:29:39 +02:00
2026-05-07 22:21:45 +02:00
2026-05-18 12:13:24 +02:00
2026-05-20 14:53:22 +02:00
2026-05-26 13:01:07 +02:00
2026-05-20 14:55:55 +02:00
2026-05-21 14:52:50 +02:00
2026-05-07 22:58:44 +02:00
2026-05-04 19:30:37 +02:00
2026-05-27 10:09:33 +02:00
2026-05-27 10:09:33 +02:00
2026-05-22 23:43:15 +02:00
2026-05-26 09:56:15 +02:00
2026-05-18 12:13:24 +02:00
2026-05-09 18:52:01 +02:00
2026-05-18 15:06:04 +02:00
2026-05-20 14:55:55 +02:00
2026-05-28 00:47:08 +02:00
2026-04-30 16:46:31 +02:00
2026-05-07 21:50:31 +02:00
2026-05-15 00:06:37 +02:00
2026-05-25 15:49:39 +02:00
2026-05-26 19:53:24 +02:00
2026-05-18 15:06:04 +02:00
2026-05-27 15:22:53 +02:00
2026-05-29 20:37:05 +02:00
2026-05-29 20:37:05 +02:00
2026-05-27 15:02:01 +02:00
2026-05-26 17:48:56 +02:00
2026-05-31 15:28:54 +02:00
2026-05-31 15:28:54 +02:00
2026-05-26 19:23:40 +02:00
2026-05-26 19:23:40 +02:00
2026-05-26 20:04:40 +02:00
2026-05-26 20:04:40 +02:00
2026-05-18 16:52:38 +02:00
2026-05-26 20:21:12 +02:00
2026-05-29 14:57:34 +02:00
2026-05-31 15:28:54 +02:00
2026-05-25 17:03:34 +02:00
2026-05-31 15:28:54 +02:00
2026-05-29 17:55:31 +02:00
2026-05-26 19:23:40 +02:00
2026-05-26 20:26:53 +02:00
2026-05-26 20:26:53 +02:00
2026-05-25 16:03:03 +02:00
2026-05-29 15:50:42 +02:00
2026-05-25 16:51:35 +02:00
2026-05-29 14:51:59 +02:00
2026-05-29 15:50:42 +02:00
2026-05-31 15:28:54 +02:00
2026-05-20 15:19:48 +02:00
2026-05-20 15:19:48 +02:00
2026-05-20 15:24:06 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-20 13:05:27 +02:00
2026-05-20 14:46:36 +02:00
2026-05-29 15:35:36 +02:00
2026-05-29 17:55:31 +02:00
2026-04-30 16:46:31 +02:00
2026-05-20 15:19:48 +02:00
2026-05-07 12:51:37 +02:00
2026-05-07 12:51:37 +02:00
2026-05-25 15:37:00 +02:00
2026-05-25 17:46:58 +02:00
2026-05-25 17:46:58 +02:00
2026-05-04 12:03:56 +02:00
2026-05-04 18:57:06 +02:00
2026-05-21 09:54:23 +02:00