Задачи в Kanban View: ошибка перестановки карт, когда Project/User имеет право изменять только свои задачи

Это происходит, когда Проект / Пользователь переносит свою задачу на этап назначения, содержащий задачи, которые ему не принадлежат.

По-видимому, Odoo запоминает упорядочение стека задач в рамках этапа через project.task.sequenceи обновляет все карты задач sequence поля, когда Проект / Пользователь завершает действие удаления. Но так как Проект / Пользователь не уполномочен изменять задачи других пользователей (из project.task тип объекта). Сервер Odoo вызывает исключение, показанное ниже.

введите описание изображения здесь

Ограничение доступа осуществляется с помощью следующего правила записи для проекта / пользователя:

Name: Project/Task: only assignee and creator can modify task
Object: Task (project.task)
Apply for: Write
Domain filter: ['|',('user_id','=',user.id),('create_uid','=',user.id)] 
Group name: Project/User

Есть ли решение этой проблемы?

На момент написания статьи ошибка может быть воспроизведена по адресу http://demo.odoo.com/ настоящее время работает версия Odoo 8.saas~6.

Обратите внимание, что по умолчанию Людским ресурсам / Сотрудникам разрешено изменять задачи, которые им не назначены, поэтому сначала необходимо удалить право записи и удаления записи "Проект / Задача: сотрудники: общедоступный, портал, сотрудник или (подписчики и следующие)",

1 ответ

Не мог придумать лучшего решения, поэтому вместо этого я сделал следующий хак:

Добавить в верхнюю часть _write функция openerp.models.BaseModel в файле ODOO_ROOT / models.py:

def _write(self, cr, user, ids, vals, context=None):
    # use admin if just writing to 'sequence' field of model 'project.task'
    if self._name == 'project.task' and vals.keys() == ['sequence']:
        user = SUPERUSER_ID

Это, вероятно, нормально, так как поле последовательности на самом деле не является очень важным полем для защиты от случайного изменения не владельцами.

Другие вопросы по тегам