Class: CompletionKit::DashboardController

Inherits:
ApplicationController show all
Defined in:
app/controllers/completion_kit/dashboard_controller.rb

Constant Summary

Constants inherited from ApplicationController

ApplicationController::ONBOARDING_DISMISS_COOKIE

Instance Method Summary collapse

Instance Method Details

#showObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/completion_kit/dashboard_controller.rb', line 3

def show
  return redirect_to(onboarding_path) unless workspace_ready?

  @prompt_count = Prompt.current_versions.count
  @run_count = Run.display_scoped.count
  @dataset_count = Dataset.count
  @metric_count = Metric.count
  @recent_runs = Run.display_scoped.order(created_at: :desc).limit(5)

  # Serving is independent of evaluating: a workspace that only fetches
  # prompts over the API and never runs an eval is exactly the audience for
  # this, so it sits outside the run-count gate below.
  @top_served = DashboardStats.top_served(since: 7.days.ago)
  @serve_activity = DashboardStats.serve_activity

  return unless Run.count > 5

  @activity = DashboardStats.activity
  @worst_metric = DashboardStats.worst_metric(since: 7.days.ago)
  @failures = DashboardStats.failures(since: 7.days.ago)
  # A workspace with no check metrics can never populate this card, so it
  # would sit at a permanent zero and read as filler.
  if Metric.exists?(metric_type: "check")
    @failing_checks = DashboardStats.failing_checks(since: 14.days.ago)
    @check_activity = DashboardStats.check_activity
  end
  @ignored_metrics = DashboardDismissal.metrics
  @ignored_failures = DashboardDismissal.failures
  @prompt_changes = DashboardStats.prompt_changes
end