@property
    def cards(self):

        if self._cards is None:
            order_keys = [self.KEYS[feat] for feat in self.order_by]
            order = [prop() for prop, __ in order_keys]
            action_log = DummyActionLog()
            self._cards = [
                component.Component(
                    self._services(card.Card, c.id, {}, action_log, data=c)
                )
                # FIXME: nosql in components!
                for c in (self.user.cards.join(DataCard.column).
                          join(DataColumn.board).
                          filter(DataColumn.archive==False).
                          filter(DataBoard.id.in_(b.id for b in self.user.boards)).
                          order_by(*order))
            ]
            # TODO: instead of filtering allowed boards here, we should define and implement
            # a policy for what should happen when a user is removed from a board. Should we
            # remove her from all the cards?
        return self._cards
dataset/ETHPy150Open Net-ng/kansha/kansha/user/user_cards.py/UserCards.cards/original