stefankoelle
94a279f207
feat: iCloud-Kontaktgruppen synchronisieren und API-Endpunkte hinzufügen
...
Erkennt iCloud-Gruppen (vCards mit X-ADDRESSBOOKSERVER-KIND:group) beim
CardDAV-Sync und speichert sie separat in den neuen Tabellen groups und
group_members statt als Kontakte in die contacts-Tabelle.
Änderungen:
- sql/schema.sql: Neue Tabellen groups + group_members (FK CASCADE)
- src/vcard_parser.py: is_group_vcard() + parse_group() Funktionen
- src/db.py: DB-Funktionen für Gruppen (upsert, delete, replace, get)
- src/sync.py: _classify_vcards() trennt Gruppen von Kontakten
- src/api/schemas.py: Pydantic-Modelle für Gruppen-Responses
- src/api/main.py: 3 neue Endpunkte (/api/groups, /{id}, /{id}/members)
- src/api/templates/contact.html: Gruppen-Section im Kontakt-Detail
- README.md + SPEC.md: Dokumentation aktualisiert
2026-08-07 15:18:44 +02:00
stefankoelle
38b03a2c8a
mail layout imp 7
2026-08-07 15:04:51 +02:00
stefankoelle
0e788a3b9d
mail layout imp 6
2026-08-07 14:56:03 +02:00
stefankoelle
3dfff404b9
sidebar improve
2026-08-07 14:51:00 +02:00
stefankoelle
5da259141d
mail layout imp 5
2026-08-07 14:48:14 +02:00
stefankoelle
6d6a8cf9e0
dashboard sidebar
2026-08-07 14:45:04 +02:00
stefankoelle
d6d3ceaa83
mail layout imp 4
2026-08-07 14:41:55 +02:00
stefankoelle
954f1fbd3a
mail layout imp 3
2026-08-07 14:36:04 +02:00
stefankoelle
e34a8ee64b
mail layout imp 2
2026-08-07 14:25:52 +02:00
stefankoelle
8c1f421d39
mail layout improvements
2026-08-07 14:18:56 +02:00
stefankoelle
32c6bf6908
also on web
2026-08-07 13:57:20 +02:00
stefankoelle
081fe9bfa0
some fixes
2026-08-07 13:56:58 +02:00
stefankoelle
14b2101b9f
unknown year dashboard fix
2026-08-07 13:41:35 +02:00
stefankoelle
af41f45a98
mail test method docker-compose mapping
2026-08-07 13:38:12 +02:00
stefankoelle
34860e8ae4
birthday unknown year filter
2026-08-07 13:34:18 +02:00
stefankoelle
5cdefff6f5
timezone config fix
2026-08-07 13:18:33 +02:00
stefankoelle
d458c58c64
timezone config docker-compose
2026-08-07 13:14:04 +02:00
stefankoelle
04f464c7bb
timezone config
2026-08-07 13:06:48 +02:00
stefankoelle
8eaac47ef6
mail test method
2026-08-07 12:39:21 +02:00
stefankoelle
e3ca295ebd
mail only when some has birthday
2026-08-07 11:47:57 +02:00
stefankoelle
744c71400d
sync fullsync fix 2
2026-08-06 22:15:25 +02:00
stefankoelle
c457e5a78a
sync fullsync fix after update with get
2026-08-06 22:01:51 +02:00
stefankoelle
15a6a6d855
sync fix update with get
2026-08-06 19:36:24 +02:00
stefankoelle
a9d0727d76
mail new layout
2026-08-06 18:58:39 +02:00
stefankoelle
15fc880d56
sync delta logging
2026-08-05 23:29:57 +02:00
stefankoelle
25d1606fb0
web dashboard special links fix 3
2026-08-05 22:56:54 +02:00
stefankoelle
9d4d0b1306
web dashboard special links fix 2
2026-08-05 22:49:28 +02:00
stefankoelle
e1805d5ba8
web dashboard special links fix
2026-08-05 22:42:24 +02:00
stefankoelle
ddb65055d8
web dashboard special links
2026-08-05 22:35:34 +02:00
stefankoelle
3f5a8dff91
web contact details with tiles
2026-08-05 22:19:08 +02:00
stefankoelle
d42dfef117
sync retry logic
2026-08-05 21:24:07 +02:00
stefankoelle
7cab1df120
sync retry after logging
2026-08-05 21:18:24 +02:00
stefankoelle
0e915b2db9
bugfix db sync
2026-08-05 21:08:54 +02:00
stefankoelle
cbf4020a3e
web custom links city placeholder
2026-08-05 20:47:00 +02:00
stefankoelle
e54891f4ed
web custom links position exactly
2026-08-05 20:43:09 +02:00
stefankoelle
ed900eed74
web custom links position box
2026-08-05 20:38:50 +02:00
stefankoelle
a2035b658b
web custom links try layout again
2026-08-05 20:32:22 +02:00
stefankoelle
5ca8eeeaa7
web custom links urlquote
2026-08-05 20:27:38 +02:00
stefankoelle
ed9bf5f062
web custom links
2026-08-05 20:24:09 +02:00
stefankoelle
895027d8d2
web clickable photo centered
2026-08-05 17:50:29 +02:00
stefankoelle
4155d029bb
web clickable photo
2026-08-05 17:41:49 +02:00
stefankoelle
eacdefaacf
web dashboard birthday with photo
2026-08-05 17:28:07 +02:00
stefankoelle
0d71ccd3a6
web dashboard birthday layout like search
2026-08-05 17:19:23 +02:00
stefankoelle
be7832ea31
web badge on top right
2026-08-05 17:06:41 +02:00
stefankoelle
082a7c5b38
web badge even smaller
2026-08-05 16:59:37 +02:00
stefankoelle
a08482dfd0
fix bug
2026-08-05 16:52:48 +02:00
stefankoelle
3779c4c73a
web badge smaller
2026-08-05 16:48:06 +02:00
stefankoelle
9458a88122
web admin mode
2026-08-05 16:44:10 +02:00
stefankoelle
c2d5ae45a2
web photo layout update
2026-08-05 16:33:45 +02:00
stefankoelle
dcb7733383
sync more logging 2
2026-08-05 16:05:54 +02:00