# my2dos – Projektkontext für Pi ## Zweck my2dos ist eine kleine persönliche Produktivitäts- und Wissens-App für Aufgaben, Notizen, Links, Journal-Einträge, Tags, Teams, Collections und Kanban. ## Tech Stack - Python / Django - Django Templates - HTMX für partielle Updates - Alpine.js für UI-Interaktionen im Browser - SQLite lokal (`db.sqlite3`) - Virtuelle Umgebung: `.venv/` ## Wichtige Pfade - `core/models.py` – Datenmodelle, Tag-/Link-Metadaten-Sync - `core/views.py` – Hauptlogik, Item-Erstellung/Bearbeitung, Teams, Collections, API - `core/forms.py` – Django Forms - `core/templates/core/` – UI Templates - `core/tests.py` – Tests - `my2dos/settings.py` – Django Settings - `README.md` – Setup und Basis-Dokumentation ## Zentrale Konzepte - `Item.kind`: `todo`, `note`, `link`, `journal` - `Item.visibility`: `private`, `team`, `public` - Tags werden aus `#tag` im Content extrahiert und mit `Item.sync_metadata()` synchronisiert. - Team-Tags entsprechen `Team.slug`. - Ein Team-Tag wie `#myteam` macht ein Item automatisch zum Team-Item. - Team-Items behalten die Verknüpfung über `Item.team` und `Item.visibility = team`. - Interne Links haben die Form `[[note:1]]`, `[[todo:2]]` oder `[[3]]`. - Collections können manuell oder tag-basiert sein. - Tag-basierte Collections verwenden Content-Tags, Team-Tags sollen dabei nicht als Content-Filter genutzt werden. ## Häufige Befehle Setup: ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt .venv/bin/python manage.py migrate .venv/bin/python manage.py createsuperuser ``` Server starten: ```bash .venv/bin/python manage.py runserver ``` Tests ausführen: ```bash .venv/bin/python manage.py test core ``` Einzelne Testklasse ausführen: ```bash .venv/bin/python manage.py test core.tests.TestKlasse ``` ## Arbeitsregeln für Coding-Agenten - Vor Änderungen relevante Dateien lesen. - Änderungen möglichst klein und gezielt halten. - Bestehende UI-/Template-Struktur respektieren. - Nach funktionalen Änderungen Tests ergänzen oder anpassen. - Wenn möglich mindestens `.venv/bin/python manage.py test core` ausführen. - Keine grossen Refactorings ohne explizite Nachfrage. - Keine Änderungen an Datenbank/Migrationen ohne Notwendigkeit. - Bei Änderungen an Team-/Tag-Logik besonders auf Seiteneffekte bei Collections, API und Bearbeiten-Formularen achten. ## Bekannte/Für die Zukunft relevante Themen - Team-Tags und Content-Tags klar getrennt halten. - Bearbeiten von Team-Items darf die Team-Verknüpfung nicht verlieren. - Collections müssen Sichtbarkeit/Team-Kompatibilität von enthaltenen Items beachten. - Mobile UI nutzt eigene Tag-Picker und Quick-Composer-Interaktionen. ## Notizen für neue Sessions Wenn eine neue Pi-Session in diesem Verzeichnis gestartet wird, zuerst diese Datei, `README.md` und bei Bedarf `core/models.py`, `core/views.py`, `core/forms.py` sowie `core/tests.py` berücksichtigen.