diff --git a/.gitignore b/.gitignore index 3519e84..e50c79a 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ local_backup_* #docs/ mockups/ docs/superpowers/* +.superpowers/ # ── Local utilities ── config_backup.py diff --git a/app/ideas/routes.py b/app/ideas/routes.py index a74e49c..0280e31 100644 --- a/app/ideas/routes.py +++ b/app/ideas/routes.py @@ -170,12 +170,16 @@ def inbox(): 'purpose': idea.idea_purpose or 'investment', 'state': display_state, 'age_days': idea_ages.get(idea.id, 0), - 'thesis': (idea.thesis_summary[:80] + '...') if idea.thesis_summary and len(idea.thesis_summary) > 80 else (idea.thesis_summary or ''), + 'thesis': idea.thesis_summary or '', + 'notes': idea.initial_notes or '', 'source': idea.source or '', 'action': action, 'edit_url': url_for('ideas.edit_idea', idea_id=idea.id), }) - ideas_json = json.dumps(ideas_data) + # Escape '<' so a thesis/name/notes value containing '' cannot + # terminate the inline + ...' terminates the script + element and anything after it executes. + """ + client, user_id = inbox_client + db.session.add(IdeaPipeline( + user_id=user_id, name='x', + status='inbox', thesis_summary=' in the thesis too')) + db.session.commit() + + html = client.get('/ideas/inbox').get_data(as_text=True) + + # The raw sequence must not survive into the rendered page at all. + assert '