Есть ли способ отслеживать изменения, внесенные в статус рабочего процесса, чтобы пользователи могли следить за процессом, который я реализую.
Ex:
Created on March 1st, by User 1.
Submitted on March 1st, by User 1.
Reviewing on March 2nd, by Admin.
Evaluating on March 4th, by SuperUser.
Accepted on March 6th, by MegaUser.
Таким образом, первая запись будет вставлена при создании запроса, вторая - при нажатии кнопки рабочего процесса «отправить»; третий - когда нажата кнопка рабочего процесса «Обзор» и так далее.
Любые мысли и предложения приветствуются!
Использование записей журнала аудита для этого не подходит.
Заранее спасибо. -FC.
Я решил это с помощью self.pool.get ('obj_name'). Create (cr, uid, values) для создания новых записей во второй таблице.
использовал эту функцию:
def insert_trace(self, cr, uid, id_request, context=None):
request = self.browse(cr, uid, id_request, context)
values = {
'generic_request_id': id_request[0],
'executor': self._get_user(cr, uid, context),
'state': request[0].state,
}
tracing_ids = self.pool.get('tracing').create(cr, uid,values)
return True
и вызывал его каждый раз, когда рабочий процесс менялся, например:
def request_draft(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state': 'draft'})
self.insert_trace(cr, uid, ids, context)
return True
def submit_request(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state': 'submitted'})
self.insert_trace(cr, uid, ids, context)
return True
Я оставлю это здесь, чтобы помочь любому с той же проблемой, что и у меня. Спасибо за советы!