Example #1
0
def view_deck(username, deck, get_args):
    from collections import OrderedDict
    user = User.filter_by(username=username).first()
    deck = Deck.filter_by(user_id=user.id, name=deck).first()
    deck_dict = OrderedDict()

    priority_list = [
        'lands',
        'creatures',
        'artifacts',
        'enchantments',
        'planeswalkers',
        'instants',
        'sorceries'
    ]

    for card_type in priority_list:
        deck_dict.setdefault(card_type, [])
        for card, quantity in getattr(deck, card_type):
            already_added = False
            for ctype in priority_list[:priority_list.index(card_type)]:
                if (card, quantity) in deck_dict[ctype]:
                    already_added = True
                    break
            if not already_added:
                deck_dict[card_type].append((card, quantity))

    return custom_render('/views/view_deck.html', user=user, deck=deck, deck_dict=deck_dict)
Example #2
0
def create_deck(deck_list, root_deck_id=None):
    deck = Deck()
    deck.root_deck_id = root_deck_id
    deck.create_date = datetime.now()
    if root_deck_id:
        last_index = Deck.filter_by(root_deck_id=root_deck_id).order_by(Deck.deck_index.desc()).all()
        deck.deck_index = last_index + 1

    xcards = []
    for card_string in deck_list:
        card, quant = parse_card(card_string)
        xcard = XDeckCard()
        xcard.quantity = quant
        xcard.card_id = card.id
        xcard.deck_id = deck.id
        xcards.append(xcard)

    return deck, xcards