diff --git a/app/models/order.py b/app/models/order.py index 841271c..3a5e1ef 100644 --- a/app/models/order.py +++ b/app/models/order.py @@ -70,7 +70,7 @@ class Order(db.Model): return group def is_closed(self) -> bool: - return datetime.now() > self.stoptime + return self.stoptime and datetime.now() > self.stoptime def can_close(self, user_id: int) -> bool: "Check if a user can close the Order" diff --git a/app/models/orderitem.py b/app/models/orderitem.py index ec2cc88..02952a6 100644 --- a/app/models/orderitem.py +++ b/app/models/orderitem.py @@ -63,7 +63,7 @@ class OrderItem(db.Model): "Check if a user can delete an item" if int(self.order_id) != int(order_id): return False - if self.order.stoptime and self.order.stoptime < datetime.now(): + if self.order.is_closed(): return False if self.user is not None and self.user_id == user_id: return True diff --git a/app/views/order.py b/app/views/order.py index 9589939..8d8f263 100644 --- a/app/views/order.py +++ b/app/views/order.py @@ -58,7 +58,7 @@ def order_from_id(order_id: int, form: OrderForm = None) -> str: form = AnonOrderItemForm() if current_user.is_anonymous() \ else OrderItemForm() form.populate(order.location) - if order.stoptime and order.stoptime < datetime.now(): + if order.is_closed(): form = None total_price = sum([o.price for o in order.items]) debts = sum([o.price for o in order.items if not o.paid]) @@ -108,7 +108,7 @@ def order_item_create(order_id: int) -> typing.Any: current_order = Order.query.filter(Order.id == order_id).first() if current_order is None: abort(404) - if current_order.stoptime and current_order.stoptime < datetime.now(): + if current_order.is_closed(): abort(404) if current_user.is_anonymous() and not current_order.public: flash("Please login to see this order.", "info") @@ -219,8 +219,7 @@ def close_order(order_id: int) -> typing.Optional[Response]: order = Order.query.filter(Order.id == order_id).first() if order is None: abort(404) - if (current_user.id == order.courier_id or current_user.is_admin()) and ( - order.stoptime is None or (order.stoptime > datetime.now())): + if (current_user.id == order.courier_id or current_user.is_admin()) and not order.is_closed(): order.stoptime = datetime.now() if order.courier_id == 0 or order.courier_id is None: courier = select_user(order.items)