From bff0e3ea16cde36d053607df56a12632bf78cfcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Geonizeli?= Date: Wed, 18 Aug 2021 16:36:36 -0300 Subject: [PATCH] add stake order to admin --- .../admin/stake_orders_controller.rb | 47 ++++++++++++++++ app/dashboards/fiat_balance_dashboard.rb | 2 +- app/dashboards/stake_order_dashboard.rb | 56 +++++++++++++++++++ config/locales/pt-BR.yml | 5 ++ config/routes.rb | 1 + 5 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 app/controllers/admin/stake_orders_controller.rb create mode 100644 app/dashboards/stake_order_dashboard.rb diff --git a/app/controllers/admin/stake_orders_controller.rb b/app/controllers/admin/stake_orders_controller.rb new file mode 100644 index 0000000..719cfd9 --- /dev/null +++ b/app/controllers/admin/stake_orders_controller.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true +module Admin + class StakeOrdersController < Admin::ApplicationController + # Overwrite any of the RESTful controller actions to implement custom behavior + # For example, you may want to send an email after a foo is updated. + # + # def update + # super + # send_foo_updated_email(requested_resource) + # end + + # Override this method to specify custom lookup behavior. + # This will be used to set the resource for the `show`, `edit`, and `update` + # actions. + # + # def find_resource(param) + # Foo.find_by!(slug: param) + # end + + # The result of this lookup will be available as `requested_resource` + + # Override this if you have certain roles that require a subset + # this will be used to set the records shown on the `index` action. + # + # def scoped_resource + # if current_user.super_admin? + # resource_class + # else + # resource_class.with_less_stuff + # end + # end + + # Override `resource_params` if you want to transform the submitted + # data before it's persisted. For example, the following would turn all + # empty values into nil values. It uses other APIs such as `resource_class` + # and `dashboard`: + # + # def resource_params + # params.require(resource_class.model_name.param_key). + # permit(dashboard.permitted_attributes). + # transform_values { |value| value == "" ? nil : value } + # end + + # See https://administrate-prototype.herokuapp.com/customizing_controller_actions + # for more information + end +end diff --git a/app/dashboards/fiat_balance_dashboard.rb b/app/dashboards/fiat_balance_dashboard.rb index 690e49d..e754292 100644 --- a/app/dashboards/fiat_balance_dashboard.rb +++ b/app/dashboards/fiat_balance_dashboard.rb @@ -22,7 +22,7 @@ class FiatBalanceDashboard < Administrate::BaseDashboard # # By default, it's limited to four items to reduce clutter on index pages. # Feel free to add, remove, or rearrange items. - COLLECTION_ATTRIBUTES = [:id, :user, :amount_formatted].freeze + COLLECTION_ATTRIBUTES = [:user, :id, :amount_formatted].freeze # SHOW_PAGE_ATTRIBUTES # an array of attributes that will be displayed on the model's show page. diff --git a/app/dashboards/stake_order_dashboard.rb b/app/dashboards/stake_order_dashboard.rb new file mode 100644 index 0000000..034bae6 --- /dev/null +++ b/app/dashboards/stake_order_dashboard.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true +require "administrate/base_dashboard" + +class StakeOrderDashboard < 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 = { + user: Field::BelongsTo, + currency: Field::BelongsTo, + id: Field::Number, + pool_name: Field::String, + status: Field::Enumerize, + amount: Field::String.with_options(searchable: false), + created_at: Field::DateTime, + updated_at: Field::DateTime, + }.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 = [:user, :currency, :id, :pool_name].freeze + + # SHOW_PAGE_ATTRIBUTES + # an array of attributes that will be displayed on the model's show page. + SHOW_PAGE_ATTRIBUTES = [:user, :currency, :id, :pool_name, :status, :amount, :created_at, :updated_at].freeze + + # FORM_ATTRIBUTES + # an array of attributes that will be displayed + # on the model's form (`new` and `edit`) pages. + FORM_ATTRIBUTES = [:user, :currency, :pool_name, :status, :amount].freeze + + # COLLECTION_FILTERS + # a hash that defines filters that can be used while searching via the search + # field of the dashboard. + # + # For example to add an option to search for open resources by typing "open:" + # in the search field: + # + # COLLECTION_FILTERS = { + # open: ->(resources) { resources.where(open: true) } + # }.freeze + COLLECTION_FILTERS = {}.freeze + + # Overwrite this method to customize how stake orders are displayed + # across all pages of the admin dashboard. + # + # def display_resource(stake_order) + # "StakeOrder ##{stake_order.id}" + # end +end diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index ea4b93f..139e33b 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -28,6 +28,11 @@ pt-BR: buy_crypto_order: one: Pedido de Compra other: Pedidos de Compra + + stake_order: + one: Pedido de Stake + other: Pedidos de Stake + attributes: user: first_name: Primeiro nome diff --git a/config/routes.rb b/config/routes.rb index 1459322..3592b54 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,6 +11,7 @@ Rails.application.routes.draw do resources :fiat_balances resources :buy_crypto_orders resources :sell_crypto_orders + resources :stake_orders resources :admin_users root to: "users#index"