Fix address source revision timestamps

This commit is contained in:
2026-08-02 07:24:11 +02:00
parent 85e0e31e3d
commit e60339a5bf
2 changed files with 13 additions and 5 deletions
+10 -4
View File
@@ -1232,7 +1232,10 @@ def _address_book_contact_updated_at(session: Any, address_book_ids: list[str])
if updated_at is None:
continue
key = str(address_book_id)
revisions[key] = max(revisions.get(key, updated_at), updated_at)
revisions[key] = max(
_aware_datetime(revisions.get(key, updated_at)),
_aware_datetime(updated_at),
)
return revisions
@@ -1306,7 +1309,10 @@ def _address_list_updated_at(session: Any, address_list_ids: list[str]) -> dict[
if updated_at is None:
continue
key = str(address_list_id)
revisions[key] = max(revisions.get(key, updated_at), updated_at)
revisions[key] = max(
_aware_datetime(revisions.get(key, updated_at)),
_aware_datetime(updated_at),
)
return revisions
@@ -1314,14 +1320,14 @@ def _recipient_source_revision(book: AddressBook, latest_contact_updated_at: dat
stamps: list[datetime] = [book.updated_at]
if latest_contact_updated_at is not None:
stamps.append(latest_contact_updated_at)
return max(stamps).isoformat()
return max(_aware_datetime(item) for item in stamps).isoformat()
def _address_list_source_revision(address_list: AddressList, latest_entry_updated_at: datetime | None = None) -> str:
stamps: list[datetime] = [address_list.updated_at]
if latest_entry_updated_at is not None:
stamps.append(latest_entry_updated_at)
return max(stamps).isoformat()
return max(_aware_datetime(item) for item in stamps).isoformat()
def _channel_facts_contact_id(source: DistributionSourceReference) -> str:
+3 -1
View File
@@ -1208,7 +1208,9 @@ END:VCARD
contact_postal_address_id=contact.postal_addresses[0].id,
),
)
self.session.commit()
# Providers must also work before the surrounding transaction commits;
# SQLite aggregate timestamps are naive while new ORM rows are UTC-aware.
self.session.flush()
capability = AddressesContactPointResolutionCapability()
direct = capability.resolve_contact_points(