123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- class CreateTicketReopenTime < ActiveRecord::Migration[5.0]
- def change
- # return if it's a new setup
- return if !Setting.exists?(name: 'system_init_done')
- change_table :tickets do |t|
- t.timestamp :last_close_at, limit: 3, null: true
- end
- Ticket.reset_column_information
- change_table :groups do |t|
- t.integer :reopen_time_in_days, null: true
- end
- Group.reset_column_information
- UserInfo.current_user_id = 1
- ObjectManager::Attribute.add(
- force: true,
- object: 'Group',
- name: 'follow_up_possible',
- display: 'Follow-up possible',
- data_type: 'select',
- data_option: {
- default: 'yes',
- options: {
- yes: 'yes',
- new_ticket: 'do not reopen ticket but create new ticket',
- new_ticket_after_certain_time: 'do not reopen ticket after certain time but create new ticket',
- },
- null: false,
- note: 'Follow-up for closed ticket possible or not.',
- translate: true
- },
- editable: false,
- active: true,
- screens: {
- create: {
- '-all-' => {
- null: false,
- },
- },
- edit: {
- '-all-' => {
- null: false,
- },
- },
- },
- to_create: false,
- to_migrate: false,
- to_delete: false,
- position: 400,
- )
- ObjectManager::Attribute.add(
- force: true,
- object: 'Group',
- name: 'reopen_time_in_days',
- display: 'Reopening time in days',
- data_type: 'integer',
- data_option: {
- default: '',
- min: 1,
- max: 3650,
- null: true,
- note: 'Allow reopening of tickets within a certain time.',
- translate: true
- },
- editable: false,
- active: true,
- screens: {
- create: { 'admin.group': { shown: false, required: false } },
- edit: { 'admin.group': { shown: false, required: false } },
- view: { 'admin.group': { shown: false } }
- },
- to_create: false,
- to_migrate: false,
- to_delete: false,
- position: 410,
- created_by_id: 1,
- updated_by_id: 1,
- )
- CoreWorkflow.create_if_not_exists(
- name: 'base - show reopen_time_in_days',
- object: 'Group',
- condition_saved: {},
- condition_selected: { 'group.follow_up_possible'=>{ 'operator' => 'is', 'value' => ['new_ticket_after_certain_time'] } },
- perform: { 'group.reopen_time_in_days'=>{ 'operator' => %w[show set_mandatory], 'show' => 'true', 'set_mandatory' => 'true' } },
- preferences: { 'screen'=>%w[create edit] },
- changeable: false,
- active: true,
- created_by_id: 1,
- updated_by_id: 1,
- )
- end
- end
|