today_ai_weather/app/admin/weather_arts.rb
songtianlun ce5d09b621 feat: add admin management for various entities
- Add menu labels and parents for AdminUser, City, Country, Region, WeatherArt, Ahoy::Event, and Ahoy::Visit.
- Introduce a new page for managing Sidekiq jobs, providing functionality to execute or delete scheduled jobs.
- Adjust batch job for generating weather art by using Sidekiq for improved performance.
- Implement clean-up worker for old Ahoy data and functionalities for refreshing the sitemap.

These changes enhance the administration interface by providing better organization and management tools for backend entities. The addition of Sidekiq jobs management further improves system maintenance capabilities.
2025-01-28 01:15:29 +08:00

85 lines
2.4 KiB
Ruby

ActiveAdmin.register WeatherArt do
menu label: "WeatherArt Manager", 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 :city_id, :weather_date, :description, :temperature, :feeling_temp, :humidity, :wind_scale, :wind_speed, :precipitation, :pressure, :visibility, :cloud, :prompt
#
# or
#
# permit_params do
# permitted = [:city_id, :weather_date, :description, :temperature, :feeling_temp, :humidity, :wind_scale, :wind_speed, :precipitation, :pressure, :visibility, :cloud, :prompt]
# permitted << :other if params[:action] == 'create' && current_user.admin?
# permitted
# end
permit_params :city_id, :weather_date, :description, :temperature,
:feeling_temp, :humidity, :wind_scale, :wind_speed,
:precipitation, :pressure, :visibility, :cloud,
:prompt, :image, :slug
remove_filter :image_attachment, :image_blob
filter :city_id
filter :weather_data
index do
selectable_column
id_column
column :city
column :weather_date
column :description
column :temperature
column :image do |weather_art|
image_tag(weather_art.image, size: "100x100") if weather_art.image.attached?
end
actions
end
show do
attributes_table do
row :city
row :weather_date
row :description
row :temperature
row :feeling_temp
row :humidity
row :wind_scale
row :wind_speed
row :precipitation
row :pressure
row :visibility
row :cloud
row :prompt
row :image do |weather_art|
image_tag(weather_art.image) if weather_art.image.attached?
end
end
end
form do |f|
f.inputs do
f.input :city
f.input :weather_date
f.input :description
f.input :temperature
f.input :feeling_temp
f.input :humidity
f.input :wind_scale
f.input :wind_speed
f.input :precipitation
f.input :pressure
f.input :visibility
f.input :cloud
f.input :prompt
f.input :image, as: :file
end
f.actions
end
end