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)
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