mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Compare commits
5 Commits
v5.0.8
...
add-abilit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c60a3a660 | ||
|
|
ac7a7b11a5 | ||
|
|
0fb273ce93 | ||
|
|
709dfa42bc | ||
|
|
9561140466 |
@@ -48,15 +48,7 @@ module Admin
|
||||
else
|
||||
I18n.t(:name, scope: [:admin, :reports, @report_type])
|
||||
end
|
||||
|
||||
# Initialize data
|
||||
params[:display_summary_row] = true if request.get?
|
||||
@params_fields_to_show = if request.get?
|
||||
@report.columns.keys - @report.fields_to_hide
|
||||
else
|
||||
params[:fields_to_show]
|
||||
end
|
||||
|
||||
@rendering_options = rendering_options
|
||||
@data = Reporting::FrontendData.new(spree_current_user)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -62,4 +62,27 @@ module ReportsActions
|
||||
def i18n_scope
|
||||
'admin.reports'
|
||||
end
|
||||
|
||||
def rendering_options
|
||||
@rendering_options ||= ReportRenderingOptions.where(
|
||||
user: spree_current_user,
|
||||
report_type: report_type,
|
||||
report_subtype: report_subtype
|
||||
).first_or_create do |new_instance|
|
||||
new_instance.options[:fields_to_show] = if @report.present?
|
||||
@report.columns.keys - @report.fields_to_hide
|
||||
else
|
||||
[]
|
||||
end
|
||||
new_instance.options[:display_summary_row] = request.get? || params[:display_summary_row].present?
|
||||
params[:display_header_row] = params[:display_header_row].present?
|
||||
end
|
||||
if params[:fields_to_show].present?
|
||||
@rendering_options.options[:fields_to_show] = params[:fields_to_show]
|
||||
end
|
||||
@rendering_options.options[:display_summary_row] = params[:display_summary_row].present?
|
||||
@rendering_options.options[:display_header_row] = params[:display_header_row].present?
|
||||
@rendering_options.save
|
||||
@rendering_options
|
||||
end
|
||||
end
|
||||
|
||||
4
app/models/report_rendering_options.rb
Normal file
4
app/models/report_rendering_options.rb
Normal file
@@ -0,0 +1,4 @@
|
||||
class ReportRenderingOptions < ApplicationRecord
|
||||
belongs_to :user, class_name: "Spree::User"
|
||||
serialize :options, Hash
|
||||
end
|
||||
@@ -16,16 +16,16 @@
|
||||
.omega.fourteen.columns
|
||||
- if @report.header_option?
|
||||
%span.inline-checkbox{ style: "margin-right: 1rem;" }
|
||||
= check_box_tag :display_header_row, true, params[:display_header_row]
|
||||
= check_box_tag :display_header_row, true, @render_options.options[:display_header_row]
|
||||
= label_tag :display_header_row, t(".header_row")
|
||||
- if @report.summary_row_option?
|
||||
%span.inline-checkbox
|
||||
= check_box_tag :display_summary_row, true, params[:display_summary_row], { "data-csv-select-target": "checkbox" }
|
||||
= check_box_tag :display_summary_row, true, @render_options.options[:display_summary_row], { "data-csv-select-target": "checkbox" }
|
||||
= label_tag :display_summary_row, t(".summary_row"), { "data-csv-select-target": "label" }
|
||||
|
||||
- if @report.available_headers.present?
|
||||
.row
|
||||
.alpha.two.columns= label_tag nil, t(:report_columns)
|
||||
.omega.fourteen.columns
|
||||
= render MultipleCheckedSelectComponent.new(name: "fields_to_show", options: @report.available_headers, selected: @params_fields_to_show)
|
||||
= render MultipleCheckedSelectComponent.new(name: "fields_to_show", options: @report.available_headers, selected: @render_options.options[:fields_to_show])
|
||||
|
||||
12
db/migrate/20221116095826_create_report_rendering_options.rb
Normal file
12
db/migrate/20221116095826_create_report_rendering_options.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
class CreateReportRenderingOptions < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
create_table :report_rendering_options do |t|
|
||||
t.references :user
|
||||
t.text :options
|
||||
t.string :report_type
|
||||
t.string :report_subtype
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
12
db/schema.rb
12
db/schema.rb
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2022_10_07_105052) do
|
||||
ActiveRecord::Schema.define(version: 2022_11_16_095826) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "pg_stat_statements"
|
||||
@@ -354,6 +354,16 @@ ActiveRecord::Schema.define(version: 2022_10_07_105052) do
|
||||
t.index ["subscription_id"], name: "index_proxy_orders_on_subscription_id"
|
||||
end
|
||||
|
||||
create_table "report_rendering_options", force: :cascade do |t|
|
||||
t.bigint "user_id"
|
||||
t.text "options"
|
||||
t.string "report_type"
|
||||
t.string "report_subtype"
|
||||
t.datetime "created_at", precision: 6, null: false
|
||||
t.datetime "updated_at", precision: 6, null: false
|
||||
t.index ["user_id"], name: "index_report_rendering_options_on_user_id"
|
||||
end
|
||||
|
||||
create_table "schedules", id: :serial, force: :cascade do |t|
|
||||
t.string "name", limit: 255, null: false
|
||||
t.datetime "created_at", null: false
|
||||
|
||||
5
spec/models/report_rendering_options_spec.rb
Normal file
5
spec/models/report_rendering_options_spec.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe ReportRenderingOptions, type: :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
Reference in New Issue
Block a user