diff --git a/Gemfile b/Gemfile index e9cf98b0..7823727f 100644 --- a/Gemfile +++ b/Gemfile @@ -25,6 +25,7 @@ gem 'pundit' gem 'redis', '~> 5.0' gem 'sentry-ruby' gem 'sentry-rails' +gem 'stackprof' gem 'sidekiq', '~> 7.3' gem 'sassc-rails' gem 'simple_form', '~> 5.3' diff --git a/Gemfile.lock b/Gemfile.lock index de8fa8eb..bfc51257 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -317,14 +317,15 @@ GEM rspec-mocks (~> 3.12) rspec-support (~> 3.12) racc (1.8.1) - rack (3.1.12) + rack (3.1.14) rack-accept (0.4.5) rack (>= 0.4) rack-protection (4.1.1) base64 (>= 0.1.0) logger (>= 1.6.0) rack (>= 3.0.0, < 4) - rack-session (2.0.0) + rack-session (2.1.1) + base64 (>= 0.1.0) rack (>= 3.0.0) rack-test (2.1.0) rack (>= 1.3) @@ -500,6 +501,7 @@ GEM net-scp (>= 1.1.2) net-sftp (>= 2.1.2) net-ssh (>= 2.8.0) + stackprof (0.2.27) stimulus-rails (1.3.4) railties (>= 6.0.0) stringio (3.1.1) @@ -600,6 +602,7 @@ DEPENDENCIES simple_form (~> 5.3) simplecov skylight + stackprof stimulus-rails turbo-rails turnout2024 diff --git a/app/controllers/entries_controller.rb b/app/controllers/entries_controller.rb index 7135969f..6f18b400 100644 --- a/app/controllers/entries_controller.rb +++ b/app/controllers/entries_controller.rb @@ -139,7 +139,7 @@ def set_entry # For applicant_profile, we want to find the entry first, then authorize it def set_entry_for_profile - @entry = Entry.find(params[:id]) + @entry = policy_scope(Entry).find(params[:id]) end def authorize_entry diff --git a/app/controllers/round_judge_assignments_controller.rb b/app/controllers/round_judge_assignments_controller.rb index c3927068..91c3c845 100644 --- a/app/controllers/round_judge_assignments_controller.rb +++ b/app/controllers/round_judge_assignments_controller.rb @@ -11,7 +11,7 @@ def index def create @round_judge_assignment = @judging_round.round_judge_assignments.build(round_judge_assignment_params) - + if @round_judge_assignment.save redirect_to container_contest_description_contest_instance_judging_round_round_judge_assignments_path( @container, @contest_description, @contest_instance, @judging_round @@ -33,7 +33,7 @@ def destroy private def set_judging_round - @container = Container.find(params[:container_id]) + @container = policy_scope(Container).find(params[:container_id]) @contest_description = @container.contest_descriptions.find(params[:contest_description_id]) @contest_instance = @contest_description.contest_instances.find(params[:contest_instance_id]) @judging_round = @contest_instance.judging_rounds.find(params[:judging_round_id]) diff --git a/app/controllers/user_roles_controller.rb b/app/controllers/user_roles_controller.rb index 16613709..f98b3f8f 100644 --- a/app/controllers/user_roles_controller.rb +++ b/app/controllers/user_roles_controller.rb @@ -54,7 +54,7 @@ def destroy private def set_user_role - @user_role = UserRole.find(params[:id]) + @user_role = policy_scope(UserRole).find(params[:id]) end def user_role_params diff --git a/app/views/applicant_dashboard/_available_contests.html.erb b/app/views/applicant_dashboard/_available_contests.html.erb index c61a665c..634f552a 100644 --- a/app/views/applicant_dashboard/_available_contests.html.erb +++ b/app/views/applicant_dashboard/_available_contests.html.erb @@ -3,7 +3,7 @@ <% if params[:filter] && (params[:filter][:department_id].present? || params[:filter][:container_id].present?) %>
- Showing contests for + Showing contests for <% if params[:filter][:department_id].present? %> <% department = Department.find_by(id: params[:filter][:department_id]) %> <% if department %> @@ -44,7 +44,7 @@ <% end %> <% end %> - + <% if @active_contests_by_container.any? %> <% @active_contests_by_container.each do |container, contests| %> <%= render partial: 'applicant_dashboard/contest_table', locals: { container: container, contests: contests } %> @@ -52,4 +52,4 @@ <% else %>
No active contests available for your class level.
<% end %> - \ No newline at end of file + diff --git a/app/views/applicant_dashboard/_contest_table.html.erb b/app/views/applicant_dashboard/_contest_table.html.erb index 1488d63c..2ade7082 100644 --- a/app/views/applicant_dashboard/_contest_table.html.erb +++ b/app/views/applicant_dashboard/_contest_table.html.erb @@ -24,7 +24,7 @@ data: { 'bs-toggle': 'tooltip' }, title: 'Enter contest', aria: { label: 'Enter contest' } do %> - + Enter instance <% end %> @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/app/views/applicant_dashboard/_inactive_submissions_summary.html.erb b/app/views/applicant_dashboard/_inactive_submissions_summary.html.erb new file mode 100644 index 00000000..8192283b --- /dev/null +++ b/app/views/applicant_dashboard/_inactive_submissions_summary.html.erb @@ -0,0 +1,56 @@ +| Contest | +Title | +Type | +Submitted | +Entry | +
|---|---|---|---|---|
| <%= "#{entry.contest_instance.contest_description.name } - #{entry.contest_instance.date_open.year}" %> | +<%= entry.title %> | +<%= entry.category.kind %> | +<%= entry.created_at.strftime("%b %d, %Y") %> | +
+ <% if entry.entry_file.attached? %>
+
+ <%= link_to rails_blob_path(entry.entry_file, disposition: "inline"),
+ target: "_blank", rel: "noopener", class: "me-2",
+ title: "View in new tab", aria: { label: "View file" } do %>
+
+ <% end %>
+ <%= link_to rails_blob_path(entry.entry_file, disposition: "attachment"),
+ download: "", class: "me-2",
+ title: "Download file", aria: { label: "Download file" } do %>
+
+ <% end %>
+
+ <% else %>
+ No file
+ <% end %>
+ |
+
<%= image_tag 'LSA_Technology_logo.svg', alt: 'LSA Technology Logo', class: "img-fluid" %> <% if user_signed_in? && current_user.axis_mundi? %> - <%= link_to editable_contents_path, class: "edit-icon", data: { bs_toggle: "tooltip", bs_placement: "top" }, title: "Edit the text blocks in the application" do %> - - <% end %> - | - <%= link_to users_dashboard_index_path, class: "profile-icon", data: { bs_toggle: "tooltip", bs_placement: "top" }, title: "Users Dashboard" do %> - - <% end %> +