@@ 745-760 (lines=16) @@ | ||
742 | raise AttributeError |
|
743 | ||
744 | @classmethod |
|
745 | @limitable_all |
|
746 | def all_item(cls, id): |
|
747 | return DBSession.query(cls)\ |
|
748 | .join(Transaction)\ |
|
749 | .join(event.Event)\ |
|
750 | .filter(cls.item_id == id)\ |
|
751 | .filter(event.Event.deleted==False)\ |
|
752 | .order_by(desc(event.Event.timestamp)) |
|
753 | ||
754 | @classmethod |
|
755 | @limitable_all |
|
756 | def all_item_purchases(cls, id): |
|
757 | return DBSession.query(cls)\ |
|
758 | .join(Transaction)\ |
|
759 | .join(event.Event)\ |
|
760 | .filter(cls.item_id == id)\ |
|
761 | .filter(event.Event.deleted==False)\ |
|
762 | .filter(event.Event.type=="purchase")\ |
|
763 | .order_by(desc(event.Event.timestamp)) |
|
@@ 424-437 (lines=14) @@ | ||
421 | days = Transaction.get_days_in_debt_for_user(u) |
|
422 | if days >= 7: |
|
423 | deadbeats.append(u) |
|
424 | ||
425 | return deadbeats |
|
426 | user.User.get_deadbeats = __get_deadbeats |
|
427 | ||
428 | # This is in a stupid place due to circular input problems |
|
429 | @property |
|
430 | def __days_since_last_purchase(self): |
|
431 | last_purchase = object_session(self).query(event.Event)\ |
|
432 | .join(Transaction)\ |
|
433 | .filter(Transaction.fr_account_virt_id == self.id)\ |
|
434 | .filter(event.Event.type == 'purchase')\ |
|
435 | .filter(event.Event.deleted==False)\ |
|
436 | .order_by(desc(event.Event.timestamp)).first() |
|
437 | ||
438 | if last_purchase: |
|
439 | diff = arrow.now() - last_purchase.timestamp |
|
440 | return diff.days |