Class: Onboarding::Completion

Inherits:
Object
  • Object
show all
Includes:
Gitlab::Experiment::Dsl, Gitlab::Utils::StrongMemoize
Defined in:
app/models/onboarding/completion.rb

Constant Summary collapse

ACTION_PATHS =
[
  :pipeline_created,
  :trial_started,
  :required_mr_approvals_enabled,
  :code_owners_enabled,
  :issue_created,
  :git_write,
  :merge_request_created,
  :user_added,
  :license_scanning_run,
  :secure_dependency_scanning_run,
  :secure_dast_run
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(project, current_user = nil) ⇒ Completion

Returns a new instance of Completion.



22
23
24
25
26
# File 'app/models/onboarding/completion.rb', line 22

def initialize(project, current_user = nil)
  @project = project
  @namespace = project.namespace
  @current_user = current_user
end

Instance Method Details

#completed?(column) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
43
# File 'app/models/onboarding/completion.rb', line 37

def completed?(column)
  if column == :code_added
    repository.commit_count > 1 || repository.branch_count > 1
  else
    attributes[column].present?
  end
end

#percentageObject



28
29
30
31
32
33
34
35
# File 'app/models/onboarding/completion.rb', line 28

def percentage
  return 0 unless onboarding_progress

  total_actions = action_columns.count
  completed_actions = action_columns.count { |column| completed?(column) }

  (completed_actions.to_f / total_actions * 100).round
end