diff --git a/.github/workflows/build-widget.yml b/.github/workflows/build-widget.yml index b8d5c9ec1..2327c29f6 100644 --- a/.github/workflows/build-widget.yml +++ b/.github/workflows/build-widget.yml @@ -14,6 +14,8 @@ on: jobs: build-widget: + permissions: + contents: read runs-on: ubuntu-22.04 steps: - name: Checkout diff --git a/Gemfile.lock b/Gemfile.lock index ea566967d..ba212441b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -356,7 +356,8 @@ GEM timeout net-smtp (0.5.1) net-protocol - newrelic_rpm (9.21.0) + newrelic_rpm (10.2.0) + logger nio4r (2.7.4) nokogiri (1.19.1-aarch64-linux-gnu) racc (~> 1.4) diff --git a/app/controllers/admin/site_controller.rb b/app/controllers/admin/site_controller.rb index 6334cc44b..999cbca8d 100644 --- a/app/controllers/admin/site_controller.rb +++ b/app/controllers/admin/site_controller.rb @@ -12,7 +12,6 @@ def index @response_groups = Submission.group('date(created_at)').count.sort.last(@days_since.days) @user_groups = User.group('date(created_at)').count.sort.last(@days_since.days) @inactive_user_groups = User.where(inactive: true).group('date(updated_at)').count.sort.last(@days_since.days) - todays_submissions = Submission.where('created_at > ?', Time.zone.now - @days_since.days) # Add in 0 count days to fetched analytics @dates.each do |date| @@ -24,8 +23,11 @@ def index @inactive_user_groups = @inactive_user_groups.sort @response_groups = @response_groups.sort - form_ids = todays_submissions.collect(&:form_id).uniq - @recent_forms = Form.includes(:organization).find(form_ids) + @recent_forms = Form.includes(:organization) + .joins(:submissions) + .where("submissions.created_at > ?", Time.zone.now - @days_since.days) + .select("forms.*", "count(distinct submissions.id) as recent_submissions_count") + .group("forms.id") end def a11_v2_collections; end diff --git a/app/controllers/admin/submissions_controller.rb b/app/controllers/admin/submissions_controller.rb index 95b013e62..efa5c11da 100644 --- a/app/controllers/admin/submissions_controller.rb +++ b/app/controllers/admin/submissions_controller.rb @@ -186,25 +186,30 @@ def unmark def delete ensure_form_manager(form: @form) - Event.log_event(Event.names[:response_deleted], 'Submission', @submission.id, "Submission #{@submission.id} undeleted at #{DateTime.now}", current_user.id) - @submission.update(deleted: true, deleted_at: Time.now) + if @submission.update(deleted: true, deleted_at: Time.now) + Event.log_event(Event.names[:response_deleted], 'Submission', @submission.id, "Submission #{@submission.id} deleted at #{DateTime.now}", current_user.id) + else + Rails.logger.warn("Failed to delete submission: #{@submission.errors.full_messages.join(', ')}") + end end def destroy ensure_form_manager(form: @form) - Event.log_event(Event.names[:response_deleted], 'Submission', @submission.id, "Submission #{@submission.id} undeleted at #{DateTime.now}", current_user.id) - @submission.update(deleted: true, deleted_at: Time.now) - - respond_to do |format| - format.js { render :destroy } + if @submission.update(deleted: true, deleted_at: Time.now) + Event.log_event(Event.names[:response_deleted], 'Submission', @submission.id, "Submission #{@submission.id} deleted at #{DateTime.now}", current_user.id) + respond_to do |format| + format.js { render :destroy } + end + else + Rails.logger.warn("Failed to delete submission: #{@submission.errors.full_messages.join(', ')}") end end def undelete ensure_form_manager(form: @form) - Event.log_event(Event.names[:response_undeleted], 'Submission', @submission.id, "Submission #{@submission.id} deleted at #{DateTime.now}", current_user.id) + Event.log_event(Event.names[:response_undeleted], 'Submission', @submission.id, "Submission #{@submission.id} undeleted at #{DateTime.now}", current_user.id) @submission.update(deleted: false, deleted_at: nil) end diff --git a/app/views/components/admin/_recent_responses.html.erb b/app/views/components/admin/_recent_responses.html.erb index 6388a2492..b95bbc002 100644 --- a/app/views/components/admin/_recent_responses.html.erb +++ b/app/views/components/admin/_recent_responses.html.erb @@ -23,7 +23,7 @@