When a user is thanking, check state to see if other user thanked first, if so switch new_state to THANKED_BY_BOTH. fixes #13
This commit is contained in:
parent
52663c83ef
commit
a83ce746b5
7 changed files with 35 additions and 42 deletions
|
|
@ -182,7 +182,7 @@ class TradeAcceptance(models.Model):
|
|||
REJECTED_BY_ACCEPTOR = 'REJECTED_BY_ACCEPTOR', 'Rejected by Acceptor'
|
||||
|
||||
# DRY improvement: define active states once as a class-level constant.
|
||||
ACTIVE_STATES = [
|
||||
POSITIVE_STATES = [
|
||||
AcceptanceState.ACCEPTED,
|
||||
AcceptanceState.SENT,
|
||||
AcceptanceState.RECEIVED,
|
||||
|
|
@ -223,8 +223,8 @@ class TradeAcceptance(models.Model):
|
|||
|
||||
# A mapping for alternate action labels
|
||||
ALTERNATE_ACTION_LABELS = {
|
||||
AcceptanceState.REJECTED_BY_INITIATOR: "Cancel This Trade",
|
||||
AcceptanceState.REJECTED_BY_ACCEPTOR: "Cancel This Trade",
|
||||
AcceptanceState.REJECTED_BY_INITIATOR: "Reject This Trade",
|
||||
AcceptanceState.REJECTED_BY_ACCEPTOR: "Reject This Trade",
|
||||
# Optionally add alternate labels for other states:
|
||||
AcceptanceState.ACCEPTED: "Accept This Trade Offer",
|
||||
AcceptanceState.SENT: "Mark as Sent",
|
||||
|
|
@ -321,6 +321,10 @@ class TradeAcceptance(models.Model):
|
|||
if new_state not in [choice[0] for choice in self.AcceptanceState.choices]:
|
||||
raise ValueError(f"'{new_state}' is not a valid state.")
|
||||
|
||||
if (new_state == self.AcceptanceState.THANKED_BY_ACCEPTOR and self.state == self.AcceptanceState.THANKED_BY_INITIATOR) or \
|
||||
(new_state == self.AcceptanceState.THANKED_BY_INITIATOR and self.state == self.AcceptanceState.THANKED_BY_ACCEPTOR):
|
||||
new_state = self.AcceptanceState.THANKED_BY_BOTH
|
||||
|
||||
if self.state in [
|
||||
self.AcceptanceState.THANKED_BY_BOTH,
|
||||
self.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
|
|
@ -361,9 +365,7 @@ class TradeAcceptance(models.Model):
|
|||
self.AcceptanceState.THANKED_BY_INITIATOR,
|
||||
self.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
},
|
||||
self.AcceptanceState.THANKED_BY_INITIATOR: {
|
||||
self.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
},
|
||||
self.AcceptanceState.THANKED_BY_INITIATOR: { },
|
||||
self.AcceptanceState.THANKED_BY_ACCEPTOR: {
|
||||
self.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
self.AcceptanceState.THANKED_BY_BOTH,
|
||||
|
|
@ -379,14 +381,11 @@ class TradeAcceptance(models.Model):
|
|||
self.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
},
|
||||
self.AcceptanceState.RECEIVED: {
|
||||
self.AcceptanceState.THANKED_BY_ACCEPTOR,
|
||||
self.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
},
|
||||
self.AcceptanceState.THANKED_BY_ACCEPTOR: {
|
||||
self.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
self.AcceptanceState.THANKED_BY_ACCEPTOR, #allow early thanks (uses THANKED_BY_ACCEPTOR state)
|
||||
self.AcceptanceState.REJECTED_BY_ACCEPTOR
|
||||
},
|
||||
self.AcceptanceState.THANKED_BY_ACCEPTOR: { },
|
||||
self.AcceptanceState.THANKED_BY_INITIATOR: {
|
||||
self.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
self.AcceptanceState.THANKED_BY_BOTH,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue