Browse Source
* Install ActiveAdmin * Tidy up dashboard * Set time zone as per Gov UK recommendations * Add chartkick for some basic admin dashboard chartspull/78/head^2
Daniel Baark
3 years ago
committed by
GitHub
14 changed files with 532 additions and 2 deletions
@ -0,0 +1,20 @@ |
|||||||
|
ActiveAdmin.register CaseLog do |
||||||
|
|
||||||
|
# See permitted parameters documentation: |
||||||
|
# https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters |
||||||
|
permit_params do |
||||||
|
permitted = [:status, :tenant_code, :person_1_age, :person_1_gender, :tenant_ethnic_group, :tenant_nationality, :previous_housing_situation, :armed_forces, :person_1_economic_status, :household_number_of_other_members, :person_2_relationship, :person_2_age, :person_2_gender, :person_2_economic_status, :person_3_relationship, :person_3_age, :person_3_gender, :person_3_economic_status, :person_4_relationship, :person_4_age, :person_4_gender, :person_4_economic_status, :person_5_relationship, :person_5_age, :person_5_gender, :person_5_economic_status, :person_6_relationship, :person_6_age, :person_6_gender, :person_6_economic_status, :person_7_relationship, :person_7_age, :person_7_gender, :person_7_economic_status, :person_8_relationship, :person_8_age, :person_8_gender, :person_8_economic_status, :homelessness, :reason_for_leaving_last_settled_home, :benefit_cap_spare_room_subsidy, :armed_forces_active, :armed_forces_injured, :armed_forces_partner, :medical_conditions, :pregnancy, :accessibility_requirements, :condition_effects, :tenancy_code, :tenancy_start_date, :starter_tenancy, :fixed_term_tenancy, :tenancy_type, :letting_type, :letting_provider, :property_location, :previous_postcode, :property_relet, :property_vacancy_reason, :property_reference, :property_unit_type, :property_building_type, :property_number_of_bedrooms, :property_void_date, :property_major_repairs, :property_major_repairs_date, :property_number_of_times_relet, :property_wheelchair_accessible, :net_income, :net_income_frequency, :net_income_uc_proportion, :housing_benefit, :rent_frequency, :basic_rent, :service_charge, :personal_service_charge, :support_charge, :total_charge, :outstanding_amount, :time_lived_in_la, :time_on_la_waiting_list, :previous_la, :property_postcode, :reasonable_preference, :reasonable_preference_reason, :cbl_letting, :chr_letting, :cap_letting, :outstanding_rent_or_charges, :other_reason_for_leaving_last_settled_home, :accessibility_requirements_fully_wheelchair_accessible_housing, :accessibility_requirements_wheelchair_access_to_essential_rooms, :accessibility_requirements_level_access_housing, :accessibility_requirements_other_disability_requirements, :accessibility_requirements_no_disability_requirements, :accessibility_requirements_do_not_know, :accessibility_requirements_prefer_not_to_say, :condition_effects_vision, :condition_effects_hearing, :condition_effects_mobility, :condition_effects_dexterity, :condition_effects_stamina, :condition_effects_learning, :condition_effects_memory, :condition_effects_mental_health, :condition_effects_social_or_behavioral, :condition_effects_other, :condition_effects_prefer_not_to_say, :reasonable_preference_reason_homeless, :reasonable_preference_reason_unsatisfactory_housing, :reasonable_preference_reason_medical_grounds, :reasonable_preference_reason_avoid_hardship, :reasonable_preference_reason_do_not_know, :other_tenancy_type, :override_net_income_validation, :net_income_known] |
||||||
|
permitted |
||||||
|
end |
||||||
|
|
||||||
|
index do |
||||||
|
selectable_column |
||||||
|
id_column |
||||||
|
column :created_at |
||||||
|
column :updated_at |
||||||
|
column :status |
||||||
|
column :tenant_code |
||||||
|
column :property_postcode |
||||||
|
actions |
||||||
|
end |
||||||
|
end |
@ -0,0 +1,32 @@ |
|||||||
|
ActiveAdmin.register_page "Dashboard" do |
||||||
|
menu priority: 1, label: proc { I18n.t("active_admin.dashboard") } |
||||||
|
|
||||||
|
content title: proc { I18n.t("active_admin.dashboard") } do |
||||||
|
columns do |
||||||
|
column do |
||||||
|
panel "Recent Case Logs" do |
||||||
|
table_for CaseLog.order(updated_at: :desc).limit(10) do |
||||||
|
column :id |
||||||
|
column :created_at |
||||||
|
column :updated_at |
||||||
|
column :status |
||||||
|
column :tenant_code |
||||||
|
column :property_postcode |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
column do |
||||||
|
panel "Total case logs in progress" do |
||||||
|
para CaseLog.in_progress.size |
||||||
|
end |
||||||
|
panel "Total case logs completed" do |
||||||
|
para CaseLog.completed.size |
||||||
|
end |
||||||
|
panel "Total case logs completed" do |
||||||
|
pie_chart CaseLog.group(:status).size |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
@ -0,0 +1,7 @@ |
|||||||
|
// Load Active Admin's styles into Webpacker,
|
||||||
|
// see `active_admin.scss` for customization.
|
||||||
|
import "../stylesheets/active_admin"; |
||||||
|
|
||||||
|
import "@activeadmin/activeadmin"; |
||||||
|
|
||||||
|
import "chartkick/chart.js" |
@ -0,0 +1,2 @@ |
|||||||
|
/* Active Admin Print Stylesheet */ |
||||||
|
@import "~@activeadmin/activeadmin/src/scss/print"; |
@ -0,0 +1,17 @@ |
|||||||
|
// Sass variable overrides must be declared before loading up Active Admin's styles. |
||||||
|
// |
||||||
|
// To view the variables that Active Admin provides, take a look at |
||||||
|
// `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the |
||||||
|
// Active Admin source. |
||||||
|
// |
||||||
|
// For example, to change the sidebar width: |
||||||
|
// $sidebar-width: 242px; |
||||||
|
|
||||||
|
// Active Admin's got SASS! |
||||||
|
@import "~@activeadmin/activeadmin/src/scss/mixins"; |
||||||
|
@import "~@activeadmin/activeadmin/src/scss/base"; |
||||||
|
|
||||||
|
// Overriding any non-variable Sass must be done after the fact. |
||||||
|
// For example, to change the default status-tag color: |
||||||
|
// |
||||||
|
// .status_tag { background: #6090DB; } |
@ -0,0 +1,335 @@ |
|||||||
|
ActiveAdmin.setup do |config| |
||||||
|
# == Site Title |
||||||
|
# |
||||||
|
# Set the title that is displayed on the main layout |
||||||
|
# for each of the active admin pages. |
||||||
|
# |
||||||
|
config.site_title = "DLUHC CORE" |
||||||
|
|
||||||
|
# Set the link url for the title. For example, to take |
||||||
|
# users to your main site. Defaults to no link. |
||||||
|
# |
||||||
|
# config.site_title_link = "/" |
||||||
|
|
||||||
|
# Set an optional image to be displayed for the header |
||||||
|
# instead of a string (overrides :site_title) |
||||||
|
# |
||||||
|
# Note: Aim for an image that's 21px high so it fits in the header. |
||||||
|
# |
||||||
|
# config.site_title_image = "logo.png" |
||||||
|
|
||||||
|
# == Default Namespace |
||||||
|
# |
||||||
|
# Set the default namespace each administration resource |
||||||
|
# will be added to. |
||||||
|
# |
||||||
|
# eg: |
||||||
|
# config.default_namespace = :hello_world |
||||||
|
# |
||||||
|
# This will create resources in the HelloWorld module and |
||||||
|
# will namespace routes to /hello_world/* |
||||||
|
# |
||||||
|
# To set no namespace by default, use: |
||||||
|
# config.default_namespace = false |
||||||
|
# |
||||||
|
# Default: |
||||||
|
# config.default_namespace = :admin |
||||||
|
# |
||||||
|
# You can customize the settings for each namespace by using |
||||||
|
# a namespace block. For example, to change the site title |
||||||
|
# within a namespace: |
||||||
|
# |
||||||
|
# config.namespace :admin do |admin| |
||||||
|
# admin.site_title = "Custom Admin Title" |
||||||
|
# end |
||||||
|
# |
||||||
|
# This will ONLY change the title for the admin section. Other |
||||||
|
# namespaces will continue to use the main "site_title" configuration. |
||||||
|
|
||||||
|
# == User Authentication |
||||||
|
# |
||||||
|
# Active Admin will automatically call an authentication |
||||||
|
# method in a before filter of all controller actions to |
||||||
|
# ensure that there is a currently logged in admin user. |
||||||
|
# |
||||||
|
# This setting changes the method which Active Admin calls |
||||||
|
# within the application controller. |
||||||
|
# config.authentication_method = :authenticate_admin_user! |
||||||
|
|
||||||
|
# == User Authorization |
||||||
|
# |
||||||
|
# Active Admin will automatically call an authorization |
||||||
|
# method in a before filter of all controller actions to |
||||||
|
# ensure that there is a user with proper rights. You can use |
||||||
|
# CanCanAdapter or make your own. Please refer to documentation. |
||||||
|
# config.authorization_adapter = ActiveAdmin::CanCanAdapter |
||||||
|
|
||||||
|
# In case you prefer Pundit over other solutions you can here pass |
||||||
|
# the name of default policy class. This policy will be used in every |
||||||
|
# case when Pundit is unable to find suitable policy. |
||||||
|
# config.pundit_default_policy = "MyDefaultPunditPolicy" |
||||||
|
|
||||||
|
# If you wish to maintain a separate set of Pundit policies for admin |
||||||
|
# resources, you may set a namespace here that Pundit will search |
||||||
|
# within when looking for a resource's policy. |
||||||
|
# config.pundit_policy_namespace = :admin |
||||||
|
|
||||||
|
# You can customize your CanCan Ability class name here. |
||||||
|
# config.cancan_ability_class = "Ability" |
||||||
|
|
||||||
|
# You can specify a method to be called on unauthorized access. |
||||||
|
# This is necessary in order to prevent a redirect loop which happens |
||||||
|
# because, by default, user gets redirected to Dashboard. If user |
||||||
|
# doesn't have access to Dashboard, he'll end up in a redirect loop. |
||||||
|
# Method provided here should be defined in application_controller.rb. |
||||||
|
# config.on_unauthorized_access = :access_denied |
||||||
|
|
||||||
|
# == Current User |
||||||
|
# |
||||||
|
# Active Admin will associate actions with the current |
||||||
|
# user performing them. |
||||||
|
# |
||||||
|
# This setting changes the method which Active Admin calls |
||||||
|
# (within the application controller) to return the currently logged in user. |
||||||
|
# config.current_user_method = :current_admin_user |
||||||
|
|
||||||
|
# == Logging Out |
||||||
|
# |
||||||
|
# Active Admin displays a logout link on each screen. These |
||||||
|
# settings configure the location and method used for the link. |
||||||
|
# |
||||||
|
# This setting changes the path where the link points to. If it's |
||||||
|
# a string, the strings is used as the path. If it's a Symbol, we |
||||||
|
# will call the method to return the path. |
||||||
|
# |
||||||
|
# Default: |
||||||
|
config.logout_link_path = :destroy_admin_user_session_path |
||||||
|
|
||||||
|
# This setting changes the http method used when rendering the |
||||||
|
# link. For example :get, :delete, :put, etc.. |
||||||
|
# |
||||||
|
# Default: |
||||||
|
# config.logout_link_method = :get |
||||||
|
|
||||||
|
# == Root |
||||||
|
# |
||||||
|
# Set the action to call for the root path. You can set different |
||||||
|
# roots for each namespace. |
||||||
|
# |
||||||
|
# Default: |
||||||
|
# config.root_to = 'dashboard#index' |
||||||
|
|
||||||
|
# == Admin Comments |
||||||
|
# |
||||||
|
# This allows your users to comment on any resource registered with Active Admin. |
||||||
|
# |
||||||
|
# You can completely disable comments: |
||||||
|
config.comments = false |
||||||
|
# |
||||||
|
# You can change the name under which comments are registered: |
||||||
|
# config.comments_registration_name = 'AdminComment' |
||||||
|
# |
||||||
|
# You can change the order for the comments and you can change the column |
||||||
|
# to be used for ordering: |
||||||
|
# config.comments_order = 'created_at ASC' |
||||||
|
# |
||||||
|
# You can disable the menu item for the comments index page: |
||||||
|
# config.comments_menu = false |
||||||
|
# |
||||||
|
# You can customize the comment menu: |
||||||
|
# config.comments_menu = { parent: 'Admin', priority: 1 } |
||||||
|
|
||||||
|
# == Batch Actions |
||||||
|
# |
||||||
|
# Enable and disable Batch Actions |
||||||
|
# |
||||||
|
config.batch_actions = true |
||||||
|
|
||||||
|
# == Controller Filters |
||||||
|
# |
||||||
|
# You can add before, after and around filters to all of your |
||||||
|
# Active Admin resources and pages from here. |
||||||
|
# |
||||||
|
# config.before_action :do_something_awesome |
||||||
|
|
||||||
|
# == Attribute Filters |
||||||
|
# |
||||||
|
# You can exclude possibly sensitive model attributes from being displayed, |
||||||
|
# added to forms, or exported by default by ActiveAdmin |
||||||
|
# |
||||||
|
config.filter_attributes = [:encrypted_password, :password, :password_confirmation] |
||||||
|
|
||||||
|
# == Localize Date/Time Format |
||||||
|
# |
||||||
|
# Set the localize format to display dates and times. |
||||||
|
# To understand how to localize your app with I18n, read more at |
||||||
|
# https://guides.rubyonrails.org/i18n.html |
||||||
|
# |
||||||
|
# You can run `bin/rails runner 'puts I18n.t("date.formats")'` to see the |
||||||
|
# available formats in your application. |
||||||
|
# |
||||||
|
config.localize_format = :long |
||||||
|
|
||||||
|
# == Setting a Favicon |
||||||
|
# |
||||||
|
# config.favicon = 'favicon.ico' |
||||||
|
|
||||||
|
# == Meta Tags |
||||||
|
# |
||||||
|
# Add additional meta tags to the head element of active admin pages. |
||||||
|
# |
||||||
|
# Add tags to all pages logged in users see: |
||||||
|
# config.meta_tags = { author: 'My Company' } |
||||||
|
|
||||||
|
# By default, sign up/sign in/recover password pages are excluded |
||||||
|
# from showing up in search engine results by adding a robots meta |
||||||
|
# tag. You can reset the hash of meta tags included in logged out |
||||||
|
# pages: |
||||||
|
# config.meta_tags_for_logged_out_pages = {} |
||||||
|
|
||||||
|
# == Removing Breadcrumbs |
||||||
|
# |
||||||
|
# Breadcrumbs are enabled by default. You can customize them for individual |
||||||
|
# resources or you can disable them globally from here. |
||||||
|
# |
||||||
|
# config.breadcrumb = false |
||||||
|
|
||||||
|
# == Create Another Checkbox |
||||||
|
# |
||||||
|
# Create another checkbox is disabled by default. You can customize it for individual |
||||||
|
# resources or you can enable them globally from here. |
||||||
|
# |
||||||
|
# config.create_another = true |
||||||
|
|
||||||
|
# == Register Stylesheets & Javascripts |
||||||
|
# |
||||||
|
# We recommend using the built in Active Admin layout and loading |
||||||
|
# up your own stylesheets / javascripts to customize the look |
||||||
|
# and feel. |
||||||
|
# |
||||||
|
# To load a stylesheet: |
||||||
|
# config.register_stylesheet 'my_stylesheet.css' |
||||||
|
# |
||||||
|
# You can provide an options hash for more control, which is passed along to stylesheet_link_tag(): |
||||||
|
# config.register_stylesheet 'my_print_stylesheet.css', media: :print |
||||||
|
# |
||||||
|
# To load a javascript file: |
||||||
|
# config.register_javascript 'my_javascript.js' |
||||||
|
|
||||||
|
# == CSV options |
||||||
|
# |
||||||
|
# Set the CSV builder separator |
||||||
|
# config.csv_options = { col_sep: ';' } |
||||||
|
# |
||||||
|
# Force the use of quotes |
||||||
|
# config.csv_options = { force_quotes: true } |
||||||
|
|
||||||
|
# == Menu System |
||||||
|
# |
||||||
|
# You can add a navigation menu to be used in your application, or configure a provided menu |
||||||
|
# |
||||||
|
# To change the default utility navigation to show a link to your website & a logout btn |
||||||
|
# |
||||||
|
# config.namespace :admin do |admin| |
||||||
|
# admin.build_menu :utility_navigation do |menu| |
||||||
|
# menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank } |
||||||
|
# admin.add_logout_button_to_menu menu |
||||||
|
# end |
||||||
|
# end |
||||||
|
# |
||||||
|
# If you wanted to add a static menu item to the default menu provided: |
||||||
|
# |
||||||
|
# config.namespace :admin do |admin| |
||||||
|
# admin.build_menu :default do |menu| |
||||||
|
# menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank } |
||||||
|
# end |
||||||
|
# end |
||||||
|
|
||||||
|
# == Download Links |
||||||
|
# |
||||||
|
# You can disable download links on resource listing pages, |
||||||
|
# or customize the formats shown per namespace/globally |
||||||
|
# |
||||||
|
# To disable/customize for the :admin namespace: |
||||||
|
# |
||||||
|
# config.namespace :admin do |admin| |
||||||
|
# |
||||||
|
# # Disable the links entirely |
||||||
|
# admin.download_links = false |
||||||
|
# |
||||||
|
# # Only show XML & PDF options |
||||||
|
# admin.download_links = [:xml, :pdf] |
||||||
|
# |
||||||
|
# # Enable/disable the links based on block |
||||||
|
# # (for example, with cancan) |
||||||
|
# admin.download_links = proc { can?(:view_download_links) } |
||||||
|
# |
||||||
|
# end |
||||||
|
|
||||||
|
# == Pagination |
||||||
|
# |
||||||
|
# Pagination is enabled by default for all resources. |
||||||
|
# You can control the default per page count for all resources here. |
||||||
|
# |
||||||
|
# config.default_per_page = 30 |
||||||
|
# |
||||||
|
# You can control the max per page count too. |
||||||
|
# |
||||||
|
# config.max_per_page = 10_000 |
||||||
|
|
||||||
|
# == Filters |
||||||
|
# |
||||||
|
# By default the index screen includes a "Filters" sidebar on the right |
||||||
|
# hand side with a filter for each attribute of the registered model. |
||||||
|
# You can enable or disable them for all resources here. |
||||||
|
# |
||||||
|
# config.filters = true |
||||||
|
# |
||||||
|
# By default the filters include associations in a select, which means |
||||||
|
# that every record will be loaded for each association (up |
||||||
|
# to the value of config.maximum_association_filter_arity). |
||||||
|
# You can enabled or disable the inclusion |
||||||
|
# of those filters by default here. |
||||||
|
# |
||||||
|
# config.include_default_association_filters = true |
||||||
|
|
||||||
|
# config.maximum_association_filter_arity = 256 # default value of :unlimited will change to 256 in a future version |
||||||
|
# config.filter_columns_for_large_association = [ |
||||||
|
# :display_name, |
||||||
|
# :full_name, |
||||||
|
# :name, |
||||||
|
# :username, |
||||||
|
# :login, |
||||||
|
# :title, |
||||||
|
# :email, |
||||||
|
# ] |
||||||
|
# config.filter_method_for_large_association = '_starts_with' |
||||||
|
|
||||||
|
# == Head |
||||||
|
# |
||||||
|
# You can add your own content to the site head like analytics. Make sure |
||||||
|
# you only pass content you trust. |
||||||
|
# |
||||||
|
# config.head = ''.html_safe |
||||||
|
|
||||||
|
# == Footer |
||||||
|
# |
||||||
|
# By default, the footer shows the current Active Admin version. You can |
||||||
|
# override the content of the footer here. |
||||||
|
# |
||||||
|
# config.footer = 'my custom footer text' |
||||||
|
|
||||||
|
# == Sorting |
||||||
|
# |
||||||
|
# By default ActiveAdmin::OrderClause is used for sorting logic |
||||||
|
# You can inherit it with own class and inject it for all resources |
||||||
|
# |
||||||
|
# config.order_clause = MyOrderClause |
||||||
|
|
||||||
|
# == Webpacker |
||||||
|
# |
||||||
|
# By default, Active Admin uses Sprocket's asset pipeline. |
||||||
|
# You can switch to using Webpacker here. |
||||||
|
# |
||||||
|
config.use_webpacker = true |
||||||
|
end |
@ -1,3 +1,5 @@ |
|||||||
const { environment } = require('@rails/webpacker') |
const { environment } = require('@rails/webpacker') |
||||||
|
const jquery = require('./plugins/jquery') |
||||||
|
|
||||||
|
environment.plugins.prepend('jquery', jquery) |
||||||
module.exports = environment |
module.exports = environment |
||||||
|
@ -0,0 +1,7 @@ |
|||||||
|
const webpack = require('webpack') |
||||||
|
|
||||||
|
module.exports = new webpack.ProvidePlugin({ |
||||||
|
"$":"jquery", |
||||||
|
"jQuery":"jquery", |
||||||
|
"window.jQuery":"jquery" |
||||||
|
}); |
Loading…
Reference in new issue