Skip to content

Commit

Permalink
Fixes #5013 - Dashboard „REOPENING RATE“ statistic shows nothing.
Browse files Browse the repository at this point in the history
Co-authored-by: Florian Liebe <fl@zammad.com>
  • Loading branch information
rolfschmidt and fliebe92 committed Feb 5, 2024
1 parent 9cc958b commit c0e25c8
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 19 deletions.
5 changes: 2 additions & 3 deletions app/models/ticket/calls_stats_ticket_reopen_log.rb
Expand Up @@ -5,8 +5,7 @@ module Ticket::CallsStatsTicketReopenLog
extend ActiveSupport::Concern

included do
before_create :ticket_call_stats_ticket_reopen_log
before_update :ticket_call_stats_ticket_reopen_log
after_commit :ticket_call_stats_ticket_reopen_log
end

private
Expand All @@ -16,6 +15,6 @@ def ticket_call_stats_ticket_reopen_log
# return if we run import mode
return if Setting.get('import_mode')

Stats::TicketReopen.log('Ticket', id, saved_changes, updated_by_id)
Stats::TicketReopen.log('Ticket', id, previous_changes, updated_by_id)
end
end
14 changes: 0 additions & 14 deletions spec/models/ticket/calls_stats_ticket_reopen_log_examples.rb

This file was deleted.

23 changes: 23 additions & 0 deletions spec/models/ticket/calls_stats_ticket_reopen_log_spec.rb
@@ -0,0 +1,23 @@
# Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/

require 'rails_helper'

RSpec.describe 'Ticket::CallsStatsTicketReopenLog' do
let(:agent) { create(:agent, groups: Group.all) }
let(:ticket) { create(:ticket, group: Group.first, owner: agent) }

it 'does track reopened tickets' do
ticket.update(state: Ticket::State.find_by(name: 'closed'))
ticket.update(state: Ticket::State.find_by(name: 'open'))
expect(StatsStore.find_by(key: 'ticket:reopen', stats_storable_type: 'User', stats_storable_id: agent.id).data).to eq({ 'ticket_id'=> ticket.id })
end

it 'does calculate dashboard correctly' do
create_list(:ticket, 8, group: Group.first, owner: agent, state: Ticket::State.find_by(name: 'closed'))
tickets_reopened = create_list(:ticket, 2, group: Group.first, owner: agent, state: Ticket::State.find_by(name: 'closed'))
tickets_reopened.each { |ticket| ticket.update(state: Ticket::State.find_by(name: 'open')) }

Stats.generate
expect(StatsStore.find_by(key: 'dashboard', stats_storable_type: 'User', stats_storable_id: agent.id).data['StatsTicketReopen']).to eq({ 'used_for_average' => 20.0, 'percent' => 20.0, 'average_per_agent' => 20.0, 'state' => 'good', 'count' => 2, 'total' => 10 })
end
end
2 changes: 0 additions & 2 deletions spec/models/ticket_spec.rb
Expand Up @@ -12,7 +12,6 @@
require 'models/concerns/has_xss_sanitized_note_examples'
require 'models/concerns/has_object_manager_attributes_examples'
require 'models/tag/writes_to_ticket_history_examples'
require 'models/ticket/calls_stats_ticket_reopen_log_examples'
require 'models/ticket/enqueues_user_ticket_counter_job_examples'
require 'models/ticket/escalation_examples'
require 'models/ticket/resets_pending_time_seconds_examples'
Expand All @@ -34,7 +33,6 @@
it_behaves_like 'HasXssSanitizedNote', model_factory: :ticket
it_behaves_like 'HasObjectManagerAttributes'
it_behaves_like 'Ticket::Escalation'
it_behaves_like 'TicketCallsStatsTicketReopenLog'
it_behaves_like 'TicketEnqueuesTicketUserTicketCounterJob'
it_behaves_like 'TicketResetsPendingTimeSeconds'
it_behaves_like 'TicketSetsCloseTime'
Expand Down

0 comments on commit c0e25c8

Please sign in to comment.