From 4bb3721db0f7be34dccebf7f2458bf910fcffd5b Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Fri, 13 Jun 2025 19:12:35 +0300 Subject: [PATCH] add submitter timezone --- app/javascript/submission_form/form.vue | 1 + app/models/submitter.rb | 1 + db/migrate/20250613160132_add_timezone_to_submitters.rb | 7 +++++++ db/schema.rb | 7 ++++--- lib/submitters/submit_values.rb | 1 + 5 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20250613160132_add_timezone_to_submitters.rb diff --git a/app/javascript/submission_form/form.vue b/app/javascript/submission_form/form.vue index c229ed11..358c0396 100644 --- a/app/javascript/submission_form/form.vue +++ b/app/javascript/submission_form/form.vue @@ -1390,6 +1390,7 @@ export default { if (isLastStep && !emptyRequiredField && !this.inviteSubmitters.length && !this.optionalInviteSubmitters.length) { formData.append('completed', 'true') + formData.append('timezone', Intl.DateTimeFormat().resolvedOptions().timeZone) } let saveStepRequest diff --git a/app/models/submitter.rb b/app/models/submitter.rb index fd9dfc6b..c21da28f 100644 --- a/app/models/submitter.rb +++ b/app/models/submitter.rb @@ -16,6 +16,7 @@ # preferences :text not null # sent_at :datetime # slug :string not null +# timezone :string # ua :string # uuid :string not null # values :text not null diff --git a/db/migrate/20250613160132_add_timezone_to_submitters.rb b/db/migrate/20250613160132_add_timezone_to_submitters.rb new file mode 100644 index 00000000..3b13b82d --- /dev/null +++ b/db/migrate/20250613160132_add_timezone_to_submitters.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddTimezoneToSubmitters < ActiveRecord::Migration[8.0] + def change + add_column :submitters, :timezone, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index f0ecc90e..ce914e83 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2025_06_08_163157) do +ActiveRecord::Schema[8.0].define(version: 2025_06_13_160132) do # These are extensions that must be enabled in order to support this database enable_extension "btree_gin" enable_extension "plpgsql" @@ -296,7 +296,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_08_163157) do t.text "template_fields" t.text "template_schema" t.text "template_submitters" - t.text "source", null: false + t.string "source", null: false t.string "submitters_order", null: false t.string "slug", null: false t.text "preferences", null: false @@ -329,6 +329,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_08_163157) do t.text "metadata", null: false t.bigint "account_id", null: false t.datetime "declined_at" + t.string "timezone" t.index ["account_id", "id"], name: "index_submitters_on_account_id_and_id" t.index ["email"], name: "index_submitters_on_email" t.index ["external_id"], name: "index_submitters_on_external_id" @@ -419,7 +420,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_08_163157) do t.datetime "archived_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.text "uuid", null: false + t.string "uuid", null: false t.string "otp_secret" t.integer "consumed_timestep" t.boolean "otp_required_for_login", default: false, null: false diff --git a/lib/submitters/submit_values.rb b/lib/submitters/submit_values.rb index f8eab084..8775f26e 100644 --- a/lib/submitters/submit_values.rb +++ b/lib/submitters/submit_values.rb @@ -57,6 +57,7 @@ module Submitters submitter.completed_at = Time.current submitter.ip = request.remote_ip submitter.ua = request.user_agent + submitter.timezone = request.params[:timezone] submitter.values = merge_default_values(submitter)