-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
customer_dashboard.rb
38 lines (35 loc) · 1.09 KB
/
customer_dashboard.rb
1
2
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
33
34
35
36
37
38
require "administrate/base_dashboard"
require "administrate/field/has_many_variant"
class CustomerDashboard < Administrate::BaseDashboard
ATTRIBUTE_TYPES = {
created_at: Field::DateTime,
email: Field::Email,
email_subscriber: Field::Boolean,
lifetime_value: Field::Number.with_options(prefix: "$", decimals: 2),
name: Field::String,
orders: Field::HasMany.with_options(limit: 2, sort_by: :id),
log_entries: Field::HasManyVariant.with_options(limit: 2, sort_by: :id),
updated_at: Field::DateTime,
kind: Field::Select.with_options(collection: Customer::KINDS),
country: Field::BelongsTo.with_options(
primary_key: :code,
foreign_key: :country_code,
searchable: true,
searchable_field: "name",
),
password: Field::Password,
}
COLLECTION_ATTRIBUTES = ATTRIBUTE_TYPES.keys - %i[created_at updated_at]
SHOW_PAGE_ATTRIBUTES = ATTRIBUTE_TYPES.keys - [:name]
FORM_ATTRIBUTES = [
:name,
:email,
:email_subscriber,
:kind,
:country,
:password,
].freeze
def display_resource(customer)
customer.name
end
end