Impacted versions:
11.0

I don't know if it is an issue, but I think is strange.

`product_qty` is in unit of `product` : https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L240
`reserved_availability` is in unit of `stock.move` : https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L295

`move.product_qty - move.reserved_availability` seems to have no sens, no ?

https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L915
https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L917
https://github.com/odoo/odoo/blob/11.0/addons/stock/models/stock_move.py#L924

thank for your answer

@jco-odoo 
@alnslang 


""" According to this field, the button that calls `action_show_details` will be displayed
        to work on a move from its picking form view, or not.
        """
        for move in self:
            if not move.product_id:
                move.show_details_visible = False
                continue
            multi_locations_enabled = False
            if self.user_has_groups('stock.group_stock_multi_locations'):
                multi_locations_enabled = move.location_id.child_ids or move.location_dest_id.child_ids
            has_package = move.move_line_ids.mapped('package_id') | move.move_line_ids.mapped('result_package_id')
            consignment_enabled = self.user_has_groups('stock.group_tracking_owner')
            if move.picking_id.picking_type_id.show_operations is False\
                    and (move.state != 'draft' or (not self._context.get('planned_picking') and move.state == 'draft'))\
                    and (multi_locations_enabled or move.has_tracking != 'none' or len(move.move_line_ids) > 1 or has_package or consignment_enabled):
                move.show_details_visible = True
            else:
                move.show_details_visible = False
    def _compute_show_reserved_availability(self):
        """ This field is only of use in an attrs in the picking view, in order to hide the
        "available" column if the move is coming from a supplier.
        """
        for move in self:
            move.show_reserved_availability = not move.location_id.usage == 'supplier'
    @api.depends('state', 'picking_id')
    def _compute_is_initial_demand_editable(self):