pupilfirst/pupilfirst

View on GitHub
app/presenters/admin/targets/form_presenter.rb

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
module Admin
  module Targets
    class FormPresenter < ApplicationPresenter
      def initialize(target)
        @target = target
        super
      end

      def valid_prerequisites
        return all_live_targets if !@target.persisted? || level.blank?

        all_live_targets.where.not(id: @target.id).where(target_groups: { level: level })
      end

      def error_class
        @target.errors[:description].present? ? 'error-replica' : ''
      end

      private

      def level
        @level ||= @target.target_group&.level
      end

      def all_live_targets
        Target.live.includes(:level, :course)
      end
    end
  end
end