From 991ffb2766cfebca0723edd01ec13d23b0378911 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Wed, 25 Nov 2020 20:35:11 +0100 Subject: [PATCH] [Plugin]balance: Fixed typo in function name and fixed db model --- flaschengeist/plugins/balance/__init__.py | 2 +- flaschengeist/plugins/balance/balance_controller.py | 2 +- flaschengeist/plugins/balance/models.py | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/flaschengeist/plugins/balance/__init__.py b/flaschengeist/plugins/balance/__init__.py index 425feba..55ff854 100644 --- a/flaschengeist/plugins/balance/__init__.py +++ b/flaschengeist/plugins/balance/__init__.py @@ -164,7 +164,7 @@ def change_balance(userid, current_session: Session): if (sender == current_session._user and sender.has_permission(permissions.SEND)) or ( sender != current_session._user and current_session._user.has_permission(permissions.SEND_OTHER) ): - return HTTP.created(balance_controller.send(sender, user, data["amount"], current_session._user)) + return HTTP.created(balance_controller.send(sender, user, amount, current_session._user)) elif ( amount < 0 diff --git a/flaschengeist/plugins/balance/balance_controller.py b/flaschengeist/plugins/balance/balance_controller.py index 57925f6..e305b0b 100644 --- a/flaschengeist/plugins/balance/balance_controller.py +++ b/flaschengeist/plugins/balance/balance_controller.py @@ -71,7 +71,7 @@ def send(sender: User, receiver, amount: float, author: User): raise BadRequest if sender and sender.has_attribute(__attribute_limit): - if (get(sender)[2] - amount) < sender.get_attribute(__attribute_limit) and not author.has_permission( + if (get_balance(sender)[2] - amount) < sender.get_attribute(__attribute_limit) and not author.has_permission( permissions.EXCEED_LIMIT ): raise BadRequest("Limit exceeded") diff --git a/flaschengeist/plugins/balance/models.py b/flaschengeist/plugins/balance/models.py index 8df224c..811124a 100644 --- a/flaschengeist/plugins/balance/models.py +++ b/flaschengeist/plugins/balance/models.py @@ -19,7 +19,9 @@ class Transaction(db.Model, ModelSerializeMixin): id: int = db.Column("id", db.Integer, primary_key=True) time: datetime = db.Column(UtcDateTime, nullable=False, default=UtcDateTime.current_utc) amount: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False), nullable=False) - reversal: Optional["Transaction"] = db.relationship("Transaction", foreign_keys=[_reversal_id]) + reversal: Optional["Transaction"] = db.relationship( + "Transaction", uselist=False, post_update=True, foreign_keys=[_reversal_id] + ) # Dummy properties used for JSON serialization (userid instead of full user) sender_id: Optional[str] = ""