Как / где Redmine рассчитывает / сохраняет потраченное время?
Я зарегистрировал несколько записей времени для проблемы в проекте A, но они должны были быть зарегистрированы для проблемы в проекте B.
Я пытался использовать Redmine GUI для редактирования записей времени, связанных с правильной проблемой, но (потому что они в разных проектах?) Редактирование было отклонено из-за "неверной проблемы" или чего-то еще.
Итак, я вошел в MySQL и отредактировал записи журнала:
update time_entries set project_id=40, issue_id=2645 where `issue_id` = 2643;
Выпуск 2645 теперь корректно отображает записанные записи времени и общее "затраченное время"
Проблема 2643 правильно не показывает какие-либо записи времени, но все еще показывает старое значение для "Потраченного времени"
Я попытался обновить страницу, выйти из системы и включить ее, даже используя новый браузер, но значение "Затраченное время" сохраняется в выпуске 2643.
Я не вижу поле с именем spent_time
в ТАБЛИЦЕ time_entries
или что-нибудь похожее при поиске имени поля в БД information_schema
,
select * from columns where (column_name like '%spent%' OR column_name LIKE '%time%') and table_schema = 'redmine';
Как я могу сказать Redmine обновить значение для "Потраченного времени" после ручного редактирования записей в таблице time_entries
?
2 ответа
Время регистрации довольно сложно. Вы, возможно, заметили, что вы не можете напрямую удалить или сбросить зарегистрированное время. Если вы отправите потраченное время, оно добавится к предыдущим потраченным часам. Также, как вы упомянули, все родительские проблемы наследуют потраченное время от своих подзадач.
Аккуратный трюк: если вы напишите ".xml" в конце своего URL, вы увидите некоторую информацию о проблеме. Например, если вы перейдете в "localhost:8080/redmine/issue/500.xml", вы увидите разбивку проблемы с идентификатором 500. Это также относится к группе проблем.
Теперь, чтобы просмотреть историю ошибок, вы можете добавить ".xml? Include=journals" к нужной ссылке на проблему. Это покажет предыдущие изменения и когда они были сделаны в формате массива. К сожалению, это не работает с группой проблем, но по этой ссылке есть патч: http://www.redmine.org/issues/12746
Существует также драгоценный камень под названием активный ресурс. Он позволяет вам писать скрипты ruby, которые могут загружать проблемы как объект в формате xml, и вы можете редактировать, читать или добавлять любые проблемы или поля, которые вы хотели бы. Это позволяет избежать использования базы данных и может сделать вещи менее рискованными.
Полезная ссылка:
http://www.redmine.org/projects/redmine/wiki/Rest_api_with_ruby
Удачи!
-Josh
Если я правильно понимаю ваш вопрос, есть способ сделать это через графический интерфейс Redmine (при условии правильного уровня доступа к проектам):
- Измените проект для одной из проблем на тот же проект, что и другая проблема.
- Отредактируйте потраченные время записи на другой вопрос
- Вернуть проект для оригинальной проблемы, измененной выше.
Ваше решение о внесении изменений в MySQL сработало, хотя это может быть рискованно, если вы не будете осторожны.