'Insert a box into your dashboard layout.
:param (dict) box: the box you are inserting into the dashboard.
:param (str) side: specifies where your new box is going to be placed
relative to the given \'box_id\'. Valid values are \'above\', \'below\',
\'left\', and \'right\'.
:param (int) box_id: the box id which is used as the reference box for
the insertion of the box.
Example:
import plotly.dashboard_objs as dashboard
box_1 = {
\'type\': \'box\',
\'boxType\': \'plot\',
\'fileId\': \'username:some#\',
\'title\': \'box 1\'
my_dboard = dashboard.Dashboard()
my_dboard.insert(box_1)
my_dboard.insert(box_1, \'left\', 1)
my_dboard.insert(box_1, \'below\', 2)
my_dboard.insert(box_1, \'right\', 3)
my_dboard.insert(box_1, \'above\', 4)
my_dboard.get_preview()'

def insert(self, box, side='above', box_id=None):

    box_ids_to_path = self._compute_box_ids()
    if (self['layout'] is None):
        self['layout'] = _container(box, _empty_box())
    else:
        if (box_id is None):
            raise exceptions.PlotlyError('Make    sure    the    box_id    is    specfied    if    there    is    at    least    one    box    in    your    dashboard.')
        if (box_id not in box_ids_to_path):
            raise exceptions.PlotlyError(ID_NOT_VALID_MESSAGE)
        if (side == 'above'):
            old_box = self.get_box(box_id)
            self._insert(_container(box, old_box, direction='vertical'), box_ids_to_path[box_id])
        elif (side == 'below'):
            old_box = self.get_box(box_id)
            self._insert(_container(old_box, box, direction='vertical'), box_ids_to_path[box_id])
        elif (side == 'left'):
            old_box = self.get_box(box_id)
            self._insert(_container(box, old_box, direction='horizontal'), box_ids_to_path[box_id])
        elif (side == 'right'):
            old_box = self.get_box(box_id)
            self._insert(_container(old_box, box, direction='horizontal'), box_ids_to_path[box_id])
        else:
            raise exceptions.PlotlyError("If    there    is    at    least    one    box    in    your    dashboard,    you    must    specify    a    valid    side    value.    You    must    choose    from    'above',    'below',    'left',    and    'right'.")
    self._set_container_sizes()
