@@ -248,10 +248,10 @@ def get_user_agreements(user: User) -> Iterable[UserAgreementRecordData]:
248248 yield UserAgreementRecordData .from_model (agreement_record )
249249
250250
251- def get_user_agreement_record (
251+ def get_latest_user_agreement_record (
252252 user : User ,
253253 agreement_type : str ,
254- agreement_update_timestamp : datetime = None ,
254+ agreed_after : datetime = None ,
255255) -> Optional [UserAgreementRecordData ]:
256256 """
257257 Retrieve the user agreement record for the specified user and agreement type.
@@ -264,9 +264,9 @@ def get_user_agreement_record(
264264 user = user ,
265265 agreement_type = agreement_type ,
266266 )
267- if agreement_update_timestamp :
268- record_query = record_query .filter (timestamp__gte = agreement_update_timestamp )
269- record = record_query .get ( )
267+ if agreed_after :
268+ record_query = record_query .filter (timestamp__gte = agreed_after )
269+ record = record_query .latest ( "timestamp" )
270270 return UserAgreementRecordData .from_model (record )
271271 except UserAgreementRecord .DoesNotExist :
272272 return None
@@ -277,11 +277,9 @@ def create_user_agreement_record(user: User, agreement_type: str) -> UserAgreeme
277277 Creates a user agreement record if one doesn't already exist, or updates existing
278278 record to current timestamp.
279279 """
280- record , _ = UserAgreementRecord .objects .update_or_create (
280+ record = UserAgreementRecord .objects .create (
281281 user = user ,
282282 agreement_type = agreement_type ,
283- defaults = {
284- "timestamp" : datetime .now (),
285- },
283+ timestamp = datetime .now (),
286284 )
287285 return UserAgreementRecordData .from_model (record )
0 commit comments