require "administrate/base_dashboard" class PlanDashboard < Administrate::BaseDashboard # ATTRIBUTE_TYPES # a hash that describes the type of each of the model's fields. # # Each different type represents an Administrate::Field object, # which determines how the attribute is displayed # on pages throughout the dashboard. ATTRIBUTE_TYPES = { template: Field::BelongsTo, phases: Field::HasMany, sections: Field::HasMany, questions: Field::HasMany, themes: Field::HasMany, answers: Field::HasMany, notes: Field::HasMany, roles: Field::HasMany, users: Field::HasMany, plan_guidance_groups: Field::HasMany, guidance_groups: Field::HasMany, exported_plans: Field::HasMany, setting_objects: Field::HasMany.with_options(class_name: "Settings::Template"), id: Field::Number, project_id: Field::Number, title: Field::String, created_at: Field::DateTime, updated_at: Field::DateTime, slug: Field::String, grant_number: Field::String, identifier: Field::String, description: Field::Text, principal_investigator: Field::String, principal_investigator_identifier: Field::String, data_contact: Field::String, funder_name: Field::String, visibility: Field::String.with_options(searchable: false), }.freeze # COLLECTION_ATTRIBUTES # an array of attributes that will be displayed on the model's index page. # # By default, it's limited to four items to reduce clutter on index pages. # Feel free to add, remove, or rearrange items. COLLECTION_ATTRIBUTES = [ :template, :phases, :sections, :questions, ].freeze # SHOW_PAGE_ATTRIBUTES # an array of attributes that will be displayed on the model's show page. SHOW_PAGE_ATTRIBUTES = [ :template, :phases, :sections, :questions, :themes, :answers, :notes, :roles, :users, :plan_guidance_groups, :guidance_groups, :exported_plans, :setting_objects, :id, :project_id, :title, :created_at, :updated_at, :slug, :grant_number, :identifier, :description, :principal_investigator, :principal_investigator_identifier, :data_contact, :funder_name, :visibility, ].freeze # FORM_ATTRIBUTES # an array of attributes that will be displayed # on the model's form (`new` and `edit`) pages. FORM_ATTRIBUTES = [ :template, :phases, :sections, :questions, :themes, :answers, :notes, :roles, :users, :plan_guidance_groups, :guidance_groups, :exported_plans, :setting_objects, :project_id, :title, :slug, :grant_number, :identifier, :description, :principal_investigator, :principal_investigator_identifier, :data_contact, :funder_name, :visibility, ].freeze # Overwrite this method to customize how plans are displayed # across all pages of the admin dashboard. # # def display_resource(plan) # "Plan ##{plan.id}" # end end