From 2e2f3d9a7a22867fbec6b17b10663680fac14aa0 Mon Sep 17 00:00:00 2001 From: lodewiges Date: Mon, 14 Oct 2024 18:40:39 +0200 Subject: [PATCH 1/7] changed name dinsdag kring and remove woensdag kring --- app/models/activity.rb | 2 +- spec/factories/activities.rb | 2 +- spec/models/activity_spec.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/activity.rb b/app/models/activity.rb index 0bf89606..5b726587 100644 --- a/app/models/activity.rb +++ b/app/models/activity.rb @@ -33,7 +33,7 @@ class Activity < ApplicationRecord after_save :copy_author_and_group_to_form! def self.categories - %w[algemeen societeit vorming dinsdagkring woensdagkring + %w[algemeen societeit vorming kring choose ifes ozon disputen kiemgroepen huizen extern eerstejaars curiositates] end diff --git a/spec/factories/activities.rb b/spec/factories/activities.rb index 5b1c464c..4f994c43 100644 --- a/spec/factories/activities.rb +++ b/spec/factories/activities.rb @@ -10,7 +10,7 @@ start_time { Faker::Time.between(from: 1.day.ago, to: Time.zone.today) } end_time { Faker::Time.between(from: 1.day.from_now, to: 2.days.from_now) } category do - %w[algemeen societeit vorming dinsdagkring woensdagkring + %w[algemeen societeit vorming kring choose ifes ozon disputen kiemgroepen huizen extern eerstejaars curiositates].sample end publicly_visible { false } diff --git a/spec/models/activity_spec.rb b/spec/models/activity_spec.rb index 35c803de..8b242feb 100644 --- a/spec/models/activity_spec.rb +++ b/spec/models/activity_spec.rb @@ -179,7 +179,7 @@ context 'when it is another category' do let(:record) do build_stubbed(:activity, - category: %w[algemeen sociëteit vorming dinsdagkring woensdagkring + category: %w[algemeen sociëteit vorming kring disputen kiemgroepen huizen extern curiositates].sample) end From 98e5d2915e89339462dfb736dea33632dedc2bfa Mon Sep 17 00:00:00 2001 From: lodewiges Date: Tue, 15 Oct 2024 00:33:26 +0200 Subject: [PATCH 2/7] fixed lint --- app/models/activity.rb | 2 +- spec/factories/activities.rb | 2 +- spec/models/activity_spec.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/activity.rb b/app/models/activity.rb index 5b726587..ef465109 100644 --- a/app/models/activity.rb +++ b/app/models/activity.rb @@ -33,7 +33,7 @@ class Activity < ApplicationRecord after_save :copy_author_and_group_to_form! def self.categories - %w[algemeen societeit vorming kring + %w[algemeen societeit vorming kring choose ifes ozon disputen kiemgroepen huizen extern eerstejaars curiositates] end diff --git a/spec/factories/activities.rb b/spec/factories/activities.rb index 4f994c43..cd6ebeb2 100644 --- a/spec/factories/activities.rb +++ b/spec/factories/activities.rb @@ -10,7 +10,7 @@ start_time { Faker::Time.between(from: 1.day.ago, to: Time.zone.today) } end_time { Faker::Time.between(from: 1.day.from_now, to: 2.days.from_now) } category do - %w[algemeen societeit vorming kring + %w[algemeen societeit vorming kring choose ifes ozon disputen kiemgroepen huizen extern eerstejaars curiositates].sample end publicly_visible { false } diff --git a/spec/models/activity_spec.rb b/spec/models/activity_spec.rb index 8b242feb..6c0f0d47 100644 --- a/spec/models/activity_spec.rb +++ b/spec/models/activity_spec.rb @@ -179,7 +179,7 @@ context 'when it is another category' do let(:record) do build_stubbed(:activity, - category: %w[algemeen sociëteit vorming kring + category: %w[algemeen sociëteit vorming kring disputen kiemgroepen huizen extern curiositates].sample) end From 1acc0860a9cbc890f17710389b2550a967f72175 Mon Sep 17 00:00:00 2001 From: Jorai Geertsema Date: Wed, 13 Nov 2024 11:57:05 +0100 Subject: [PATCH 3/7] Made migration --- ...41113104056_simplyfing_calender_options.rb | 6 +++++ db/schema.rb | 25 +++++++++---------- 2 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 db/migrate/20241113104056_simplyfing_calender_options.rb diff --git a/db/migrate/20241113104056_simplyfing_calender_options.rb b/db/migrate/20241113104056_simplyfing_calender_options.rb new file mode 100644 index 00000000..7cb49654 --- /dev/null +++ b/db/migrate/20241113104056_simplyfing_calender_options.rb @@ -0,0 +1,6 @@ +class SimplyfingCalenderOptions < ActiveRecord::Migration[7.0] + def change + Activity.where(category: 'dinsdagkring').update_all(category: 'kring') + Activity.where(category: 'woensdagkring').update_all(category: 'kring') + end +end diff --git a/db/schema.rb b/db/schema.rb index 3cb6bb07..fb1dec2c 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[7.0].define(version: 2024_03_28_205012) do +ActiveRecord::Schema[7.0].define(version: 2024_11_13_104056) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -475,22 +475,10 @@ t.index ["form_id"], name: "index_polls_on_form_id" end - create_table "quickpost_messages", id: :serial, force: :cascade do |t| - t.integer "author_id" - t.text "message" - t.datetime "created_at", precision: nil, null: false - t.datetime "updated_at", precision: nil, null: false - t.datetime "deleted_at", precision: nil - t.datetime "datetime", precision: nil - t.index ["datetime"], name: "index_quickpost_messages_on_datetime" - t.index ["deleted_at"], name: "index_quickpost_messages_on_deleted_at" - end - create_table "room_adverts", force: :cascade do |t| t.string "house_name", null: false t.string "contact", null: false t.string "location" - t.string "available_from" t.string "description", null: false t.string "cover_photo" t.boolean "publicly_visible" @@ -498,6 +486,7 @@ t.datetime "deleted_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.date "available_from", null: false end create_table "static_pages", id: :serial, force: :cascade do |t| @@ -523,6 +512,16 @@ t.index ["mail_alias_id"], name: "index_stored_mails_on_mail_alias_id" end + create_table "study_room_presences", force: :cascade do |t| + t.datetime "start_time", null: false + t.datetime "end_time", null: false + t.text "status", null: false + t.integer "user_id", null: false + t.datetime "deleted_at" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + create_table "users", id: :serial, force: :cascade do |t| t.string "email" t.string "username" From 787cb7589397d5508dbaa42d5a6b400837aaf377 Mon Sep 17 00:00:00 2001 From: lodewiges <131907615+lodewiges@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:08:48 +0100 Subject: [PATCH 4/7] added quickpost to schema.rb --- db/schema.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/db/schema.rb b/db/schema.rb index c37d2fec..6dd027c2 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -473,6 +473,17 @@ t.index ["author_id"], name: "index_polls_on_author_id" t.index ["form_id"], name: "index_polls_on_form_id" end + + create_table "quickpost_messages", id: :serial, force: :cascade do |t| + t.integer "author_id" + t.text "message" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.datetime "deleted_at", precision: nil + t.datetime "datetime", precision: nil + t.index ["datetime"], name: "index_quickpost_messages_on_datetime" + t.index ["deleted_at"], name: "index_quickpost_messages_on_deleted_at" + end create_table "room_adverts", force: :cascade do |t| t.string "house_name", null: false From 36b562059c04a07b2a1c2fd9559f4fb95e8dc810 Mon Sep 17 00:00:00 2001 From: lodewiges <131907615+lodewiges@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:09:32 +0100 Subject: [PATCH 5/7] Fixed Lint --- db/schema.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/schema.rb b/db/schema.rb index 6dd027c2..ce28ee93 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -474,7 +474,7 @@ t.index ["form_id"], name: "index_polls_on_form_id" end - create_table "quickpost_messages", id: :serial, force: :cascade do |t| + create_table "quickpost_messages", id: :serial, force: :cascade do |t| t.integer "author_id" t.text "message" t.datetime "created_at", precision: nil, null: false From d9a6ea5581ab8d9217cf2c1e177f7befa1330118 Mon Sep 17 00:00:00 2001 From: Jorai Geertsema Date: Wed, 13 Nov 2024 15:33:50 +0100 Subject: [PATCH 6/7] Rewrote migration --- ...0241113104056_simplyfing_calender_options.rb | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/db/migrate/20241113104056_simplyfing_calender_options.rb b/db/migrate/20241113104056_simplyfing_calender_options.rb index 7cb49654..50f4ef25 100644 --- a/db/migrate/20241113104056_simplyfing_calender_options.rb +++ b/db/migrate/20241113104056_simplyfing_calender_options.rb @@ -1,6 +1,17 @@ class SimplyfingCalenderOptions < ActiveRecord::Migration[7.0] - def change - Activity.where(category: 'dinsdagkring').update_all(category: 'kring') - Activity.where(category: 'woensdagkring').update_all(category: 'kring') + def up + Activity.where(category: 'dinsdagkring').find_each do |activity| + activity.update(category: 'kring') + end + + Activity.where(category: 'woensdagkring').find_each do |activity| + activity.update(category: 'kring') + end + end + + def down + Activity.where(category: 'kring').find_each do |activity| + activity.update(category: 'dinsdagkring') + end end end From 2d69b0d7ce6514b451f9befbd88ecbc9aa7a09f4 Mon Sep 17 00:00:00 2001 From: Jorai Geertsema Date: Mon, 24 Feb 2025 10:22:36 +0100 Subject: [PATCH 7/7] Trying to store catogories on the users table --- app/controllers/v1/activities_controller.rb | 2 +- app/controllers/v1/users_controller.rb | 2 +- app/resources/v1/user_resource.rb | 8 ++++---- db/migrate/20241113104056_simplyfing_calender_options.rb | 2 ++ db/schema.rb | 2 ++ 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/controllers/v1/activities_controller.rb b/app/controllers/v1/activities_controller.rb index d4dcdc44..53f43cd5 100644 --- a/app/controllers/v1/activities_controller.rb +++ b/app/controllers/v1/activities_controller.rb @@ -21,7 +21,7 @@ def generate_alias def ical # rubocop:disable Metrics/AbcSize, Metrics/MethodLength return head :unauthorized unless authenticate_user_by_ical_secret_key - requested_categories = params[:categories].try(:split, ',') + requested_categories = User.find_by(id: params[:user_id]).ical_categories permitted_categories = (requested_categories & Activity.categories) || Activity.categories diff --git a/app/controllers/v1/users_controller.rb b/app/controllers/v1/users_controller.rb index 2b208420..272b6224 100644 --- a/app/controllers/v1/users_controller.rb +++ b/app/controllers/v1/users_controller.rb @@ -118,7 +118,7 @@ def context def excluded_display_properties %i[created_at updated_at deleted_at activated_at archived_at password_digest activation_token avatar activation_token_valid_till sidekiq_access otp_secret_key otp_required - ical_secret_key id] + ical_secret_key ical_categories id] end def otp_already_required_error diff --git a/app/resources/v1/user_resource.rb b/app/resources/v1/user_resource.rb index bef3359f..64fb4565 100644 --- a/app/resources/v1/user_resource.rb +++ b/app/resources/v1/user_resource.rb @@ -6,7 +6,7 @@ class V1::UserResource < V1::ApplicationResource # rubocop:disable Metrics/Class :phone_number, :food_preferences, :vegetarian, :study, :start_study, :picture_publication_preference, :ical_secret_key, :webdav_secret_key, :password, :avatar, :avatar_url, :avatar_thumb_url, - :user_details_sharing_preference, :allow_tomato_sharing + :user_details_sharing_preference, :allow_tomato_sharing, :ical_categories def avatar_url @model.avatar.url @@ -52,12 +52,12 @@ def fetchable_fields # Relationships allowed_keys += %i[groups active_groups memberships mail_aliases mandates group_mail_aliases permissions photos user_permissions] - allowed_keys += %i[ical_secret_key webdav_secret_key] if me? + allowed_keys += %i[ical_secret_key ical_categories webdav_secret_key] if me? if update_or_me? allowed_keys += %i[login_enabled otp_required activated_at emergency_contact emergency_number ifes_data_sharing_preference info_in_almanak almanak_subscription_preference digtus_subscription_preference - user_details_sharing_preference allow_tomato_sharing] + user_details_sharing_preference allow_tomato_sharing ical_secret_key] end allowed_keys += %i[picture_publication_preference] if read_or_me? if read_user_details? && !application_is_tomato? @@ -78,7 +78,7 @@ def self.creatable_fields(context) # rubocop:disable Metrics/MethodLength attributes += %i[otp_required password user_details_sharing_preference allow_tomato_sharing picture_publication_preference info_in_almanak - ifes_data_sharing_preference] + ifes_data_sharing_preference ical_secret_key] end if user_can_create_or_update?(context) diff --git a/db/migrate/20241113104056_simplyfing_calender_options.rb b/db/migrate/20241113104056_simplyfing_calender_options.rb index 50f4ef25..89b350c1 100644 --- a/db/migrate/20241113104056_simplyfing_calender_options.rb +++ b/db/migrate/20241113104056_simplyfing_calender_options.rb @@ -1,5 +1,6 @@ class SimplyfingCalenderOptions < ActiveRecord::Migration[7.0] def up + add_column :users, :ical_categories, :string, array: true, default: [] Activity.where(category: 'dinsdagkring').find_each do |activity| activity.update(category: 'kring') end @@ -10,6 +11,7 @@ def up end def down + remove_column :users, :ical_categories Activity.where(category: 'kring').find_each do |activity| activity.update(category: 'dinsdagkring') end diff --git a/db/schema.rb b/db/schema.rb index c37d2fec..1a4b299b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -9,6 +9,7 @@ # migrations use external dependencies or application code. # # It's strongly recommended that you check this file into your version control system. + ActiveRecord::Schema[7.0].define(version: 2024_11_13_104056) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -560,6 +561,7 @@ t.boolean "allow_tomato_sharing" t.string "webdav_secret_key" t.string "nickname" + t.string "ical_categories", default: [], array: true t.index ["deleted_at"], name: "index_users_on_deleted_at" t.index ["email"], name: "index_users_on_email", unique: true t.index ["login_enabled"], name: "index_users_on_login_enabled"