Duplicate filters in rails admin

32 Views Asked by At

I am using rails admin in my application. I want not to add duplicate filter agin and again. I added filter "start_date" selecting it from the drop down, even then I see same filter in the dropdown and selecting "start date" adds one more duplicate filter in the view.

enter image description here

My rails_admin file contains

RailsAdmin.config do |config|
  config.asset_source = :sprockets
  # config.asset_source = :webpacker

  ### Popular gems integration

  ## == Devise ==
  config.authenticate_with do
    warden.authenticate! scope: :user
  end
  config.current_user_method(&:current_user)

  ## == Cancan ==
  config.authorize_with do
    redirect_to main_app.root_path unless current_user.admin?
  end

  config.current_user_method(&:current_user)
  config.included_models = %w[User AapcSpecialityType Certification
                              TwilioControl Dashboard CoderFee
                              CodingType Department FacilityType HealthCareOrganization
                              Hospital HospitalJob PatientType Role Speciality
                              SpecialityType System User EducationDetail ProfessionalHistory
                              WorkPreference]
  ## == PaperTrail ==
  # config.audit_with :paper_trail, 'User', 'PaperTrail::Version' # PaperTrail >= 3.0.0

  ### More at https://github.com/sferik/rails_admin/wiki/Base-configuration

  def model_is_hospital_job?
    bindings[:abstract_model].model == HospitalJob
  end

  def scope_is_only_deleted?
    bindings[:controller].params[:scope].to_s.in?(["deleted_jobs"])
  end

  def paranoia_model?
    bindings[:abstract_model].model.respond_to?(:paranoia_column)
  end

  config.actions do
    dashboard                     # mandatory
    index                         # mandatory
    export
    show

    new
    edit

    bulk_delete do
      visible { !paranoia_model? }
    end

    delete do
      visible { !(model_is_hospital_job? && scope_is_only_deleted?) }
    end

    paranoia_permanent_delete do
      visible { model_is_hospital_job? && scope_is_only_deleted? }
    end

    bulk_paranoia_delete do
      visible { paranoia_model? && !(model_is_hospital_job? && scope_is_only_deleted?) }
    end

    bulk_paranoia_permanent_delete do
      visible { model_is_hospital_job? }
    end
    # show_in_app

    # new do
    #   except ['SomeModel']
    # end

    ## With an audit adapter, you can add:
    # history_index
    # history_show
  end

  config.model TwilioControl do
    label "Twillio Control"
    label_plural "Twillio Control"
    list do
      field :instance
      field :send_messages
      field :test_mobile_no
      field :send_to_test_mobile_no
      field :twilio_message_type_id
      field :type_name
      field :type_name_for_backend
    end
    show do
      field :instance
      field :send_messages
      field :test_mobile_no
      field :send_to_test_mobile_no
      field :twilio_message_type_id
      field :type_name
      field :type_name_for_backend
    end
  end

  config.model Dashboard do
    list do
      scopes %i[recent_10_users disabled_users]
      field :email do
        label "User Email"
        pretty_value do
          bindings[:view].link_to(bindings[:object].email,
                                  bindings[:view].rails_admin.show_path(model_name: "User", id: bindings[:object].id))
        end
      end
    end
  end

  config.model CoderFee do
    label "Coder Fees"
    label_plural "Coder Fees"
  end

  config.model "User" do
    list do
      field :id
      field :first_name
      field :last_name
      field :zipcode
      field :address_line1
      field :address_line2
      field :city
      field :state
      field :phone
      field :years_of_experience
      field :professional_summary
      field :has_icd_10_training
      field :has_icd_10_coding
      field :has_icd_10_trainer
      field :year_as_medical_coder
      field :created_at
      field :updated_at
      field :email
      field :reset_password_sent_at
      field :sign_in_count
      field :current_sign_in_at
      field :last_sign_in_at
      field :current_sign_in_ip
      field :last_sign_in_ip
      field :confirmation_token
      field :confirmed_at
      field :confirmation_sent_at
      field :unconfirmed_email
      field :speciality_id
      field :role_id, :enum do
        enum do
          Role.all.map { |role| [role.name, role.id] }
        end
      end
      field :remember_created_at
      field :middle_initial
      field :avatar
      field :facility_type_id
      field :twitter_handle
      field :time_zone
      field :secondary_email
      field :icd_10_coding_year
      field :icd_10_coding_month
      field :preference_visit
      field :hospital
      field :resume
      field :total_rating
      field :no_of_rated_items
      field :ahima_number
      field :aapc_number
      field :disabled
      field :education_details
      field :facility_types
      field :professional_histories
      field :work_preference
      field :certifications
      field :speciality_types
      field :systems
      field :coding_types
      field :patient_types
      field :aapc_speciality_types
      field :hospital_jobs
    end
  end

  config.model "HospitalJob" do
    list do
      scopes %i[active_jobs deleted_jobs]
      field :id do
        # visible { bindings[:controller].current_action != :add_filter } # Hide the field in the add_filter action
        searchable true
      end
      field :start_date
      field :end_date
      field :logo
      field :location
      field :pay_for_long_distance
      field :job_description
      field :hospital_id
      field :mode_of_pay
      field :no_of_chart
      field :fee_per_chart
      field :hour_per_week
      field :per_hour
      field :total_compensation
      field :created_at
      field :updated_at
      field :coder_experience
      field :price_negotiable
      field :job_type
      field :no_of_hours_in_week
      field :state, :enum do
        enum do
          [
            ["New", "NEW"],
            ["Draft", "DRAFT"],
            ["Published", "PUBLISHED"],
            ["Archived", "ARCHIVED"],
            ["Deleted", "DELETED"],
            ["Applied", "APPLIED"],
            ["Selected", "SELECTED"],
            ["Accepted", "ACCEPTED"],
            ["Sign Process", "SIGN_PROCESS"],
            ["Baa Signed", "BAA_SIGNED"],
            ["Policy Signed", "POLICY_SIGNED"],
            ["Signed", "SIGNED"],
            ["Withdrawn", "WITHDRAWN"],
            ["Rejected", "REJECTED"],
            ["Contracted", "CONTRACTED"],
            ["Working", "WORKING"],
            ["Submitted", "SUBMITTED"],
            ["Completed", "COMPLETED"],
            ["Incompleted", "INCOMPLETED"],
            ["Approved To Pay", "APPROVED_TO_PAY"],
            ["Invoiced", "INVOICED"],
            ["Declined", "DECLINED"]
          ]
        end
      end
      field :has_template
      field :published_at
      field :expires_at
      field :deleted_at
      field :selected_at
      field :signed_at
      field :contracted_at
      field :submitted_at
      field :approved_to_pay_at
      field :invoiced_at
      field :working_at
      field :completed_at
      field :incompleted_at
      field :state_date
      field :created_by
      field :certifications
      field :systems
      field :coding_types
      field :patient_types
      field :users
      field :aapc_speciality_types
    end
  end
end

I thought of writing JQuery and remove it form the dropdown once it added. But When I log into my admin panel, its not even compiling webpacker.

Much appreciated your suggestion/solution.

0

There are 0 best solutions below