Simplify the line-up to yes/no picks, and stop truncating notifications

Coach mode's line-up screen no longer has lines/slots -- just a yes/no
toggle per available roster player, grouped by their roster position, both
in coach mode and on the published member-side view. Replaces LineupUnit/
LineupSlot with a single LineupSelection model.

Notifications now show their full body text (no more truncatechars) and the
unread colour bar spans the full row height via self-stretch, matching the
calendar row's own marker, so it still reads correctly once a body wraps to
several lines.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ECGMEwrc2k4D8VQuwjstj9
This commit is contained in:
2026-08-22 16:29:21 +02:00
parent 2b6a4d21bb
commit 135580d83e
13 changed files with 300 additions and 285 deletions

View File

@@ -0,0 +1,44 @@
# Generated by Django 6.0.6 on 2026-08-22 14:23
import django.db.models.deletion
import uuid
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('events', '0024_lineup_lineupunit_lineupslot'),
('members', '0006_parentclaim_submitted_by_user'),
]
operations = [
migrations.RemoveField(
model_name='lineupunit',
name='lineup',
),
migrations.CreateModel(
name='LineupSelection',
fields=[
('created', models.DateTimeField(auto_now_add=True, verbose_name='created')),
('modified', models.DateTimeField(auto_now=True, verbose_name='modified')),
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
('lineup', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='selections', to='events.lineup', verbose_name='line-up')),
('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lineup_selections', to='members.member', verbose_name='member')),
],
options={
'verbose_name': 'line-up selection',
'verbose_name_plural': 'line-up selections',
},
),
migrations.DeleteModel(
name='LineupSlot',
),
migrations.DeleteModel(
name='LineupUnit',
),
migrations.AddConstraint(
model_name='lineupselection',
constraint=models.UniqueConstraint(fields=('lineup', 'member'), name='unique_selection_per_lineup_per_member'),
),
]