hunk.code_window:                         proc_obj.run(cr, uid, [proc], context=context)
               #delete the move with original product which is not relevant anymore
               move_obj.unlink(cr, SUPERUSER_ID, [move.id], context=context)
               #check if new moves needs to be exploded
               if to_explode_again_ids:
                   for new_move in self.browse(cr, uid, to_explode_again_ids, context=context):
                       processed_ids.extend(self._action_explode(cr, uid, new_move, context=context))
  
hunk.labels: keep keep replace replace keep keep keep keep
hunk.file_path: addons/mrp/stock.py
hunk.type: replace
file: .. _reference/orm:
  
  ===
  ORM
  ===
  
  .. _reference/orm/model:
  
  Model
  =====
  
  .. - can't get autoattribute to import docstrings, so use regular attribute
     - no autoclassmethod
  
  .. currentmodule:: openerp.models
  
  .. autoclass:: openerp.models.Model
  
      .. rubric:: Structural attributes
  
      .. attribute:: _name
  
          business object name, in dot-notation (in module namespace)
  
      .. attribute:: _rec_name
  
          Alternative field to use as name, used by osv’s name_get()
          (default: ``'name'``)
  
      .. attribute:: _inherit
  
          * If :attr:`._name` is set, names of parent models to inherit from.
            Can be a ``str`` if inheriting from a single parent
          * If :attr:`._name` is unset, name of a single model to extend
            in-place
  
      .. attribute:: _order
  
          Ordering field when searching without an ordering specified (default:
          ``'id'``)
  
          :type: str
  
      .. attribute:: _auto
  
          Whether a database table should be created (default: ``True``)
  
          If set to ``False``, override :meth:`.init` to create the database
          table
  
      .. attribute:: _table
  
          Name of the table backing the model created when
          :attr:`~openerp.models.Model._auto`, automatically generated by
          default.
  
      .. attribute:: _inherits
  
          dictionary mapping the _name of the parent business objects to the
          names of the corresponding foreign key fields to use::
  
              _inherits = {
                  'a.model': 'a_field_id',
                  'b.model': 'b_field_id'
              }
  
          implements composition-based inheritance: the new model exposes all
          the fields of the :attr:`~openerp.models.Model._inherits`-ed model but
          stores none of them: the values themselves remain stored on the linked
          record.
  
          .. warning::
  
              if the same field is defined on multiple
              :attr:`~openerp.models.Model._inherits`-ed
  
      .. attribute:: _constraints
  
          list of ``(constraint_function, message, fields)`` defining Python
          constraints. The fields list is indicative
  
          .. deprecated:: 8.0
  
              use :func:`~openerp.api.constrains`
  
      .. attribute:: _sql_constraints
  
          list of ``(name, sql_definition, message)`` triples defining SQL
          constraints to execute when generating the backing table
  
      .. attribute:: _parent_store
  
          Alongside :attr:`~.parent_left` and :attr:`~.parent_right`, sets up a
          `nested set <http://en.wikipedia.org/wiki/Nested_set_model>`_  to
          enable fast hierarchical queries on the records of the current model
          (default: ``False``)
  
          :type: bool
  
      .. rubric:: CRUD
  
      .. automethod:: create
      .. automethod:: browse
      .. automethod:: unlink
      .. automethod:: write
  
      .. automethod:: read
  
      .. rubric:: Research
  
      .. automethod:: search
      .. automethod:: search_count
      .. automethod:: name_search
  
      .. rubric:: Recordset operations
  
      .. autoattribute:: ids
      .. automethod:: ensure_one
      .. automethod:: exists
      .. automethod:: filtered
      .. automethod:: sorted
      .. automethod:: update
  
      .. rubric:: Environment swapping
  
      .. automethod:: sudo
      .. automethod:: with_context
      .. automethod:: with_env
  
      .. rubric:: Fields and views querying
  
      .. automethod:: fields_get
      .. automethod:: fields_view_get
  
      .. rubric:: ???
  
      .. automethod:: default_get
      .. automethod:: copy
      .. automethod:: add_default_value
      .. automethod:: name_get
      .. automethod:: name_create
  
      .. rubric:: Automatic fields
  
      .. attribute:: id
  
          Identifier :class:`field <openerp.fields.Field>`
  
      .. attribute:: _log_access
  
          Whether log access fields (``create_date``, ``write_uid``, ...) should
          be generated (default: ``True``)
  
      .. attribute:: create_date
  
          Date at which the record was created
  
          :type: :class:`~openerp.field.Datetime`
  
      .. attribute:: create_uid
  
          Relational field to the user who created the record
  
          :type: ``res.users``
  
      .. attribute:: write_date
  
          Date at which the record was last modified
  
          :type: :class:`~openerp.field.Datetime`
  
      .. attribute:: write_uid
  
          Relational field to the last user who modified the record
  
          :type: ``res.users``
  
      .. rubric:: Reserved field names
  
      A few field names are reserved for pre-defined behaviors beyond that of
      automated fields. They should be defined on a model when the related
      behavior is desired:
  
      .. attribute:: name
  
          default value for :attr:`~._rec_name`, used to
          display records in context where a representative "naming" is
          necessary.
  
          :type: :class:`~openerp.fields.Char`
  
      .. attribute:: active
  
          toggles the global visibility of the record, if ``active`` is set to
          ``False`` the record is invisible in most searches and listing
  
          :type: :class:`~openerp.fields.Boolean`
  
      .. attribute:: sequence
  
          Alterable ordering criteria, allows drag-and-drop reordering of models
          in list views
  
          :type: :class:`~openerp.fields.Integer`
  
      .. attribute:: state
  
          lifecycle stages of the object, used by the ``states`` attribute on
          :class:`fields <openerp.fields.Field>`
  
          :type: :class:`~openerp.fields.Selection`
  
      .. attribute:: parent_id
  
          used to order records in a tree structure and enables the ``child_of``
          operator in domains
  
          :type: :class:`~openerp.fields.Many2one`
  
      .. attribute:: parent_left
  
          used with :attr:`~._parent_store`, allows faster tree structure access
  
      .. attribute:: parent_right
  
          see :attr:`~.parent_left`
  
  .. _reference/orm/decorators:
  
  Method decorators
  =================
  
  .. automodule:: openerp.api
      :members: one, multi, model, depends, constrains, onchange, returns
  
  .. _reference/orm/fields:
  
  Fields
  ======
  
  .. _reference/orm/fields/basic:
  
  Basic fields
  ------------
  
  .. autodoc documents descriptors as attributes, even for the *definition* of
     descriptors. As a result automodule:: openerp.fields lists all the field
     classes as attributes without providing inheritance info or methods (though
     we don't document methods as they're not useful for "external" devs)
     (because we don't support pluggable field types) (or do we?)
  
  .. autoclass:: openerp.fields.Field
  
  .. autoclass:: openerp.fields.Char
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Boolean
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Integer
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Float
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Text
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Selection
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Html
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Date
      :show-inheritance:
      :members: today, context_today, from_string, to_string
  
  .. autoclass:: openerp.fields.Datetime
      :show-inheritance:
      :members: now, context_timestamp, from_string, to_string
  
  .. _reference/orm/fields/relational:
  
  Relational fields
  -----------------
  
  .. autoclass:: openerp.fields.Many2one
      :show-inheritance:
  
  .. autoclass:: openerp.fields.One2many
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Many2many
      :show-inheritance:
  
  .. autoclass:: openerp.fields.Reference
      :show-inheritance:
  
  .. _reference/orm/domains:
  
  Domains
  =======
  
  A domain is a list of criterion, each criterion being a triple (either a
  ``list`` or a ``tuple``) of ``(field_name, operator, value)`` where:
  
  ``field_name`` (``str``)
      a field name of the current model, or a relationship traversal through
      a :class:`~openerp.fields.Many2one` using dot-notation e.g. ``'street'``
      or ``'partner_id.country'``
  ``operator`` (``str``)
      a comparison operator between the criterion's field and value.
  
      .. todo:: list and detail operators, original list is way incomplete
  ``value``
      variable type, must be comparable (through ``operator``) to the named
      field
  
  Domain criteria can be combined using logical operators in *prefix* form:
  
  ``'&'``
      logical *AND*, default operation to combine criteria following one
      another. Arity 2 (uses the next 2 criteria or combinations).
  ``'|'``
      logical *OR*, arity 2.
  ``'!'``
      logical *NOT*, arity 1.
  
      .. tip:: Mostly to negate combinations of criteria
          :class: aphorism
  
          Individual criterion generally have a negative form (e.g. ``=`` ->
          ``!=``, ``<`` -> ``>=``) which is simpler than negating the positive.
  
  .. admonition:: Example
  
      To search for partners named *ABC*, from belgium or germany, whose language
      is not english::
  
          [('name','=','ABC'),
           ('language.code','!=','en_US'),
           '|',('country_id.code','=','be'),
               ('country_id.code','=','de')]
  
      This domain is interpreted as:
  
      .. code-block:: text
  
              (name is 'ABC')
          AND (language is NOT english)
          AND (country is Belgium OR Germany)
  
  