note title equip: DON/DOFF buttons outside top-left corner; User.active_title FK; don/doff views; greeting updated via JS — TDD
- lyric/models.py: active_title = ForeignKey('drama.Note', null=True, SET_NULL)
- lyric migration 0020_add_active_title
- billboard/views.py: don_title + doff_title views; is_equipped per note_item context
- billboard/urls.py: note/<slug>/don + note/<slug>/doff routes
- _navbar.html: id_greeting_name span; shows active_title.slug|capfirst when set
- my_notes.html: .note-don-doff buttons (DON/DOFF, × when disabled); data-don-url/doff-url/title attrs
- note-page.js: _bindDonDoff() — DON POST sets greeting + swaps btn state; DOFF restores Earthman
- _note.scss: .note-don-doff position:absolute left:-1rem top:0; flex-direction:column gap:1.25rem
- ITs: NoteEquipTitleViewTest (5 tests); UserModelTest.test_active_title_* (3 tests)
- FT: NoteEquipTitleTest.test_don_equips_title_greeting_and_doff_restores
Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,19 @@
|
||||
<ul class="note-list">
|
||||
{% for item in note_items %}
|
||||
<li class="note-item" data-slug="{{ item.obj.slug }}"
|
||||
data-set-palette-url="{% url 'billboard:note_set_palette' item.obj.slug %}">
|
||||
data-set-palette-url="{% url 'billboard:note_set_palette' item.obj.slug %}"
|
||||
data-don-url="{% url 'billboard:don_title' item.obj.slug %}"
|
||||
data-doff-url="{% url 'billboard:doff_title' item.obj.slug %}"
|
||||
data-title="{{ item.title }}">
|
||||
|
||||
<div class="note-don-doff">
|
||||
<button type="button"
|
||||
class="btn btn-equip note-don-btn{% if item.is_equipped %} btn-disabled{% endif %}"
|
||||
>{% if item.is_equipped %}×{% else %}DON{% endif %}</button>
|
||||
<button type="button"
|
||||
class="btn btn-unequip note-doff-btn{% if not item.is_equipped %} btn-disabled{% endif %}"
|
||||
>{% if not item.is_equipped %}×{% else %}DOFF{% endif %}</button>
|
||||
</div>
|
||||
|
||||
<div class="note-item__body">
|
||||
<p class="note-item__title">{{ item.title }}</p>
|
||||
|
||||
Reference in New Issue
Block a user