- Update menu labels for cities, countries, and regions - Introduce new entities for states and subregions in Admin Panel - Implement admin authentication for weather art generation - Modify application controller to check for admin user - Refactor view to display admin panel based on user permissions - Update routes to include weather art generation action These changes enhance the admin interface for better management of cities and related entities. The new admin checks ensure that only authorized users can generate weather art, improving security and functionality.
57 lines
1.5 KiB
Ruby
57 lines
1.5 KiB
Ruby
ActiveAdmin.register City do
|
|
menu label: "Cities", parent: "数据管理"
|
|
controller do
|
|
def find_resource
|
|
scoped_collection.friendly.find(params[:id])
|
|
end
|
|
end
|
|
|
|
# See permitted parameters documentation:
|
|
# https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters
|
|
#
|
|
# Uncomment all parameters which should be permitted for assignment
|
|
#
|
|
permit_params :name, :country_id, :latitude, :longitude, :active, :priority, :timezone, :last_weather_fetch, :last_image_generation, :slug
|
|
#
|
|
# or
|
|
#
|
|
# permit_params do
|
|
# permitted = [:name, :country, :latitude, :longitude, :active, :priority, :timezone, :region, :last_weather_fetch, :last_image_generation, :slug]
|
|
# permitted << :other if params[:action] == 'create' && current_user.admin?
|
|
# permitted
|
|
# end
|
|
|
|
index do
|
|
selectable_column
|
|
id_column
|
|
column :name
|
|
column :country
|
|
column :region do |city|
|
|
city.region
|
|
end
|
|
column :latitude
|
|
column :longitude
|
|
column :active
|
|
column("图像个数") { |city| city.weather_arts.count }
|
|
column("最后更新时间") { |city| city.last_weather_fetch }
|
|
actions
|
|
end
|
|
|
|
filter :name
|
|
filter :active
|
|
filter :country, as: :select
|
|
|
|
form do |f|
|
|
f.inputs do
|
|
f.input :active
|
|
f.input :name
|
|
f.input :country
|
|
f.input :latitude
|
|
f.input :longitude
|
|
f.input :priority
|
|
f.input :timezone
|
|
end
|
|
f.actions
|
|
end
|
|
end
|