Replace counter-arguments with possible answers and unify search inputs.

Models, AI assistant, and UI now show diskussionsfertige Antworten without titles; shared search partial fixes aria-label rendering.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Pirmin Hinderling (fedora)
2026-07-07 22:50:53 +02:00
parent 28aab3b16a
commit 16428f2c16
19 changed files with 237 additions and 101 deletions
@@ -0,0 +1,69 @@
from django.db import migrations, models
def migrate_possible_answer_text(apps, schema_editor):
PossibleAnswer = apps.get_model('claims', 'PossibleAnswer')
for obj in PossibleAnswer.objects.all():
obj.answer = (obj.response or obj.argument or '').strip()
obj.save(update_fields=['answer'])
def migrate_draft_json(apps, schema_editor):
ClaimDraft = apps.get_model('claims', 'ClaimDraft')
for draft in ClaimDraft.objects.all():
answers = []
for item in draft.counter_arguments or []:
if isinstance(item, str):
text = item.strip()
else:
text = (item.get('answer') or item.get('response') or '').strip()
if text:
answers.append({'answer': text})
draft.possible_answers = answers
draft.save(update_fields=['possible_answers'])
class Migration(migrations.Migration):
dependencies = [
('claims', '0006_remove_claim_evidence_level_and_more'),
]
operations = [
migrations.RenameModel(
old_name='CounterArgument',
new_name='PossibleAnswer',
),
migrations.AddField(
model_name='possibleanswer',
name='answer',
field=models.TextField(blank=True, default='', verbose_name='Antwort'),
),
migrations.RunPython(migrate_possible_answer_text, migrations.RunPython.noop),
migrations.RemoveField(
model_name='possibleanswer',
name='argument',
),
migrations.RemoveField(
model_name='possibleanswer',
name='response',
),
migrations.AlterModelOptions(
name='possibleanswer',
options={
'ordering': ['id'],
'verbose_name': 'Mögliche Antwort',
'verbose_name_plural': 'Mögliche Antworten',
},
),
migrations.AddField(
model_name='claimdraft',
name='possible_answers',
field=models.JSONField(blank=True, default=list, verbose_name='Mögliche Antworten'),
),
migrations.RunPython(migrate_draft_json, migrations.RunPython.noop),
migrations.RemoveField(
model_name='claimdraft',
name='counter_arguments',
),
]
@@ -0,0 +1,24 @@
# Generated by Django 5.2.15 on 2026-07-07 20:47
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('claims', '0007_possible_answers'),
]
operations = [
migrations.AlterField(
model_name='possibleanswer',
name='answer',
field=models.TextField(verbose_name='Antwort'),
),
migrations.AlterField(
model_name='possibleanswer',
name='claim',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='possible_answers', to='claims.claim', verbose_name='Behauptung'),
),
]