def orders(request, game, player): existing_orders = [order.to_child() for order in player.order_set.filter(turn=player.game.current_turn)] for existing_order in existing_orders: existing_order.name = existing_order.__class__.__name__ existing_orders_cost = sum(o.get_cost() for o in existing_orders) available_orders = get_orders_availability(player) for available_order in available_orders: path = '%s/data/order_description/%s.md' % (settings.BASE_DIR, available_order['name']) contents = read_markdown_nullable(path) available_order['info'] = mark_safe(contents) return { "available_orders": available_orders, "existing_orders": existing_orders, "existing_orders_cost": existing_orders_cost, "remaining_money": player.money - existing_orders_cost, "pods": ['d_inc', 'current_player', 'players', ], "turn": game.current_turn, "request": request, }
def add_order(request, game_id, order_type): player = get_player(request, game_id) # Retrieve OrderClass try: SubOrder = get_order_by_name(order_type) except ValueError: raise Http404("This is not an Order.") instance = SubOrder(player=player) if request.method == 'POST': form = instance.get_form(request.POST) if form.is_valid(): form.save() return redirect('website.views.orders.orders', game_id=game_id) else: form = instance.get_form() path = '%s/data/order_description/%s.md' % (settings.BASE_DIR, SubOrder.__name__) order = { "game": player.game, "title": instance.title, "info": mark_safe(read_markdown_nullable(path)), "name": SubOrder.__name__, "form": form, } return django_render(request, 'game/add_order.html', { "game": player.game, "player": player, "order": order, "pods": ['d_inc', 'current_player', 'players', ], "request": request, "turn": player.game.current_turn, })