# 1. Создание подзадачи в этом же проекте и без отправки уведомленияsubtask = WorkPackage.create_perform!(subject: "test create subtask #\{DateTime.now\}", project_id: self.project_id, parent_id: self.id, send_notifications: false)# 2. Создание копии задачи и связи с исходнойcopy_wp = ... # TODOself.add_relation(to: copy_wp, relation_type: 'relates')
Назначить исполнителя задачи в зависимости от типа задачи
# Если код типа задачи 'bug' - исполнитель задачи устанавливается 'developer@u-meteor.ru'self.assigned_to = User.where(login: 'developer@u-meteor.ru').first if self.type_sym == :bug
При назначении любого исполнителя для задачи - добавлять конкретный спринт, а при обнулении - убирать
# Проверочное условие (condition_script)self.assigned_to_changed?# Действиеif self.assigned_to.present? then # если исполнитель указан self.verion = Version.find(123)else self.version = nilend
Переоткрыть задачу если в ней добавился комментарий
# Поиск тега по названиюtag = Tag.where(name: 'My tag').first# Добавление к задачеself.tags.push(tag)
Автоматическое заполнение данных в доп. полях
# Получение значения заказчика по умолчанию из доп поля проекта задачиcustomer_code = self.project.cf_customer_option.json['code']# Установка поля заказчик значением по умолчаниюself.cf_customer = CustomOption.by_cf(:customer).where(symbol: customer_code).first