today_ai_weather/app/admin/cities.rb
songtianlun b2551361d7 feat: add admin management features for cities
- 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.
2025-02-11 17:40:13 +08:00

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