Задачи в 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
Это, вероятно, нормально, так как поле последовательности на самом деле не является очень важным полем для защиты от случайного изменения не владельцами.