'Create and Copy server action.
- 1. evaluate the value mapping
- 2. depending on the write configuration:
- `new`: new record in the base model
- `copy_current`: copy the current record (id = active_id) + gives custom values
- `new_other`: new record in target model
- `copy_other`: copy the current record (id from reference object)
+ gives custom values'

@api.model
def run_action_object_create(self, action, eval_context=None):

    res = {}
    for exp in action.fields_lines:
        res[exp.col1.name] = exp.eval_value(eval_context=eval_context)[exp.id]
    if (action.use_create in ['new', 'copy_current']):
        model = action.model_id.model
    elif (action.use_create in ['new_other', 'copy_other']):
        model = action.crud_model_id.model
    if (action.use_create == 'copy_current'):
        ref_id = self._context.get('active_id')
        res = self.env[model].browse(ref_id).copy(res)
    elif (action.use_create == 'copy_other'):
        res = action.ref_object.copy(res)
    else:
        res = self.env[model].create(res)
    if (action.link_new_record and action.link_field_id):
        record = self.env[action.model_id.model].browse(self._context.get('active_id'))
        record.write({action.link_field_id.name: res.id})
