Fix address source revision timestamps
This commit is contained in:
@@ -1232,7 +1232,10 @@ def _address_book_contact_updated_at(session: Any, address_book_ids: list[str])
|
|||||||
if updated_at is None:
|
if updated_at is None:
|
||||||
continue
|
continue
|
||||||
key = str(address_book_id)
|
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
|
return revisions
|
||||||
|
|
||||||
|
|
||||||
@@ -1306,7 +1309,10 @@ def _address_list_updated_at(session: Any, address_list_ids: list[str]) -> dict[
|
|||||||
if updated_at is None:
|
if updated_at is None:
|
||||||
continue
|
continue
|
||||||
key = str(address_list_id)
|
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
|
return revisions
|
||||||
|
|
||||||
|
|
||||||
@@ -1314,14 +1320,14 @@ def _recipient_source_revision(book: AddressBook, latest_contact_updated_at: dat
|
|||||||
stamps: list[datetime] = [book.updated_at]
|
stamps: list[datetime] = [book.updated_at]
|
||||||
if latest_contact_updated_at is not None:
|
if latest_contact_updated_at is not None:
|
||||||
stamps.append(latest_contact_updated_at)
|
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:
|
def _address_list_source_revision(address_list: AddressList, latest_entry_updated_at: datetime | None = None) -> str:
|
||||||
stamps: list[datetime] = [address_list.updated_at]
|
stamps: list[datetime] = [address_list.updated_at]
|
||||||
if latest_entry_updated_at is not None:
|
if latest_entry_updated_at is not None:
|
||||||
stamps.append(latest_entry_updated_at)
|
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:
|
def _channel_facts_contact_id(source: DistributionSourceReference) -> str:
|
||||||
|
|||||||
@@ -1208,7 +1208,9 @@ END:VCARD
|
|||||||
contact_postal_address_id=contact.postal_addresses[0].id,
|
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()
|
capability = AddressesContactPointResolutionCapability()
|
||||||
direct = capability.resolve_contact_points(
|
direct = capability.resolve_contact_points(
|
||||||
|
|||||||
Reference in New Issue
Block a user