diff --git a/Gemfile.lock b/Gemfile.lock index 651116cd9..66adf2cfe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,44 +1,44 @@ GEM remote: https://rubygems.org/ specs: - aasm (5.3.0) + aasm (5.4.0) concurrent-ruby (~> 1.0) - actioncable (6.1.6.1) - actionpack (= 6.1.6.1) - activesupport (= 6.1.6.1) + actioncable (6.1.7) + actionpack (= 6.1.7) + activesupport (= 6.1.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.6.1) - actionpack (= 6.1.6.1) - activejob (= 6.1.6.1) - activerecord (= 6.1.6.1) - activestorage (= 6.1.6.1) - activesupport (= 6.1.6.1) + actionmailbox (6.1.7) + actionpack (= 6.1.7) + activejob (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) mail (>= 2.7.1) - actionmailer (6.1.6.1) - actionpack (= 6.1.6.1) - actionview (= 6.1.6.1) - activejob (= 6.1.6.1) - activesupport (= 6.1.6.1) + actionmailer (6.1.7) + actionpack (= 6.1.7) + actionview (= 6.1.7) + activejob (= 6.1.7) + activesupport (= 6.1.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.6.1) - actionview (= 6.1.6.1) - activesupport (= 6.1.6.1) + actionpack (6.1.7) + actionview (= 6.1.7) + activesupport (= 6.1.7) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) actionpack-action_caching (1.2.2) actionpack (>= 4.0.0) - actiontext (6.1.6.1) - actionpack (= 6.1.6.1) - activerecord (= 6.1.6.1) - activestorage (= 6.1.6.1) - activesupport (= 6.1.6.1) + actiontext (6.1.7) + actionpack (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) nokogiri (>= 1.8.5) - actionview (6.1.6.1) - activesupport (= 6.1.6.1) + actionview (6.1.7) + activesupport (= 6.1.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,25 +48,25 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.6.1) - activesupport (= 6.1.6.1) + activejob (6.1.7) + activesupport (= 6.1.7) globalid (>= 0.3.6) - activemodel (6.1.6.1) - activesupport (= 6.1.6.1) - activerecord (6.1.6.1) - activemodel (= 6.1.6.1) - activesupport (= 6.1.6.1) + activemodel (6.1.7) + activesupport (= 6.1.7) + activerecord (6.1.7) + activemodel (= 6.1.7) + activesupport (= 6.1.7) activerecord-postgres_enum (2.0.1) activerecord (>= 5.2) pg - activestorage (6.1.6.1) - actionpack (= 6.1.6.1) - activejob (= 6.1.6.1) - activerecord (= 6.1.6.1) - activesupport (= 6.1.6.1) + activestorage (6.1.7) + actionpack (= 6.1.7) + activejob (= 6.1.7) + activerecord (= 6.1.7) + activesupport (= 6.1.7) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.6.1) + activesupport (6.1.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -87,7 +87,7 @@ GEM bundler (>= 1.2.0, < 3) thor (~> 1.0) byebug (11.1.3) - capybara (3.37.1) + capybara (3.38.0) addressable matrix mini_mime (>= 0.1.3) @@ -103,7 +103,7 @@ GEM composite_primary_keys (13.0.3) activerecord (~> 6.1.0) concurrent-ruby (1.1.10) - connection_pool (2.2.5) + connection_pool (2.3.0) crass (1.0.6) deep_cloneable (3.2.0) activerecord (>= 3.1.0, < 8) @@ -126,13 +126,13 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faker (2.22.0) + faker (3.0.0) i18n (>= 1.8.11, < 2) fast_excel (0.4.0) ffi (> 1.9, < 2) ffi (1.15.5) formatador (1.1.0) - fugit (1.5.3) + fugit (1.7.2) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) globalid (1.0.0) @@ -185,7 +185,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.18.0) + loofah (2.19.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -200,7 +200,7 @@ GEM mini_mime (1.1.2) mini_portile2 (2.8.0) minitest (5.16.3) - msgpack (1.5.4) + msgpack (1.6.0) multi_json (1.15.0) multi_xml (0.6.0) nenv (0.3.0) @@ -208,12 +208,12 @@ GEM activerecord (>= 4.0.0) activesupport (>= 4.0.0) nio4r (2.5.8) - nokogiri (1.13.8) + nokogiri (1.13.9) mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.13.8-x86_64-darwin) + nokogiri (1.13.9-x86_64-darwin) racc (~> 1.4) - nokogiri (1.13.8-x86_64-linux) + nokogiri (1.13.9-x86_64-linux) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) @@ -225,12 +225,12 @@ GEM parallel (1.22.1) parser (3.1.2.1) ast (~> 2.4.1) - pg (1.4.3) + pg (1.4.4) pry (0.14.1) coderay (~> 1.1) method_source (~> 1.0) public_suffix (5.0.0) - puma (5.6.4) + puma (6.0.0) nio4r (~> 2.0) pundit (2.2.0) activesupport (>= 3.0.0) @@ -241,33 +241,33 @@ GEM rack (>= 2.0.0) rack-livereload (0.3.17) rack - rack-proxy (0.7.2) + rack-proxy (0.7.4) rack rack-test (2.0.2) rack (>= 1.3) - rails (6.1.6.1) - actioncable (= 6.1.6.1) - actionmailbox (= 6.1.6.1) - actionmailer (= 6.1.6.1) - actionpack (= 6.1.6.1) - actiontext (= 6.1.6.1) - actionview (= 6.1.6.1) - activejob (= 6.1.6.1) - activemodel (= 6.1.6.1) - activerecord (= 6.1.6.1) - activestorage (= 6.1.6.1) - activesupport (= 6.1.6.1) + rails (6.1.7) + actioncable (= 6.1.7) + actionmailbox (= 6.1.7) + actionmailer (= 6.1.7) + actionpack (= 6.1.7) + actiontext (= 6.1.7) + actionview (= 6.1.7) + activejob (= 6.1.7) + activemodel (= 6.1.7) + activerecord (= 6.1.7) + activestorage (= 6.1.7) + activesupport (= 6.1.7) bundler (>= 1.15.0) - railties (= 6.1.6.1) + railties (= 6.1.7) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.4.3) loofah (~> 2.3) - railties (6.1.6.1) - actionpack (= 6.1.6.1) - activesupport (= 6.1.6.1) + railties (6.1.7) + actionpack (= 6.1.7) + activesupport (= 6.1.7) method_source rake (>= 12.2) thor (~> 1.0) @@ -279,11 +279,11 @@ GEM activerecord (>= 6.1.5) activesupport (>= 6.1.5) i18n - rb-fsevent (0.11.1) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.7.1) - regexp_parser (2.5.0) + redis (4.8.0) + regexp_parser (2.6.0) request_store (1.5.1) rack (>= 1.4) responders (3.0.1) @@ -293,38 +293,38 @@ GEM roo (2.8.3) nokogiri (~> 1) rubyzip (>= 1.3.0, < 3.0.0) - rspec (3.11.0) - rspec-core (~> 3.11.0) - rspec-expectations (~> 3.11.0) - rspec-mocks (~> 3.11.0) - rspec-core (3.11.0) - rspec-support (~> 3.11.0) - rspec-expectations (3.11.0) + rspec (3.12.0) + rspec-core (~> 3.12.0) + rspec-expectations (~> 3.12.0) + rspec-mocks (~> 3.12.0) + rspec-core (3.12.0) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-mocks (3.11.1) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-rails (5.1.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - railties (>= 5.2) - rspec-core (~> 3.10) - rspec-expectations (~> 3.10) - rspec-mocks (~> 3.10) - rspec-support (~> 3.10) - rspec-support (3.11.0) - rubocop (1.35.0) + rspec-support (~> 3.12.0) + rspec-rails (6.0.1) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.11) + rspec-expectations (~> 3.11) + rspec-mocks (~> 3.11) + rspec-support (~> 3.11) + rspec-support (3.12.0) + rubocop (1.38.0) json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.2.1) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.20.1, < 2.0) + rubocop-ast (>= 1.23.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.21.0) + rubocop-ast (1.23.0) parser (>= 3.1.1.0) ruby-progressbar (1.11.0) ruby_audit (2.1.0) @@ -344,21 +344,21 @@ GEM tilt seedbank (0.5.0) rake (>= 10.0) - selenium-webdriver (4.4.0) + selenium-webdriver (4.6.1) childprocess (>= 0.5, < 5.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) semantic_range (3.0.0) shellany (0.0.1) - sidekiq (6.5.4) - connection_pool (>= 2.2.2) + sidekiq (6.5.8) + connection_pool (>= 2.2.5, < 3) rack (~> 2.0) - redis (>= 4.5.0) - sidekiq-scheduler (4.0.2) + redis (>= 4.5.0, < 5) + sidekiq-scheduler (4.0.3) redis (>= 4.2.0) rufus-scheduler (~> 3.2) - sidekiq (>= 4) + sidekiq (>= 4, < 7) tilt (>= 1.4.0) simpleidn (0.2.1) unf (~> 0.1.4) @@ -375,14 +375,14 @@ GEM sprockets (>= 3.0.0) thor (1.2.1) tilt (2.0.11) - truemail (2.7.4) + truemail (3.0.1) simpleidn (~> 0.2.1) tzinfo (2.0.5) concurrent-ruby (~> 1.0) unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (2.2.0) + unicode-display_width (2.3.0) warden (1.2.9) rack (>= 2.0.9) web-console (4.2.0) @@ -392,7 +392,7 @@ GEM railties (>= 6.0.0) webdack-uuid_migration (1.4.0) activerecord (>= 4.0) - webdrivers (5.0.0) + webdrivers (5.2.0) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (~> 4.0) @@ -407,7 +407,7 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.0) + zeitwerk (2.6.6) PLATFORMS ruby diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 0dff12f78..b051498c9 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -374,7 +374,6 @@ def serializer_includes [ :email_addresses, :convention_roles, - :session_limits, :person_schedule_approvals ] end @@ -383,8 +382,6 @@ def includes [ :email_addresses, :convention_roles, - :availabilities, - :session_limits, {person_schedule_approvals: {schedule_workflow: :schedule_snapshot}} ] end diff --git a/app/controllers/session_assignments_controller.rb b/app/controllers/session_assignments_controller.rb index b0491b42c..241a4bab5 100644 --- a/app/controllers/session_assignments_controller.rb +++ b/app/controllers/session_assignments_controller.rb @@ -4,8 +4,8 @@ class SessionAssignmentsController < ResourceController POLICY_SCOPE_CLASS = 'SessionAssignmentPolicy::Scope'.freeze def unexpress_interest + authorize @object, policy_class: policy_class model_class.transaction do - authorize @object, policy_class: policy_class # if there is a session assignment set interested to false person = Person.find params[:person_id] if params[:person_id] person ||= current_person @@ -19,9 +19,13 @@ def unexpress_interest interest_role: nil ) @object.save! - - render_object(@object) end + + # post TX step to check is assignment should be deleted + ret = after_update_tx + return if ret # beciuse the after TX will do a redirect so we do not want the render + + render_object(@object) end def update_actions diff --git a/app/controllers/survey/submissions_controller.rb b/app/controllers/survey/submissions_controller.rb index ac77cc121..fe56293aa 100644 --- a/app/controllers/survey/submissions_controller.rb +++ b/app/controllers/survey/submissions_controller.rb @@ -131,7 +131,7 @@ def collection_to_xls row = [submission.created_at, submission.updated_at, submission.person.email] row.concat Array.new(response_columns.size) submission.responses.each do |response| - if can_access_response?(response, current_person) + if response_columns[response.question_id] && can_access_response?(response, current_person) row[response_columns[response.question_id]] = response.response_as_text end end diff --git a/app/javascript/navbar/top-navbar.vue b/app/javascript/navbar/top-navbar.vue index 72a102e02..f4dad95b4 100644 --- a/app/javascript/navbar/top-navbar.vue +++ b/app/javascript/navbar/top-navbar.vue @@ -7,7 +7,7 @@ - About + About Logout diff --git a/app/services/mail_service.rb b/app/services/mail_service.rb index ef4d50b48..783d028d5 100644 --- a/app/services/mail_service.rb +++ b/app/services/mail_service.rb @@ -94,7 +94,7 @@ def self.send_email( mail: mail ) end - rescue Net::SMTPSyntaxError + rescue Net::SMTPSyntaxError, Net::SMTPAuthenticationError, Net::SMTPFatalError, Net::SMTPUnknownError, Net::SMTPUnsupportedCommand => error self.save_mail_history( person: person, email_status: MailHistory.email_statuses[:failed], diff --git a/app/workers/mailing_worker.rb b/app/workers/mailing_worker.rb index 4b889c52b..980aee333 100644 --- a/app/workers/mailing_worker.rb +++ b/app/workers/mailing_worker.rb @@ -5,21 +5,19 @@ class MailingWorker def perform(mailing_id, send_test = false, test_address = nil, tester_id = nil) mailing = Mailing.find mailing_id - mailing.with_lock do - if send_test - send_test_mail( - mailing: mailing, - test_address: test_address, - tester_id: tester_id - ) - else - send_mailing(mailing: mailing) - end + # Send the mailing + if send_test + send_test_mail( + mailing: mailing, + test_address: test_address, + tester_id: tester_id + ) + else + send_mailing(mailing: mailing) end end def send_mailing(mailing:) - # TODO - if test run then send to the requestor return unless mailing.mailing_state == Mailing.mailing_states[:submitted] # Check just in case this is a dup participant_schedule_url = SessionService.participant_schedule_url @@ -36,6 +34,7 @@ def send_mailing(mailing:) ) # note the last person processes so we can continue from there if job stopped and restarted + # need to do this as a seperate transaction ... mailing.last_person_idx = idx # use a counter mailing.save rescue => msg diff --git a/docs/index.md b/docs/index.md index 669d1dd6d..61c4ead00 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,14 +1,14 @@ This conference planning tool is used by Worldcon (and in the future other Science Fiction Conventions) to help them plan conventions. It helps the team collaborate and organize like venues, lists of participants and the conference schedule/programme. It also assists in building the complete schedule and handle potential scheduling and/or room conflicts while you're building it. Planorama also assists with sending emails to prospective speakers, and lets you build surveys to assist in collecting data before, during or after your event. -This software is open source! If you'd like to contribute, please email planorama@chicon.org. +This software is open source! If you'd like to contribute, please email info@planorama-events.org. [Planorama Terms and Conditions](/planorama/tandc) [Planorama Data Privacy & Protection Policy](/planorama/privacy) -![Production version](https://img.shields.io/github/v/release/ChicagoWorldcon/planorama?label=production) +![Production version](https://img.shields.io/github/v/release/PlanoramaEvents/planorama?label=production) -![Staging version](https://img.shields.io/github/v/release/ChicagoWorldcon/planorama?include_prereleases&label=staging) +![Staging version](https://img.shields.io/github/v/release/PlanoramaEvents/planorama?include_prereleases&label=staging) diff --git a/lib/tasks/submission.rake b/lib/tasks/submission.rake index 318665cc3..35b9ea44f 100644 --- a/lib/tasks/submission.rake +++ b/lib/tasks/submission.rake @@ -24,7 +24,7 @@ namespace :submission do count += 1 next if count == 0 begin - create_submission(header, row, survey, check_linked: check_linked) + create_submission(header, row, survey, start_col: start_col, check_linked: check_linked) rescue => msg p "****** ERROR row: #{count+1} - #{msg}" end diff --git a/script/planorama_start.sh b/script/planorama_start.sh index 2c031c8c0..ee843fbbd 100755 --- a/script/planorama_start.sh +++ b/script/planorama_start.sh @@ -29,12 +29,12 @@ if [[ -z $RAILS_ENV ]] || [[ $RAILS_ENV = "development" ]]; then bin/rake db:migrate bin/rake parameters:seed_names bin/rake role_types:seed_role_types - bin/rake chicon:seed_exclusions - bin/rake chicon:seed_room_sets - bin/rake chicon:seed_rooms - bin/rake chicon:fix_formats - bin/rake chicon:init_age_restrictions - bin/rake chicon:map_session_to_exclusion + # bin/rake chicon:seed_exclusions + # bin/rake chicon:seed_room_sets + # bin/rake chicon:seed_rooms + # bin/rake chicon:fix_formats + # bin/rake chicon:init_age_restrictions + # bin/rake chicon:map_session_to_exclusion bin/rake rbac:seed_defaults # Run migrations and start the server, anything that comes in on 3000 is accepted @@ -47,12 +47,12 @@ elif [[ $RAILS_ENV = "staging" ]]; then bin/rake db:migrate bin/rake parameters:seed_names bin/rake role_types:seed_role_types - bin/rake chicon:seed_exclusions - bin/rake chicon:seed_room_sets - bin/rake chicon:seed_rooms - bin/rake chicon:fix_formats - bin/rake chicon:init_age_restrictions - bin/rake chicon:map_session_to_exclusion + # bin/rake chicon:seed_exclusions + # bin/rake chicon:seed_room_sets + # bin/rake chicon:seed_rooms + # bin/rake chicon:fix_formats + # bin/rake chicon:init_age_restrictions + # bin/rake chicon:map_session_to_exclusion bin/rake rbac:seed_defaults bin/rails db:seed @@ -68,12 +68,12 @@ else bin/rake db:migrate bin/rake parameters:seed_names bin/rake role_types:seed_role_types - bin/rake chicon:seed_exclusions - bin/rake chicon:seed_room_sets - bin/rake chicon:seed_rooms - bin/rake chicon:fix_formats - bin/rake chicon:init_age_restrictions - bin/rake chicon:map_session_to_exclusion + # bin/rake chicon:seed_exclusions + # bin/rake chicon:seed_room_sets + # bin/rake chicon:seed_rooms + # bin/rake chicon:fix_formats + # bin/rake chicon:init_age_restrictions + # bin/rake chicon:map_session_to_exclusion bin/rake rbac:seed_defaults fi