Compare commits

..

527 Commits

Author SHA1 Message Date
db5b0809fa Merge pull request 'Update dependency annotaterb to v4.19.0' (#317) from renovate/annotaterb-4.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 4m14s
Run unit tests / build-static-assets (push) Successful in 23m42s
Reviewed-on: #317
2025-09-17 19:21:32 +00:00
feb6dc6b6c Merge pull request 'Update dependency pg to v1.6.2' (#312) from renovate/pg-1.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 2m49s
Run unit tests / build-static-assets (push) Successful in 20m33s
Reviewed-on: #312
2025-09-17 18:53:12 +00:00
3c4c347217 Merge pull request 'Update actions/checkout action to v5' (#321) from renovate/actions-checkout-5.x into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m13s
Run unit tests / build-static-assets (push) Successful in 11m24s
Reviewed-on: #321
2025-09-17 18:09:59 +00:00
b1a2484a88 Merge pull request 'Update dependency rails to v8.0.2.1' (#313) from renovate/rails-8.x-lockfile into main
Some checks failed
Run unit tests / build-static-assets (push) Blocked by required conditions
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Has been cancelled
Reviewed-on: #313
2025-09-17 18:09:04 +00:00
b0c9c6ad87 Merge pull request 'Update dependency rubocop-rails to v2.33.3' (#319) from renovate/rubocop-rails-2.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m18s
Run unit tests / build-static-assets (push) Successful in 13m36s
Reviewed-on: #319
2025-09-17 07:11:43 +00:00
Renovate Bot
7c593e2342 Update actions/checkout action to v5
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 2m35s
Run unit tests / check-licenses (pull_request) Successful in 3m10s
Run unit tests / rubocop (pull_request) Successful in 31s
Run unit tests / unit_tests (pull_request) Successful in 4m1s
Run unit tests / build-static-assets (pull_request) Successful in 22m6s
2025-09-16 22:18:25 +00:00
Renovate Bot
838e52a0a0 Update dependency rubocop-rails to v2.33.3
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 3m49s
Run unit tests / copyright_notice (pull_request) Successful in 4m18s
Run unit tests / check-licenses (pull_request) Successful in 4m25s
Run unit tests / unit_tests (pull_request) Successful in 8m37s
Run unit tests / build-static-assets (pull_request) Successful in 11m44s
2025-09-16 22:17:39 +00:00
Renovate Bot
990d51f786 Update dependency annotaterb to v4.19.0
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 2m8s
Run unit tests / rubocop (pull_request) Successful in 2m14s
Run unit tests / copyright_notice (pull_request) Successful in 3m6s
Run unit tests / unit_tests (pull_request) Successful in 4m40s
Run unit tests / build-static-assets (pull_request) Successful in 22m12s
2025-09-16 22:16:33 +00:00
Renovate Bot
de878594ea Update dependency rails to v8.0.2.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m9s
Run unit tests / copyright_notice (pull_request) Successful in 2m6s
Run unit tests / check-licenses (pull_request) Successful in 2m32s
Run unit tests / unit_tests (pull_request) Successful in 4m11s
Run unit tests / build-static-assets (pull_request) Successful in 21m23s
2025-09-16 22:16:11 +00:00
Renovate Bot
06c103e617 Update dependency pg to v1.6.2
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 56s
Run unit tests / copyright_notice (pull_request) Successful in 1m23s
Run unit tests / check-licenses (pull_request) Successful in 1m35s
Run unit tests / unit_tests (pull_request) Successful in 5m56s
Run unit tests / build-static-assets (pull_request) Successful in 22m22s
2025-09-16 22:15:44 +00:00
e28751521d Merge pull request 'Persist and expose via API the progress of the tables arrangement simulations' (#316) from arrangements-status into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 9m29s
Run unit tests / build-static-assets (push) Successful in 22m38s
Reviewed-on: #316
2025-09-16 00:39:40 +00:00
0502bc4552
Disable a rubocop alert
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 3m14s
Run unit tests / check-licenses (pull_request) Successful in 5m37s
Run unit tests / copyright_notice (pull_request) Successful in 7m13s
Run unit tests / unit_tests (pull_request) Successful in 30m24s
Run unit tests / build-static-assets (pull_request) Successful in 2h21m47s
2025-09-15 23:17:00 +02:00
1760149fbb Merge pull request 'Update dependency factory_bot_rails to v6.5.1' (#314) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 7m59s
Run unit tests / build-static-assets (push) Failing after 29m25s
Reviewed-on: #314
2025-09-15 21:10:10 +00:00
7d8ecfd0e3
Refactor class to reduce complexity of #run method
Some checks failed
Run unit tests / rubocop (pull_request) Failing after 2m17s
Run unit tests / check-licenses (pull_request) Successful in 3m51s
Run unit tests / copyright_notice (pull_request) Successful in 4m4s
Run unit tests / unit_tests (pull_request) Successful in 10m37s
Run unit tests / build-static-assets (pull_request) Failing after 56s
2025-09-15 23:04:02 +02:00
78ab27a697
Fix specs
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 1m50s
Run unit tests / rubocop (pull_request) Failing after 2m12s
Run unit tests / check-licenses (pull_request) Successful in 2m50s
Run unit tests / unit_tests (pull_request) Successful in 3m48s
Run unit tests / build-static-assets (pull_request) Successful in 1h45m6s
2025-09-15 22:52:41 +02:00
4afd40b02a Merge pull request 'Update dependency rspec-rails to v8.0.2' (#315) from renovate/rspec-rails-8.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 3m19s
Run unit tests / build-static-assets (push) Successful in 38m52s
Reviewed-on: #315
2025-09-11 17:19:06 +00:00
Renovate Bot
43ba96868d Update dependency rspec-rails to v8.0.2
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m35s
Run unit tests / check-licenses (pull_request) Successful in 2m18s
Run unit tests / copyright_notice (pull_request) Successful in 3m44s
Run unit tests / unit_tests (pull_request) Successful in 5m30s
Run unit tests / build-static-assets (pull_request) Successful in 2h21m40s
2025-09-11 14:14:21 +00:00
Renovate Bot
00b4e8edfc Update dependency factory_bot_rails to v6.5.1
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 1m49s
Run unit tests / copyright_notice (pull_request) Successful in 3m50s
Run unit tests / unit_tests (pull_request) Successful in 4m8s
Run unit tests / build-static-assets (pull_request) Successful in 2h25m20s
Run unit tests / rubocop (pull_request) Successful in 4m8s
2025-09-11 14:14:10 +00:00
12174b6f20 Persist VNS calculation progress whenever an improvement has been made
Some checks failed
Run unit tests / check-licenses (pull_request) Failing after 1m44s
Run unit tests / rubocop (pull_request) Failing after 1m46s
Run unit tests / copyright_notice (pull_request) Successful in 2m8s
Run unit tests / unit_tests (pull_request) Failing after 3m30s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-09-08 22:44:54 +02:00
0d1b64256d Provide notification callbacks for progress and new solutions 2025-09-08 16:32:13 +02:00
ac659bef86 Update Tables::Distribution#save! to consider that the distribution may already be persisted 2025-09-08 15:51:43 +02:00
5e06c2acca Merge pull request 'Update dependency puma to v6.6.1' (#308) from renovate/puma-6.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m8s
Run unit tests / build-static-assets (push) Successful in 10m36s
Reviewed-on: #308
2025-08-07 13:50:21 +00:00
Renovate Bot
9d656d3759 Update dependency puma to v6.6.1
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 3m7s
Run unit tests / rubocop (pull_request) Successful in 3m33s
Run unit tests / check-licenses (pull_request) Successful in 3m36s
Run unit tests / unit_tests (pull_request) Successful in 4m35s
Run unit tests / build-static-assets (pull_request) Successful in 8m44s
2025-08-07 02:04:50 +00:00
4475fc126d Merge pull request 'Update dependency importmap-rails to v2.2.2' (#303) from renovate/importmap-rails-2.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m1s
Run unit tests / build-static-assets (push) Successful in 10m25s
Reviewed-on: #303
2025-08-06 15:11:22 +00:00
d7cf620d0a Merge pull request 'Update dependency annotaterb to v4.18.0' (#309) from renovate/annotaterb-4.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 2m19s
Run unit tests / build-static-assets (push) Successful in 18m45s
Reviewed-on: #309
2025-08-06 14:14:16 +00:00
de198e2978 Merge pull request 'Update dependency rubocop to v1.79.2' (#310) from renovate/rubocop-1.x-lockfile into main
Some checks failed
Run unit tests / build-static-assets (push) Blocked by required conditions
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Has been cancelled
Reviewed-on: #310
2025-08-06 14:14:10 +00:00
Renovate Bot
5e69d170a2 Update dependency importmap-rails to v2.2.2
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 1m33s
Run unit tests / copyright_notice (pull_request) Successful in 2m11s
Run unit tests / rubocop (pull_request) Successful in 41s
Run unit tests / unit_tests (pull_request) Successful in 1m58s
Run unit tests / build-static-assets (pull_request) Successful in 18m12s
2025-08-06 02:05:25 +00:00
Renovate Bot
e1bf362467 Update dependency annotaterb to v4.18.0
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 2m4s
Run unit tests / rubocop (pull_request) Successful in 2m42s
Run unit tests / copyright_notice (pull_request) Successful in 3m14s
Run unit tests / unit_tests (pull_request) Successful in 5m33s
Run unit tests / build-static-assets (pull_request) Successful in 19m19s
2025-08-06 02:05:16 +00:00
Renovate Bot
c6ce5d62c0 Update dependency rubocop to v1.79.2
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m1s
Run unit tests / check-licenses (pull_request) Successful in 2m25s
Run unit tests / copyright_notice (pull_request) Successful in 4m8s
Run unit tests / unit_tests (pull_request) Successful in 7m12s
Run unit tests / build-static-assets (pull_request) Successful in 19m44s
2025-08-06 02:05:04 +00:00
afc147643b Merge pull request 'Update dependency rubocop to v1.79.1' (#306) from renovate/rubocop-1.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 6m19s
Run unit tests / build-static-assets (push) Successful in 24m31s
Reviewed-on: #306
2025-08-05 14:48:16 +00:00
Renovate Bot
d5bd6d865e Update dependency rubocop to v1.79.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m38s
Run unit tests / check-licenses (pull_request) Successful in 2m4s
Run unit tests / copyright_notice (pull_request) Successful in 48s
Run unit tests / unit_tests (pull_request) Successful in 1m35s
Run unit tests / build-static-assets (pull_request) Successful in 9m10s
2025-08-05 02:06:41 +00:00
9c0b64f427 Merge pull request 'Update dependency pg to v1.6.1' (#307) from renovate/pg-1.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 4m44s
Run unit tests / build-static-assets (push) Successful in 9m55s
2025-08-05 02:06:13 +00:00
Renovate Bot
edd56d46f7 Update dependency pg to v1.6.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m53s
Run unit tests / copyright_notice (pull_request) Successful in 1m2s
Run unit tests / check-licenses (pull_request) Successful in 1m31s
Run unit tests / unit_tests (pull_request) Successful in 4m50s
Run unit tests / build-static-assets (pull_request) Successful in 10m28s
2025-08-04 02:08:37 +00:00
dd14a96e98 Expose and document the new status attribute in the tables arrangements controller 2025-08-01 12:29:13 +02:00
75a0191d40 Add a new status column to tables arrangements table 2025-08-01 12:25:43 +02:00
8662652e1a Merge pull request 'Add a perturbation step to the VNS engine' (#305) from vns-perturbations into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m13s
Run unit tests / build-static-assets (push) Successful in 10m9s
Reviewed-on: #305
2025-07-24 12:21:01 +00:00
3260b0b422 Add copyright notice
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m24s
Run unit tests / check-licenses (pull_request) Successful in 2m32s
Run unit tests / copyright_notice (pull_request) Successful in 2m56s
Run unit tests / unit_tests (pull_request) Successful in 5m22s
Run unit tests / build-static-assets (pull_request) Successful in 29m2s
2025-07-24 11:46:28 +00:00
81f1e79b6d Merge branch 'main' into vns-perturbations
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m4s
Run unit tests / check-licenses (pull_request) Successful in 1m28s
Run unit tests / copyright_notice (pull_request) Successful in 3m7s
Run unit tests / unit_tests (pull_request) Successful in 5m28s
Run unit tests / build-static-assets (pull_request) Successful in 30m6s
2025-07-24 11:45:19 +00:00
d18bddb31a Remove commented-out code
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 41s
Run unit tests / check-licenses (pull_request) Successful in 1m5s
Run unit tests / copyright_notice (pull_request) Successful in 2m0s
Run unit tests / unit_tests (pull_request) Successful in 7m15s
Run unit tests / build-static-assets (pull_request) Successful in 28m52s
2025-07-24 13:42:47 +02:00
3f158d7906 Merge pull request 'Update dependency solid_queue to v1.2.1' (#304) from renovate/solid_queue-1.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 36s
Run unit tests / build-static-assets (push) Successful in 35m9s
Reviewed-on: #304
2025-07-24 11:41:15 +00:00
db85580c1f Introduce a wheel swap perturbation as part of the VNS engine process 2025-07-24 13:41:01 +02:00
Renovate Bot
76ed4229ea Update dependency solid_queue to v1.2.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 3m39s
Run unit tests / check-licenses (pull_request) Successful in 3m7s
Run unit tests / copyright_notice (pull_request) Successful in 2m55s
Run unit tests / unit_tests (pull_request) Successful in 5m5s
Run unit tests / build-static-assets (pull_request) Successful in 9m2s
2025-07-24 02:04:54 +00:00
4befb8505b Run perturbation on top of the best solution so far 2025-07-23 11:02:32 +02:00
b1df5d2f53 Shuffle guests in WheelSwap before assigning them to new tables 2025-07-23 11:01:38 +02:00
a1f06dae5b Define a WheelSwap class that randomly swaps one guest from each table 2025-07-23 10:22:41 +02:00
e8a88b50e2 Initialize Tables::WheelSwap class 2025-07-22 16:26:28 +02:00
185f359942 Include additional debugging messages 2025-07-22 15:56:25 +02:00
543b53d938 Initialize empty set of perturbations and add debug messages 2025-07-22 15:53:06 +02:00
c8b88ab3b1 Merge pull request 'Introduce an invitations penalty for solutions that split guests in the same invitation' (#302) from invitations-penalty into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 58s
Run unit tests / build-static-assets (push) Successful in 8m33s
Reviewed-on: #302
2025-07-22 13:49:28 +00:00
e1a5e4f73e Rename perturbation -> optimization to reflect the nature of swap and shift operations 2025-07-22 15:39:30 +02:00
036cc57aa2 Introduce an invitations penalty for solutions that split guests in the same invitation
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 1m8s
Run unit tests / rubocop (pull_request) Successful in 1m38s
Run unit tests / copyright_notice (pull_request) Successful in 2m23s
Run unit tests / unit_tests (pull_request) Successful in 4m39s
Run unit tests / build-static-assets (pull_request) Successful in 9m51s
2025-07-22 15:33:13 +02:00
4dfd428ce4 Merge pull request 'Remove deprecation warning by renaming swagger_endpoint -> openapi_endpoint' (#301) from deprecation-warning-swagger into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m32s
Run unit tests / build-static-assets (push) Successful in 9m36s
Reviewed-on: #301
2025-07-22 08:09:50 +00:00
51922b4f15 Merge pull request 'Introduce specs for the method Tables::DiscomfortCalculator#cohesion_penalty' (#300) from specs-cohesion_penalty into main
Some checks failed
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m43s
Run unit tests / build-static-assets (push) Has been cancelled
Reviewed-on: #300
2025-07-22 07:53:06 +00:00
1e3a49adb8 Remove deprecation warning by renaming swagger_endpoint -> openapi_endpoint
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 48s
Run unit tests / copyright_notice (pull_request) Successful in 1m25s
Run unit tests / check-licenses (pull_request) Successful in 1m30s
Run unit tests / unit_tests (pull_request) Successful in 3m34s
Run unit tests / build-static-assets (pull_request) Successful in 16m19s
2025-07-22 09:49:33 +02:00
7596032284 Introduce specs for the method Tables::DiscomfortCalculator#cohesion_penalty
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 50s
Run unit tests / rubocop (pull_request) Successful in 1m24s
Run unit tests / unit_tests (pull_request) Successful in 1m57s
Run unit tests / check-licenses (pull_request) Successful in 49s
Run unit tests / build-static-assets (pull_request) Successful in 10m35s
2025-07-22 09:40:05 +02:00
5dce77c29d Merge pull request 'Define a benchmark to measure the VNS performance and prevent redundant hierarchy calculations' (#298) from benchmark into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 54s
Run unit tests / build-static-assets (push) Successful in 9m27s
Reviewed-on: #298
2025-07-18 14:26:10 +00:00
03e09c74a0 Rubocop fixes
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 54s
Run unit tests / check-licenses (pull_request) Successful in 1m14s
Run unit tests / rubocop (pull_request) Successful in 1m24s
Run unit tests / unit_tests (pull_request) Successful in 4m10s
Run unit tests / build-static-assets (pull_request) Successful in 12m27s
2025-07-18 16:09:28 +02:00
da51a073cc Define a benchmark to measure the VNS performance and prevent redundant hierarchy calculations
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 38s
Run unit tests / rubocop (pull_request) Failing after 58s
Run unit tests / check-licenses (pull_request) Successful in 1m0s
Run unit tests / unit_tests (pull_request) Successful in 1m14s
Run unit tests / build-static-assets (pull_request) Successful in 14m33s
2025-07-18 16:05:02 +02:00
1953ba9d7f Merge pull request 'Update dependency redis to v5.4.1' (#297) from renovate/redis-5.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m20s
Run unit tests / build-static-assets (push) Successful in 9m34s
Reviewed-on: #297
2025-07-18 12:15:14 +00:00
Renovate Bot
bea90af59d Update dependency redis to v5.4.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 6m14s
Run unit tests / copyright_notice (pull_request) Successful in 7m19s
Run unit tests / check-licenses (pull_request) Successful in 8m28s
Run unit tests / unit_tests (pull_request) Successful in 16m8s
Run unit tests / build-static-assets (pull_request) Successful in 40m14s
2025-07-18 02:06:51 +00:00
c1c90f4db1 Merge pull request 'Update dependency annotaterb to v4.17.0' (#296) from renovate/annotaterb-4.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 26m22s
Run unit tests / build-static-assets (push) Successful in 37m23s
2025-07-17 02:06:40 +00:00
Renovate Bot
bcddb802b7 Update dependency annotaterb to v4.17.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m59s
Run unit tests / check-licenses (pull_request) Successful in 1m48s
Run unit tests / copyright_notice (pull_request) Successful in 2m37s
Run unit tests / unit_tests (pull_request) Successful in 14m31s
Run unit tests / build-static-assets (pull_request) Successful in 9m26s
2025-07-15 02:04:13 +00:00
edfb7227cf Merge pull request 'Update dependency solid_queue to v1.2.0' (#295) from renovate/solid_queue-1.x-lockfile into main
Some checks failed
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 14m46s
Run unit tests / build-static-assets (push) Failing after 7s
2025-07-15 02:04:00 +00:00
Renovate Bot
b20078a115 Update dependency solid_queue to v1.2.0
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 1m41s
Run unit tests / rubocop (pull_request) Successful in 4m15s
Run unit tests / check-licenses (pull_request) Successful in 4m51s
Run unit tests / unit_tests (pull_request) Successful in 14m20s
Run unit tests / build-static-assets (pull_request) Successful in 14m8s
2025-07-12 02:06:34 +00:00
71562e8143 Merge pull request 'Update dependency rubocop to v1.78.0' (#294) from renovate/rubocop-1.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m39s
Run unit tests / build-static-assets (push) Successful in 10m22s
Reviewed-on: #294
2025-07-09 13:19:30 +00:00
Renovate Bot
6478760b8d Update dependency rubocop to v1.78.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m11s
Run unit tests / check-licenses (pull_request) Successful in 1m39s
Run unit tests / copyright_notice (pull_request) Successful in 1m38s
Run unit tests / unit_tests (pull_request) Successful in 5m57s
Run unit tests / build-static-assets (pull_request) Successful in 8m54s
2025-07-09 02:04:57 +00:00
5cb4d14343 Merge pull request 'Define a worker process and endpoint to send invitations PDF via email' (#293) from qr-doc-background-job into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 2m30s
Run unit tests / build-static-assets (push) Successful in 8m43s
Reviewed-on: #293
2025-07-08 17:37:09 +00:00
397a0f34ff Define a worker process and endpoint to send invitations PDF via email
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 56s
Run unit tests / rubocop (pull_request) Successful in 1m10s
Run unit tests / check-licenses (pull_request) Successful in 1m20s
Run unit tests / unit_tests (pull_request) Successful in 2m3s
Run unit tests / build-static-assets (pull_request) Successful in 9m10s
2025-07-08 19:23:16 +02:00
4496deeef5 Merge pull request 'Update FROM address for email delivery' (#292) from update-from into main
All checks were successful
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 2m53s
Run unit tests / build-static-assets (push) Successful in 10m20s
Reviewed-on: #292
2025-07-06 17:57:48 +00:00
de87b6c46b Merge pull request 'Enable TLS in email delivery' (#291) from tls-email into main
Some checks failed
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 2m42s
Run unit tests / build-static-assets (push) Has been cancelled
Reviewed-on: #291
2025-07-06 17:46:08 +00:00
eabba2109a Update FROM address for email delivery
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 35s
Run unit tests / copyright_notice (pull_request) Successful in 40s
Run unit tests / rubocop (pull_request) Successful in 1m10s
Run unit tests / unit_tests (pull_request) Successful in 1m47s
Run unit tests / build-static-assets (pull_request) Successful in 14m53s
2025-07-06 19:40:47 +02:00
1586f88986 Enable TLS in email delivery
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 27s
Run unit tests / check-licenses (pull_request) Successful in 41s
Run unit tests / copyright_notice (pull_request) Successful in 45s
Run unit tests / unit_tests (pull_request) Successful in 1m14s
Run unit tests / build-static-assets (pull_request) Successful in 12m2s
2025-07-06 19:32:31 +02:00
c42eb4e576 Merge pull request 'Send email to organizers whenever a guest changes their attendance status' (#290) from status-change-email into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 45s
Run unit tests / build-static-assets (push) Successful in 10m33s
Reviewed-on: #290
2025-07-06 16:53:49 +00:00
29b3fca80c Add copyright notice
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 1m25s
Run unit tests / rubocop (pull_request) Successful in 1m46s
Run unit tests / check-licenses (pull_request) Successful in 2m9s
Run unit tests / unit_tests (pull_request) Successful in 2m56s
Run unit tests / build-static-assets (pull_request) Successful in 18m42s
2025-07-06 16:32:02 +00:00
d236e459cd Send an email whenever an anonymous session updates the attendance status of a guest
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 29s
Run unit tests / rubocop (pull_request) Successful in 2m13s
Run unit tests / check-licenses (pull_request) Successful in 2m35s
Run unit tests / unit_tests (pull_request) Successful in 3m23s
Run unit tests / build-static-assets (pull_request) Successful in 18m43s
2025-07-06 18:30:35 +02:00
ff8918a1d4 Define a new email that will be sent to admins when a guest changes their attendance status 2025-07-06 18:11:08 +02:00
45313daba2 Merge pull request 'Configure SMTP settings' (#289) from smtp-settings into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 55s
Run unit tests / build-static-assets (push) Successful in 11m9s
Reviewed-on: #289
2025-07-05 11:56:23 +00:00
ba97a3155a Fix syntax error
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 34s
Run unit tests / check-licenses (pull_request) Successful in 36s
Run unit tests / copyright_notice (pull_request) Successful in 51s
Run unit tests / unit_tests (pull_request) Successful in 1m29s
Run unit tests / build-static-assets (pull_request) Successful in 9m53s
2025-07-05 13:44:54 +02:00
b3f339a02b Avoid error in case SMTP configuration is not present
Some checks failed
Run unit tests / check-licenses (pull_request) Successful in 31s
Run unit tests / copyright_notice (pull_request) Successful in 42s
Run unit tests / unit_tests (pull_request) Successful in 1m10s
Run unit tests / rubocop (pull_request) Successful in 23s
Run unit tests / build-static-assets (pull_request) Failing after 3m4s
2025-07-05 13:33:56 +02:00
d6607cd997 Fix location of SMTP secrets
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 42s
Run unit tests / check-licenses (pull_request) Successful in 45s
Run unit tests / copyright_notice (pull_request) Successful in 1m4s
Run unit tests / unit_tests (pull_request) Successful in 1m50s
Run unit tests / build-static-assets (pull_request) Failing after 2m15s
2025-07-05 13:27:04 +02:00
ba8eb8b85e Configure SMTP settings
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 35s
Run unit tests / check-licenses (pull_request) Successful in 41s
Run unit tests / copyright_notice (pull_request) Successful in 45s
Run unit tests / unit_tests (pull_request) Successful in 2m16s
Run unit tests / build-static-assets (pull_request) Failing after 6m28s
2025-07-05 13:16:27 +02:00
717ee35015 Merge pull request 'Update dependency faker to v3.5.2' (#288) from renovate/faker-3.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 2m40s
Run unit tests / build-static-assets (push) Successful in 13m40s
Reviewed-on: #288
2025-07-02 05:48:15 +00:00
Renovate Bot
1626056456 Update dependency faker to v3.5.2
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 9m49s
Run unit tests / check-licenses (pull_request) Successful in 4m39s
Run unit tests / unit_tests (pull_request) Successful in 29m16s
Run unit tests / build-static-assets (pull_request) Successful in 43m44s
Run unit tests / copyright_notice (pull_request) Successful in 11m4s
2025-07-02 02:06:43 +00:00
f46f25b799 Merge pull request 'Extend the invitations index endpoint to return a PDF file with QRs for invitations' (#287) from invitations-pdf into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 55s
Run unit tests / build-static-assets (push) Successful in 23m10s
Reviewed-on: #287
2025-06-30 22:58:06 +00:00
beda9ff870 Add copyright notice
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 1m27s
Run unit tests / rubocop (pull_request) Successful in 1m46s
Run unit tests / check-licenses (pull_request) Successful in 1m56s
Run unit tests / unit_tests (pull_request) Successful in 3m14s
Run unit tests / build-static-assets (pull_request) Successful in 40m16s
2025-06-30 22:14:30 +00:00
f3c9d82074 Extend the invitations index endpoint to return a PDF file with QRs for invitations
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 33s
Run unit tests / rubocop (pull_request) Successful in 2m14s
Run unit tests / check-licenses (pull_request) Successful in 2m25s
Run unit tests / unit_tests (pull_request) Successful in 3m42s
Run unit tests / build-static-assets (pull_request) Successful in 40m28s
2025-07-01 00:12:56 +02:00
de92ec0469 Merge pull request 'Update dependency rubocop to v1.77.0' (#283) from renovate/rubocop-1.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m12s
Run unit tests / build-static-assets (push) Successful in 9m28s
Reviewed-on: #283
2025-06-22 19:07:22 +00:00
Renovate Bot
6a36a2bda3 Update dependency rubocop to v1.77.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m9s
Run unit tests / copyright_notice (pull_request) Successful in 2m25s
Run unit tests / check-licenses (pull_request) Successful in 2m56s
Run unit tests / unit_tests (pull_request) Successful in 8m17s
Run unit tests / build-static-assets (pull_request) Successful in 8m42s
2025-06-21 02:06:01 +00:00
c30bdbd513 Merge pull request 'Update dependency rspec-rails to v8.0.1' (#286) from renovate/rspec-rails-8.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 6m34s
Run unit tests / build-static-assets (push) Successful in 9m54s
Reviewed-on: #286
2025-06-20 09:13:11 +00:00
Renovate Bot
a1ed94794a Update dependency rspec-rails to v8.0.1
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 2m27s
Run unit tests / rubocop (pull_request) Successful in 2m38s
Run unit tests / copyright_notice (pull_request) Successful in 2m32s
Run unit tests / unit_tests (pull_request) Successful in 7m55s
Run unit tests / build-static-assets (pull_request) Successful in 30m56s
2025-06-20 02:05:35 +00:00
9505b6d801 Merge pull request 'Update dependency debug to v1.11.0' (#284) from renovate/debug-1.x-lockfile into main
All checks were successful
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 3m18s
Run unit tests / build-static-assets (push) Successful in 12m4s
Reviewed-on: #284
2025-06-19 06:59:19 +00:00
f1ba084e04 Merge pull request 'Update dependency annotaterb to v4.16.0' (#285) from renovate/annotaterb-4.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m16s
Run unit tests / build-static-assets (push) Successful in 9m12s
Reviewed-on: #285
2025-06-19 06:33:47 +00:00
Renovate Bot
4c262b3ddd Update dependency annotaterb to v4.16.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m21s
Run unit tests / check-licenses (pull_request) Successful in 2m6s
Run unit tests / copyright_notice (pull_request) Successful in 4m17s
Run unit tests / unit_tests (pull_request) Successful in 8m13s
Run unit tests / build-static-assets (pull_request) Successful in 40m38s
2025-06-19 02:06:48 +00:00
Renovate Bot
9f05d74bb4 Update dependency debug to v1.11.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 7m54s
Run unit tests / check-licenses (pull_request) Successful in 6m27s
Run unit tests / unit_tests (pull_request) Successful in 21m27s
Run unit tests / build-static-assets (pull_request) Successful in 46m41s
Run unit tests / copyright_notice (pull_request) Successful in 27s
2025-06-18 02:06:39 +00:00
54d891070c Merge pull request 'Update dependency factory_bot_rails to v6.5.0' (#281) from renovate/factory_bot_rails-6.x-lockfile into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 1m10s
Run unit tests / build-static-assets (push) Successful in 9m7s
Reviewed-on: #281
2025-06-15 10:59:23 +00:00
b32af61358 Merge pull request 'Return guests ordered by invitation within same group' (#282) from guests-order into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 56s
Run unit tests / build-static-assets (push) Successful in 8m45s
Reviewed-on: #282
2025-06-15 09:35:43 +00:00
7f4bd8a8df Return guests ordered by invitation within same group
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 53s
Run unit tests / rubocop (pull_request) Successful in 1m4s
Run unit tests / unit_tests (pull_request) Successful in 1m50s
Run unit tests / check-licenses (pull_request) Successful in 43s
Run unit tests / build-static-assets (pull_request) Successful in 8m26s
2025-06-15 11:24:57 +02:00
Renovate Bot
46b59ac617 Update dependency factory_bot_rails to v6.5.0
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 2m33s
Run unit tests / rubocop (pull_request) Successful in 3m49s
Run unit tests / check-licenses (pull_request) Successful in 4m17s
Run unit tests / unit_tests (pull_request) Successful in 13m40s
Run unit tests / build-static-assets (pull_request) Successful in 12m30s
2025-06-14 02:04:16 +00:00
f02a6b6a3d Merge pull request 'Allow updating the status of guests from unauthenticated sessions' (#280) from guest-update-from-invitation into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 54s
Run unit tests / build-static-assets (push) Successful in 8m32s
Reviewed-on: #280
2025-06-12 21:26:00 +00:00
efb5cf64f5 Minor changes
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m27s
Run unit tests / copyright_notice (pull_request) Successful in 2m45s
Run unit tests / check-licenses (pull_request) Successful in 2m46s
Run unit tests / unit_tests (pull_request) Successful in 4m26s
Run unit tests / build-static-assets (pull_request) Successful in 20m24s
2025-06-12 23:01:03 +02:00
9a99981f67 Allow updating the status of guests from unauthenticated sessions
Some checks failed
Run unit tests / rubocop (pull_request) Failing after 1m4s
Run unit tests / check-licenses (pull_request) Successful in 1m7s
Run unit tests / copyright_notice (pull_request) Successful in 1m38s
Run unit tests / unit_tests (pull_request) Successful in 3m57s
Run unit tests / build-static-assets (pull_request) Successful in 26m1s
2025-06-12 22:53:50 +02:00
9e9ee0c995 Merge pull request 'Define a new public endpoint to get information about an invitation' (#279) from invitations-show-endpoint into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 56s
Run unit tests / build-static-assets (push) Successful in 8m15s
Reviewed-on: #279
2025-06-12 17:32:27 +00:00
82a39bce82 Define a new public endpoint to get information about an invitation
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 40s
Run unit tests / rubocop (pull_request) Successful in 52s
Run unit tests / check-licenses (pull_request) Successful in 56s
Run unit tests / unit_tests (pull_request) Successful in 1m38s
Run unit tests / build-static-assets (pull_request) Successful in 8m29s
2025-06-12 19:21:53 +02:00
d953e7c4a2 Merge pull request 'Update dependency ruby to v3.4.3' (#254) from renovate/ruby-3.x into main
All checks were successful
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / rubocop (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 52s
Run unit tests / build-static-assets (push) Successful in 17m25s
Reviewed-on: #254
2025-06-11 19:27:11 +00:00
4e4845a8c3 Merge pull request 'Build docker image in the main branch' (#277) from run-build into main
All checks were successful
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 2m30s
Run unit tests / build-static-assets (push) Successful in 17m0s
Reviewed-on: #277
2025-06-11 19:03:20 +00:00
60436caf5b Merge branch 'main' into renovate/ruby-3.x
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 52s
Run unit tests / rubocop (pull_request) Successful in 1m28s
Run unit tests / check-licenses (pull_request) Successful in 1m27s
Run unit tests / unit_tests (pull_request) Successful in 2m34s
Run unit tests / build-static-assets (pull_request) Successful in 25m34s
2025-06-11 18:58:58 +00:00
7f4554d21a Build docker image in the main branch
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 31s
Run unit tests / check-licenses (pull_request) Successful in 41s
Run unit tests / copyright_notice (pull_request) Successful in 42s
Run unit tests / unit_tests (pull_request) Successful in 1m13s
Run unit tests / build-static-assets (pull_request) Successful in 9m47s
2025-06-11 20:49:50 +02:00
509aca79bf Merge pull request 'Prevent PR jobs from running in the main branch' (#276) from avoid-checks-main into main
All checks were successful
Run unit tests / rubocop (push) Has been skipped
Run unit tests / copyright_notice (push) Has been skipped
Run unit tests / check-licenses (push) Has been skipped
Run unit tests / unit_tests (push) Successful in 56s
Run unit tests / build-static-assets (push) Has been skipped
Reviewed-on: #276
2025-06-11 17:20:39 +00:00
f3088470da Use latest version of v1 ruby-setup
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 36s
Run unit tests / copyright_notice (pull_request) Successful in 50s
Run unit tests / check-licenses (pull_request) Successful in 1m12s
Run unit tests / unit_tests (pull_request) Successful in 1m27s
Run unit tests / build-static-assets (pull_request) Successful in 9m4s
2025-06-11 19:09:48 +02:00
b9770b7a9f Prevent PR jobs from running in the main branch
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 44s
Run unit tests / check-licenses (pull_request) Failing after 52s
Run unit tests / rubocop (pull_request) Successful in 1m6s
Run unit tests / unit_tests (pull_request) Successful in 1m46s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-11 19:06:58 +02:00
Renovate Bot
2fe72a34e4 Update dependency rubocop to v1.76.1
Some checks failed
Run unit tests / check-licenses (pull_request) Successful in 1m50s
Run unit tests / rubocop (pull_request) Successful in 2m25s
Run unit tests / copyright_notice (pull_request) Successful in 2m52s
Run unit tests / unit_tests (pull_request) Successful in 5m46s
Run unit tests / build-static-assets (pull_request) Successful in 41m33s
Run unit tests / rubocop (push) Successful in 8m30s
Run unit tests / check-licenses (push) Failing after 1m23s
Run unit tests / copyright_notice (push) Successful in 1m40s
Run unit tests / unit_tests (push) Successful in 13m25s
Run unit tests / build-static-assets (push) Has been skipped
2025-06-10 02:05:32 +00:00
d1791e12c7 Merge pull request 'Do not require authentication to access the public website content' (#274) from public-access-website into main
Some checks failed
Run unit tests / rubocop (push) Failing after 30s
Run unit tests / check-licenses (push) Successful in 32s
Run unit tests / copyright_notice (push) Successful in 45s
Run unit tests / unit_tests (push) Successful in 1m27s
Run unit tests / build-static-assets (push) Has been skipped
Reviewed-on: #274
2025-06-09 06:35:59 +00:00
3832f1d840 Do not require authentication to access the public website content
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 40s
Run unit tests / rubocop (pull_request) Successful in 42s
Run unit tests / copyright_notice (pull_request) Successful in 53s
Run unit tests / unit_tests (pull_request) Successful in 1m23s
Run unit tests / build-static-assets (pull_request) Successful in 8m0s
2025-06-09 08:26:26 +02:00
4e2d046b18 Merge pull request 'Store website content as HTML' (#273) from store-website into main
All checks were successful
Run unit tests / rubocop (push) Successful in 45s
Run unit tests / check-licenses (push) Successful in 47s
Run unit tests / copyright_notice (push) Successful in 1m14s
Run unit tests / unit_tests (push) Successful in 3m45s
Run unit tests / build-static-assets (push) Successful in 15m46s
Reviewed-on: #273
2025-06-08 21:35:43 +00:00
c0ba659f29 Merge pull request 'Return guest that has just been created' (#272) from api/return-guest into main
Some checks failed
Run unit tests / rubocop (push) Successful in 41s
Run unit tests / check-licenses (push) Successful in 53s
Run unit tests / copyright_notice (push) Successful in 1m8s
Run unit tests / unit_tests (push) Successful in 3m2s
Run unit tests / build-static-assets (push) Has been cancelled
Reviewed-on: #272
2025-06-08 21:31:40 +00:00
fc9911abf4 Fix rubocop ofenses
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m38s
Run unit tests / check-licenses (pull_request) Successful in 1m59s
Run unit tests / copyright_notice (pull_request) Successful in 2m32s
Run unit tests / unit_tests (pull_request) Successful in 4m10s
Run unit tests / build-static-assets (pull_request) Successful in 17m41s
2025-06-08 23:13:44 +02:00
3e363ac7dd Add copyright notice
Some checks failed
Run unit tests / check-licenses (pull_request) Successful in 59s
Run unit tests / rubocop (pull_request) Failing after 1m5s
Run unit tests / copyright_notice (pull_request) Successful in 2m46s
Run unit tests / unit_tests (pull_request) Successful in 5m9s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-08 19:03:39 +00:00
cc10fbfb83 Store website content as HTML
Some checks failed
Run unit tests / rubocop (pull_request) Failing after 2m38s
Run unit tests / check-licenses (pull_request) Successful in 3m1s
Run unit tests / copyright_notice (pull_request) Successful in 1m55s
Run unit tests / unit_tests (pull_request) Successful in 5m25s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-08 20:59:09 +02:00
4a107d6728 Return guest that has just been created
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 40s
Run unit tests / rubocop (pull_request) Successful in 1m2s
Run unit tests / unit_tests (pull_request) Successful in 1m39s
Run unit tests / check-licenses (pull_request) Successful in 34s
Run unit tests / build-static-assets (pull_request) Successful in 21m2s
2025-06-08 17:38:34 +02:00
9461fa5255 Merge pull request 'Document required changes to /etc/hosts file' (#258) from bustikiller-patch-2 into main
All checks were successful
Run unit tests / copyright_notice (push) Successful in 48s
Run unit tests / check-licenses (push) Successful in 1m45s
Run unit tests / rubocop (push) Successful in 1m55s
Run unit tests / unit_tests (push) Successful in 5m26s
Run unit tests / build-static-assets (push) Successful in 1h13m0s
Reviewed-on: #258
2025-06-08 07:27:42 +00:00
Renovate Bot
96b6f4ac9e Update dependency rubocop to v1.76.0
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 1m30s
Run unit tests / check-licenses (pull_request) Successful in 1m33s
Run unit tests / copyright_notice (pull_request) Successful in 3m10s
Run unit tests / unit_tests (pull_request) Successful in 7m53s
Run unit tests / build-static-assets (pull_request) Successful in 37m42s
Run unit tests / unit_tests (push) Failing after 25s
Run unit tests / rubocop (push) Failing after 8s
Run unit tests / check-licenses (push) Failing after 14s
Run unit tests / copyright_notice (push) Failing after 8s
Run unit tests / build-static-assets (push) Has been skipped
2025-06-05 02:04:50 +00:00
Renovate Bot
afb103bd50 Update dependency turbo-rails to v2.0.16
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 1m9s
Run unit tests / check-licenses (pull_request) Successful in 1m24s
Run unit tests / copyright_notice (pull_request) Successful in 2m31s
Run unit tests / unit_tests (pull_request) Successful in 7m5s
Run unit tests / build-static-assets (pull_request) Successful in 52m44s
Run unit tests / copyright_notice (push) Failing after 1m37s
Run unit tests / rubocop (push) Failing after 12m20s
Run unit tests / check-licenses (push) Successful in 10m48s
Run unit tests / unit_tests (push) Successful in 15m30s
Run unit tests / build-static-assets (push) Has been skipped
2025-06-03 02:05:18 +00:00
8029de4bef Merge branch 'main' into bustikiller-patch-2
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 1m3s
Run unit tests / rubocop (pull_request) Successful in 3m30s
Run unit tests / unit_tests (pull_request) Successful in 5m1s
Run unit tests / check-licenses (pull_request) Successful in 50s
Run unit tests / build-static-assets (pull_request) Successful in 14m46s
2025-06-02 06:30:54 +00:00
e47fcd3f22 Merge pull request 'Update dependency rack-cors to v3' (#265) from renovate/rack-cors-3.x-lockfile into main
All checks were successful
Run unit tests / copyright_notice (push) Successful in 3m23s
Run unit tests / rubocop (push) Successful in 3m41s
Run unit tests / check-licenses (push) Successful in 4m23s
Run unit tests / unit_tests (push) Successful in 5m13s
Run unit tests / build-static-assets (push) Successful in 10m34s
Reviewed-on: #265
2025-06-02 06:30:41 +00:00
Renovate Bot
1281060bf8 Update dependency rack-cors to v3
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m5s
Run unit tests / check-licenses (pull_request) Successful in 1m15s
Run unit tests / copyright_notice (pull_request) Successful in 2m44s
Run unit tests / unit_tests (pull_request) Successful in 8m7s
Run unit tests / build-static-assets (pull_request) Successful in 35m5s
2025-06-02 02:03:42 +00:00
b1c95de07c Merge pull request 'Update dependency rspec-rails to v8' (#261) from renovate/rspec-rails-8.x into main
Some checks failed
Run unit tests / rubocop (push) Failing after 4m10s
Run unit tests / copyright_notice (push) Successful in 4m15s
Run unit tests / check-licenses (push) Successful in 6m53s
Run unit tests / unit_tests (push) Successful in 11m10s
Run unit tests / build-static-assets (push) Has been skipped
Reviewed-on: #261
2025-06-01 20:52:05 +00:00
ac6df3b75b Merge branch 'main' into renovate/rspec-rails-8.x
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m13s
Run unit tests / check-licenses (pull_request) Successful in 3m5s
Run unit tests / copyright_notice (pull_request) Successful in 4m22s
Run unit tests / unit_tests (pull_request) Successful in 6m36s
Run unit tests / build-static-assets (pull_request) Successful in 37m36s
2025-06-01 20:07:49 +00:00
8e866d8a35 Merge branch 'main' into bustikiller-patch-2
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 1m14s
Run unit tests / check-licenses (pull_request) Failing after 1m42s
Run unit tests / copyright_notice (pull_request) Successful in 2m57s
Run unit tests / unit_tests (pull_request) Successful in 6m24s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-01 20:07:09 +00:00
bc07d63985 Merge pull request 'Update dependency csv to v3.3.5' (#269) from renovate/csv-3.x-lockfile into main
Some checks failed
Run unit tests / rubocop (push) Successful in 23s
Run unit tests / check-licenses (push) Successful in 34s
Run unit tests / copyright_notice (push) Successful in 58s
Run unit tests / unit_tests (push) Successful in 4m25s
Run unit tests / build-static-assets (push) Has been cancelled
Reviewed-on: #269
2025-06-01 20:06:42 +00:00
f957d0acb3 Merge pull request 'Define and seed an invitation model and controller' (#224) from invitations into main
All checks were successful
Run unit tests / rubocop (push) Successful in 36s
Run unit tests / check-licenses (push) Successful in 42s
Run unit tests / copyright_notice (push) Successful in 54s
Run unit tests / unit_tests (push) Successful in 1m24s
Run unit tests / build-static-assets (push) Successful in 10m51s
Reviewed-on: #224
2025-06-01 18:36:49 +00:00
4efb912e38 Merge branch 'main' into renovate/ruby-3.x
Some checks failed
Run unit tests / check-licenses (pull_request) Failing after 1m6s
Run unit tests / rubocop (pull_request) Failing after 1m11s
Run unit tests / copyright_notice (pull_request) Successful in 2m47s
Run unit tests / unit_tests (pull_request) Failing after 3m3s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-01 18:03:21 +00:00
6100ce0b99 Make migration reversible
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 48s
Run unit tests / check-licenses (pull_request) Successful in 55s
Run unit tests / copyright_notice (pull_request) Successful in 1m41s
Run unit tests / unit_tests (pull_request) Successful in 3m32s
Run unit tests / build-static-assets (pull_request) Successful in 35m56s
2025-06-01 19:57:14 +02:00
11f98bd712 Add copyright notice
Some checks failed
Run unit tests / check-licenses (pull_request) Successful in 45s
Run unit tests / rubocop (pull_request) Successful in 1m18s
Run unit tests / copyright_notice (pull_request) Successful in 1m38s
Run unit tests / unit_tests (pull_request) Failing after 2m52s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-01 17:51:49 +00:00
27ce9cac62 Fix rubocop ofenses
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 25s
Run unit tests / check-licenses (pull_request) Successful in 35s
Run unit tests / copyright_notice (pull_request) Successful in 46s
Run unit tests / unit_tests (pull_request) Failing after 3m22s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-01 19:51:08 +02:00
0a2cf6a5eb Remove unnecessary param 2025-06-01 19:50:22 +02:00
622128a29a Add copyright notice
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 2m9s
Run unit tests / rubocop (pull_request) Failing after 2m42s
Run unit tests / check-licenses (pull_request) Successful in 2m58s
Run unit tests / unit_tests (pull_request) Failing after 4m14s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-01 15:59:18 +00:00
5fb26f42d6 Define a controller for invitations
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 57s
Run unit tests / check-licenses (pull_request) Failing after 2m13s
Run unit tests / rubocop (pull_request) Failing after 3m35s
Run unit tests / unit_tests (pull_request) Failing after 5m6s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-06-01 17:58:27 +02:00
Renovate Bot
bd1ff7f92d Update dependency rspec-rails to v8
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 5m0s
Run unit tests / check-licenses (pull_request) Successful in 4m35s
Run unit tests / copyright_notice (pull_request) Successful in 7m17s
Run unit tests / unit_tests (pull_request) Successful in 14m15s
Run unit tests / build-static-assets (pull_request) Failing after 20m10s
2025-06-01 02:06:39 +00:00
Renovate Bot
46bd0d71bd Update dependency csv to v3.3.5
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m50s
Run unit tests / check-licenses (pull_request) Successful in 1m42s
Run unit tests / copyright_notice (pull_request) Successful in 2m16s
Run unit tests / unit_tests (pull_request) Successful in 3m46s
Run unit tests / build-static-assets (pull_request) Successful in 20m55s
2025-06-01 02:06:04 +00:00
Renovate Bot
c5e1c2aef1 Update dependency annotaterb to v4.15.0
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 4m39s
Run unit tests / check-licenses (pull_request) Successful in 5m27s
Run unit tests / copyright_notice (pull_request) Successful in 5m42s
Run unit tests / unit_tests (pull_request) Successful in 7m50s
Run unit tests / build-static-assets (pull_request) Successful in 44m17s
Run unit tests / copyright_notice (push) Failing after 18s
Run unit tests / rubocop (push) Successful in 5m3s
Run unit tests / check-licenses (push) Successful in 4m30s
Run unit tests / unit_tests (push) Successful in 14m15s
Run unit tests / build-static-assets (push) Has been skipped
2025-05-31 02:05:00 +00:00
Renovate Bot
bbe9983070 Update dependency rubocop to v1.75.8
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 3m51s
Run unit tests / rubocop (pull_request) Successful in 5m45s
Run unit tests / check-licenses (pull_request) Successful in 7m4s
Run unit tests / unit_tests (pull_request) Successful in 22m43s
Run unit tests / build-static-assets (pull_request) Successful in 22m54s
Run unit tests / check-licenses (push) Successful in 5m15s
Run unit tests / rubocop (push) Successful in 5m51s
Run unit tests / copyright_notice (push) Successful in 5m46s
Run unit tests / unit_tests (push) Successful in 10m27s
Run unit tests / build-static-assets (push) Failing after 16m45s
2025-05-29 02:06:28 +00:00
Renovate Bot
36345ea74c Update dependency bootsnap to v1.18.6
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 2m41s
Run unit tests / check-licenses (pull_request) Successful in 3m55s
Run unit tests / copyright_notice (pull_request) Successful in 4m0s
Run unit tests / unit_tests (pull_request) Successful in 10m19s
Run unit tests / build-static-assets (pull_request) Successful in 43m15s
Run unit tests / unit_tests (push) Successful in 16m5s
Run unit tests / copyright_notice (push) Failing after 14m44s
Run unit tests / check-licenses (push) Failing after 15m55s
Run unit tests / rubocop (push) Failing after 15m56s
Run unit tests / build-static-assets (push) Has been cancelled
2025-05-19 02:04:57 +00:00
Renovate Bot
b5ed6a7280 Update dependency rubocop-rails to v2.32.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m10s
Run unit tests / copyright_notice (pull_request) Successful in 1m28s
Run unit tests / check-licenses (pull_request) Successful in 1m58s
Run unit tests / unit_tests (pull_request) Successful in 3m16s
Run unit tests / build-static-assets (pull_request) Successful in 25m51s
Run unit tests / rubocop (push) Successful in 3m2s
Run unit tests / check-licenses (push) Successful in 4m22s
Run unit tests / copyright_notice (push) Successful in 6m2s
Run unit tests / unit_tests (push) Successful in 8m20s
Run unit tests / build-static-assets (push) Successful in 39m30s
2025-05-18 02:07:50 +00:00
Renovate Bot
be04c5c441 Update dependency rubocop to v1.75.5
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 1m51s
Run unit tests / check-licenses (pull_request) Successful in 2m46s
Run unit tests / copyright_notice (pull_request) Successful in 2m45s
Run unit tests / unit_tests (pull_request) Successful in 9m2s
Run unit tests / build-static-assets (pull_request) Successful in 42m26s
Run unit tests / rubocop (push) Failing after 3m37s
Run unit tests / copyright_notice (push) Successful in 3m26s
Run unit tests / check-licenses (push) Successful in 6m7s
Run unit tests / unit_tests (push) Successful in 12m3s
Run unit tests / build-static-assets (push) Has been skipped
2025-05-06 02:05:08 +00:00
Renovate Bot
252321461c Update dependency shoulda-matchers to v6.5.0
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 3m53s
Run unit tests / check-licenses (pull_request) Successful in 2m22s
Run unit tests / copyright_notice (pull_request) Successful in 3m33s
Run unit tests / unit_tests (pull_request) Successful in 13m21s
Run unit tests / build-static-assets (pull_request) Successful in 50m11s
Run unit tests / unit_tests (push) Failing after 3m36s
Run unit tests / rubocop (push) Successful in 4m26s
Run unit tests / check-licenses (push) Successful in 4m4s
Run unit tests / copyright_notice (push) Successful in 4m35s
Run unit tests / build-static-assets (push) Has been skipped
2025-04-30 02:05:41 +00:00
Renovate Bot
52c7ed6eb1 Update dependency rubocop to v1.75.4
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 4m40s
Run unit tests / copyright_notice (pull_request) Successful in 2m10s
Run unit tests / check-licenses (pull_request) Successful in 5m11s
Run unit tests / unit_tests (pull_request) Successful in 9m52s
Run unit tests / build-static-assets (pull_request) Successful in 23m49s
Run unit tests / rubocop (push) Successful in 6m37s
Run unit tests / check-licenses (push) Successful in 6m36s
Run unit tests / copyright_notice (push) Successful in 6m51s
Run unit tests / unit_tests (push) Successful in 15m22s
Run unit tests / build-static-assets (push) Failing after 8m16s
2025-04-29 02:04:53 +00:00
bf35ca5f6e Upgrade to ruby 3.4.3
Some checks failed
Run unit tests / rubocop (pull_request) Failing after 37s
Run unit tests / check-licenses (pull_request) Failing after 37s
Run unit tests / copyright_notice (pull_request) Successful in 1m3s
Run unit tests / unit_tests (pull_request) Failing after 1m24s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-04-25 07:39:13 +02:00
918944b345 Update README.md
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 52s
Run unit tests / rubocop (pull_request) Failing after 1m4s
Run unit tests / check-licenses (pull_request) Successful in 1m27s
Run unit tests / unit_tests (pull_request) Successful in 1m51s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-04-25 05:32:34 +00:00
Renovate Bot
8cd4efc6f5 Update dependency ruby to v3.4.3
Some checks failed
Run unit tests / check-licenses (pull_request) Failing after 2m11s
Run unit tests / rubocop (pull_request) Failing after 2m22s
Run unit tests / copyright_notice (pull_request) Successful in 2m43s
Run unit tests / unit_tests (pull_request) Failing after 2m46s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-04-24 02:06:21 +00:00
Renovate Bot
fecbdb263e Update dependency rubocop to v1.75.3
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 3m1s
Run unit tests / unit_tests (pull_request) Successful in 7m33s
Run unit tests / build-static-assets (pull_request) Successful in 41m43s
Run unit tests / unit_tests (push) Successful in 8m15s
Run unit tests / rubocop (pull_request) Successful in 1m30s
Run unit tests / copyright_notice (push) Successful in 3m13s
Run unit tests / rubocop (push) Successful in 2m16s
Run unit tests / check-licenses (push) Successful in 2m55s
Run unit tests / build-static-assets (push) Successful in 31m52s
Run unit tests / check-licenses (pull_request) Successful in 1m9s
2025-04-23 02:05:13 +00:00
Renovate Bot
c5139a8a47 Update dependency csv to v3.3.4
Some checks failed
Run unit tests / unit_tests (pull_request) Successful in 10m15s
Run unit tests / unit_tests (push) Successful in 11m2s
Run unit tests / rubocop (pull_request) Successful in 3m51s
Run unit tests / copyright_notice (pull_request) Successful in 4m11s
Run unit tests / copyright_notice (push) Successful in 3m33s
Run unit tests / check-licenses (pull_request) Successful in 5m14s
Run unit tests / build-static-assets (pull_request) Successful in 37m17s
Run unit tests / rubocop (push) Successful in 5m41s
Run unit tests / build-static-assets (push) Failing after 1m12s
Run unit tests / check-licenses (push) Successful in 6m12s
2025-04-22 02:04:41 +00:00
cf4d27009c Merge pull request 'Update dependency solid_queue to v1.1.5' (#256) from renovate/solid_queue-1.x-lockfile into main
Some checks failed
Run unit tests / check-licenses (push) Failing after 31s
Run unit tests / copyright_notice (push) Failing after 34s
Run unit tests / unit_tests (push) Failing after 37s
Run unit tests / rubocop (push) Successful in 48s
Run unit tests / build-static-assets (push) Has been skipped
Reviewed-on: #256
2025-04-21 18:19:45 +00:00
Renovate Bot
9926d99a22 Update dependency solid_queue to v1.1.5
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m5s
Run unit tests / copyright_notice (pull_request) Successful in 1m32s
Run unit tests / check-licenses (pull_request) Successful in 2m23s
Run unit tests / unit_tests (pull_request) Successful in 6m2s
Run unit tests / build-static-assets (pull_request) Successful in 36m29s
2025-04-21 02:04:55 +00:00
Renovate Bot
88367081f1 Update dependency rubocop-rspec to v3.6.0
Some checks failed
Run unit tests / check-licenses (pull_request) Successful in 2m37s
Run unit tests / copyright_notice (pull_request) Successful in 2m57s
Run unit tests / rubocop (pull_request) Successful in 4m20s
Run unit tests / unit_tests (pull_request) Successful in 12m22s
Run unit tests / build-static-assets (pull_request) Successful in 53m38s
Run unit tests / check-licenses (push) Successful in 4m37s
Run unit tests / rubocop (push) Successful in 4m42s
Run unit tests / copyright_notice (push) Successful in 7m53s
Run unit tests / unit_tests (push) Successful in 24m58s
Run unit tests / build-static-assets (push) Failing after 9s
2025-04-19 02:04:33 +00:00
Renovate Bot
3aa629d676 Update dependency rubocop-rails to v2.31.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 9m59s
Run unit tests / copyright_notice (pull_request) Successful in 6m38s
Run unit tests / check-licenses (pull_request) Successful in 9m3s
Run unit tests / unit_tests (pull_request) Successful in 25m22s
Run unit tests / build-static-assets (pull_request) Successful in 44m5s
Run unit tests / rubocop (push) Successful in 3m45s
Run unit tests / check-licenses (push) Successful in 4m54s
Run unit tests / copyright_notice (push) Successful in 7m11s
Run unit tests / unit_tests (push) Successful in 8m7s
Run unit tests / build-static-assets (push) Successful in 25m0s
2025-04-02 02:05:52 +00:00
8ae8c5b9a5 Merge pull request 'Update dependency httparty to v0.23.1' (#250) from renovate/httparty-0.x-lockfile into main
Some checks failed
Run unit tests / rubocop (push) Failing after 1m38s
Run unit tests / check-licenses (push) Successful in 1m44s
Run unit tests / copyright_notice (push) Successful in 3m13s
Run unit tests / unit_tests (push) Successful in 6m0s
Run unit tests / build-static-assets (push) Has been skipped
Reviewed-on: #250
2025-03-30 11:16:52 +00:00
Renovate Bot
b36099e6df Update dependency httparty to v0.23.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m3s
Run unit tests / check-licenses (pull_request) Successful in 2m31s
Run unit tests / unit_tests (pull_request) Successful in 11m41s
Run unit tests / copyright_notice (pull_request) Successful in 11m17s
Run unit tests / build-static-assets (pull_request) Successful in 32m8s
2025-03-29 03:06:56 +00:00
Renovate Bot
ee20b596d1 Update dependency rubocop to v1.75.1
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 2m41s
Run unit tests / check-licenses (pull_request) Successful in 2m56s
Run unit tests / unit_tests (pull_request) Successful in 5m31s
Run unit tests / copyright_notice (pull_request) Successful in 3m36s
Run unit tests / build-static-assets (pull_request) Successful in 32m24s
Run unit tests / rubocop (push) Successful in 4m24s
Run unit tests / check-licenses (push) Successful in 5m49s
Run unit tests / unit_tests (push) Successful in 20m35s
Run unit tests / copyright_notice (push) Successful in 16m45s
Run unit tests / build-static-assets (push) Failing after 1m17s
2025-03-27 03:05:34 +00:00
Renovate Bot
56dd6d6d13 Update dependency solid_queue to v1.1.4
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m40s
Run unit tests / check-licenses (pull_request) Successful in 2m8s
Run unit tests / copyright_notice (pull_request) Successful in 3m30s
Run unit tests / unit_tests (pull_request) Successful in 6m52s
Run unit tests / build-static-assets (pull_request) Successful in 55m13s
Run unit tests / rubocop (push) Successful in 1m35s
Run unit tests / check-licenses (push) Successful in 1m39s
Run unit tests / copyright_notice (push) Successful in 3m35s
Run unit tests / unit_tests (push) Successful in 8m40s
Run unit tests / build-static-assets (push) Successful in 30m6s
2025-03-18 03:04:28 +00:00
Renovate Bot
b195ab7426 Update dependency rubocop-rspec_rails to v2.31.0
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 34s
Run unit tests / rubocop (pull_request) Successful in 3m7s
Run unit tests / check-licenses (pull_request) Successful in 3m24s
Run unit tests / unit_tests (pull_request) Successful in 3m58s
Run unit tests / build-static-assets (pull_request) Successful in 17m57s
Run unit tests / rubocop (push) Successful in 2m21s
Run unit tests / check-licenses (push) Successful in 2m35s
Run unit tests / copyright_notice (push) Successful in 3m3s
Run unit tests / unit_tests (push) Successful in 8m50s
Run unit tests / build-static-assets (push) Failing after 1m27s
2025-03-17 03:03:41 +00:00
Renovate Bot
c5f92ab511 Update dependency rubocop-rspec to v3.5.0
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 1m2s
Run unit tests / rubocop (pull_request) Successful in 2m9s
Run unit tests / check-licenses (pull_request) Successful in 2m8s
Run unit tests / unit_tests (pull_request) Successful in 5m56s
Run unit tests / build-static-assets (pull_request) Successful in 1h51m30s
Run unit tests / copyright_notice (push) Successful in 2m38s
Run unit tests / rubocop (push) Successful in 3m31s
Run unit tests / check-licenses (push) Successful in 3m50s
Run unit tests / unit_tests (push) Successful in 4m22s
Run unit tests / build-static-assets (push) Successful in 18m6s
2025-03-16 03:08:33 +00:00
Renovate Bot
51695e2c83 Update dependency turbo-rails to v2.0.13
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 2m23s
Run unit tests / check-licenses (pull_request) Successful in 2m35s
Run unit tests / unit_tests (pull_request) Successful in 6m46s
Run unit tests / copyright_notice (pull_request) Successful in 4m32s
Run unit tests / build-static-assets (pull_request) Successful in 30m29s
Run unit tests / copyright_notice (push) Successful in 3m54s
Run unit tests / rubocop (push) Failing after 4m39s
Run unit tests / check-licenses (push) Successful in 6m46s
Run unit tests / unit_tests (push) Successful in 9m43s
Run unit tests / build-static-assets (push) Has been skipped
2025-03-15 03:05:49 +00:00
Renovate Bot
4dd7f2f45d Update dependency rubocop-factory_bot to v2.27.1
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 1m58s
Run unit tests / rubocop (pull_request) Successful in 2m36s
Run unit tests / copyright_notice (pull_request) Successful in 3m53s
Run unit tests / unit_tests (pull_request) Successful in 10m4s
Run unit tests / build-static-assets (pull_request) Successful in 53m51s
Run unit tests / rubocop (push) Successful in 3m23s
Run unit tests / check-licenses (push) Successful in 3m43s
Run unit tests / unit_tests (push) Successful in 9m29s
Run unit tests / copyright_notice (push) Successful in 5m37s
Run unit tests / build-static-assets (push) Successful in 38m17s
2025-03-14 03:05:39 +00:00
Renovate Bot
e9ed703c7e Update dependency rails to v8.0.2
Some checks failed
Run unit tests / copyright_notice (pull_request) Successful in 2m50s
Run unit tests / rubocop (pull_request) Successful in 5m5s
Run unit tests / check-licenses (pull_request) Successful in 5m4s
Run unit tests / unit_tests (pull_request) Successful in 10m24s
Run unit tests / build-static-assets (pull_request) Successful in 38m57s
Run unit tests / rubocop (push) Successful in 2m27s
Run unit tests / check-licenses (push) Successful in 3m14s
Run unit tests / copyright_notice (push) Successful in 3m56s
Run unit tests / unit_tests (push) Successful in 6m21s
Run unit tests / build-static-assets (push) Failing after 36m16s
2025-03-13 03:06:23 +00:00
Renovate Bot
431264e848 Update dependency rubocop-factory_bot to v2.27.0
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 2m45s
Run unit tests / check-licenses (pull_request) Successful in 2m56s
Run unit tests / unit_tests (pull_request) Successful in 7m28s
Run unit tests / copyright_notice (pull_request) Successful in 4m8s
Run unit tests / build-static-assets (pull_request) Successful in 28m8s
Run unit tests / check-licenses (push) Failing after 3m6s
Run unit tests / rubocop (push) Successful in 5m36s
Run unit tests / copyright_notice (push) Successful in 6m5s
Run unit tests / unit_tests (push) Successful in 9m20s
Run unit tests / build-static-assets (push) Has been skipped
2025-03-06 03:09:55 +00:00
Renovate Bot
63b92ce30f Update dependency rubocop-rails to v2.30.3
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 3m5s
Run unit tests / check-licenses (pull_request) Successful in 4m19s
Run unit tests / unit_tests (pull_request) Successful in 13m33s
Run unit tests / copyright_notice (pull_request) Successful in 5m17s
Run unit tests / build-static-assets (pull_request) Successful in 27m32s
Run unit tests / check-licenses (push) Successful in 3m37s
Run unit tests / rubocop (push) Successful in 5m12s
Run unit tests / copyright_notice (push) Successful in 4m52s
Run unit tests / unit_tests (push) Successful in 15m3s
Run unit tests / build-static-assets (push) Failing after 40s
2025-03-04 03:05:23 +00:00
Renovate Bot
10310eecc6 Update dependency redis to v5.4.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 4m6s
Run unit tests / check-licenses (pull_request) Successful in 5m20s
Run unit tests / unit_tests (pull_request) Successful in 12m55s
Run unit tests / copyright_notice (pull_request) Successful in 9m23s
Run unit tests / build-static-assets (pull_request) Successful in 1h2m3s
Run unit tests / rubocop (push) Successful in 3m1s
Run unit tests / check-licenses (push) Successful in 3m14s
Run unit tests / unit_tests (push) Successful in 8m45s
Run unit tests / copyright_notice (push) Successful in 7m57s
Run unit tests / build-static-assets (push) Successful in 39m18s
2025-03-02 03:05:58 +00:00
Renovate Bot
af2f4015bc Update dependency rubocop-rails to v2.30.2
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 4m25s
Run unit tests / check-licenses (pull_request) Successful in 4m32s
Run unit tests / copyright_notice (pull_request) Successful in 6m20s
Run unit tests / unit_tests (pull_request) Successful in 17m5s
Run unit tests / build-static-assets (pull_request) Successful in 1h15m26s
Run unit tests / rubocop (push) Successful in 7m4s
Run unit tests / check-licenses (push) Successful in 7m58s
Run unit tests / copyright_notice (push) Successful in 9m13s
Run unit tests / unit_tests (push) Successful in 15m41s
Run unit tests / build-static-assets (push) Successful in 1h3m26s
2025-03-01 03:06:15 +00:00
f63d460c90 Merge pull request 'Update dependency rubocop to v1.73.1' (#238) from renovate/rubocop-1.x-lockfile into main
Some checks failed
Run unit tests / copyright_notice (push) Successful in 1m12s
Run unit tests / rubocop (push) Successful in 1m23s
Run unit tests / check-licenses (push) Successful in 1m43s
Run unit tests / unit_tests (push) Successful in 2m7s
Run unit tests / build-static-assets (push) Failing after 21m36s
Reviewed-on: #238
2025-02-28 06:05:06 +00:00
Renovate Bot
496a3ac28d Update dependency rubocop to v1.73.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m22s
Run unit tests / copyright_notice (pull_request) Successful in 2m30s
Run unit tests / check-licenses (pull_request) Successful in 3m24s
Run unit tests / unit_tests (pull_request) Successful in 6m16s
Run unit tests / build-static-assets (pull_request) Successful in 37m53s
2025-02-28 03:05:40 +00:00
Renovate Bot
450d914d49 Update dependency rubocop-rails to v2.30.1
All checks were successful
Run unit tests / check-licenses (push) Successful in 6m11s
Run unit tests / unit_tests (push) Successful in 19m44s
Run unit tests / copyright_notice (push) Successful in 13m38s
Run unit tests / check-licenses (pull_request) Successful in 1m51s
Run unit tests / rubocop (pull_request) Successful in 2m2s
Run unit tests / unit_tests (pull_request) Successful in 5m40s
Run unit tests / build-static-assets (pull_request) Successful in 36m39s
Run unit tests / copyright_notice (pull_request) Successful in 3m58s
Run unit tests / build-static-assets (push) Successful in 48m28s
Run unit tests / rubocop (push) Successful in 6m44s
2025-02-20 03:10:48 +00:00
Renovate Bot
b27aab84a4 Update dependency annotaterb to v4.14.0
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 8m10s
Run unit tests / check-licenses (pull_request) Successful in 7m5s
Run unit tests / copyright_notice (pull_request) Successful in 8m30s
Run unit tests / unit_tests (pull_request) Successful in 17m27s
Run unit tests / build-static-assets (pull_request) Successful in 39m3s
Run unit tests / copyright_notice (push) Successful in 2m4s
Run unit tests / rubocop (push) Successful in 4m40s
Run unit tests / check-licenses (push) Successful in 4m9s
Run unit tests / unit_tests (push) Successful in 11m44s
Run unit tests / build-static-assets (push) Failing after 23m5s
2025-02-19 03:10:13 +00:00
4c965b6e8f Merge pull request 'Update dependency ruby to v3.4.2' (#230) from renovate/ruby-3.x into main
All checks were successful
Run unit tests / rubocop (push) Successful in 1m9s
Run unit tests / check-licenses (push) Successful in 1m12s
Run unit tests / copyright_notice (push) Successful in 1m30s
Run unit tests / unit_tests (push) Successful in 2m25s
Run unit tests / build-static-assets (push) Successful in 36m45s
Reviewed-on: #230
2025-02-16 21:54:16 +00:00
d401859088 Upgrade to ruby 3.4.2
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m46s
Run unit tests / check-licenses (pull_request) Successful in 1m52s
Run unit tests / copyright_notice (pull_request) Successful in 1m53s
Run unit tests / unit_tests (pull_request) Successful in 3m32s
Run unit tests / build-static-assets (pull_request) Successful in 30m10s
2025-02-16 22:20:24 +01:00
80892930ba Merge pull request 'Update dependency rubocop-rails to v2.30.0' (#231) from renovate/rubocop-rails-2.x-lockfile into main
Some checks failed
Run unit tests / copyright_notice (push) Failing after 13s
Run unit tests / unit_tests (push) Failing after 15s
Run unit tests / rubocop (push) Successful in 31s
Run unit tests / check-licenses (push) Successful in 35s
Run unit tests / build-static-assets (push) Has been skipped
Reviewed-on: #231
2025-02-16 21:19:54 +00:00
Renovate Bot
79c0619e2f Update dependency rubocop-rails to v2.30.0
All checks were successful
Run unit tests / check-licenses (pull_request) Successful in 3m43s
Run unit tests / copyright_notice (pull_request) Successful in 6m12s
Run unit tests / unit_tests (pull_request) Successful in 13m49s
Run unit tests / rubocop (pull_request) Successful in 19s
Run unit tests / build-static-assets (pull_request) Successful in 16m31s
2025-02-16 03:12:42 +00:00
Renovate Bot
d4264e6118 Update dependency ruby to v3.4.2
Some checks failed
Run unit tests / rubocop (pull_request) Failing after 9m13s
Run unit tests / check-licenses (pull_request) Failing after 6m3s
Run unit tests / unit_tests (pull_request) Failing after 37m41s
Run unit tests / copyright_notice (pull_request) Successful in 8m16s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-02-16 03:12:05 +00:00
b48e51e867 Merge pull request 'Update dependency rspec-rails to v7.1.1' (#229) from renovate/rspec-rails-7.x-lockfile into main
Some checks failed
Run unit tests / rubocop (push) Successful in 41s
Run unit tests / check-licenses (push) Successful in 44s
Run unit tests / copyright_notice (push) Successful in 1m16s
Run unit tests / unit_tests (push) Successful in 2m25s
Run unit tests / build-static-assets (push) Failing after 1m21s
Reviewed-on: #229
2025-02-13 10:58:25 +00:00
Renovate Bot
5e22172620 Update dependency rspec-rails to v7.1.1
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 1m36s
Run unit tests / check-licenses (pull_request) Successful in 1m19s
Run unit tests / unit_tests (pull_request) Successful in 2m6s
Run unit tests / rubocop (pull_request) Successful in 14s
Run unit tests / build-static-assets (pull_request) Successful in 1h24m22s
2025-02-09 03:10:19 +00:00
Renovate Bot
afdb0cabca Update dependency puma to v6.6.0
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 1m16s
Run unit tests / check-licenses (pull_request) Successful in 2m0s
Run unit tests / copyright_notice (pull_request) Successful in 3m32s
Run unit tests / unit_tests (pull_request) Successful in 12m30s
Run unit tests / build-static-assets (pull_request) Successful in 1h16m2s
Run unit tests / rubocop (push) Successful in 3m25s
Run unit tests / check-licenses (push) Successful in 3m57s
Run unit tests / copyright_notice (push) Successful in 3m2s
Run unit tests / unit_tests (push) Successful in 6m55s
Run unit tests / build-static-assets (push) Successful in 33m52s
2025-02-05 03:06:22 +00:00
Renovate Bot
0b8a38cb82 Update dependency solid_queue to v1.1.3
Some checks failed
Run unit tests / check-licenses (pull_request) Successful in 1m31s
Run unit tests / rubocop (pull_request) Successful in 3m46s
Run unit tests / copyright_notice (pull_request) Successful in 3m55s
Run unit tests / unit_tests (pull_request) Successful in 10m8s
Run unit tests / build-static-assets (pull_request) Successful in 30m9s
Run unit tests / rubocop (push) Successful in 1m33s
Run unit tests / check-licenses (push) Successful in 4m12s
Run unit tests / unit_tests (push) Successful in 7m34s
Run unit tests / copyright_notice (push) Successful in 6m17s
Run unit tests / build-static-assets (push) Failing after 50m57s
2025-02-04 03:06:07 +00:00
Renovate Bot
98c64018db Update dependency rubocop to v1.71.1
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 2m39s
Run unit tests / check-licenses (pull_request) Successful in 3m15s
Run unit tests / copyright_notice (pull_request) Successful in 6m42s
Run unit tests / unit_tests (pull_request) Successful in 9m2s
Run unit tests / build-static-assets (pull_request) Successful in 13m34s
Run unit tests / rubocop (push) Successful in 6m54s
Run unit tests / copyright_notice (push) Successful in 3m32s
Run unit tests / check-licenses (push) Successful in 5m46s
Run unit tests / unit_tests (push) Successful in 17m3s
Run unit tests / build-static-assets (push) Failing after 7m17s
2025-02-01 03:05:02 +00:00
3e6afcc048 Merge branch 'invitations' of https://gitea.bustikiller.com/bustikiller/wedding-planner into invitations
Some checks failed
Run unit tests / rubocop (pull_request) Failing after 4s
Run unit tests / copyright_notice (pull_request) Successful in 39s
Run unit tests / check-licenses (pull_request) Successful in 41s
Run unit tests / unit_tests (pull_request) Failing after 1m34s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-01-28 08:59:44 +01:00
522bcb0032 Generate invitations within the same group 2025-01-28 08:59:15 +01:00
40f89ae179 Add copyright notice
Some checks failed
Run unit tests / check-licenses (pull_request) Successful in 1m9s
Run unit tests / rubocop (pull_request) Successful in 1m15s
Run unit tests / copyright_notice (pull_request) Successful in 1m52s
Run unit tests / unit_tests (pull_request) Failing after 3m22s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-01-27 19:44:30 +00:00
ecbb6af4bd Increase seeds size
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 36s
Run unit tests / check-licenses (pull_request) Successful in 41s
Run unit tests / copyright_notice (pull_request) Successful in 1m23s
Run unit tests / unit_tests (pull_request) Failing after 3m30s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-01-27 20:42:31 +01:00
b112aefe21 Optimize seeds file 2025-01-27 20:22:21 +01:00
a5d3062654 Define and seed an invitation model
Some checks failed
Run unit tests / rubocop (pull_request) Successful in 48s
Run unit tests / check-licenses (pull_request) Successful in 55s
Run unit tests / copyright_notice (pull_request) Successful in 1m16s
Run unit tests / unit_tests (pull_request) Failing after 3m39s
Run unit tests / build-static-assets (pull_request) Has been skipped
2025-01-27 20:08:28 +01:00
Renovate Bot
567093c449 Update dependency rubocop-rails to v2.29.1
All checks were successful
Run unit tests / rubocop (pull_request) Successful in 2m8s
Run unit tests / check-licenses (pull_request) Successful in 2m40s
Run unit tests / copyright_notice (pull_request) Successful in 3m12s
Run unit tests / unit_tests (pull_request) Successful in 8m46s
Run unit tests / build-static-assets (pull_request) Successful in 16m47s
Run unit tests / rubocop (push) Successful in 42s
Run unit tests / check-licenses (push) Successful in 46s
Run unit tests / copyright_notice (push) Successful in 57s
Run unit tests / unit_tests (push) Successful in 1m45s
Run unit tests / build-static-assets (push) Successful in 9m39s
2025-01-27 03:05:19 +00:00
2147d7ad5e Redo simulations lifecycle (#222)
All checks were successful
Run unit tests / rubocop (push) Successful in 27s
Run unit tests / check-licenses (push) Successful in 32s
Run unit tests / copyright_notice (push) Successful in 36s
Run unit tests / unit_tests (push) Successful in 1m22s
Run unit tests / build-static-assets (push) Successful in 10m9s
## Why

The current way of creating and deleting simulations doesn't scale for big instances. We cannot generate 50 simulations every time a guest confirms attendance, and we should not delete existing valuable simulations. For example, if a guest confirms attendance and declines right after, previously generated simulations should still be valid.

## What

In this PR we are introducing a series of changes that make simulations management easier:

1. We're removing the automatic creation of simulations.
2. Simulations are not removed anymore, neither manually nor automatically.
3. A new endpoint has been defined to create simulations on demand.
4. A digest property has been defined to determine whether a simulation is still valid (meaning there have not been any change in the list of guests involved).

Reviewed-on: #222
Co-authored-by: Manuel Bustillo <bustikiller@bustikiller.com>
Co-committed-by: Manuel Bustillo <bustikiller@bustikiller.com>
2025-01-26 12:53:21 +00:00
f414acb2d5 Test reversibility of migrations (#220)
Some checks failed
Run unit tests / rubocop (push) Failing after 1m10s
Run unit tests / unit_tests (push) Failing after 1m16s
Run unit tests / copyright_notice (push) Successful in 1m16s
Run unit tests / check-licenses (push) Successful in 1m36s
Run unit tests / build-static-assets (push) Has been skipped
We want to make sure that:

1. Migrations are reversible
2. Reapplying migrations added to a PR leads to the same schema.rb

Reviewed-on: #220
Co-authored-by: Manuel Bustillo <bustikiller@bustikiller.com>
Co-committed-by: Manuel Bustillo <bustikiller@bustikiller.com>
2025-01-25 09:43:43 +00:00
66aded5112 Merge pull request 'Update copyright notice action' (#221) from remove-old-copyright-notice into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 39s
Run unit tests / unit_tests (push) Successful in 1m56s
Build Nginx-based docker image / build-static-assets (push) Successful in 12m35s
Reviewed-on: #221
2025-01-23 22:16:01 +00:00
8c12884212 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m38s
Add copyright notice / copyright_notice (pull_request) Successful in 3m16s
Run unit tests / unit_tests (pull_request) Successful in 5m31s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 41m31s
2025-01-23 21:34:23 +00:00
6cead51bb9 Remove all copyright notices to force recreation
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m25s
Add copyright notice / copyright_notice (pull_request) Successful in 3m0s
Run unit tests / unit_tests (pull_request) Successful in 4m54s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 45m24s
2025-01-23 22:29:26 +01:00
74ca20d3e8 Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m22s
Add copyright notice / copyright_notice (pull_request) Successful in 2m5s
Run unit tests / unit_tests (pull_request) Successful in 3m45s
Build Nginx-based docker image / build-static-assets (pull_request) Has been cancelled
2025-01-23 21:18:12 +00:00
cedb8dce92 Update copyright notice action
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 2m44s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m55s
Run unit tests / unit_tests (pull_request) Successful in 4m30s
Build Nginx-based docker image / build-static-assets (pull_request) Has been cancelled
2025-01-23 22:15:34 +01:00
006b1893c1 Merge pull request 'Fix error loading arrangements' (#217) from fix/error-loading-arrangements into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m24s
Run unit tests / unit_tests (push) Successful in 1m31s
Build Nginx-based docker image / build-static-assets (push) Successful in 28m7s
Reviewed-on: #217
2025-01-23 20:49:01 +00:00
Renovate Bot
fcb1e77a3a Update dependency rubocop to v1.71.0
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m28s
Check usage of free licenses / check-licenses (pull_request) Successful in 2m46s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 17m11s
Run unit tests / unit_tests (pull_request) Successful in 1m4s
Check usage of free licenses / check-licenses (push) Successful in 42s
Run unit tests / unit_tests (push) Successful in 2m6s
Build Nginx-based docker image / build-static-assets (push) Successful in 14m32s
2025-01-23 03:11:38 +00:00
9f7f99f3f4 Fix error loading arrangements
All checks were successful
Run unit tests / unit_tests (pull_request) Successful in 5m3s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 24m19s
Add copyright notice / copyright_notice (pull_request) Successful in 34s
Check usage of free licenses / check-licenses (pull_request) Successful in 37s
2025-01-22 20:39:09 +01:00
Renovate Bot
f550b8d92c Update dependency rubocop-rspec to v3.4.0
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m55s
Add copyright notice / copyright_notice (pull_request) Successful in 2m55s
Run unit tests / unit_tests (pull_request) Successful in 5m3s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 13m25s
Check usage of free licenses / check-licenses (push) Successful in 47s
Run unit tests / unit_tests (push) Successful in 1m50s
Build Nginx-based docker image / build-static-assets (push) Successful in 11m57s
2025-01-21 03:03:34 +00:00
7c968f555f Merge pull request 'Use group affinities in discomfort calculator' (#215) from discomfort-calculation-revamp into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 34s
Run unit tests / unit_tests (push) Successful in 1m40s
Build Nginx-based docker image / build-static-assets (push) Successful in 17m44s
Reviewed-on: #215
2025-01-19 20:19:10 +00:00
1f0c6c2aac Use group affinities in discomfort calculator
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 50s
Add copyright notice / copyright_notice (pull_request) Successful in 1m11s
Run unit tests / unit_tests (pull_request) Successful in 1m58s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 19m18s
2025-01-19 20:58:42 +01:00
390899524b Fix rubocop ofenses
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m5s
Run unit tests / unit_tests (pull_request) Successful in 2m49s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m7s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 22m13s
Check usage of free licenses / check-licenses (push) Successful in 42s
Run unit tests / unit_tests (push) Successful in 1m32s
Build Nginx-based docker image / build-static-assets (push) Successful in 26m19s
2025-01-19 19:44:22 +01:00
Renovate Bot
59e7653064 Update dependency rubocop-rails to v2.29.0
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 1m51s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 24m24s
Check usage of free licenses / check-licenses (pull_request) Successful in 49s
Run unit tests / unit_tests (pull_request) Failing after 48s
2025-01-19 03:18:52 +00:00
d6fd72a45c Merge pull request 'Fix duplicate row index on upsert statement' (#213) from fix-upsert-index into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 51s
Run unit tests / unit_tests (push) Successful in 1m48s
Build Nginx-based docker image / build-static-assets (push) Successful in 12m11s
Reviewed-on: #213
2025-01-14 22:11:43 +00:00
889485eaab Merge branch 'main' into fix-upsert-index
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m9s
Add copyright notice / copyright_notice (pull_request) Successful in 1m51s
Run unit tests / unit_tests (pull_request) Successful in 3m18s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 15m7s
2025-01-14 21:08:36 +00:00
105a0ad30c Merge pull request 'Upgrade to ruby 3.4' (#196) from ruby-3-4 into main
Some checks failed
Run unit tests / unit_tests (push) Failing after 17s
Check usage of free licenses / check-licenses (push) Successful in 39s
Build Nginx-based docker image / build-static-assets (push) Successful in 25m52s
Reviewed-on: #196
2025-01-14 20:39:46 +00:00
d03ef173e6 Merge branch 'main' into ruby-3-4
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 58s
Add copyright notice / copyright_notice (pull_request) Successful in 1m31s
Run unit tests / unit_tests (pull_request) Successful in 3m1s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 29m24s
2025-01-14 20:10:18 +00:00
b86d537cdc Install missing libyaml dependencies
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 48s
Add copyright notice / copyright_notice (pull_request) Successful in 1m22s
Run unit tests / unit_tests (pull_request) Successful in 2m10s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 30m20s
2025-01-14 20:59:30 +01:00
c1774a1c6c Upgrade Nokogiri to the latest version
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 41s
Add copyright notice / copyright_notice (pull_request) Successful in 1m15s
Run unit tests / unit_tests (pull_request) Successful in 2m9s
Build Nginx-based docker image / build-static-assets (pull_request) Failing after 10m38s
2025-01-14 20:16:02 +01:00
23d09df543 Fix version of GH action
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m0s
Add copyright notice / copyright_notice (pull_request) Successful in 1m13s
Run unit tests / unit_tests (pull_request) Successful in 1m54s
Build Nginx-based docker image / build-static-assets (pull_request) Failing after 11m42s
2025-01-14 20:11:59 +01:00
44dbb7e005 Run bundle lock --normalize-platforms 2025-01-14 20:11:34 +01:00
8a9d0bfdb8 Use the lateste version of ruby/setup-ruby
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 47s
Add copyright notice / copyright_notice (pull_request) Successful in 1m16s
Run unit tests / unit_tests (pull_request) Successful in 4m34s
Build Nginx-based docker image / build-static-assets (pull_request) Failing after 11m25s
2025-01-14 19:51:29 +01:00
c6c5a87d8b Fix duplicate row index on upsert statement
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 1m22s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m49s
Run unit tests / unit_tests (pull_request) Successful in 2m59s
Build Nginx-based docker image / build-static-assets (pull_request) Failing after 8m46s
2025-01-14 19:13:40 +01:00
acf3b7b82a Merge pull request 'Update copyright assignment to cover 2025 and include all contributors' (#212) from copyright-2025 into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 42s
Run unit tests / unit_tests (push) Successful in 2m3s
Build Nginx-based docker image / build-static-assets (push) Successful in 12m11s
Reviewed-on: #212
2025-01-13 21:04:10 +00:00
0ade367fb5 Merge pull request 'Define an endpoint to reset the discomfort between all groups' (#211) from full-affinity-reset into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m0s
Run unit tests / unit_tests (push) Successful in 1m35s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #211
2025-01-13 20:57:43 +00:00
91bbae1c63 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 59s
Add copyright notice / copyright_notice (pull_request) Successful in 2m21s
Run unit tests / unit_tests (pull_request) Successful in 3m2s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 25m17s
2025-01-13 20:38:47 +00:00
e20a366410 Update copyright assignment to cover 2025 and include all contributors
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 56s
Add copyright notice / copyright_notice (pull_request) Successful in 1m36s
Run unit tests / unit_tests (pull_request) Successful in 3m56s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 28m26s
2025-01-13 21:37:02 +01:00
a154e92b6c Define an endpoint to reset the discomfort between all groups
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m13s
Add copyright notice / copyright_notice (pull_request) Successful in 1m15s
Run unit tests / unit_tests (pull_request) Successful in 2m2s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 26m4s
2025-01-13 21:16:22 +01:00
65a265b900 Merge pull request 'Define an endpoint to return the default affinities of a group' (#209) from affinity-reset into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 36s
Run unit tests / unit_tests (push) Successful in 1m15s
Build Nginx-based docker image / build-static-assets (push) Successful in 12m1s
Reviewed-on: #209
2025-01-12 21:34:04 +00:00
f997657cd3 Define an endpoint to return the default affinities of a group
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m45s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m10s
Run unit tests / unit_tests (pull_request) Successful in 9m16s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 16m44s
2025-01-12 20:41:01 +01:00
37bbc1e4f1 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#206) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 42s
Run unit tests / unit_tests (push) Successful in 1m59s
Build Nginx-based docker image / build-static-assets (push) Failing after 1h53m59s
Reviewed-on: #206
2025-01-12 18:31:51 +00:00
Renovate Bot
088c609a44 Update dependency rubytree to v2.1.1
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m47s
Add copyright notice / copyright_notice (pull_request) Successful in 2m10s
Run unit tests / unit_tests (pull_request) Successful in 3m54s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 20m51s
Check usage of free licenses / check-licenses (push) Successful in 41s
Run unit tests / unit_tests (push) Successful in 1m31s
Build Nginx-based docker image / build-static-assets (push) Successful in 20m4s
2025-01-12 03:06:30 +00:00
Renovate Bot
fd40fb61b5 Update dependency factory_bot_rails to v6.4.4
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m44s
Add copyright notice / copyright_notice (pull_request) Successful in 2m17s
Run unit tests / unit_tests (pull_request) Successful in 3m32s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 14m23s
2025-01-12 03:06:19 +00:00
Renovate Bot
5db5281d9f Update dependency rubocop to v1.70.0
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 39m41s
Check usage of free licenses / check-licenses (push) Successful in 1m9s
Run unit tests / unit_tests (push) Successful in 2m38s
Build Nginx-based docker image / build-static-assets (push) Successful in 20m11s
Add copyright notice / copyright_notice (pull_request) Successful in 2m28s
Check usage of free licenses / check-licenses (pull_request) Successful in 2m44s
Run unit tests / unit_tests (pull_request) Successful in 5m52s
2025-01-11 03:10:32 +00:00
492c8e362a Upgrade to ruby 3.4.1
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 30s
Run unit tests / unit_tests (pull_request) Failing after 1m20s
Add copyright notice / copyright_notice (pull_request) Successful in 1m21s
Build Nginx-based docker image / build-static-assets (pull_request) Failing after 8m9s
2024-12-30 08:15:56 +00:00
c5c7ea6d54 WIP: Upgrade to ruby 3.4 2024-12-30 08:15:56 +00:00
e175a3dd34 Merge pull request 'Build image on PR instead of on push' (#204) from build-image-on-pr into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 28s
Run unit tests / unit_tests (push) Successful in 1m32s
Build Nginx-based docker image / build-static-assets (push) Successful in 14m58s
Reviewed-on: #204
2024-12-30 07:37:28 +00:00
a8f0302bb9 Build image on PR instead of on push
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m2s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m10s
Run unit tests / unit_tests (pull_request) Successful in 1m52s
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 11m15s
2024-12-29 16:23:52 +01:00
1e533702fd Merge pull request 'Configure build and cache for intermediate layers' (#203) from optimize-docker-build into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 36s
Run unit tests / unit_tests (push) Successful in 1m46s
Build Nginx-based docker image / build-static-assets (push) Successful in 1m50s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m0s
Add copyright notice / copyright_notice (pull_request) Successful in 1m34s
Run unit tests / unit_tests (pull_request) Successful in 2m5s
Reviewed-on: #203
2024-12-29 12:42:40 +00:00
9c3c766175 Configure build and cache for intermediate layers
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m5s
Check usage of free licenses / check-licenses (pull_request) Successful in 2m12s
Run unit tests / unit_tests (pull_request) Successful in 4m59s
Build Nginx-based docker image / build-static-assets (push) Successful in 17m31s
2024-12-29 13:25:02 +01:00
Renovate Bot
d2841a449e Update dependency solid_queue to v1.1.2
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 3m37s
Add copyright notice / copyright_notice (pull_request) Successful in 5m8s
Run unit tests / unit_tests (pull_request) Successful in 8m7s
Run unit tests / unit_tests (push) Failing after 1m18s
Check usage of free licenses / check-licenses (push) Successful in 1m22s
Build Nginx-based docker image / build-static-assets (push) Successful in 25m50s
2024-12-29 01:08:54 +00:00
802ec2761c Merge pull request 'rubocop-autocorrect' (#202) from rubocop-autocorrect into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 45s
Build Nginx-based docker image / build-static-assets (push) Failing after 1m30s
Run unit tests / unit_tests (push) Successful in 2m3s
Reviewed-on: #202
2024-12-28 18:26:28 +00:00
eded3946de Restore source in gemfile
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 2m45s
Add copyright notice / copyright_notice (pull_request) Successful in 2m57s
Run unit tests / unit_tests (pull_request) Successful in 3m59s
2024-12-28 18:39:25 +01:00
55e6cfcd36 Fix order of Ruby's magic string comment and Copyright assignment
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 1m53s
Run unit tests / unit_tests (pull_request) Failing after 3m11s
Add copyright notice / copyright_notice (pull_request) Successful in 3m16s
2024-12-28 18:37:47 +01:00
5f2778c97a Restore original name
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 1m24s
Run unit tests / unit_tests (pull_request) Failing after 2m11s
Add copyright notice / copyright_notice (pull_request) Successful in 2m12s
2024-12-28 18:35:42 +01:00
20cca87cdd Run rubocop checks as part of CI
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 40s
Run unit tests and Rubocop / unit_tests (pull_request) Failing after 1m28s
Add copyright notice / copyright_notice (pull_request) Failing after 1m39s
2024-12-28 18:35:04 +01:00
cb10d50d9e Rename .github -> .gitea 2024-12-28 18:32:46 +01:00
b16ef1e237 Run Rubocop autocorrect on the rest of the project 2024-12-28 18:30:54 +01:00
0c7c69ee5e Run Rubocop autocorrect on app/controllers 2024-12-28 18:28:38 +01:00
4fc95185fb Run Rubocop autocorrect on app/helpers 2024-12-28 18:21:16 +01:00
02fcd03b0e Run Rubocop autocorrect on app/services 2024-12-28 18:20:09 +01:00
fbc6926402 Run Rubocop autocorrect on app/queries 2024-12-28 18:16:36 +01:00
19dcb551fa Run Rubocop autocorrect on app/models 2024-12-28 18:13:57 +01:00
2fc8a6340b Run Rubocop autocorrect on spec/ 2024-12-28 18:07:40 +01:00
c15d0806a8 Add exception to some Rubocop offenses 2024-12-28 17:49:00 +01:00
27c7feebee Run Rubocop autocorrect on spec/queries 2024-12-28 17:37:49 +01:00
b85e2ef932 Run Rubocop autocorrect on spec/extensions 2024-12-28 17:37:49 +01:00
c7b9c83f37 Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 47s
Add copyright notice / copyright_notice (pull_request) Successful in 1m21s
Run unit tests / unit_tests (pull_request) Failing after 1m25s
2024-12-28 16:31:27 +00:00
82f17056be Run rubocop autocorrect on factory files
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 46s
Run unit tests / unit_tests (pull_request) Failing after 1m29s
Add copyright notice / copyright_notice (pull_request) Successful in 1m37s
2024-12-28 17:28:16 +01:00
4d69863974 Run Rubocop autocorrect on spec/models 2024-12-28 17:27:45 +01:00
5fcac34a52 Install Rubocop extensions 2024-12-28 17:08:57 +01:00
ad88fb0909 Merge pull request 'Define model and endpoints to store affinity between group pairs' (#200) from affinities-controller into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 40s
Run unit tests / unit_tests (push) Successful in 2m17s
Build Nginx-based docker image / build-static-assets (push) Failing after 2m43s
Reviewed-on: #200
2024-12-28 15:47:57 +00:00
9fe649f8b8 Update swagger documentation
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 37s
Add copyright notice / copyright_notice (pull_request) Successful in 55s
Run unit tests / unit_tests (pull_request) Successful in 1m42s
2024-12-28 16:43:58 +01:00
5784c89b79 Refine endpoint to receive an affinity value and transform it into a discomfort equivalent
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 49s
Add copyright notice / copyright_notice (pull_request) Successful in 1m14s
Run unit tests / unit_tests (pull_request) Successful in 3m25s
2024-12-28 14:19:06 +01:00
0780b17f4b Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m20s
Add copyright notice / copyright_notice (pull_request) Successful in 41s
Run unit tests / unit_tests (pull_request) Successful in 2m11s
2024-12-26 19:30:32 +00:00
6c6ae62e5a Define model and endpoints to store affinity between group pairs
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m7s
Add copyright notice / copyright_notice (pull_request) Successful in 1m18s
Run unit tests / unit_tests (pull_request) Successful in 2m16s
2024-12-26 20:29:06 +01:00
3b2f52da9b Update dependency pry to v0.15.2 (#195)
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 38s
Run unit tests / unit_tests (push) Successful in 1m45s
Build Nginx-based docker image / build-static-assets (push) Successful in 24m14s
2024-12-25 07:18:03 +00:00
Renovate Bot
9ac8b9b783 Update dependency pry to v0.15.2
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m33s
Add copyright notice / copyright_notice (pull_request) Successful in 2m19s
Run unit tests / unit_tests (pull_request) Successful in 3m42s
2024-12-25 01:05:11 +00:00
Renovate Bot
1318f34cec Update dependency csv to v3.3.2
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m27s
Add copyright notice / copyright_notice (pull_request) Successful in 3m2s
Run unit tests / unit_tests (pull_request) Successful in 4m57s
Check usage of free licenses / check-licenses (push) Successful in 1m2s
Run unit tests / unit_tests (push) Successful in 2m16s
Build Nginx-based docker image / build-static-assets (push) Successful in 21m38s
2024-12-24 01:04:34 +00:00
bd4e0a0135 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#189) from renovate/factory_bot_rails-6.x-lockfile into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 51s
Run unit tests / unit_tests (push) Successful in 3m46s
Build Nginx-based docker image / build-static-assets (push) Successful in 26m1s
Reviewed-on: #189
2024-12-23 18:21:20 +00:00
Renovate Bot
4f2c3ee1a6 Update dependency importmap-rails to v2.1.0
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 2m20s
Add copyright notice / copyright_notice (pull_request) Successful in 4m57s
Run unit tests / unit_tests (pull_request) Successful in 6m11s
Check usage of free licenses / check-licenses (push) Successful in 1m47s
Run unit tests / unit_tests (push) Successful in 3m44s
Build Nginx-based docker image / build-static-assets (push) Successful in 22m45s
2024-12-23 01:05:11 +00:00
Renovate Bot
a7e40f3d63 Update dependency factory_bot_rails to v6.4.4
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 2m23s
Add copyright notice / copyright_notice (pull_request) Successful in 3m35s
Run unit tests / unit_tests (pull_request) Successful in 4m52s
2024-12-23 01:05:04 +00:00
43f4143df3 Merge pull request 'Upgrade bundler version and include gem checksums' (#191) from bundler-update into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 48s
Run unit tests / unit_tests (push) Successful in 2m3s
Build Nginx-based docker image / build-static-assets (push) Successful in 21m31s
Reviewed-on: #191
2024-12-21 08:34:09 +00:00
d05900f2a6 Upgrade bundler version and include gem checksums
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 56s
Add copyright notice / copyright_notice (pull_request) Successful in 1m19s
Run unit tests / unit_tests (pull_request) Successful in 1m56s
2024-12-21 09:31:06 +01:00
Renovate Bot
663e26bda3 Update dependency debug to v1.10.0
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 4m38s
Check usage of free licenses / check-licenses (pull_request) Successful in 2m29s
Run unit tests / unit_tests (pull_request) Successful in 6m50s
Check usage of free licenses / check-licenses (push) Successful in 28s
Run unit tests / unit_tests (push) Successful in 1m28s
Build Nginx-based docker image / build-static-assets (push) Successful in 21m41s
2024-12-19 01:06:12 +00:00
Renovate Bot
511273280f Update dependency rails to v8.0.1
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 35s
Run unit tests / unit_tests (push) Successful in 1m56s
Build Nginx-based docker image / build-static-assets (push) Successful in 21m31s
2024-12-17 01:17:06 +00:00
Renovate Bot
f1ff39ceb1 Update dependency csv to v3.3.1
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 4m24s
Add copyright notice / copyright_notice (pull_request) Successful in 6m30s
Run unit tests / unit_tests (pull_request) Successful in 9m43s
Check usage of free licenses / check-licenses (push) Successful in 1m48s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Run unit tests / unit_tests (push) Has been cancelled
2024-12-17 01:05:02 +00:00
2c6a05ee06 Merge pull request 'Redo TablesArrangements#show to display arrangement ID and discomfort breakdown' (#188) from table-discomfort-breakdown into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m47s
Run unit tests / unit_tests (push) Successful in 3m49s
Build Nginx-based docker image / build-static-assets (push) Successful in 24m52s
Reviewed-on: #188
2024-12-16 22:18:23 +00:00
3bfe889747 Redo TablesArrangements#show to display arrangement ID and discomfort breakdown
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 32s
Add copyright notice / copyright_notice (pull_request) Successful in 1m4s
Run unit tests / unit_tests (pull_request) Successful in 2m33s
2024-12-16 18:52:34 +01:00
Renovate Bot
e44043f572 Update dependency rubocop to v1.69.2
Some checks failed
Run unit tests / unit_tests (push) Failing after 17s
Check usage of free licenses / check-licenses (push) Failing after 19s
Build Nginx-based docker image / build-static-assets (push) Failing after 29m12s
2024-12-16 08:03:14 +00:00
28386df1d8 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#182) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 36s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Run unit tests / unit_tests (push) Has been cancelled
Reviewed-on: #182
2024-12-16 08:01:57 +00:00
Renovate Bot
998706da97 Update dependency factory_bot_rails to v6.4.4
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 2m14s
Check usage of free licenses / check-licenses (pull_request) Successful in 4m55s
Run unit tests / unit_tests (pull_request) Successful in 6m36s
2024-12-15 01:17:10 +00:00
bab5cd3161 Merge pull request 'Define an endpoint with a global summary of expenses and attendance' (#184) from dashboard into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 54s
Run unit tests / unit_tests (push) Successful in 3m22s
Build Nginx-based docker image / build-static-assets (push) Successful in 22m47s
Reviewed-on: #184
2024-12-11 22:44:35 +00:00
4e61ee2f22 Include real data in the guests summary of the dashboard
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m19s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m30s
Run unit tests / unit_tests (pull_request) Successful in 2m5s
2024-12-11 23:42:25 +01:00
f68caca5a4 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m15s
Add copyright notice / copyright_notice (pull_request) Successful in 2m8s
Run unit tests / unit_tests (pull_request) Successful in 3m8s
2024-12-11 08:03:02 +00:00
da8f3c7618 Define an endpoint with a global summary of expenses and attendance
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m31s
Add copyright notice / copyright_notice (pull_request) Successful in 1m34s
Run unit tests / unit_tests (pull_request) Successful in 3m55s
2024-12-11 09:01:35 +01:00
Renovate Bot
d18adb2806 Update dependency rails to v8.0.0.1
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 9m35s
Add copyright notice / copyright_notice (pull_request) Successful in 27m12s
Run unit tests / unit_tests (pull_request) Successful in 30m49s
Check usage of free licenses / check-licenses (push) Successful in 3m37s
Run unit tests / unit_tests (push) Successful in 10m17s
Build Nginx-based docker image / build-static-assets (push) Successful in 51m29s
2024-12-11 01:08:44 +00:00
70bbf79a5a Merge pull request 'Group attendance properties into a json key' (#181) from groups-attendance-format into main
Some checks failed
Run unit tests / unit_tests (push) Failing after 1m47s
Check usage of free licenses / check-licenses (push) Successful in 1m9s
Build Nginx-based docker image / build-static-assets (push) Successful in 25m7s
Reviewed-on: #181
2024-12-10 07:46:20 +00:00
98c1c0d18c Group attendance properties into a json key
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 33s
Add copyright notice / copyright_notice (pull_request) Successful in 1m20s
Run unit tests / unit_tests (pull_request) Successful in 2m15s
2024-12-10 08:41:10 +01:00
71eecf94a6 Merge pull request 'Define and document CRUD endpoints for expenses' (#180) from expenses-crud into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m15s
Run unit tests / unit_tests (push) Successful in 2m39s
Build Nginx-based docker image / build-static-assets (push) Successful in 22m1s
Reviewed-on: #180
2024-12-09 18:31:59 +00:00
be40c97f2f Define and document CRUD endpoints for expenses
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 56s
Add copyright notice / copyright_notice (pull_request) Successful in 1m33s
Run unit tests / unit_tests (pull_request) Successful in 2m55s
2024-12-09 19:28:32 +01:00
ac09d67f4f Merge pull request 'Configure librecaptcha configuration for the development environment' (#179) from disable-librecaptcha-demo into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m4s
Run unit tests / unit_tests (push) Successful in 2m32s
Build Nginx-based docker image / build-static-assets (push) Successful in 23m0s
Reviewed-on: #179
2024-12-09 17:29:04 +00:00
e8543d8fb4 Configure librecaptcha configuration for the development environment
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m5s
Add copyright notice / copyright_notice (pull_request) Successful in 1m47s
Run unit tests / unit_tests (pull_request) Successful in 2m33s
2024-12-09 18:25:47 +01:00
ead48c2588 Merge pull request 'Avoid stack too deep erros due to excessive recursion' (#178) from stack-error-vns into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 25s
Run unit tests / unit_tests (push) Successful in 1m21s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #178
2024-12-09 17:16:40 +00:00
dfb50ed2dc Avoid stack too deep erros due to excessive recursion
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 56s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m32s
Run unit tests / unit_tests (pull_request) Successful in 1m52s
2024-12-09 18:14:21 +01:00
ff0e0b6931 Merge pull request 'Document tables arrangements controller' (#175) from tables-arrangements-api into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m23s
Run unit tests / unit_tests (push) Successful in 3m17s
Build Nginx-based docker image / build-static-assets (push) Successful in 24m40s
Reviewed-on: #175
2024-12-08 13:06:00 +00:00
5cbc81c498 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m14s
Add copyright notice / copyright_notice (pull_request) Successful in 2m5s
Run unit tests / unit_tests (pull_request) Successful in 3m46s
2024-12-08 13:02:08 +00:00
9d90ade40c Document tables arrangements controller
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 34s
Add copyright notice / copyright_notice (pull_request) Successful in 1m9s
Run unit tests / unit_tests (pull_request) Successful in 3m51s
2024-12-08 14:00:53 +01:00
b38e845b90 Merge pull request 'Allow the creation of guests associated to no group' (#174) from allow-creation-groupless-guests into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m1s
Run unit tests / unit_tests (push) Successful in 2m57s
Build Nginx-based docker image / build-static-assets (push) Successful in 23m24s
Reviewed-on: #174
2024-12-08 12:13:03 +00:00
83e36df14e Allow the creation of guests associated to no group
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 45s
Add copyright notice / copyright_notice (pull_request) Successful in 1m31s
Run unit tests / unit_tests (pull_request) Successful in 2m0s
2024-12-08 13:10:49 +01:00
cbcb7b70e3 Merge pull request 'Define CUD endpoints for the Groups model' (#173) from groups-endpoints into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 56s
Run unit tests / unit_tests (push) Successful in 2m28s
Build Nginx-based docker image / build-static-assets (push) Successful in 22m36s
Reviewed-on: #173
2024-12-08 10:52:59 +00:00
9f0773647f Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 2m37s
Add copyright notice / copyright_notice (pull_request) Successful in 3m11s
Run unit tests / unit_tests (pull_request) Successful in 4m23s
2024-12-08 10:41:24 +00:00
20127398c6 Fix summary query to leverage ActsAsTenant scopes
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m10s
Add copyright notice / copyright_notice (pull_request) Successful in 1m35s
Run unit tests / unit_tests (pull_request) Successful in 5m11s
2024-12-08 11:39:50 +01:00
9e097361d0 Define endpoints to create, update, and delete groups 2024-12-08 11:30:38 +01:00
dae2e3bace Merge pull request 'Define a dummy endpoint to return a valid CSRF token' (#172) from token-endpoint into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 57s
Run unit tests / unit_tests (push) Successful in 2m42s
Build Nginx-based docker image / build-static-assets (push) Successful in 22m1s
Reviewed-on: #172
2024-12-08 08:39:39 +00:00
98877166dd Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m34s
Add copyright notice / copyright_notice (pull_request) Successful in 3m1s
Run unit tests / unit_tests (pull_request) Successful in 4m39s
2024-12-08 08:34:55 +00:00
438de103ec Define a dummy endpoint to return a valid CSRF token
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m18s
Add copyright notice / copyright_notice (pull_request) Successful in 2m29s
Run unit tests / unit_tests (pull_request) Successful in 5m33s
2024-12-08 09:32:34 +01:00
9fab79044d Merge pull request 'Configure allowed hosts' (#171) from configure-host into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m14s
Run unit tests / unit_tests (push) Successful in 2m57s
Build Nginx-based docker image / build-static-assets (push) Successful in 23m4s
Reviewed-on: #171
2024-12-08 07:56:02 +00:00
84684b90d7 Configure allowed hosts
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 54s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m33s
Run unit tests / unit_tests (pull_request) Successful in 1m57s
2024-12-08 08:53:51 +01:00
64f34a71dc Merge pull request 'Temporarily allow insecure cookies' (#169) from temp-allow-insecure-cookie into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m9s
Run unit tests / unit_tests (push) Successful in 3m9s
Build Nginx-based docker image / build-static-assets (push) Failing after 10m47s
Reviewed-on: #169
2024-12-07 23:49:29 +00:00
1fb6c483ed Temporarily allow insecure cookies
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 31s
Add copyright notice / copyright_notice (pull_request) Successful in 1m16s
Run unit tests / unit_tests (pull_request) Successful in 2m55s
2024-12-08 00:48:42 +01:00
278faa7319 Merge pull request 'Refine registration endpoint' (#165) from remove-wedding-date into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 47s
Run unit tests / unit_tests (push) Successful in 2m0s
Build Nginx-based docker image / build-static-assets (push) Successful in 22m55s
Add copyright notice / copyright_notice (pull_request) Successful in 20m54s
Check usage of free licenses / check-licenses (pull_request) Successful in 16m0s
Run unit tests / unit_tests (pull_request) Successful in 27m57s
renovate/artifacts Artifact file update failure
Reviewed-on: #165
2024-12-07 22:45:15 +00:00
93d907cdc8 Remove leftovers of the date attribute
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 47s
Add copyright notice / copyright_notice (pull_request) Successful in 1m13s
Run unit tests / unit_tests (pull_request) Successful in 1m50s
2024-12-07 23:43:21 +01:00
fdef94be9a Revert "Fix tenant-related error retrieving captcha"
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 1m23s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m50s
Run unit tests / unit_tests (pull_request) Failing after 2m26s
This reverts commit 3996ffc85c1fe3a912db14cbb317158fe9bcd8e2.
2024-12-07 23:18:23 +01:00
c62bb137ce Merge branch 'main' into remove-wedding-date
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 38s
Add copyright notice / copyright_notice (pull_request) Successful in 1m3s
Run unit tests / unit_tests (pull_request) Failing after 2m51s
2024-12-07 22:17:30 +00:00
054561faa6 Merge pull request 'Fix tenant-related error retrieving captcha' (#168) from fix-tenant-captcha into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 55s
Run unit tests / unit_tests (push) Successful in 3m2s
Build Nginx-based docker image / build-static-assets (push) Successful in 25m30s
Reviewed-on: #168
2024-12-07 22:03:18 +00:00
3996ffc85c Fix tenant-related error retrieving captcha
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 53s
Add copyright notice / copyright_notice (pull_request) Successful in 1m37s
Run unit tests / unit_tests (pull_request) Successful in 3m0s
2024-12-07 22:53:30 +01:00
82c543b167 Merge pull request 'Fix build of Docker image' (#167) from fix-build into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m4s
Run unit tests / unit_tests (push) Successful in 2m24s
Build Nginx-based docker image / build-static-assets (push) Successful in 22m41s
Reviewed-on: #167
2024-12-07 19:29:38 +00:00
dfe914a0b8 Fix build of Docker image
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 58s
Add copyright notice / copyright_notice (pull_request) Successful in 1m17s
Run unit tests / unit_tests (pull_request) Successful in 1m53s
2024-12-07 20:27:28 +01:00
0e234b34a0 Merge pull request 'Fix production DB host' (#166) from fix-prod-db-host into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 45s
Run unit tests / unit_tests (push) Successful in 1m50s
Build Nginx-based docker image / build-static-assets (push) Failing after 11m36s
Reviewed-on: #166
2024-12-07 19:02:30 +00:00
2ab966faf8 Fix production DB host
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m1s
Add copyright notice / copyright_notice (pull_request) Successful in 1m23s
Run unit tests / unit_tests (pull_request) Successful in 1m50s
2024-12-07 19:59:59 +01:00
9b612ce01d Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m37s
Add copyright notice / copyright_notice (pull_request) Successful in 2m38s
Run unit tests / unit_tests (pull_request) Failing after 4m38s
2024-12-07 18:09:21 +00:00
a3f14f4fec Include slug in root_url
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 51s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m39s
Run unit tests / unit_tests (pull_request) Failing after 4m28s
2024-12-07 19:07:06 +01:00
022b58bb38 Fix issues with tenant during registration 2024-12-07 12:43:08 +01:00
8527b20075 Remove wedding date attribute 2024-12-07 12:39:43 +01:00
Renovate Bot
2c4befbcf6 Update dependency solid_queue to v1.1.0
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 5m15s
Check usage of free licenses / check-licenses (pull_request) Successful in 4m58s
Run unit tests / unit_tests (pull_request) Successful in 17m59s
Check usage of free licenses / check-licenses (push) Successful in 9m24s
Run unit tests / unit_tests (push) Successful in 6m19s
Build Nginx-based docker image / build-static-assets (push) Failing after 57m5s
2024-12-07 01:06:02 +00:00
Renovate Bot
70e9f74207 Update dependency rubocop to v1.69.1
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 1m44s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m31s
Run unit tests / unit_tests (pull_request) Successful in 4m37s
Check usage of free licenses / check-licenses (push) Successful in 8m26s
Run unit tests / unit_tests (push) Successful in 13m17s
Build Nginx-based docker image / build-static-assets (push) Failing after 31m39s
2024-12-04 01:06:43 +00:00
85eb85e841 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#160) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 51s
Run unit tests / unit_tests (push) Successful in 5m0s
Build Nginx-based docker image / build-static-assets (push) Failing after 16m26s
Reviewed-on: #160
2024-12-03 07:32:33 +00:00
Renovate Bot
6aba5e234f Update dependency factory_bot_rails to v6.4.4
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m22s
Add copyright notice / copyright_notice (pull_request) Successful in 2m48s
Run unit tests / unit_tests (pull_request) Successful in 6m35s
2024-12-03 01:06:02 +00:00
e0a34df7b7 Merge pull request 'fix-tenant-scope' (#159) from fix-tenant-scope into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m2s
Run unit tests / unit_tests (push) Successful in 2m57s
Build Nginx-based docker image / build-static-assets (push) Failing after 15m23s
Reviewed-on: #159
2024-12-02 19:35:36 +00:00
a96be2a79e Do not require a tenant scope for running tests
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 47s
Add copyright notice / copyright_notice (pull_request) Successful in 1m35s
Run unit tests / unit_tests (pull_request) Successful in 2m24s
2024-12-02 20:33:05 +01:00
3ea1d1e7ec Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m39s
Add copyright notice / copyright_notice (pull_request) Successful in 1m56s
Run unit tests / unit_tests (pull_request) Failing after 2m44s
2024-12-02 08:05:46 +00:00
3fca449461 Limit visibility per tenant
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 57s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m29s
Run unit tests / unit_tests (pull_request) Failing after 3m28s
2024-12-02 09:04:48 +01:00
ef573c5f73 Require a tenant to be configured for all queries 2024-12-02 08:57:10 +01:00
822b2b0fad Merge pull request 'Require a LibreCaptcha challenge for the signup action' (#157) from libre-captcha into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 48s
Run unit tests / unit_tests (push) Successful in 1m42s
Build Nginx-based docker image / build-static-assets (push) Failing after 17m20s
Reviewed-on: #157
2024-12-01 19:03:56 +00:00
71046b9a1c Avoid exposing internal port and unnecessary endpoints
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 40s
Add copyright notice / copyright_notice (pull_request) Successful in 1m8s
Run unit tests / unit_tests (pull_request) Successful in 1m40s
2024-12-01 20:01:00 +01:00
5f01741943 Validate the Captcha challenge for account signup
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 51s
Add copyright notice / copyright_notice (pull_request) Successful in 1m0s
Run unit tests / unit_tests (pull_request) Successful in 1m40s
2024-12-01 19:57:01 +01:00
be9ca9e6b0 Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m55s
Add copyright notice / copyright_notice (pull_request) Successful in 1m58s
Run unit tests / unit_tests (pull_request) Failing after 2m46s
2024-12-01 18:43:28 +00:00
b237239a1f Define an endpoint to retrieve a LibreCaptcha captcha
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Failing after 48s
Add copyright notice / copyright_notice (pull_request) Successful in 57s
Run unit tests / unit_tests (pull_request) Failing after 3m28s
2024-12-01 19:42:25 +01:00
241668b84d Merge pull request 'Indicate in the README that the application is multi-tenant' (#156) from wedding-creation into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m8s
Run unit tests / unit_tests (push) Successful in 3m12s
Build Nginx-based docker image / build-static-assets (push) Failing after 17m14s
Reviewed-on: #156
2024-12-01 17:26:24 +00:00
f708191ede Indicate in the README that the application is multi-tenant
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 56s
Add copyright notice / copyright_notice (pull_request) Successful in 1m51s
Run unit tests / unit_tests (pull_request) Successful in 4m21s
2024-12-01 18:21:33 +01:00
5f66373d50 Merge pull request 'Configure Devise to send emails using the tenant's slug for the URL' (#155) from wedding-creation into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 48s
Run unit tests / unit_tests (push) Successful in 2m11s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #155
2024-12-01 17:19:14 +00:00
9d08ef6f18 Update wedding slug rules to accept numbers and other chars
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 38s
Add copyright notice / copyright_notice (pull_request) Successful in 1m7s
Run unit tests / unit_tests (pull_request) Successful in 1m34s
2024-12-01 18:17:37 +01:00
f588b97e18 Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 56s
Add copyright notice / copyright_notice (pull_request) Successful in 1m21s
Run unit tests / unit_tests (pull_request) Failing after 2m9s
2024-12-01 13:05:22 +00:00
7a80f1f5ef Make wedding object required for the swagger specs
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 41s
Add copyright notice / copyright_notice (pull_request) Successful in 59s
Run unit tests / unit_tests (pull_request) Failing after 2m40s
2024-12-01 14:04:03 +01:00
279093ad98 Configure registration endpoint to create a wedding as well 2024-12-01 14:03:23 +01:00
e6cf0da814 Merge pull request 'Make the application multi-tenant based on a wedding model' (#153) from wedding-model into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 50s
Run unit tests / unit_tests (push) Successful in 1m30s
Build Nginx-based docker image / build-static-assets (push) Failing after 12m10s
Reviewed-on: #153
2024-12-01 10:11:24 +00:00
4f1aa9dd2d Merge branch 'wedding-model' of https://gitea.bustikiller.com/bustikiller/wedding-planner into wedding-model
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m5s
Add copyright notice / copyright_notice (pull_request) Successful in 1m35s
Run unit tests / unit_tests (pull_request) Successful in 2m7s
2024-12-01 10:41:45 +01:00
4d9563cab7 Adapt background job to use acts as tenant 2024-12-01 10:41:05 +01:00
70b44e1b96 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m32s
Add copyright notice / copyright_notice (pull_request) Successful in 2m40s
Run unit tests / unit_tests (pull_request) Successful in 3m45s
2024-12-01 09:00:01 +00:00
8429b3952b Adapt factories to use a wedding object
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m11s
Add copyright notice / copyright_notice (pull_request) Successful in 1m38s
Run unit tests / unit_tests (pull_request) Successful in 4m35s
2024-12-01 09:58:39 +01:00
e4dad698ea Merge branch 'wedding-model' of https://gitea.bustikiller.com/bustikiller/wedding-planner into wedding-model
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 33s
Add copyright notice / copyright_notice (pull_request) Successful in 47s
Run unit tests / unit_tests (pull_request) Failing after 1m14s
2024-11-30 21:11:43 +01:00
be3497ad64 Configure current tenant in a before_action of the ApplicationController 2024-11-30 21:11:25 +01:00
6d61e8452a Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 57s
Add copyright notice / copyright_notice (pull_request) Successful in 1m28s
Run unit tests / unit_tests (pull_request) Failing after 2m3s
2024-11-30 20:07:45 +00:00
63bb32f2a7 Include users in the list of models affected by tenant
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m3s
Add copyright notice / copyright_notice (pull_request) Successful in 1m30s
Run unit tests / unit_tests (pull_request) Failing after 3m6s
2024-11-30 21:06:21 +01:00
682b5cb5fd Merge remote-tracking branch 'origin/main' into wedding-model
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 41s
Add copyright notice / copyright_notice (pull_request) Successful in 52s
Run unit tests / unit_tests (pull_request) Failing after 1m20s
2024-11-30 20:56:33 +01:00
cb90a93ef3 Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m7s
Add copyright notice / copyright_notice (pull_request) Successful in 1m59s
Run unit tests / unit_tests (pull_request) Failing after 3m6s
2024-11-30 19:07:36 +00:00
5b3c1fdfac Adapt seeds file to use ActsAsTenant
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 40s
Add copyright notice / copyright_notice (pull_request) Successful in 1m9s
Run unit tests / unit_tests (pull_request) Failing after 3m30s
2024-11-30 20:06:43 +01:00
8bff98b165 Create DB associations 2024-11-30 20:06:43 +01:00
988e158d99 Install acts_as_tenant gem and update documentation 2024-11-30 20:06:43 +01:00
cf6ca5aa17 Create a seed user for the develoment environment 2024-11-30 20:06:43 +01:00
9e222f59be Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m47s
Add copyright notice / copyright_notice (pull_request) Successful in 2m49s
Run unit tests / unit_tests (pull_request) Successful in 3m26s
2024-11-30 18:31:48 +00:00
24c39f331a Define a simple wedding model
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m6s
Add copyright notice / copyright_notice (pull_request) Successful in 1m53s
Run unit tests / unit_tests (pull_request) Successful in 4m17s
2024-11-30 19:30:04 +01:00
bc4e9cc63e Merge pull request 'Create a seed user for the develoment environment' (#152) from seed-user into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 2m8s
Run unit tests / unit_tests (push) Successful in 5m20s
Build Nginx-based docker image / build-static-assets (push) Failing after 15m46s
Reviewed-on: #152
2024-11-30 18:28:25 +00:00
5700532ac7 Create a seed user for the develoment environment
All checks were successful
Run unit tests / unit_tests (pull_request) Successful in 1m22s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m26s
Add copyright notice / copyright_notice (pull_request) Successful in 2m33s
2024-11-30 19:19:22 +01:00
7df4ab1c56 Merge pull request 'Remove noisy log messages' (#151) from fix/noisy-output into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m9s
Run unit tests / unit_tests (push) Successful in 2m37s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #151
2024-11-30 18:18:27 +00:00
06f8039f40 Merge pull request 'Configure letter opener to read emails via web UI' (#150) from letter-opener into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 38s
Run unit tests / unit_tests (push) Has been cancelled
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #150
2024-11-30 18:17:46 +00:00
7803df7494 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m33s
Add copyright notice / copyright_notice (pull_request) Successful in 2m13s
Run unit tests / unit_tests (pull_request) Successful in 2m42s
2024-11-30 18:14:58 +00:00
2889dc5c98 Update README
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m56s
Add copyright notice / copyright_notice (pull_request) Successful in 3m11s
Run unit tests / unit_tests (pull_request) Successful in 5m5s
2024-11-30 19:12:13 +01:00
918bc0c1a8 Remove noisy log messages
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m45s
Add copyright notice / copyright_notice (pull_request) Successful in 3m20s
Run unit tests / unit_tests (pull_request) Successful in 5m42s
2024-11-30 19:10:16 +01:00
b892d4006f Configure letter opener to read emails via web UI
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m25s
Add copyright notice / copyright_notice (pull_request) Failing after 2m19s
Run unit tests / unit_tests (pull_request) Successful in 5m32s
2024-11-30 19:09:36 +01:00
271ad270a4 Merge pull request 'Install and configure Devise for user authentication' (#149) from devise into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 43s
Run unit tests / unit_tests (push) Successful in 1m49s
Build Nginx-based docker image / build-static-assets (push) Failing after 11m5s
Reviewed-on: #149
2024-11-30 17:50:42 +00:00
598cb553c9 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m6s
Add copyright notice / copyright_notice (pull_request) Successful in 2m5s
Run unit tests / unit_tests (pull_request) Successful in 3m9s
2024-11-30 17:47:30 +00:00
b0124fbd26 Configure email confirmation flow
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 45s
Add copyright notice / copyright_notice (pull_request) Successful in 1m7s
Run unit tests / unit_tests (pull_request) Successful in 3m38s
2024-11-30 18:46:31 +01:00
5458c6dd8c Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m57s
Add copyright notice / copyright_notice (pull_request) Successful in 3m5s
Run unit tests / unit_tests (pull_request) Successful in 3m48s
2024-11-30 13:27:21 +00:00
f5038f5b96 Code cleanup
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m43s
Add copyright notice / copyright_notice (pull_request) Successful in 2m37s
Run unit tests / unit_tests (pull_request) Successful in 5m40s
2024-11-30 14:25:01 +01:00
b8e6df732c Generate user model, document some endpoints (missing email verification)
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 41s
Add copyright notice / copyright_notice (pull_request) Failing after 1m30s
Run unit tests / unit_tests (pull_request) Successful in 4m41s
2024-11-30 14:24:02 +01:00
ed7207d707 Require user authentication by default 2024-11-30 11:04:45 +01:00
13bdaf0bd2 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m47s
Add copyright notice / copyright_notice (pull_request) Successful in 1m51s
Run unit tests / unit_tests (pull_request) Successful in 2m29s
2024-11-30 10:03:46 +00:00
63c7bc8772 Refine columns in the users table
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m20s
Add copyright notice / copyright_notice (pull_request) Successful in 2m15s
Run unit tests / unit_tests (pull_request) Successful in 3m52s
2024-11-30 11:01:44 +01:00
306fa41187 Merge pull request 'Revert user authentication' (#148) from revert-authentication into main
Some checks failed
Check usage of free licenses / check-licenses (push) Failing after 28s
Run unit tests / unit_tests (push) Failing after 34s
Build Nginx-based docker image / build-static-assets (push) Failing after 16m17s
Reviewed-on: #148
2024-11-30 09:59:42 +00:00
d9ab2f5091 Install devise gem
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m22s
Add copyright notice / copyright_notice (pull_request) Failing after 2m35s
Run unit tests / unit_tests (pull_request) Successful in 3m54s
2024-11-30 10:59:28 +01:00
3d424c304e Revert user authentication
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m9s
Add copyright notice / copyright_notice (pull_request) Successful in 1m17s
Run unit tests / unit_tests (pull_request) Successful in 2m43s
This reverts commit b215e8a3b40be089e7359cfd424f807c2d54b1c2.
2024-11-30 10:45:17 +01:00
Renovate Bot
50c0a80dec Update dependency rubocop to v1.69.0
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 5m59s
Run unit tests / unit_tests (pull_request) Successful in 8m57s
Add copyright notice / copyright_notice (pull_request) Successful in 56s
Check usage of free licenses / check-licenses (push) Successful in 1m3s
Run unit tests / unit_tests (push) Successful in 2m15s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
2024-11-30 01:07:31 +00:00
993e4e5e57 Merge pull request 'Install Rails' authentication generator' (#142) from authentication into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m21s
Run unit tests / unit_tests (push) Successful in 2m50s
Build Nginx-based docker image / build-static-assets (push) Failing after 12m46s
Reviewed-on: #142
2024-11-29 19:44:50 +00:00
1a760af3e8 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#145) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 2m22s
Run unit tests / unit_tests (push) Successful in 3m57s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #145
2024-11-29 19:38:56 +00:00
Renovate Bot
d8ee5972aa Update dependency factory_bot_rails to v6.4.4
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 3m48s
Add copyright notice / copyright_notice (pull_request) Successful in 4m44s
Run unit tests / unit_tests (pull_request) Successful in 7m45s
2024-11-29 01:05:48 +00:00
515d841c11 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#143) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Run unit tests / unit_tests (push) Successful in 9m33s
Check usage of free licenses / check-licenses (push) Successful in 42s
Build Nginx-based docker image / build-static-assets (push) Failing after 20m28s
Reviewed-on: #143
2024-11-26 06:26:17 +00:00
Renovate Bot
d2eaa21df2 Update dependency factory_bot_rails to v6.4.4
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 2m53s
Check usage of free licenses / check-licenses (pull_request) Successful in 3m19s
Run unit tests / unit_tests (pull_request) Successful in 10m45s
2024-11-25 01:08:54 +00:00
Renovate Bot
3bde27ddce Update dependency puma to v6.5.0
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 2m43s
Add copyright notice / copyright_notice (pull_request) Successful in 7m55s
Run unit tests / unit_tests (pull_request) Successful in 13m21s
Check usage of free licenses / check-licenses (push) Successful in 8m7s
Build Nginx-based docker image / build-static-assets (push) Failing after 1h32m32s
Run unit tests / unit_tests (push) Failing after 3h10m32s
2024-11-24 01:05:23 +00:00
b215e8a3b4 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m29s
Add copyright notice / copyright_notice (pull_request) Successful in 2m14s
Run unit tests / unit_tests (pull_request) Successful in 3m12s
2024-11-19 07:57:42 +00:00
0e0da9c765 Refine and document controllers
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m2s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m34s
Run unit tests / unit_tests (pull_request) Successful in 4m2s
2024-11-19 08:56:51 +01:00
8b33616436 Remove unnecessary views
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 50s
Add copyright notice / copyright_notice (pull_request) Successful in 1m2s
Run unit tests / unit_tests (pull_request) Successful in 1m32s
2024-11-19 00:34:11 +01:00
3e38630eb4 Refine controllers 2024-11-19 00:33:53 +01:00
134bf27955 Add copyright notice
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m13s
Check usage of free licenses / check-licenses (pull_request) Successful in 2m4s
Run unit tests / unit_tests (pull_request) Successful in 2m34s
2024-11-18 23:27:50 +00:00
aa0986986f Install Rails' authentication generator
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m1s
Check usage of free licenses / check-licenses (pull_request) Successful in 2m56s
Run unit tests / unit_tests (pull_request) Successful in 3m27s
2024-11-19 00:26:44 +01:00
300524956b Merge pull request 'Refine guest controller' (#140) from refine-guest-controller into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m57s
Run unit tests / unit_tests (push) Successful in 3m0s
Build Nginx-based docker image / build-static-assets (push) Failing after 12m9s
Reviewed-on: #140
2024-11-17 19:05:59 +00:00
80c1c9b99d Refine guest controller
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m26s
Add copyright notice / copyright_notice (pull_request) Successful in 2m19s
Run unit tests / unit_tests (pull_request) Successful in 3m39s
2024-11-17 20:02:08 +01:00
1f81dabff4 Merge pull request 'Define an endpoint to remove guests' (#139) from delete-guest-endpoint into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m4s
Run unit tests / unit_tests (push) Successful in 3m42s
Build Nginx-based docker image / build-static-assets (push) Failing after 17m24s
Reviewed-on: #139
2024-11-17 17:28:13 +00:00
f1d1ea825c Recalculate simulations after removing a guest
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 56s
Add copyright notice / copyright_notice (pull_request) Successful in 1m20s
Run unit tests / unit_tests (pull_request) Successful in 2m4s
2024-11-17 18:25:38 +01:00
7542c6361c Define an endpoint to destroy guests 2024-11-17 18:24:43 +01:00
7bdfb4f789 Merge pull request 'Remove unused bulk update endpoint' (#138) from remove-guest-bulk-update into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 52s
Run unit tests / unit_tests (push) Successful in 2m7s
Build Nginx-based docker image / build-static-assets (push) Failing after 11m29s
Reviewed-on: #138
2024-11-17 16:11:53 +00:00
31d41ea2ea Remove unused bulk update endpoint
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m39s
Add copyright notice / copyright_notice (pull_request) Successful in 2m48s
Run unit tests / unit_tests (pull_request) Successful in 3m46s
2024-11-17 17:07:29 +01:00
29c9764450 Merge pull request 'Define an endpoint to create new guests' (#137) from api-create-guest into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m1s
Run unit tests / unit_tests (push) Successful in 2m54s
Build Nginx-based docker image / build-static-assets (push) Failing after 15m35s
Reviewed-on: #137
2024-11-17 10:51:01 +00:00
1b2c0f0d0a Define an endpoint to create new guests
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m36s
Add copyright notice / copyright_notice (pull_request) Successful in 2m17s
Run unit tests / unit_tests (pull_request) Successful in 3m32s
2024-11-17 11:47:12 +01:00
08f7c1e584 Merge pull request 'Merge docker compose up and build into a single command' (#136) from readme-change into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m22s
Run unit tests / unit_tests (push) Successful in 3m43s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #136
2024-11-17 10:32:14 +00:00
b3cfde445c Merge docker compose up and build into a single command
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m54s
Check usage of free licenses / check-licenses (pull_request) Successful in 2m41s
Run unit tests / unit_tests (pull_request) Successful in 4m7s
2024-11-17 11:27:38 +01:00
Renovate Bot
b008777c20 Update dependency solid_queue to v1.0.2
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 2m57s
Run unit tests / unit_tests (pull_request) Successful in 4m39s
Add copyright notice / copyright_notice (pull_request) Successful in 26s
Check usage of free licenses / check-licenses (push) Successful in 42s
Run unit tests / unit_tests (push) Successful in 1m42s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
2024-11-17 01:08:15 +00:00
b0ee052b64 Merge pull request 'Remove / server from Swagger configuration' (#133) from remove-localhost-swagger-server into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m2s
Run unit tests / unit_tests (push) Successful in 3m0s
Build Nginx-based docker image / build-static-assets (push) Failing after 13m43s
Reviewed-on: #133
2024-11-16 11:32:32 +00:00
5f47b923d5 Remove / server from Swagger configuration
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 51s
Add copyright notice / copyright_notice (pull_request) Successful in 1m41s
Run unit tests / unit_tests (pull_request) Successful in 2m14s
2024-11-16 12:30:05 +01:00
17c796c375 Merge pull request 'Document expenses endpoint and add some specs' (#132) from document-expenses-controller into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 2m28s
Run unit tests / unit_tests (push) Successful in 6m46s
Build Nginx-based docker image / build-static-assets (push) Failing after 19m30s
Reviewed-on: #132
2024-11-16 09:32:36 +00:00
73e02a9d95 Add copyright notice
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m58s
Add copyright notice / copyright_notice (pull_request) Successful in 6m38s
Run unit tests / unit_tests (pull_request) Successful in 8m40s
2024-11-16 09:23:51 +00:00
86b9d0b56c Document expenses endpoint and add some specs
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m5s
Add copyright notice / copyright_notice (pull_request) Successful in 1m49s
Run unit tests / unit_tests (pull_request) Successful in 8m24s
2024-11-16 10:22:10 +01:00
8e799bfd2b Merge pull request 'Remove leftover code from Swagger-CSRF experiment' (#131) from remove-swagger-csrf into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m19s
Run unit tests / unit_tests (push) Successful in 2m58s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #131
2024-11-16 09:12:35 +00:00
6e5bbb7b1b Remove leftover code from Swagger-CSRF experiment
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 2m25s
Run unit tests / unit_tests (pull_request) Successful in 4m54s
Add copyright notice / copyright_notice (pull_request) Successful in 1m16s
2024-11-16 09:59:19 +01:00
d73f59b05c Merge pull request 'Update format of guests API and document endpoints' (#130) from guests-api-changes into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 3m20s
Run unit tests / unit_tests (push) Successful in 8m10s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #130
2024-11-16 08:56:38 +00:00
5ba1591b02 Merge branch 'main' into guests-api-changes
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 2m32s
Add copyright notice / copyright_notice (pull_request) Successful in 3m51s
Run unit tests / unit_tests (pull_request) Successful in 5m13s
2024-11-16 08:51:21 +00:00
b7714051e4 Merge pull request 'Update dependency pry to v0.15.0' (#129) from renovate/pry-0.x-lockfile into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 2m19s
Run unit tests / unit_tests (push) Successful in 4m34s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #129
2024-11-16 08:51:02 +00:00
a8c9c051f0 Add copyright notice
Some checks failed
Add copyright notice / copyright_notice (pull_request) Failing after 8m14s
Check usage of free licenses / check-licenses (pull_request) Failing after 7m54s
Run unit tests / unit_tests (pull_request) Failing after 6m48s
2024-11-16 01:52:48 +00:00
6f6a6aaabf Update format of guests API and document endpoints
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 4m31s
Add copyright notice / copyright_notice (pull_request) Successful in 18m9s
Run unit tests / unit_tests (pull_request) Successful in 17m2s
2024-11-16 02:16:19 +01:00
Renovate Bot
6709c6b1f1 Update dependency pry to v0.15.0
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 8m43s
Add copyright notice / copyright_notice (pull_request) Successful in 11m8s
Run unit tests / unit_tests (pull_request) Successful in 15m23s
2024-11-16 01:08:16 +00:00
21d3aa5f4b Merge pull request 'Document the API using OpenAPI' (#127) from rswag-documentation into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 1m5s
Run unit tests / unit_tests (push) Successful in 3m9s
Build Nginx-based docker image / build-static-assets (push) Failing after 12m50s
Reviewed-on: #127
2024-11-15 18:49:11 +00:00
cc3c8fdd63 Improve documentation of groups endpoint
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 39s
Add copyright notice / copyright_notice (pull_request) Successful in 1m26s
Run unit tests / unit_tests (pull_request) Successful in 1m54s
2024-11-15 19:46:47 +01:00
94b1066c17 Include OpenAPI information in the README
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 55s
Add copyright notice / copyright_notice (pull_request) Successful in 1m58s
Run unit tests / unit_tests (pull_request) Successful in 2m34s
2024-11-15 19:09:55 +01:00
ca0b1b18d3 Use different server URLs for development and testing
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 41s
Add copyright notice / copyright_notice (pull_request) Successful in 1m33s
Run unit tests / unit_tests (pull_request) Successful in 2m9s
2024-11-15 19:04:30 +01:00
41cb719bf4 Add copyright notice
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 1m38s
Add copyright notice / copyright_notice (pull_request) Successful in 2m0s
Run unit tests / unit_tests (pull_request) Failing after 2m39s
2024-11-15 17:29:56 +00:00
bcbcf9b469 MVP of swagger documentation
Some checks failed
Check usage of free licenses / check-licenses (pull_request) Successful in 40s
Add copyright notice / copyright_notice (pull_request) Successful in 1m23s
Run unit tests / unit_tests (pull_request) Failing after 3m5s
2024-11-15 18:28:45 +01:00
2bbcdfbd98 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#125) from renovate/factory_bot_rails-6.x-lockfile into main
All checks were successful
Check usage of free licenses / check-licenses (push) Successful in 1m14s
Run unit tests / unit_tests (push) Successful in 2m26s
Build Nginx-based docker image / build-static-assets (push) Successful in 24m23s
Reviewed-on: #125
2024-11-15 07:47:45 +00:00
8a3469447b Install rswag gem with default configuration 2024-11-15 08:45:56 +01:00
Renovate Bot
c37713af8f Update dependency factory_bot_rails to v6.4.4
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 4m26s
Check usage of free licenses / check-licenses (pull_request) Successful in 5m11s
Run unit tests / unit_tests (pull_request) Successful in 10m21s
2024-11-15 07:43:39 +00:00
b8484edf26 Merge pull request 'Fix ruby version used to run license finder' (#126) from fix-ruby-version into main
Some checks failed
Check usage of free licenses / check-licenses (push) Successful in 42s
Run unit tests / unit_tests (push) Successful in 3m45s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #126
2024-11-15 07:43:31 +00:00
4cd3f24032 Fix ruby version used to run license finder
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 4m6s
Check usage of free licenses / check-licenses (pull_request) Successful in 4m28s
Run unit tests / unit_tests (pull_request) Successful in 6m5s
2024-11-15 08:33:31 +01:00
891741d740 Merge pull request 'Update dependency ruby to v3.3.6' (#97) from renovate/ruby-3.x into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Failing after 39s
Run unit tests / unit_tests (push) Successful in 2m11s
Build Nginx-based docker image / build-static-assets (push) Failing after 22m23s
Reviewed-on: #97
2024-11-14 08:43:13 +00:00
2fc4e2debd Use a setup-ruby version that has ruby 3.3.6
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m27s
Add copyright notice / copyright_notice (pull_request) Successful in 1m41s
Run unit tests / unit_tests (pull_request) Successful in 2m13s
2024-11-14 09:40:53 +01:00
8d746e21b9 Merge pull request 'Merge pull request 'Introduce endpoint to retrieve a summary of groups and invite attendance' (#122) from groups-index-stats into main' (#124) from annotate-gem into main
All checks were successful
Check usage of free licenses / build-static-assets (push) Successful in 1m29s
Run unit tests / unit_tests (push) Successful in 3m17s
Build Nginx-based docker image / build-static-assets (push) Successful in 40m36s
Reviewed-on: #124
2024-11-14 07:39:04 +00:00
42f5f7b246 Add copyright notice
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 2m32s
Add copyright notice / copyright_notice (pull_request) Successful in 3m46s
Run unit tests / unit_tests (pull_request) Successful in 5m33s
2024-11-14 07:33:24 +00:00
d75b117c60 Merge pull request 'Introduce endpoint to retrieve a summary of groups and invite attendance' (#122) from groups-index-stats into main
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m39s
Add copyright notice / copyright_notice (pull_request) Successful in 2m20s
Run unit tests / unit_tests (pull_request) Successful in 5m23s
Reviewed-on: #122
2024-11-14 08:30:27 +01:00
c64c440272 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#123) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 3m3s
Run unit tests / unit_tests (push) Successful in 6m40s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #123
2024-11-14 07:28:05 +00:00
Renovate Bot
1a4067859d Update dependency factory_bot_rails to v6.4.4
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 8m33s
Check usage of free licenses / build-static-assets (pull_request) Successful in 7m8s
Run unit tests / unit_tests (pull_request) Successful in 7m52s
2024-11-14 01:06:51 +00:00
f15545d13a Merge pull request 'Introduce endpoint to retrieve a summary of groups and invite attendance' (#122) from groups-index-stats into main
All checks were successful
Check usage of free licenses / build-static-assets (push) Successful in 45s
Run unit tests / unit_tests (push) Successful in 2m10s
Build Nginx-based docker image / build-static-assets (push) Successful in 19m58s
Reviewed-on: #122
2024-11-13 08:12:46 +00:00
4be1fc6cad Add copyright notice
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 2m24s
Add copyright notice / copyright_notice (pull_request) Successful in 5m47s
Run unit tests / unit_tests (pull_request) Successful in 4m14s
2024-11-13 07:59:07 +00:00
452b5b2040 Introduce endpoint to retrieve a summary of groups and invite attendance
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 45s
Add copyright notice / copyright_notice (pull_request) Successful in 1m47s
Run unit tests / unit_tests (pull_request) Successful in 5m4s
2024-11-13 08:57:20 +01:00
ef10fafae8 Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#120) from renovate/factory_bot_rails-6.x-lockfile into main
All checks were successful
Check usage of free licenses / build-static-assets (push) Successful in 2m33s
Run unit tests / unit_tests (push) Successful in 4m47s
Build Nginx-based docker image / build-static-assets (push) Successful in 24m22s
Reviewed-on: #120
2024-11-12 08:49:27 +00:00
Renovate Bot
94bf707723 Update dependency factory_bot_rails to v6.4.4
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m31s
Add copyright notice / copyright_notice (pull_request) Successful in 2m49s
Run unit tests / unit_tests (pull_request) Successful in 4m26s
2024-11-12 01:07:37 +00:00
402a4a3e5e Merge pull request 'Define endpoint to update expenses' (#119) from update-expenses into main
All checks were successful
Check usage of free licenses / build-static-assets (push) Successful in 1m46s
Run unit tests / unit_tests (push) Successful in 4m28s
Build Nginx-based docker image / build-static-assets (push) Successful in 33m9s
Reviewed-on: #119
2024-11-11 07:23:40 +00:00
88a7785b46 Define endpoint to update expenses
All checks were successful
Run unit tests / unit_tests (pull_request) Successful in 4m56s
Check usage of free licenses / build-static-assets (pull_request) Successful in 38s
Add copyright notice / copyright_notice (pull_request) Successful in 1m28s
2024-11-11 08:08:49 +01:00
f7c0fc91b1 Merge pull request 'Merge first and last name and expose guest update endpoint' (#118) from update-guests into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 2m41s
Run unit tests / unit_tests (push) Successful in 9m26s
Build Nginx-based docker image / build-static-assets (push) Failing after 15m48s
Reviewed-on: #118
2024-11-11 07:02:47 +00:00
3b9ca24bcd Add copyright notice
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m27s
Add copyright notice / copyright_notice (pull_request) Successful in 3m5s
Run unit tests / unit_tests (pull_request) Successful in 5m2s
2024-11-11 06:57:39 +00:00
bd5c4f5482 Merge first and last name and expose guest update endpoint
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m42s
Add copyright notice / copyright_notice (pull_request) Successful in 3m5s
Run unit tests / unit_tests (pull_request) Successful in 5m4s
2024-11-11 07:55:03 +01:00
d2974edcc1 Merge pull request 'Define an endpoint to expose the list of expenses' (#116) from expenses-list-endpoints into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 2m17s
Run unit tests / unit_tests (push) Successful in 5m23s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #116
2024-11-11 06:50:18 +00:00
810d0740f3 Define an endpoint to expose the list of expenses
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 44s
Add copyright notice / copyright_notice (pull_request) Successful in 2m30s
Run unit tests / unit_tests (pull_request) Successful in 6m1s
2024-11-10 20:40:37 +01:00
b1ec1281b5 Merge pull request 'Remove rake task leftover' (#115) from remove-rake into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Failing after 12s
Check usage of free licenses / build-static-assets (push) Successful in 49s
Run unit tests / unit_tests (push) Successful in 1m41s
Reviewed-on: #115
2024-11-10 19:39:55 +00:00
6f19e4f1bd Remove rake task leftover
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 39s
Add copyright notice / copyright_notice (pull_request) Successful in 1m8s
Run unit tests / unit_tests (pull_request) Successful in 1m46s
2024-11-10 20:37:58 +01:00
8d74d25574 Merge pull request 'Increase penalty for tables under minimum capacity' (#113) from increase-penalty-undercapacity-tables into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 52s
Build Nginx-based docker image / build-static-assets (push) Failing after 1m55s
Run unit tests / unit_tests (push) Successful in 2m17s
Reviewed-on: #113
2024-11-10 18:01:16 +00:00
b389ae0a41 Merge pull request 'Run perturbations in both orders' (#114) from vns-combinations into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Check usage of free licenses / build-static-assets (push) Has been cancelled
Run unit tests / unit_tests (push) Has been cancelled
Reviewed-on: #114
2024-11-10 18:01:15 +00:00
fe91f75ec0 Add copyright notice
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m30s
Add copyright notice / copyright_notice (pull_request) Successful in 2m18s
Run unit tests / unit_tests (pull_request) Successful in 3m38s
2024-11-10 17:57:29 +00:00
f2e91c8d7a Run perturbations in both orders
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m27s
Add copyright notice / copyright_notice (pull_request) Successful in 2m13s
Run unit tests / unit_tests (pull_request) Successful in 4m44s
2024-11-10 18:55:04 +01:00
5b36526c59 Increase penalty for tables under minimum capacity
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 56s
Add copyright notice / copyright_notice (pull_request) Successful in 2m1s
Run unit tests / unit_tests (pull_request) Successful in 3m44s
2024-11-10 18:40:26 +01:00
b084328d79 Merge pull request 'Implement shift operation for VNS algorithm' (#111) from shift into main
All checks were successful
Check usage of free licenses / build-static-assets (push) Successful in 50s
Run unit tests / unit_tests (push) Successful in 2m5s
Build Nginx-based docker image / build-static-assets (push) Successful in 24m44s
Reviewed-on: #111
2024-11-10 17:12:04 +00:00
bcf00fabf0 Add copyright notice
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m9s
Add copyright notice / copyright_notice (pull_request) Successful in 1m7s
Run unit tests / unit_tests (pull_request) Successful in 1m57s
2024-11-10 17:01:57 +00:00
1fcca38576 Implement shift perturbation
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 51s
Run unit tests / unit_tests (pull_request) Successful in 2m11s
Add copyright notice / copyright_notice (pull_request) Successful in 56s
2024-11-10 17:53:52 +01:00
c16e8f564c Merge pull request 'Use sets instead of arrays to represent tables' (#112) from table-set into main
All checks were successful
Check usage of free licenses / build-static-assets (push) Successful in 39s
Run unit tests / unit_tests (push) Successful in 3m26s
Build Nginx-based docker image / build-static-assets (push) Successful in 31m37s
Reviewed-on: #112
2024-11-10 16:31:49 +00:00
29d9d21916 Use sets instead of arrays to represent tables
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 44s
Add copyright notice / copyright_notice (pull_request) Successful in 59s
Run unit tests / unit_tests (pull_request) Successful in 1m33s
2024-11-10 17:30:01 +01:00
aef55abe54 Merge pull request 'Assign similar colors to child groups' (#110) from chosen-colors into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 57s
Build Nginx-based docker image / build-static-assets (push) Failing after 1m59s
Run unit tests / unit_tests (push) Successful in 2m18s
Reviewed-on: #110
2024-11-10 11:26:54 +00:00
4089ff63ba Add copyright notice
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m10s
Add copyright notice / copyright_notice (pull_request) Successful in 1m45s
Run unit tests / unit_tests (pull_request) Successful in 2m42s
2024-11-10 11:24:07 +00:00
fa3d3cf13b Assign similar colors to child groups
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 35s
Add copyright notice / copyright_notice (pull_request) Successful in 55s
Run unit tests / unit_tests (pull_request) Successful in 3m11s
2024-11-10 12:22:58 +01:00
172193b0dc Merge pull request 'Use average discomfort instead of sum' (#109) from fix/discomfort-average into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Failing after 1m19s
Check usage of free licenses / build-static-assets (push) Successful in 1m29s
Run unit tests / unit_tests (push) Successful in 1m52s
Reviewed-on: #109
2024-11-10 10:38:35 +00:00
021b82b28e Use average discomfort instead of sum
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m1s
Add copyright notice / copyright_notice (pull_request) Successful in 1m29s
Run unit tests / unit_tests (pull_request) Successful in 2m14s
2024-11-10 11:34:26 +01:00
2d96f1c7c2 Merge pull request 'Apply a penalty if table sizes are not honored' (#108) from table-size-discomfort into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 35s
Run unit tests / unit_tests (push) Successful in 1m27s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #108
2024-11-10 10:25:37 +00:00
f3b70f5a31 Apply a penalty if table sizes are not honored
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 33s
Add copyright notice / copyright_notice (pull_request) Successful in 47s
Run unit tests / unit_tests (pull_request) Successful in 1m18s
2024-11-10 11:22:51 +01:00
2deaaa64a5 Merge pull request 'Modify initial distribution of tables to guarantee there is no single-person table' (#107) from fix/initial-group-creation into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 31s
Run unit tests / unit_tests (push) Successful in 1m25s
Build Nginx-based docker image / build-static-assets (push) Failing after 3m58s
Reviewed-on: #107
2024-11-10 09:46:53 +00:00
c12e2fc6a4 Add copyright notice
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 48s
Run unit tests / unit_tests (pull_request) Successful in 1m22s
Add copyright notice / copyright_notice (pull_request) Successful in 20s
2024-11-10 09:17:34 +00:00
19d309a2cf Modify initial distribution of tables to guarantee there is no single-person table
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 35s
Add copyright notice / copyright_notice (pull_request) Successful in 1m7s
Run unit tests / unit_tests (pull_request) Successful in 1m44s
2024-11-10 10:16:22 +01:00
Renovate Bot
9190348ff2 Update dependency rspec-rails to '~> 7.1.0'
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m10s
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m15s
Run unit tests / unit_tests (pull_request) Successful in 1m46s
Check usage of free licenses / build-static-assets (push) Successful in 36s
Run unit tests / unit_tests (push) Successful in 1m51s
Build Nginx-based docker image / build-static-assets (push) Successful in 25m9s
2024-11-10 01:24:55 +00:00
b3bbeff739 Merge pull request 'Update dependency rails to v8' (#99) from renovate/rails-8.x into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 50s
Build Nginx-based docker image / build-static-assets (push) Failing after 2m13s
Run unit tests / unit_tests (push) Successful in 2m45s
Reviewed-on: #99
2024-11-09 16:56:10 +00:00
ffc7fa3801 Update dependency rails to v8
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m54s
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m55s
Run unit tests / unit_tests (pull_request) Successful in 1m30s
2024-11-09 17:51:12 +01:00
91ebb9afee Merge pull request 'Install shoulda matchers, improve guests specs and change enum syntax' (#104) from deprecation-warning-rails-8 into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 47s
Run unit tests / unit_tests (push) Successful in 2m10s
Build Nginx-based docker image / build-static-assets (push) Failing after 3m27s
Reviewed-on: #104
2024-11-09 16:48:32 +00:00
9035df5178 Install shoulda matchers, improve guests specs and change enum syntax
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m18s
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m28s
Run unit tests / unit_tests (pull_request) Successful in 1m0s
2024-11-09 17:45:23 +01:00
60a7b1342f Add license finder as a development dependency
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 1m0s
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m28s
Run unit tests / unit_tests (pull_request) Successful in 2m11s
Check usage of free licenses / build-static-assets (push) Successful in 45s
Run unit tests / unit_tests (push) Successful in 2m33s
Build Nginx-based docker image / build-static-assets (push) Failing after 20s
2024-11-09 08:52:40 +01:00
Renovate Bot
d04f7211e7 Update dependency solid_queue to v1.0.1
Some checks failed
Check usage of free licenses / build-static-assets (pull_request) Failing after 2m53s
Add copyright notice / copyright_notice (pull_request) Successful in 3m17s
Run unit tests / unit_tests (pull_request) Successful in 3m45s
2024-11-09 07:44:14 +00:00
61cfdd2424 Merge pull request 'Install project dependencies before running license finder' (#102) from fix-license-finder-action into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 3m57s
Build Nginx-based docker image / build-static-assets (push) Failing after 7m34s
Run unit tests / unit_tests (push) Successful in 5m6s
Reviewed-on: #102
2024-11-09 07:43:41 +00:00
004624687a Update dockerfile
Some checks failed
Add copyright notice / copyright_notice (pull_request) Failing after 26s
Check usage of free licenses / build-static-assets (pull_request) Failing after 22s
Run unit tests / unit_tests (pull_request) Failing after 3m47s
2024-11-09 08:39:57 +01:00
f7b227bc97 Update ruby version in Gemfile and .ruby-version
Some checks failed
Check usage of free licenses / build-static-assets (pull_request) Successful in 2m23s
Run unit tests / unit_tests (pull_request) Failing after 3m58s
Add copyright notice / copyright_notice (pull_request) Successful in 7m26s
2024-11-09 08:39:17 +01:00
9856974684 Install project dependencies before running license finder
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 2m21s
Add copyright notice / copyright_notice (pull_request) Successful in 5m15s
Run unit tests / unit_tests (pull_request) Successful in 6m57s
2024-11-09 08:35:57 +01:00
c23ecfbbad Merge pull request 'Update dependency factory_bot_rails to v6.4.4' (#100) from renovate/factory_bot_rails-6.x-lockfile into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 1m46s
Run unit tests / unit_tests (push) Successful in 5m1s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #100
2024-11-09 07:30:46 +00:00
Renovate Bot
b4664c5e1d Update dependency ruby to v3.3.6
Some checks failed
Add copyright notice / copyright_notice (pull_request) Failing after 11s
Check usage of free licenses / build-static-assets (pull_request) Failing after 9s
Run unit tests / unit_tests (pull_request) Failing after 1m17s
2024-11-09 01:08:10 +00:00
Renovate Bot
c70c0c5f60 Update dependency factory_bot_rails to v6.4.4
Some checks failed
renovate/artifacts Artifact file update failure
Check usage of free licenses / build-static-assets (pull_request) Successful in 3m6s
Add copyright notice / copyright_notice (pull_request) Successful in 7m45s
Run unit tests / unit_tests (pull_request) Successful in 10m41s
2024-11-09 01:07:47 +00:00
Renovate Bot
7a4aad29c1 Update dependency factory_bot_rails to v6.4.4
All checks were successful
Run unit tests / unit_tests (pull_request) Successful in 11m24s
Build Nginx-based docker image / build-static-assets (push) Successful in 20m53s
Add copyright notice / copyright_notice (pull_request) Successful in 23s
Check usage of free licenses / build-static-assets (pull_request) Successful in 36s
Check usage of free licenses / build-static-assets (push) Successful in 59s
Run unit tests / unit_tests (push) Successful in 1m40s
2024-11-08 01:08:59 +00:00
cded122f22 Merge pull request 'Choose light colors for the groups' (#96) from light-colors into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 48s
Run unit tests / unit_tests (push) Successful in 1m38s
Build Nginx-based docker image / build-static-assets (push) Failing after 2m18s
Reviewed-on: #96
2024-11-04 22:46:08 +00:00
5cceb1e6ed Choose light colors for the groups
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 1m13s
Run unit tests / unit_tests (pull_request) Successful in 1m54s
Check usage of free licenses / build-static-assets (pull_request) Successful in 27s
2024-11-04 23:39:44 +01:00
1a39364322 Merge pull request 'Initial version of the README' (#95) from documentation-setup into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 43s
Build Nginx-based docker image / build-static-assets (push) Failing after 1m58s
Run unit tests / unit_tests (push) Successful in 2m24s
Reviewed-on: #95
2024-11-04 22:21:54 +00:00
ca1a8a499f Initial version of the README
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 46s
Add copyright notice / copyright_notice (pull_request) Successful in 1m8s
Run unit tests / unit_tests (pull_request) Successful in 2m6s
2024-11-04 23:18:44 +01:00
231ea3fda8 Merge pull request 'Assign a color to every group and expose it via API' (#94) from group-color into main
All checks were successful
Check usage of free licenses / build-static-assets (push) Successful in 41s
Run unit tests / unit_tests (push) Successful in 1m40s
Build Nginx-based docker image / build-static-assets (push) Successful in 25m17s
Reviewed-on: #94
2024-11-03 13:50:56 +00:00
1e23ad8e50 Order guests within same table by color
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 39s
Add copyright notice / copyright_notice (pull_request) Successful in 1m2s
Run unit tests / unit_tests (pull_request) Successful in 1m56s
2024-11-03 14:48:54 +01:00
3ae90bfc4e Add copyright notice
Some checks failed
Add copyright notice / copyright_notice (pull_request) Failing after 17s
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m14s
Run unit tests / unit_tests (pull_request) Successful in 2m7s
2024-11-03 13:43:32 +00:00
a42f938530 Assign a color to every group and expose it via API
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 55s
Add copyright notice / copyright_notice (pull_request) Successful in 1m28s
Run unit tests / unit_tests (pull_request) Successful in 1m57s
2024-11-03 14:41:09 +01:00
01a00cf35f Merge pull request 'Enqueue some simulations after running the seed file' (#93) from seed-executions into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 34s
Run unit tests / unit_tests (push) Successful in 1m20s
Build Nginx-based docker image / build-static-assets (push) Failing after 1m56s
Reviewed-on: #93
2024-11-03 13:30:34 +00:00
a67696747b Enqueue some simulations after running the seed file
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 56s
Run unit tests / unit_tests (pull_request) Successful in 1m25s
Check usage of free licenses / build-static-assets (pull_request) Successful in 2m1s
2024-11-03 14:18:30 +01:00
ed0e307e33 Merge pull request 'compose-development' (#92) from compose-development into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Failing after 1m5s
Check usage of free licenses / build-static-assets (push) Successful in 1m29s
Run unit tests / unit_tests (push) Successful in 2m30s
Reviewed-on: #92
2024-11-03 13:16:29 +00:00
da8086605d Enable hot reload in the frontend
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 59s
Add copyright notice / copyright_notice (pull_request) Successful in 1m42s
Run unit tests / unit_tests (pull_request) Successful in 3m9s
2024-11-03 14:13:13 +01:00
0d122b39d3 Merge pull request 'Fix undefined method' (#91) from fix/undefined-method into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 1m22s
Run unit tests / unit_tests (push) Failing after 1m51s
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #91
2024-11-03 13:00:11 +00:00
a9016ed352 Enable hot reloading of modified code
Some checks failed
Check usage of free licenses / build-static-assets (pull_request) Failing after 35s
Add copyright notice / copyright_notice (pull_request) Failing after 35s
Run unit tests / unit_tests (pull_request) Successful in 3m4s
2024-11-03 13:59:35 +01:00
94d0a42ac1 Fix undefined method
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 54s
Add copyright notice / copyright_notice (pull_request) Successful in 1m31s
Run unit tests / unit_tests (pull_request) Successful in 3m42s
2024-11-03 13:56:10 +01:00
c2398c0d80 Avoid exposing internal ports
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 1m54s
Add copyright notice / copyright_notice (pull_request) Successful in 2m32s
Run unit tests / unit_tests (pull_request) Successful in 4m0s
2024-11-03 13:53:36 +01:00
c2989b216f Merge pull request 'Recreate simulations whenever a guest changes their attendance' (#85) from simulations-lifecycle into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 43s
Run unit tests / unit_tests (push) Successful in 1m46s
Build Nginx-based docker image / build-static-assets (push) Failing after 2m54s
Reviewed-on: #85
2024-11-03 12:51:13 +00:00
95651ee942 Merge remote-tracking branch 'origin/simulations-lifecycle' into compose-development 2024-11-03 13:50:19 +01:00
bae70b9884 Initial version 2024-11-03 13:40:50 +01:00
865e86e659 Merge branch 'main' into simulations-lifecycle
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 4m50s
Add copyright notice / copyright_notice (pull_request) Successful in 14m0s
Run unit tests / unit_tests (pull_request) Successful in 1m6s
2024-11-03 11:23:38 +00:00
47c6fc7568 Merge pull request 'Include a step to verify nonfree dependencies are not committed' (#87) from license_checks into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 2m12s
Build Nginx-based docker image / build-static-assets (push) Failing after 13m54s
Run unit tests / unit_tests (push) Successful in 14m20s
Reviewed-on: #87
2024-11-03 11:23:27 +00:00
ba4384307d Merge remote-tracking branch 'origin/main' into simulations-lifecycle
Some checks failed
Add copyright notice / copyright_notice (pull_request) Failing after 10m12s
Run unit tests / unit_tests (pull_request) Successful in 11m32s
2024-11-03 12:04:54 +01:00
0d7f602441 Merge pull request 'Assign a name to every tables arrangement' (#83) from arrangement-names into main
Some checks failed
Run unit tests / unit_tests (push) Successful in 10m57s
Build Nginx-based docker image / build-static-assets (push) Failing after 13m23s
Reviewed-on: #83
2024-11-03 11:04:07 +00:00
956863a496 Merge pull request 'Install solid queues framework' (#84) from solid-queue-vns into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Run unit tests / unit_tests (push) Has been cancelled
Reviewed-on: #84
2024-11-03 11:00:54 +00:00
89d9f722e1 Add ruby to the list of permitted licenses
All checks were successful
Check usage of free licenses / build-static-assets (pull_request) Successful in 3m40s
Run unit tests / unit_tests (pull_request) Successful in 11m43s
Add copyright notice / copyright_notice (pull_request) Successful in 6m20s
2024-11-03 11:58:53 +01:00
2fd4549b00 Add copyright notice
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 6m31s
Run unit tests / unit_tests (pull_request) Successful in 10m41s
2024-11-03 10:47:26 +00:00
a5c6def0b6 Merge branch 'main' into solid-queue-vns
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 8m59s
Run unit tests / unit_tests (pull_request) Successful in 12m12s
2024-11-03 11:43:39 +01:00
eb2b111472 Merge branch 'main' into arrangement-names
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 3m43s
Run unit tests / unit_tests (pull_request) Successful in 13m1s
2024-11-03 11:42:28 +01:00
3a8a83e60e Merge pull request 'Remove the email property from the guest model' (#90) from remove-emails into main
Some checks failed
Run unit tests / unit_tests (push) Successful in 6m40s
Build Nginx-based docker image / build-static-assets (push) Failing after 8m28s
Reviewed-on: #90
2024-11-03 10:41:52 +00:00
dacc0aa74e Merge pull request 'Stop redundant builds' (#86) from actions-concurrency into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Failing after 3m19s
Run unit tests / unit_tests (push) Successful in 3m44s
Reviewed-on: #86
2024-11-03 10:31:34 +00:00
f0e8c570c9 Merge pull request 'Configure a build timeout of 30 minutes' (#88) from build-timeout into main
Some checks failed
Run unit tests / unit_tests (push) Has been cancelled
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #88
2024-11-03 10:29:07 +00:00
c08f7bd37c Add copyright notice
All checks were successful
Run unit tests / unit_tests (pull_request) Successful in 7m30s
Add copyright notice / copyright_notice (pull_request) Successful in 9m10s
2024-11-03 10:03:47 +00:00
f21aaa3723 Remove the email property from the guest model
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 9m38s
Run unit tests / unit_tests (pull_request) Successful in 15m56s
2024-11-03 10:43:06 +01:00
b78165fb08 Merge remote-tracking branch 'origin/main' into actions-concurrency
All checks were successful
Add copyright notice / copyright_notice (pull_request) Successful in 23m44s
Run unit tests / unit_tests (pull_request) Successful in 17m5s
2024-11-03 10:17:55 +01:00
d3d1e2c821 Merge branch 'main' into license_checks
Some checks failed
Add copyright notice / copyright_notice (pull_request) Failing after 13m49s
Check usage of free licenses / build-static-assets (pull_request) Failing after 9m16s
Run unit tests / unit_tests (pull_request) Successful in 16m22s
2024-11-03 09:16:30 +00:00
56a8be21cc Include a step to verify nonfree dependencies are not committed
Some checks failed
Build Nginx-based docker image / build-static-assets (pull_request) Has been cancelled
Add copyright notice / copyright_notice (pull_request) Failing after 44s
Check usage of free licenses / build-static-assets (pull_request) Failing after 18s
Run unit tests / unit_tests (pull_request) Failing after 44s
2024-11-03 09:38:51 +01:00
86e982164d Add copyright notice
Some checks failed
Build Nginx-based docker image / build-static-assets (pull_request) Waiting to run
Run unit tests / unit_tests (pull_request) Failing after 16m52s
Add copyright notice / copyright_notice (pull_request) Failing after 17m30s
2024-11-03 08:31:58 +00:00
33434db3f2 Stop redundant builds
Some checks failed
Build Nginx-based docker image / build-static-assets (pull_request) Waiting to run
Add copyright notice / copyright_notice (pull_request) Failing after 19m31s
Run unit tests / unit_tests (pull_request) Failing after 18m49s
2024-11-03 09:31:10 +01:00
35bf272ac8 Restart simulations whenever a guest changes their invitation status
Some checks failed
Build Nginx-based docker image / build-static-assets (pull_request) Waiting to run
Add copyright notice / copyright_notice (pull_request) Successful in 4m39s
Run unit tests / unit_tests (pull_request) Failing after 22m29s
2024-11-03 09:26:25 +01:00
50a5c90728 Only include potential guests in the simulation 2024-11-03 09:15:48 +01:00
15a5c51fb6 Add copyright notice
Some checks are pending
Build Nginx-based docker image / build-static-assets (pull_request) Waiting to run
Add copyright notice / copyright_notice (pull_request) Successful in 6m50s
Run unit tests / unit_tests (pull_request) Successful in 10m9s
2024-11-03 08:12:24 +00:00
8d09fd733f Define a job to generate table simulations 2024-11-03 09:06:45 +01:00
3be71406f8 Add copyright notice 2024-11-03 09:06:45 +01:00
d15096b3a7 Install solid queues framework 2024-11-03 09:06:42 +01:00
1f919644a3 Define a job to generate table simulations
Some checks are pending
Build Nginx-based docker image / build-static-assets (pull_request) Waiting to run
Add copyright notice / copyright_notice (pull_request) Successful in 6m46s
Run unit tests / unit_tests (pull_request) Successful in 9m49s
2024-11-03 09:06:17 +01:00
8d83c63fa6 Add copyright notice
Some checks are pending
Build Nginx-based docker image / build-static-assets (pull_request) Waiting to run
Add copyright notice / copyright_notice (pull_request) Successful in 4m10s
Run unit tests / unit_tests (pull_request) Successful in 8m20s
2024-11-03 08:01:59 +00:00
a1b5e55b39 Install solid queues framework
Some checks are pending
Build Nginx-based docker image / build-static-assets (pull_request) Waiting to run
Add copyright notice / copyright_notice (pull_request) Successful in 2m3s
Run unit tests / unit_tests (pull_request) Successful in 5m23s
2024-11-03 08:59:56 +01:00
066fdea504 Assign a name to every tables arrangement
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 3m52s
Run unit tests / unit_tests (pull_request) Successful in 7m40s
Build Nginx-based docker image / build-static-assets (pull_request) Failing after 1h10m25s
2024-11-03 08:44:31 +01:00
193 changed files with 5600 additions and 917 deletions

58
.annotaterb.yml Normal file
View File

@ -0,0 +1,58 @@
---
:position: before
:position_in_additional_file_patterns: before
:position_in_class: before
:position_in_factory: before
:position_in_fixture: before
:position_in_routes: before
:position_in_serializer: before
:position_in_test: before
:classified_sort: true
:exclude_controllers: true
:exclude_factories: true
:exclude_fixtures: false
:exclude_helpers: true
:exclude_scaffolds: true
:exclude_serializers: false
:exclude_sti_subclasses: false
:exclude_tests: true
:force: false
:format_markdown: false
:format_rdoc: false
:format_yard: false
:frozen: false
:ignore_model_sub_dir: false
:ignore_unknown_models: false
:include_version: false
:show_check_constraints: false
:show_complete_foreign_keys: false
:show_foreign_keys: true
:show_indexes: true
:simple_indexes: false
:sort: false
:timestamp: false
:trace: false
:with_comment: true
:with_column_comments: true
:with_table_comments: true
:active_admin: false
:command:
:debug: false
:hide_default_column_types: ''
:hide_limit_column_types: ''
:ignore_columns:
:ignore_routes:
:models: true
:routes: false
:skip_on_db_migrate: false
:target_action: :do_annotations
:wrapper:
:wrapper_close:
:wrapper_open:
:classes_default_to_s: []
:additional_file_patterns: []
:model_dir:
- app/models
:require: []
:root_dir:
- ''

View File

@ -35,3 +35,4 @@
/app/assets/builds/* /app/assets/builds/*
!/app/assets/builds/.keep !/app/assets/builds/.keep
/public/assets /public/assets
.docker-compose.yml

159
.gitea/workflows/tests.yml Normal file
View File

@ -0,0 +1,159 @@
name: Run unit tests
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
unit_tests:
runs-on: ubuntu-latest
services: &services
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ github.head_ref }} # Checkout the actual branch, not the result if merged into the base
- uses: ruby/setup-ruby@v1
- run: bundle install
- &postgres_wait
name: Wait until Postgres is ready to accept connections
run: |
apt-get update && apt-get install -f -y postgresql-client
until pg_isready -h postgres -U postgres -d postgres
do
sleep 1
echo "Trying again"
done
- name: Load schema and run unit tests
run: |
bundle exec rake db:schema:load
bundle exec rspec
env:
RAILS_ENV: test
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
- name: Get all migrations added
id: changed-migration-files
uses: tj-actions/changed-files@v45
with:
files: |
db/migrate/**.rb
- name: Redo all migrations and check there are no schema changes
if: steps.changed-migration-files.outputs.any_changed == 'true'
env:
ALL_CHANGED_FILES: ${{ steps.changed-migration-files.outputs.all_changed_files }}
RAILS_ENV: test
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
run: |
echo ${#ALL_CHANGED_FILES[@]} migrations changed:
for file in ${ALL_CHANGED_FILES}; do
echo "$file"
done
bundle exec rake db:migrate:redo STEP=${#ALL_CHANGED_FILES[@]}
git diff --exit-code db/schema.rb
- name: Clean up containers generated by this flow
if: failure()
run: docker ps --filter network=$JOB_CONTAINER_NAME-$GITHUB_JOB-network --filter name=$JOB_CONTAINER_NAME-* --format "{{.ID}}" | xargs docker rm -f
rubocop:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: ruby/setup-ruby@v1
- run: bundle install
- run: bundle exec rubocop --force-exclusion --parallel
check-licenses:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: ruby/setup-ruby@v1
- name: Install project dependencies
run: bundle install --jobs `getconf _NPROCESSORS_ONLN`
- name: Run license finder
run: license_finder
copyright_notice:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.ACTIONS_TOKEN }}
ref: ${{ github.head_ref }}
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
with:
CopyrightString: '# Copyright (C) 2024-2025 LibreWeddingPlanner contributors\n\n'
FileType: '.rb'
Path: 'app/, config/, db/, spec/'
IgnorePath: 'db'
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
with:
CopyrightString: '<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>\n\n'
FileType: '.erb'
Path: 'app/'
- name: Commit changes
run: |
git config --local user.email "bustikiller@bustikiller.com"
git config --local user.name "Manuel Bustillo"
git add .
if [ -n "$(git status --porcelain)" ]; then
echo "there are changes";
git commit -m "Add copyright notice"
git push
else
echo "no changes";
fi
build-static-assets:
runs-on: ubuntu-latest
timeout-minutes: 30
needs:
- unit_tests
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to the private Docker registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.PRIVATE_REGISTRY_HOST }}
username: ${{ secrets.PRIVATE_REGISTRY_USERNAME }}
password: ${{ secrets.PRIVATE_REGISTRY_TOKEN }}
- name: Build and push intermediate stages (build)
uses: docker/build-push-action@v6
with:
context: .
target: build
push: ${{ github.ref == 'refs/heads/main' }}
tags: ${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:build
cache-from: type=registry,ref=${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:build
cache-to: type=inline
- name: Build and push (final)
uses: docker/build-push-action@v6
with:
context: .
push: ${{ github.ref == 'refs/heads/main' }}
tags: ${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:latest
cache-from: type=registry,ref=${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:latest
cache-to: type=inline

View File

@ -1,33 +0,0 @@
name: Build Nginx-based docker image
on:
push:
branches:
- main
jobs:
build-static-assets:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to the private Docker registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.PRIVATE_REGISTRY_HOST }}
username: ${{ secrets.PRIVATE_REGISTRY_USERNAME }}
password: ${{ secrets.PRIVATE_REGISTRY_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: |
${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:latest
cache-from: type=registry,ref=user/app:latest
cache-to: type=inline

View File

@ -1,36 +0,0 @@
name: Add copyright notice
on:
pull_request:
permissions:
contents: write
jobs:
copyright_notice:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.ACTIONS_TOKEN }}
ref: ${{ github.head_ref }}
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
with:
CopyrightString: '# Copyright (C) 2024 Manuel Bustillo\n\n'
FileType: '.rb'
Path: 'app/, config/, db/, spec/'
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
with:
CopyrightString: '<%# Copyright (C) 2024 Manuel Bustillo %>\n\n'
FileType: '.erb'
Path: 'app/'
- name: Commit changes
run: |
git config --local user.email "bustikiller@bustikiller.com"
git config --local user.name "Manuel Bustillo"
git add .
if [ -n "$(git status --porcelain)" ]; then
echo "there are changes";
git commit -m "Add copyright notice"
git push
else
echo "no changes";
fi

View File

@ -1,40 +0,0 @@
name: Run unit tests
on:
push:
branches:
- main
pull_request:
jobs:
unit_tests:
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: ruby/setup-ruby@v1
- run: bundle install
- name: Wait until Postgres is ready to accept connections
run: |
apt-get update && apt-get install -f -y postgresql-client
until pg_isready -h postgres -U postgres -d postgres
do
sleep 1
echo "Trying again"
done
- run: |
bundle exec rake db:schema:load
bundle exec rspec
env:
RAILS_ENV: test
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
- name: Clean up containers generated by this flow
if: failure()
run: docker ps --filter network=$JOB_CONTAINER_NAME-$GITHUB_JOB-network --filter name=$JOB_CONTAINER_NAME-* --format "{{.ID}}" | xargs docker rm -f

4
.gitignore vendored
View File

@ -33,3 +33,7 @@
# Ignore master key for decrypting credentials and more. # Ignore master key for decrypting credentials and more.
/config/master.key /config/master.key
# Ignore swagger generated documentation
swagger/v1/swagger.yaml
wedding-planner.code-workspace

29
.rubocop.yml Normal file
View File

@ -0,0 +1,29 @@
require:
- rubocop-rails
- rubocop-factory_bot
- rubocop-rspec
- rubocop-rspec_rails
AllCops:
NewCops: enable
Exclude:
- 'db/**/*'
- 'config/**/*'
- 'script/**/*'
- 'bin/*'
- '*.yml'
Layout/LineLength:
Max: 120
RSpec/ExampleLength:
Enabled: false
Metrics/ModuleLength:
Enabled: false
RSpec/MultipleMemoizedHelpers:
Enabled: false
Style/Documentation:
Enabled: false
Metrics/MethodLength:
Max: 20
Rails/SkipsModelValidations:
Enabled: false
Metrics/AbcSize:
Enabled: false

View File

@ -1 +1 @@
ruby-3.3.5 ruby-3.4.3

View File

@ -1,8 +1,8 @@
# syntax = docker/dockerfile:1 # syntax = docker/dockerfile:1
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile # Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
ARG RUBY_VERSION=3.3.5 ARG RUBY_VERSION=3.4.3
FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim AS base
# Rails app lives here # Rails app lives here
WORKDIR /rails WORKDIR /rails
@ -13,14 +13,14 @@ ENV RAILS_ENV="production" \
BUNDLE_PATH="/usr/local/bundle" \ BUNDLE_PATH="/usr/local/bundle" \
BUNDLE_WITHOUT="development" BUNDLE_WITHOUT="development"
RUN apt-get update && apt-get install -y nodejs RUN apt-get update && apt-get install -y nodejs wkhtmltopdf
# Throw-away build stage to reduce size of final image # Throw-away build stage to reduce size of final image
FROM base as build FROM base AS build
# Install packages needed to build gems # Install packages needed to build gems
RUN apt-get update -qq && \ RUN apt-get update -qq && \
apt-get install --no-install-recommends -y build-essential git libpq-dev libvips pkg-config apt-get install --no-install-recommends -y build-essential git libpq-dev libvips pkg-config libyaml-dev
# Install application gems # Install application gems
COPY Gemfile Gemfile.lock ./ COPY Gemfile Gemfile.lock ./

42
Dockerfile.dev Normal file
View File

@ -0,0 +1,42 @@
# syntax = docker/dockerfile:1
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
ARG RUBY_VERSION=3.4.3
FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base
# Rails app lives here
WORKDIR /rails
RUN apt-get update && apt-get install -y nodejs wkhtmltopdf
FROM base as build
# Install packages needed to build gems
RUN apt-get update -qq && \
apt-get install --no-install-recommends -y build-essential git libpq-dev libvips pkg-config libyaml-dev
# Install application gems
COPY Gemfile Gemfile.lock ./
RUN bundle install
# Copy application code
COPY . .
# Final stage for app image
FROM base
# Install packages needed for deployment
RUN apt-get update -qq && \
apt-get install --no-install-recommends -y curl libvips postgresql-client && \
rm -rf /var/lib/apt/lists /var/cache/apt/archives
# Copy built artifacts: gems, application
COPY --from=build /usr/local/bundle /usr/local/bundle
COPY --from=build /rails /rails
# Entrypoint prepares the database.
ENTRYPOINT ["/rails/bin/docker-entrypoint"]
# Start the server by default, this can be overwritten at runtime
EXPOSE 3000
CMD ["./bin/rails", "server", "--binding=0.0.0.0"]

31
Gemfile
View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
source 'https://rubygems.org' source 'https://rubygems.org'
ruby '3.3.5' ruby '3.4.3'
gem 'bootsnap', require: false gem 'bootsnap', require: false
gem 'csv' gem 'csv'
gem 'importmap-rails' gem 'importmap-rails'
@ -8,27 +10,48 @@ gem 'jbuilder'
gem 'money' gem 'money'
gem 'pg', '~> 1.1' gem 'pg', '~> 1.1'
gem 'puma', '>= 5.0' gem 'puma', '>= 5.0'
gem 'rails', '~> 7.2.0', '>= 7.2.1' gem 'rails', '~> 8.0.0', '>= 8.0.0'
gem 'redis', '>= 4.0.1' gem 'redis', '>= 4.0.1'
gem 'sprockets-rails' gem 'sprockets-rails'
gem 'stimulus-rails' gem 'stimulus-rails'
gem 'turbo-rails' gem 'turbo-rails'
gem 'tzinfo-data', platforms: %i[windows jruby] gem 'tzinfo-data', platforms: %i[windows jruby]
gem 'acts_as_tenant'
gem 'faker'
gem 'httparty'
gem 'jsonapi-rails' gem 'jsonapi-rails'
gem 'pluck_to_hash'
gem 'rack-cors' gem 'rack-cors'
gem 'react-rails' gem 'react-rails'
gem 'rswag'
gem 'rubytree' gem 'rubytree'
group :development, :test do group :development, :test do
gem 'annotaterb'
gem 'debug', platforms: %i[mri windows] gem 'debug', platforms: %i[mri windows]
gem 'factory_bot_rails' gem 'factory_bot_rails'
gem 'faker' gem 'license_finder'
gem 'pry' gem 'pry'
gem 'rspec-rails', '~> 7.0.0' gem 'rspec-rails', '~> 8.0.0'
gem 'shoulda-matchers', '~> 6.0'
end end
group :development do group :development do
gem 'letter_opener_web'
gem 'rubocop' gem 'rubocop'
gem 'rubocop-factory_bot', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
gem 'rubocop-rspec_rails', require: false
gem 'web-console' gem 'web-console'
end end
gem 'chroma'
gem 'solid_queue', '~> 1.0'
gem 'devise', '~> 4.9'
gem 'wicked_pdf', '~> 2.8'
gem 'rqrcode', '~> 3.1'

View File

@ -1,66 +1,65 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
actioncable (7.2.2) actioncable (8.0.2.1)
actionpack (= 7.2.2) actionpack (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
nio4r (~> 2.0) nio4r (~> 2.0)
websocket-driver (>= 0.6.1) websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6) zeitwerk (~> 2.6)
actionmailbox (7.2.2) actionmailbox (8.0.2.1)
actionpack (= 7.2.2) actionpack (= 8.0.2.1)
activejob (= 7.2.2) activejob (= 8.0.2.1)
activerecord (= 7.2.2) activerecord (= 8.0.2.1)
activestorage (= 7.2.2) activestorage (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
mail (>= 2.8.0) mail (>= 2.8.0)
actionmailer (7.2.2) actionmailer (8.0.2.1)
actionpack (= 7.2.2) actionpack (= 8.0.2.1)
actionview (= 7.2.2) actionview (= 8.0.2.1)
activejob (= 7.2.2) activejob (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
mail (>= 2.8.0) mail (>= 2.8.0)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
actionpack (7.2.2) actionpack (8.0.2.1)
actionview (= 7.2.2) actionview (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
racc rack (>= 2.2.4)
rack (>= 2.2.4, < 3.2)
rack-session (>= 1.0.1) rack-session (>= 1.0.1)
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6) rails-html-sanitizer (~> 1.6)
useragent (~> 0.16) useragent (~> 0.16)
actiontext (7.2.2) actiontext (8.0.2.1)
actionpack (= 7.2.2) actionpack (= 8.0.2.1)
activerecord (= 7.2.2) activerecord (= 8.0.2.1)
activestorage (= 7.2.2) activestorage (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
globalid (>= 0.6.0) globalid (>= 0.6.0)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
actionview (7.2.2) actionview (8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
builder (~> 3.1) builder (~> 3.1)
erubi (~> 1.11) erubi (~> 1.11)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6) rails-html-sanitizer (~> 1.6)
activejob (7.2.2) activejob (8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
globalid (>= 0.3.6) globalid (>= 0.3.6)
activemodel (7.2.2) activemodel (8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
activerecord (7.2.2) activerecord (8.0.2.1)
activemodel (= 7.2.2) activemodel (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
timeout (>= 0.4.0) timeout (>= 0.4.0)
activestorage (7.2.2) activestorage (8.0.2.1)
actionpack (= 7.2.2) actionpack (= 8.0.2.1)
activejob (= 7.2.2) activejob (= 8.0.2.1)
activerecord (= 7.2.2) activerecord (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
marcel (~> 1.0) marcel (~> 1.0)
activesupport (7.2.2) activesupport (8.0.2.1)
base64 base64
benchmark (>= 0.3) benchmark (>= 0.3)
bigdecimal bigdecimal
@ -72,54 +71,86 @@ GEM
minitest (>= 5.1) minitest (>= 5.1)
securerandom (>= 0.3) securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5) tzinfo (~> 2.0, >= 2.0.5)
ast (2.4.2) uri (>= 0.13.1)
acts_as_tenant (1.0.1)
rails (>= 6.0)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
annotaterb (4.19.0)
activerecord (>= 6.0.0)
activesupport (>= 6.0.0)
ast (2.4.3)
babel-source (5.8.35) babel-source (5.8.35)
babel-transpiler (0.7.0) babel-transpiler (0.7.0)
babel-source (>= 4.0, < 6) babel-source (>= 4.0, < 6)
execjs (~> 2.0) execjs (~> 2.0)
base64 (0.2.0) base64 (0.3.0)
benchmark (0.3.0) bcrypt (3.1.20)
bigdecimal (3.1.8) benchmark (0.4.1)
bigdecimal (3.2.3)
bindex (0.8.1) bindex (0.8.1)
bootsnap (1.18.4) bootsnap (1.18.6)
msgpack (~> 1.2) msgpack (~> 1.2)
builder (3.3.0) builder (3.3.0)
childprocess (5.1.0)
logger (~> 1.5)
chroma (0.2.0)
chunky_png (1.4.0)
coderay (1.1.3) coderay (1.1.3)
concurrent-ruby (1.3.4) concurrent-ruby (1.3.5)
connection_pool (2.4.1) connection_pool (2.5.4)
crass (1.0.6) crass (1.0.6)
csv (3.3.0) csv (3.3.5)
date (3.3.4) date (3.4.1)
debug (1.9.2) debug (1.11.0)
irb (~> 1.10) irb (~> 1.10)
reline (>= 0.3.8) reline (>= 0.3.8)
diff-lcs (1.5.1) devise (4.9.4)
drb (2.2.1) bcrypt (~> 3.0)
erubi (1.13.0) orm_adapter (~> 0.1)
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
diff-lcs (1.6.2)
drb (2.2.3)
erb (5.0.2)
erubi (1.13.1)
et-orbi (1.2.11)
tzinfo
execjs (2.9.1) execjs (2.9.1)
factory_bot (6.4.6) factory_bot (6.5.5)
activesupport (>= 5.0.0) activesupport (>= 6.1.0)
factory_bot_rails (6.4.3) factory_bot_rails (6.5.1)
factory_bot (~> 6.4) factory_bot (~> 6.5)
railties (>= 5.0.0) railties (>= 6.1.0)
faker (3.5.1) faker (3.5.2)
i18n (>= 1.8.11, < 2) i18n (>= 1.8.11, < 2)
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4)
globalid (1.2.1) globalid (1.2.1)
activesupport (>= 6.1) activesupport (>= 6.1)
i18n (1.14.6) httparty (0.23.1)
csv
mini_mime (>= 1.0.0)
multi_xml (>= 0.5.2)
i18n (1.14.7)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
importmap-rails (2.0.3) importmap-rails (2.2.2)
actionpack (>= 6.0.0) actionpack (>= 6.0.0)
activesupport (>= 6.0.0) activesupport (>= 6.0.0)
railties (>= 6.0.0) railties (>= 6.0.0)
io-console (0.7.2) io-console (0.8.1)
irb (1.14.1) irb (1.15.2)
pp (>= 0.6.0)
rdoc (>= 4.0.0) rdoc (>= 4.0.0)
reline (>= 0.4.2) reline (>= 0.4.2)
jbuilder (2.13.0) jbuilder (2.13.0)
actionview (>= 5.0.0) actionview (>= 5.0.0)
activesupport (>= 5.0.0) activesupport (>= 5.0.0)
json (2.7.5) json (2.13.2)
json-schema (5.0.1)
addressable (~> 2.8)
jsonapi-deserializable (0.2.0) jsonapi-deserializable (0.2.0)
jsonapi-parser (0.1.1) jsonapi-parser (0.1.1)
jsonapi-rails (0.4.1) jsonapi-rails (0.4.1)
@ -131,9 +162,28 @@ GEM
jsonapi-renderer (0.2.2) jsonapi-renderer (0.2.2)
jsonapi-serializable (0.3.1) jsonapi-serializable (0.3.1)
jsonapi-renderer (~> 0.2.0) jsonapi-renderer (~> 0.2.0)
language_server-protocol (3.17.0.3) language_server-protocol (3.17.0.5)
logger (1.6.1) launchy (3.0.1)
loofah (2.22.0) addressable (~> 2.8)
childprocess (~> 5.0)
letter_opener (1.10.0)
launchy (>= 2.2, < 4)
letter_opener_web (3.0.0)
actionmailer (>= 6.1)
letter_opener (~> 1.9)
railties (>= 6.1)
rexml
license_finder (7.2.1)
bundler
csv (~> 3.2)
rubyzip (>= 1, < 3)
thor (~> 1.2)
tomlrb (>= 1.3, < 2.1)
with_env (= 1.1.0)
xml-simple (~> 1.1.9)
lint_roller (1.1.0)
logger (1.7.0)
loofah (2.24.1)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.12.0) nokogiri (>= 1.12.0)
mail (2.8.1) mail (2.8.1)
@ -142,89 +192,111 @@ GEM
net-pop net-pop
net-smtp net-smtp
marcel (1.0.4) marcel (1.0.4)
method_source (1.0.0) method_source (1.1.0)
mini_mime (1.1.5) mini_mime (1.1.5)
minitest (5.25.1) mini_portile2 (2.8.9)
minitest (5.25.5)
money (6.19.0) money (6.19.0)
i18n (>= 0.6.4, <= 2) i18n (>= 0.6.4, <= 2)
msgpack (1.7.2) msgpack (1.7.5)
net-imap (0.4.17) multi_xml (0.7.1)
bigdecimal (~> 3.1)
net-imap (0.5.10)
date date
net-protocol net-protocol
net-pop (0.1.2) net-pop (0.1.2)
net-protocol net-protocol
net-protocol (0.2.2) net-protocol (0.2.2)
timeout timeout
net-smtp (0.5.0) net-smtp (0.5.1)
net-protocol net-protocol
nio4r (2.7.4) nio4r (2.7.4)
nokogiri (1.16.7-aarch64-linux) nokogiri (1.18.10)
mini_portile2 (~> 2.8.2)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.7-arm-linux) nokogiri (1.18.10-aarch64-linux-gnu)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.7-arm64-darwin) nokogiri (1.18.10-arm-linux-gnu)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.7-x86-linux) nokogiri (1.18.10-arm64-darwin)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.7-x86_64-darwin) nokogiri (1.18.10-x86_64-darwin)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.7-x86_64-linux) nokogiri (1.18.10-x86_64-linux-gnu)
racc (~> 1.4) racc (~> 1.4)
parallel (1.26.3) orm_adapter (0.5.0)
parser (3.3.5.1) ostruct (0.6.2)
parallel (1.27.0)
parser (3.3.9.0)
ast (~> 2.4.1) ast (~> 2.4.1)
racc racc
pg (1.5.9) pg (1.6.2)
pry (0.14.2) pg (1.6.2-aarch64-linux)
pg (1.6.2-arm64-darwin)
pg (1.6.2-x86_64-darwin)
pg (1.6.2-x86_64-linux)
pluck_to_hash (1.0.2)
activerecord (>= 4.0.2)
activesupport (>= 4.0.2)
pp (0.6.2)
prettyprint
prettyprint (0.2.0)
prism (1.5.1)
pry (0.15.2)
coderay (~> 1.1) coderay (~> 1.1)
method_source (~> 1.0) method_source (~> 1.0)
psych (5.1.2) psych (5.2.6)
date
stringio stringio
puma (6.4.3) public_suffix (6.0.1)
puma (6.6.1)
nio4r (~> 2.0) nio4r (~> 2.0)
raabro (1.4.0)
racc (1.8.1) racc (1.8.1)
rack (3.1.8) rack (3.2.1)
rack-cors (2.0.2) rack-cors (3.0.0)
rack (>= 2.0.0) logger
rack-session (2.0.0) rack (>= 3.0.14)
rack-session (2.1.1)
base64 (>= 0.1.0)
rack (>= 3.0.0) rack (>= 3.0.0)
rack-test (2.1.0) rack-test (2.2.0)
rack (>= 1.3) rack (>= 1.3)
rackup (2.1.0) rackup (2.2.1)
rack (>= 3) rack (>= 3)
webrick (~> 1.8) rails (8.0.2.1)
rails (7.2.2) actioncable (= 8.0.2.1)
actioncable (= 7.2.2) actionmailbox (= 8.0.2.1)
actionmailbox (= 7.2.2) actionmailer (= 8.0.2.1)
actionmailer (= 7.2.2) actionpack (= 8.0.2.1)
actionpack (= 7.2.2) actiontext (= 8.0.2.1)
actiontext (= 7.2.2) actionview (= 8.0.2.1)
actionview (= 7.2.2) activejob (= 8.0.2.1)
activejob (= 7.2.2) activemodel (= 8.0.2.1)
activemodel (= 7.2.2) activerecord (= 8.0.2.1)
activerecord (= 7.2.2) activestorage (= 8.0.2.1)
activestorage (= 7.2.2) activesupport (= 8.0.2.1)
activesupport (= 7.2.2)
bundler (>= 1.15.0) bundler (>= 1.15.0)
railties (= 7.2.2) railties (= 8.0.2.1)
rails-dom-testing (2.2.0) rails-dom-testing (2.3.0)
activesupport (>= 5.0.0) activesupport (>= 5.0.0)
minitest minitest
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.6.0) rails-html-sanitizer (1.6.2)
loofah (~> 2.21) loofah (~> 2.21)
nokogiri (~> 1.14) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
railties (7.2.2) railties (8.0.2.1)
actionpack (= 7.2.2) actionpack (= 8.0.2.1)
activesupport (= 7.2.2) activesupport (= 8.0.2.1)
irb (~> 1.13) irb (~> 1.13)
rackup (>= 1.0.0) rackup (>= 1.0.0)
rake (>= 12.2) rake (>= 12.2)
thor (~> 1.0, >= 1.2.2) thor (~> 1.0, >= 1.2.2)
zeitwerk (~> 2.6) zeitwerk (~> 2.6)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.2.1) rake (13.3.0)
rdoc (6.7.0) rdoc (6.14.2)
erb
psych (>= 4.0.0) psych (>= 4.0.0)
react-rails (3.2.1) react-rails (3.2.1)
babel-transpiler (>= 0.7.0) babel-transpiler (>= 0.7.0)
@ -232,46 +304,97 @@ GEM
execjs execjs
railties (>= 3.2) railties (>= 3.2)
tilt tilt
redis (5.3.0) redis (5.4.1)
redis-client (>= 0.22.0) redis-client (>= 0.22.0)
redis-client (0.22.2) redis-client (0.23.2)
connection_pool connection_pool
regexp_parser (2.9.2) regexp_parser (2.11.3)
reline (0.5.10) reline (0.6.2)
io-console (~> 0.5) io-console (~> 0.5)
rspec-core (3.13.2) responders (3.1.1)
actionpack (>= 5.2)
railties (>= 5.2)
rexml (3.3.9)
rqrcode (3.1.0)
chunky_png (~> 1.0)
rqrcode_core (~> 2.0)
rqrcode_core (2.0.0)
rspec-core (3.13.5)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-expectations (3.13.3) rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-mocks (3.13.2) rspec-mocks (3.13.5)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-rails (7.0.1) rspec-rails (8.0.2)
actionpack (>= 7.0) actionpack (>= 7.2)
activesupport (>= 7.0) activesupport (>= 7.2)
railties (>= 7.0) railties (>= 7.2)
rspec-core (~> 3.13) rspec-core (~> 3.13)
rspec-expectations (~> 3.13) rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13) rspec-mocks (~> 3.13)
rspec-support (~> 3.13) rspec-support (~> 3.13)
rspec-support (3.13.1) rspec-support (3.13.5)
rubocop (1.68.0) rswag (2.16.0)
rswag-api (= 2.16.0)
rswag-specs (= 2.16.0)
rswag-ui (= 2.16.0)
rswag-api (2.16.0)
activesupport (>= 5.2, < 8.1)
railties (>= 5.2, < 8.1)
rswag-specs (2.16.0)
activesupport (>= 5.2, < 8.1)
json-schema (>= 2.2, < 6.0)
railties (>= 5.2, < 8.1)
rspec-core (>= 2.14)
rswag-ui (2.16.0)
actionpack (>= 5.2, < 8.1)
railties (>= 5.2, < 8.1)
rubocop (1.80.2)
json (~> 2.3) json (~> 2.3)
language_server-protocol (>= 3.17.0) language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 3.3.0.2) parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.4, < 3.0) regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.32.2, < 2.0) rubocop-ast (>= 1.46.0, < 2.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0) unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.33.0) rubocop-ast (1.46.0)
parser (>= 3.3.1.0) parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-factory_bot (2.27.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rails (2.33.3)
activesupport (>= 4.2.0)
lint_roller (~> 1.1)
rack (>= 1.1)
rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.44.0, < 2.0)
rubocop-rspec (3.6.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec_rails (2.31.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec (~> 3.5)
ruby-progressbar (1.13.0) ruby-progressbar (1.13.0)
rubytree (2.1.0) rubytree (2.1.1)
json (~> 2.0, > 2.3.1) json (~> 2.0, > 2.9)
securerandom (0.3.1) rubyzip (2.3.2)
securerandom (0.4.1)
shoulda-matchers (6.5.0)
activesupport (>= 5.2.0)
solid_queue (1.2.1)
activejob (>= 7.1)
activerecord (>= 7.1)
concurrent-ruby (>= 1.3.1)
fugit (~> 1.11.0)
railties (>= 7.1)
thor (>= 1.3.1)
sprockets (4.2.1) sprockets (4.2.1)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
rack (>= 2.2.4, < 4) rack (>= 2.2.4, < 4)
@ -281,27 +404,37 @@ GEM
sprockets (>= 3.0.0) sprockets (>= 3.0.0)
stimulus-rails (1.3.4) stimulus-rails (1.3.4)
railties (>= 6.0.0) railties (>= 6.0.0)
stringio (3.1.1) stringio (3.1.7)
thor (1.3.2) thor (1.4.0)
tilt (2.4.0) tilt (2.4.0)
timeout (0.4.1) timeout (0.4.3)
turbo-rails (2.0.11) tomlrb (2.0.3)
actionpack (>= 6.0.0) turbo-rails (2.0.16)
railties (>= 6.0.0) actionpack (>= 7.1.0)
railties (>= 7.1.0)
tzinfo (2.0.6) tzinfo (2.0.6)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
unicode-display_width (2.6.0) unicode-display_width (2.6.0)
useragent (0.16.10) uri (1.0.3)
useragent (0.16.11)
warden (1.2.9)
rack (>= 2.0.9)
web-console (4.2.1) web-console (4.2.1)
actionview (>= 6.0.0) actionview (>= 6.0.0)
activemodel (>= 6.0.0) activemodel (>= 6.0.0)
bindex (>= 0.4.0) bindex (>= 0.4.0)
railties (>= 6.0.0) railties (>= 6.0.0)
webrick (1.8.2) websocket-driver (0.7.7)
websocket-driver (0.7.6) base64
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5) websocket-extensions (0.1.5)
zeitwerk (2.7.1) wicked_pdf (2.8.2)
activesupport
ostruct
with_env (1.1.0)
xml-simple (1.1.9)
rexml
zeitwerk (2.7.3)
PLATFORMS PLATFORMS
aarch64-linux aarch64-linux
@ -312,33 +445,222 @@ PLATFORMS
x86_64-linux x86_64-linux
DEPENDENCIES DEPENDENCIES
acts_as_tenant
annotaterb
bootsnap bootsnap
chroma
csv csv
debug debug
devise (~> 4.9)
factory_bot_rails factory_bot_rails
faker faker
httparty
importmap-rails importmap-rails
jbuilder jbuilder
jsonapi-rails jsonapi-rails
letter_opener_web
license_finder
money money
pg (~> 1.1) pg (~> 1.1)
pluck_to_hash
pry pry
puma (>= 5.0) puma (>= 5.0)
rack-cors rack-cors
rails (~> 7.2.0, >= 7.2.1) rails (~> 8.0.0, >= 8.0.0)
react-rails react-rails
redis (>= 4.0.1) redis (>= 4.0.1)
rspec-rails (~> 7.0.0) rqrcode (~> 3.1)
rspec-rails (~> 8.0.0)
rswag
rubocop rubocop
rubocop-factory_bot
rubocop-rails
rubocop-rspec
rubocop-rspec_rails
rubytree rubytree
shoulda-matchers (~> 6.0)
solid_queue (~> 1.0)
sprockets-rails sprockets-rails
stimulus-rails stimulus-rails
turbo-rails turbo-rails
tzinfo-data tzinfo-data
web-console web-console
wicked_pdf (~> 2.8)
CHECKSUMS
actioncable (8.0.2.1) sha256=6f1cb20db39fba28a93569e8d5dab42b2749d7ddd4baebb5bbecd4217e49d6a2
actionmailbox (8.0.2.1) sha256=8ea8c6e31e448961c06fc1d6282775b32aff1c009f232d4564e07e54850a6cad
actionmailer (8.0.2.1) sha256=0de14d8d04541eab130858cb2f0697266be42de1afe1104bc43d7998137ddb9c
actionpack (8.0.2.1) sha256=61e7e11a31dbe5152ca57221788bdca42ef302c4cc53b4c8993d68dce8982b0a
actiontext (8.0.2.1) sha256=0cc4b3b5cfb9d915c6697b05b013dad7f4eaf074d9989700b6a0a55cf620d6b8
actionview (8.0.2.1) sha256=2ea6d20ccb0b7b84a221a940ac06853ce99235e4ecb4947815839c7c5ecbf347
activejob (8.0.2.1) sha256=d6e5f2da07ec8efac13a38af1752416770dc74e95783f7b252506d707aa32b89
activemodel (8.0.2.1) sha256=17bab6cdb86531844113df22f864480a89a276bf0318246e628f99e0ac077ec4
activerecord (8.0.2.1) sha256=a6556e7bdd53f3889d18d2aa3a7ff115fd6c5e1463dd06f97fb88d06b58c6df1
activestorage (8.0.2.1) sha256=43bb3d9e115471e201e6a66813810c1d15b607a321f29d62efdf9d90ffaf76f8
activesupport (8.0.2.1) sha256=0405a76fd1ca989975d9ae00d46a4d3979bdf3817482d846b63affa84bd561c6
acts_as_tenant (1.0.1) sha256=6944e4d64533337938a8817a6b4ff9b11189c9dcc0b1333bb89f3821a4c14c53
addressable (2.8.7) sha256=462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232
annotaterb (4.19.0) sha256=c951df62059b3ac1ae383f4140bf935a140a15b6461f8d9a97d34b38ce2c7208
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
babel-source (5.8.35) sha256=79ef222a9dcb867ac2efa3b0da35b4bcb15a4bfa67b6b2dcbf1e9a29104498d9
babel-transpiler (0.7.0) sha256=4c06f4ad9e8e1cabe94f99e11df2f140bb72aca9ba067dbb49dc14d9b98d1570
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
bcrypt (3.1.20) sha256=8410f8c7b3ed54a3c00cd2456bf13917d695117f033218e2483b2e40b0784099
benchmark (0.4.1) sha256=d4ef40037bba27f03b28013e219b950b82bace296549ec15a78016552f8d2cce
bigdecimal (3.2.3) sha256=ffd11d1ac67a0d3b2f44aec0a6487210b3f813f363dd11f1fcccf5ba00da4e1b
bindex (0.8.1) sha256=7b1ecc9dc539ed8bccfc8cb4d2732046227b09d6f37582ff12e50a5047ceb17e
bootsnap (1.18.6) sha256=0ae2393c1e911e38be0f24e9173e7be570c3650128251bf06240046f84a07d00
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
childprocess (5.1.0) sha256=9a8d484be2fd4096a0e90a0cd3e449a05bc3aa33f8ac9e4d6dcef6ac1455b6ec
chroma (0.2.0) sha256=64bdcd36a4765fbcd45adc64960cc153101300b4918f90ffdd89f4e2eb954b54
chunky_png (1.4.0) sha256=89d5b31b55c0cf4da3cf89a2b4ebc3178d8abe8cbaf116a1dba95668502fdcfe
coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
connection_pool (2.5.4) sha256=e9e1922327416091f3f6542f5f4446c2a20745276b9aa796dd0bb2fd0ea1e70a
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
date (3.4.1) sha256=bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f
debug (1.11.0) sha256=1425db64cfa0130c952684e3dc974985be201dd62899bf4bbe3f8b5d6cf1aef2
devise (4.9.4) sha256=920042fe5e704c548aa4eb65ebdd65980b83ffae67feb32c697206bfd975a7f8
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
erb (5.0.2) sha256=d30f258143d4300fb4ecf430042ac12970c9bb4b33c974a545b8f58c1ec26c0f
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
et-orbi (1.2.11) sha256=d26e868cc21db88280a9ec1a50aa3da5d267eb9b2037ba7b831d6c2731f5df64
execjs (2.9.1) sha256=e8fd066f6df60c8e8fbebc32c6fb356b5212c77374e8416a9019ca4bb154dcfb
factory_bot (6.5.5) sha256=ce59295daee1b4704dab8a2fee6816f513d467c6aa3bc587860767d74a66efbe
factory_bot_rails (6.5.1) sha256=d3cc4851eae4dea8a665ec4a4516895045e710554d2b5ac9e68b94d351bc6d68
faker (3.5.2) sha256=f9a80291b2e3f259801d1dd552f0732fe04dce5d1f74e798365bc0413789c473
fugit (1.11.1) sha256=e89485e7be22226d8e9c6da411664d0660284b4b1c08cacb540f505907869868
globalid (1.2.1) sha256=70bf76711871f843dbba72beb8613229a49429d1866828476f9c9d6ccc327ce9
httparty (0.23.1) sha256=3ac1dd62f2010f6ece551716f5ceec2b2012011d89f1751917ab7f724e966b55
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
importmap-rails (2.2.2) sha256=729f5b1092f832780829ade1d0b46c7e53d91c556f06da7254da2977e93fe614
io-console (0.8.1) sha256=1e15440a6b2f67b6ea496df7c474ed62c860ad11237f29b3bd187f054b925fcb
irb (1.15.2) sha256=222f32952e278da34b58ffe45e8634bf4afc2dc7aa9da23fed67e581aa50fdba
jbuilder (2.13.0) sha256=7200a38a1c0081aa81b7a9757e7a299db75bc58cf1fd45ca7919a91627d227d6
json (2.13.2) sha256=02e1f118d434c6b230a64ffa5c8dee07e3ec96244335c392eaed39e1199dbb68
json-schema (5.0.1) sha256=bef71a82c600a42594911553522e143f7634affc198ed507ef3ded2f920a74a9
jsonapi-deserializable (0.2.0) sha256=5f0ca2d3f8404cce1584a314e8a3753be32a56054c942adfe997b87e92bce147
jsonapi-parser (0.1.1) sha256=9ee0dc031e88fc7548d56fab66f9716d1e1c06f972b529b8c4617bc42a097020
jsonapi-rails (0.4.1) sha256=fa68b927b58f194e8b81f578c0bf18e61575638f45a390f66c832de2e6d179ba
jsonapi-rb (0.5.0) sha256=7922a164278f506c43d56277f6bd0800a0b603cc985f7f63fe7241b2628bd105
jsonapi-renderer (0.2.2) sha256=b5c44b033d61b4abdb6500fa4ab84807ca0b36ea0e59e47a2c3ca7095a6e447b
jsonapi-serializable (0.3.1) sha256=221e657677659d798e268a33ec97a83ec5ea0e4233f931358db84e88056552e9
language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
launchy (3.0.1) sha256=b7fa60bda0197cf57614e271a250a8ca1f6a34ab889a3c73f67ec5d57c8a7f2c
letter_opener (1.10.0) sha256=2ff33f2e3b5c3c26d1959be54b395c086ca6d44826e8bf41a14ff96fdf1bdbb2
letter_opener_web (3.0.0) sha256=3f391efe0e8b9b24becfab5537dfb17a5cf5eb532038f947daab58cb4b749860
license_finder (7.2.1) sha256=179ead19b64b170638b72fd16024233813673ac9d20d5ba75ae0b4444887ef14
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
loofah (2.24.1) sha256=655a30842b70ec476410b347ab1cd2a5b92da46a19044357bbd9f401b009a337
mail (2.8.1) sha256=ec3b9fadcf2b3755c78785cb17bc9a0ca9ee9857108a64b6f5cfc9c0b5bfc9ad
marcel (1.0.4) sha256=0d5649feb64b8f19f3d3468b96c680bae9746335d02194270287868a661516a4
method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
mini_portile2 (2.8.9) sha256=0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289
minitest (5.25.5) sha256=391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756
money (6.19.0) sha256=ec936fa1e42f2783719241ed9fd52725d0efa628f928feea1eb5c37d5de7daf3
msgpack (1.7.5) sha256=ffb04979f51e6406823c03abe50e1da2c825c55a37dee138518cdd09d9d3aea8
multi_xml (0.7.1) sha256=4fce100c68af588ff91b8ba90a0bb3f0466f06c909f21a32f4962059140ba61b
net-imap (0.5.10) sha256=f84d206a296bff48a3a10507567fc38b050d2a40c92ea0d448164f64e60d6205
net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
nio4r (2.7.4) sha256=d95dee68e0bb251b8ff90ac3423a511e3b784124e5db7ff5f4813a220ae73ca9
nokogiri (1.18.10) sha256=d5cc0731008aa3b3a87b361203ea3d19b2069628cb55e46ac7d84a0445e69cc1
nokogiri (1.18.10-aarch64-linux-gnu) sha256=7fb87235d729c74a2be635376d82b1d459230cc17c50300f8e4fcaabc6195344
nokogiri (1.18.10-arm-linux-gnu) sha256=51f4f25ab5d5ba1012d6b16aad96b840a10b067b93f35af6a55a2c104a7ee322
nokogiri (1.18.10-arm64-darwin) sha256=c2b0de30770f50b92c9323fa34a4e1cf5a0af322afcacd239cd66ee1c1b22c85
nokogiri (1.18.10-x86_64-darwin) sha256=536e74bed6db2b5076769cab5e5f5af0cd1dccbbd75f1b3e1fa69d1f5c2d79e2
nokogiri (1.18.10-x86_64-linux-gnu) sha256=ff5ba26ba2dbce5c04b9ea200777fd225061d7a3930548806f31db907e500f72
orm_adapter (0.5.0) sha256=aa5d0be5d540cbb46d3a93e88061f4ece6a25f6e97d6a47122beb84fe595e9b9
ostruct (0.6.2) sha256=6d7302a299e400a2c248d6ce0dad18fc3a5714e8096facc25ffd0c54ee57cfc0
parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
parser (3.3.9.0) sha256=94d6929354b1a6e3e1f89d79d4d302cc8f5aa814431a6c9c7e0623335d7687f2
pg (1.6.2) sha256=58614afd405cc9c2c9e15bffe8432e0d6cfc58b722344ad4a47c73a85189c875
pg (1.6.2-aarch64-linux) sha256=0503c6be5b0ca5ca3aaf91f2ed638f90843313cb81e8e7d7b60ad4bb62c3d131
pg (1.6.2-arm64-darwin) sha256=4d44500b28d5193b26674583d199a6484f80f1f2ea9cf54f7d7d06a1b7e316b6
pg (1.6.2-x86_64-darwin) sha256=c441a55723584e2ae41749bf26024d7ffdfe1841b442308ed50cd6b7fda04115
pg (1.6.2-x86_64-linux) sha256=525f438137f2d1411a1ebcc4208ec35cb526b5a3b285a629355c73208506a8ea
pluck_to_hash (1.0.2) sha256=1599906239716f98262a41493dd7d4cb72e8d83ad3d76d666deacfc5de50a47e
pp (0.6.2) sha256=947ec3120c6f92195f8ee8aa25a7b2c5297bb106d83b41baa02983686577b6ff
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
prism (1.5.1) sha256=b40c1b76ccb9fcccc3d1553967cda6e79fa7274d8bfea0d98b15d27a6d187134
pry (0.15.2) sha256=12d54b8640d3fa29c9211dd4ffb08f3fd8bf7a4fd9b5a73ce5b59c8709385b6b
psych (5.2.6) sha256=814328aa5dcb6d604d32126a20bc1cbcf05521a5b49dbb1a8b30a07e580f316e
public_suffix (6.0.1) sha256=61d44e1cab5cbbbe5b31068481cf16976dd0dc1b6b07bd95617ef8c5e3e00c6f
puma (6.6.1) sha256=b9b56e4a4ea75d1bfa6d9e1972ee2c9f43d0883f011826d914e8e37b3694ea1e
raabro (1.4.0) sha256=d4fa9ff5172391edb92b242eed8be802d1934b1464061ae5e70d80962c5da882
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
rack (3.2.1) sha256=30af3f7e5ec21b0d14d822cf24446048dba5f651b617c7e97405b604f20a9e33
rack-cors (3.0.0) sha256=7b95be61db39606906b61b83bd7203fa802b0ceaaad8fcb2fef39e097bf53f68
rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
rackup (2.2.1) sha256=f737191fd5c5b348b7f0a4412a3b86383f88c43e13b8217b63d4c8d90b9e798d
rails (8.0.2.1) sha256=13ab95615569e74e364384b346b1d83e4795dbde83d9edf584e8768e8049b3ac
rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d
rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
railties (8.0.2.1) sha256=54e40e1771fc2878f572d5a4e076cddb057ba8d4d471f8b7d9bfc61bc1301d4c
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
rake (13.3.0) sha256=96f5092d786ff412c62fde76f793cc0541bd84d2eb579caa529aa8a059934493
rdoc (6.14.2) sha256=9fdd44df130f856ae70cc9a264dfd659b9b40de369b16581f4ab746e42439226
react-rails (3.2.1) sha256=2235db0b240517596b1cb3e26177ab5bc64d3a56579b0415ee242b1691f81f64
redis (5.4.1) sha256=b5e675b57ad22b15c9bcc765d5ac26f60b675408af916d31527af9bd5a81faae
redis-client (0.23.2) sha256=e33bab6682c8155cfef95e6dd296936bb9c2981a89fb578ace27a076fa2836fa
regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
reline (0.6.2) sha256=1dad26a6008872d59c8e05244b119347c9f2ddaf4a53dce97856cd5f30a02846
responders (3.1.1) sha256=92f2a87e09028347368639cfb468f5fefa745cb0dc2377ef060db1cdd79a341a
rexml (3.3.9) sha256=d71875b85299f341edf47d44df0212e7658cbdf35aeb69cefdb63f57af3137c9
rqrcode (3.1.0) sha256=e2d5996375f6e9a013823c289ed575dbea678b8e0388574302c1fac563f098af
rqrcode_core (2.0.0) sha256=1e40b823ab57a96482a417fff5dd5c33645a00cea6ef5d9e342fecc5ef91d9ab
rspec-core (3.13.5) sha256=ab3f682897c6131c67f9a17cfee5022a597f283aebe654d329a565f9937a4fa3
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
rspec-mocks (3.13.5) sha256=e4338a6f285ada9fe56f5893f5457783af8194f5d08884d17a87321d5195ea81
rspec-rails (8.0.2) sha256=113139a53f5d068d4f48d1c29ad5f982013ed9b0daa69d7f7b266eda5d433ace
rspec-support (3.13.5) sha256=add745af535dd14b18f1209ab41ef987fdfad12786176b6a3b3619b9a7279fbf
rswag (2.16.0) sha256=f07ce41548b9bb51464c38bc7b95af22fee84b90f2d1197a515a623906353086
rswag-api (2.16.0) sha256=b653f7bd92e98be18b01ab4525d88950d7b0960e293a99f856b9efcee3ae6074
rswag-specs (2.16.0) sha256=8ba26085c408b0bd2ed21dc8015c80f417c7d34c63720ab7133c2549b5bd2a91
rswag-ui (2.16.0) sha256=a1f49e927dceda92e6e6e7c1000f1e217ee66c565f69e28131dc98b33cd3a04f
rubocop (1.80.2) sha256=6485f30fefcf5c199db3b91e5e253b1ef43f7e564784e2315255809a3dd9abf4
rubocop-ast (1.46.0) sha256=0da7f6ad5b98614f89b74f11873c191059c823eae07d6ffd40a42a3338f2232b
rubocop-factory_bot (2.27.1) sha256=9d744b5916778c1848e5fe6777cc69855bd96548853554ec239ba9961b8573fe
rubocop-rails (2.33.3) sha256=848c011b58c1292f3066246c9eb18abf6ffcfbce28bc57c4ab888bbec79af74b
rubocop-rspec (3.6.0) sha256=c0e4205871776727e54dee9cc91af5fd74578001551ba40e1fe1a1ab4b404479
rubocop-rspec_rails (2.31.0) sha256=775375e18a26a1184a812ef3054b79d218e85601b9ae897f38f8be24dddf1f45
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
rubytree (2.1.1) sha256=4925016356a81730e982f1f8c3b5f8da461f18906c77d238bad4c4ba896abd41
rubyzip (2.3.2) sha256=3f57e3935dc2255c414484fbf8d673b4909d8a6a57007ed754dde39342d2373f
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
shoulda-matchers (6.5.0) sha256=ef6b572b2bed1ac4aba6ab2c5ff345a24b6d055a93a3d1c3bfc86d9d499e3f44
solid_queue (1.2.1) sha256=7976b3690a08080ef63d1b11281f0b77398f7697dbeda0e2c5532682639d4b15
sprockets (4.2.1) sha256=951b13dd2f2fcae840a7184722689a803e0ff9d2702d902bd844b196da773f97
sprockets-rails (3.5.2) sha256=a9e88e6ce9f8c912d349aa5401509165ec42326baf9e942a85de4b76dbc4119e
stimulus-rails (1.3.4) sha256=765676ffa1f33af64ce026d26b48e8ffb2e0b94e0f50e9119e11d6107d67cb06
stringio (3.1.7) sha256=5b78b7cb242a315fb4fca61a8255d62ec438f58da2b90be66048546ade4507fa
thor (1.4.0) sha256=8763e822ccb0f1d7bee88cde131b19a65606657b847cc7b7b4b82e772bcd8a3d
tilt (2.4.0) sha256=df74f29a451daed26591a85e8e0cebb198892cb75b6573394303acda273fba4d
timeout (0.4.3) sha256=9509f079b2b55fe4236d79633bd75e34c1c1e7e3fb4b56cb5fda61f80a0fe30e
tomlrb (2.0.3) sha256=c2736acf24919f793334023a4ff396c0647d93fce702a73c9d348deaa815d4f7
turbo-rails (2.0.16) sha256=d24e1b60f0c575b3549ecda967e5391027143f8220d837ed792c8d48ea0ea38d
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a
uri (1.0.3) sha256=e9f2244608eea2f7bc357d954c65c910ce0399ca5e18a7a29207ac22d8767011
useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
warden (1.2.9) sha256=46684f885d35a69dbb883deabf85a222c8e427a957804719e143005df7a1efd0
web-console (4.2.1) sha256=e7bcf37a10ea2b4ec4281649d1cee461b32232d0a447e82c786e6841fd22fe20
websocket-driver (0.7.7) sha256=056d99f2cd545712cfb1291650fde7478e4f2661dc1db6a0fa3b966231a146b4
websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
wicked_pdf (2.8.2) sha256=648d9b0cec5a34adbc9bbf809731052a78119e2d6d323b9e4aa1383e1d683824
with_env (1.1.0) sha256=50b3e4f0a6cda8f90d8a6bd87a6261f6c381429abafb161c4c69ad4a0cd0b6e4
xml-simple (1.1.9) sha256=d21131e519c86f1a5bc2b6d2d57d46e6998e47f18ed249b25cad86433dbd695d
zeitwerk (2.7.3) sha256=b2e86b4a9b57d26ba68a15230dcc7fe6f040f06831ce64417b0621ad96ba3e85
RUBY VERSION RUBY VERSION
ruby 3.3.5p100 ruby 3.4.3p32
BUNDLED WITH BUNDLED WITH
2.5.17 2.6.1

104
README.md
View File

@ -1,24 +1,102 @@
# README # Libre Wedding Planner
This README would normally document whatever steps are necessary to get the Libre Wedding Planner is Free, Open Source Software that helps organize several aspects of a wedding.
application up and running.
Things you may want to cover: The project is not production-ready yet.
* Ruby version ## Features
* System dependencies The follwing features are either developed or under active development:
* Configuration - Guests management
- Expense management
- Seating chart
* Database creation
* Database initialization ## Next steps
* How to run the test suite Some ideas we would like to implement next:
* Services (job queues, cache servers, search engines, etc.) - Authentication (required to make an instance public)
- Website with wedding information
- Attendance confirmation forms
- Multitenancy
* Deployment instructions # Development setup
Libre Wedding Planner is made of two main pieces:
- The backend (this repo), built with Ruby (on Rails)
- The frontend (repo [here](https://gitea.bustikiller.com/bustikiller/wedding-planner-frontend/)), built with NextJS and React. You will need both to have the service fully working.
Both repositories are expected to live have a common parent directory:
```
projects <or anything else>
|-> wedding-planner
|-> wedding-planner-frontend
```
## Docker compose
Docker compose is the recommended way to run Libre Wedding Planner for development purposes. After downloading both repositories, `cd` to the root of `wedding-planner` and run:
```bash
docker compose up --build
```
Several containers will be started:
- backend: starts a Rails server that will act as an API.
- workers: starts a runner of [solid queue](https://github.com/rails/solid_queue/) that takes .care of async tasks.
- frontend: starts a NextJS application in charge of the frontend.
- nginx: A reverse proxy that the backend and frontend under the same domain, and routes all requests to the upstream services.
- db: A Postgres instance used by the backend service.
The backend service will seed the database with fake data. It's worth noting that the Postgres container does not have a volume, so the application will be seeded every time the container is created.
The backend, frontend and workers have hot-reloading enabled, so changes made to the codebase should be reflected in the application on the next request.
Please, include this in your `/etc/hosts` file:
```
127.0.0.1 libre-wedding-planner.app.localhost
```
Once all containers have started, visit http://libre-wedding-planner.app.localhost/default/dashboard to load the application.
## Multitenancy
LibreWeddingPlanner is designed to manage multiple weddings in a single host. All URLs (in the API and the frontend) are scoped under a slug that is unique per wedding. The slug is made of lowercase letters, numbers, and dashes (-).
The development environment is seeded with a wedding whose slug is `default`.
## Email delivery
In the development environment, real emails will not be sent. You can visit http://libre-wedding-planner.app.localhost/letter_opener/ to get a list of emails generated by the application.
## Testing
Unit tests can be executed with
```
bundle exec rspec
```
## API documentation
Generate the OpenAPI documentation with the command:
```
rake rswag:specs:swaggerize
```
The documentation is available in Swagger UI in http://libre-wedding-planner.app.localhost/api/api-docs/index.html. If testing the API through the UI, you will need to select the second server (which includes the `/api` path), intended for development.
## Contributing
Contributions of all kinds (code, UX/UI, testing, translations, etc.) are welcome. The procedures to contribute are still being defined, but don't hesitate to reach out in case you want to participate.
# License
This project is licensed under the GNU Affero General Public License (AGPL). Check [COPYING.md](./COPYING.md) for additional information.
* ...

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
# Add your own tasks in files placed in lib/tasks ending in .rake, # Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require_relative "config/application" require_relative 'config/application'
Rails.application.load_tasks Rails.application.load_tasks

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module ApplicationCable module ApplicationCable
class Channel < ActionCable::Channel::Base class Channel < ActionCable::Channel::Base

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module ApplicationCable module ApplicationCable
class Connection < ActionCable::Connection::Base class Connection < ActionCable::Connection::Base

View File

@ -0,0 +1,72 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class AffinitiesController < ApplicationController
before_action :set_group, except: :reset
def index
overridden = @group.affinities.each_with_object({}) do |affinity, acc|
acc[affinity.another_group(@group).id] = affinity.discomfort
end
for_each_group do |group_id|
overridden[group_id] || GroupAffinity::NEUTRAL
end
end
def bulk_update
affinities = params.expect(affinities: [%i[group_id affinity]]).map(&:to_h).map do |affinity|
{
group_a_id: @group.id,
group_b_id: affinity[:group_id],
discomfort: GroupAffinity::MAX_DISCOMFORT - affinity[:affinity]
}
end
GroupAffinity.upsert_all(affinities, unique_by: :uindex_group_pair)
render json: {}, status: :ok
rescue ActiveRecord::InvalidForeignKey
render json: { error: 'At least one of the group IDs provided does not exist.' }, status: :bad_request
rescue ActiveRecord::StatementInvalid
render json: { error: 'Invalid group ID or discomfort provided.' }, status: :bad_request
end
def default
hierarchy = AffinityGroupsHierarchy.new
for_each_group do |group_id|
hierarchy.default_discomfort(@group.id, group_id).to_f
end
end
def reset
hierarchy = AffinityGroupsHierarchy.new
affinities = Group.pluck(:id).combination(2).map do |(group_a_id, group_b_id)|
{
group_a_id:,
group_b_id:,
discomfort: hierarchy.default_discomfort(group_a_id, group_b_id).to_f
}
end
GroupAffinity.upsert_all(affinities, unique_by: :uindex_group_pair)
render json: {}, status: :ok
end
private
def for_each_group
Group.where.not(id: @group.id)
.pluck(:id)
.index_with { |group_id| GroupAffinity::MAX_DISCOMFORT - yield(group_id) }
.then { |affinities| render json: affinities }
end
def set_group
@group = Group.find(params[:group_id])
end
end

View File

@ -1,15 +1,68 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class ApplicationController < ActionController::Base class ApplicationController < ActionController::Base
set_current_tenant_through_filter
before_action :set_tenant
before_action :authenticate_user!
after_action :set_csrf_cookie after_action :set_csrf_cookie
skip_before_action :verify_authenticity_token, if: :development_swagger?
rescue_from ActiveRecord::RecordInvalid do |exception|
render json: {
message: 'Record invalid',
errors: exception.record.errors.full_messages
}, status: :unprocessable_entity
end
rescue_from ActionController::ParameterMissing do |exception|
render json: {
message: 'Parameter missing',
errors: [exception.message]
}, status: :bad_request
end
rescue_from ActiveRecord::RecordNotFound do |exception|
render json: {
message: 'Record not found',
errors: [exception.message]
}, status: :not_found
end
private private
def validate_captcha!
Rails.logger.info("Captcha params: #{captcha_params}")
return if LibreCaptcha.new.valid?(id: captcha_params[:id], answer: captcha_params[:answer])
render json: { error: 'Incorrect CAPTCHA solution' }, status: :unprocessable_entity
end
def captcha_params
params.expect(captcha: %i[id answer])
end
def default_url_options(options = {})
options.merge(path_params: { slug: ActsAsTenant.current_tenant&.slug })
end
def set_tenant
set_current_tenant(Wedding.find_by!(slug: params[:slug]))
end
def development_swagger?
Rails.env.test? ||
(Rails.env.development? && request.headers['referer']&.include?('/api-docs/index.html'))
end
def set_csrf_cookie def set_csrf_cookie
cookies["csrf-token"] = { cookies['csrf-token'] = {
value: form_authenticity_token, value: form_authenticity_token,
secure: Rails.env.production?, secure: false,
same_site: :strict, same_site: :strict
} }
end end
end end

View File

@ -0,0 +1,15 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class CaptchaController < ApplicationController
skip_before_action :authenticate_user!
skip_before_action :set_tenant
def create
id = LibreCaptcha.new.id
render json: {
id:,
media_url: media_captcha_index_url(id:)
}, status: :created
end
end

View File

@ -1,7 +1,34 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class ExpensesController < ApplicationController class ExpensesController < ApplicationController
def summary def summary
render json: Expenses::TotalQuery.new.call render json: Expenses::TotalQuery.new.call
end end
def index
render json: Expense.order(pricing_type: :asc, amount: :desc).as_json(only: %i[id name amount pricing_type])
end
def create
Expense.create!(expense_params)
render json: {}, status: :created
end
def update
Expense.find(params[:id]).update!(expense_params)
render json: {}, status: :ok
end
def destroy
Expense.find(params[:id]).destroy!
render json: {}, status: :ok
end
private
def expense_params
params.expect(expense: %i[name amount pricing_type])
end
end end

View File

@ -1,8 +1,46 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class GroupsController < ApplicationController class GroupsController < ApplicationController
def index def index
roots = Group.where(parent_id: nil) query_result = Groups::SummaryQuery.new.call.as_json.map(&:deep_symbolize_keys).map do |group|
render jsonapi: roots, include: [children: [children: [:children]]] {
id: group[:id],
name: group[:name],
icon: group[:icon],
color: group[:color],
parent_id: group[:parent_id],
attendance: group.slice(:total, :considered, :invited, :confirmed, :declined, :tentative)
}
end
render json: query_result
end
def create
group = Group.create!(**group_params, parent:)
render json: group.as_json(only: %i[id name icon color parent_id]), status: :created
end
def update
group = Group.find(params[:id])
group.update!(**group_params, parent:)
render json: group.as_json(only: %i[id name icon color parent_id]), status: :ok
end
def destroy
Group.find(params[:id]).destroy!
render json: {}, status: :ok
end
private
def parent
params[:group][:parent_id].present? ? Group.find(params[:group][:parent_id]) : nil
end
def group_params
params.expect(group: %i[name icon color])
end end
end end

View File

@ -1,32 +1,45 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
require 'csv' require 'csv'
class GuestsController < ApplicationController class GuestsController < ApplicationController
GUEST_PARAMS = { only: %i[id name status], include: { group: { only: %i[id name] } } }.freeze
skip_before_action :authenticate_user!, only: :update
def index def index
@guests = Guest.all.includes(:group) render json: Guest.includes(:group)
.joins(:group) .left_joins(:group)
.order('groups.name' => :asc, first_name: :asc, last_name: :asc) .order('groups.name' => :asc, invitation_id: :asc, name: :asc)
.as_json(GUEST_PARAMS)
render jsonapi: @guests
end end
def import def create
csv = CSV.parse(params[:file].read, headers: true) guest = Guest.create!(guest_params)
ActiveRecord::Base.transaction do render json: guest.as_json(GUEST_PARAMS), status: :created
csv.each do |row|
guest = Guest.create!(first_name: row['name'])
guest.affinity_group_list.add(row['affinity_group'])
guest.save!
end
end end
redirect_to guests_url def update
guest = Guest.find(params[:id])
guest.update!(guest_params)
if !user_signed_in? && guest.saved_change_to_status?
AdminMailer.with(guest_id: guest.id).attendance_change_email.deliver_later
end end
def bulk_update render json: guest.as_json(GUEST_PARAMS), status: :ok
Guest.where(id: params[:guest_ids]).update!(params.require(:properties).permit(:status)) end
def destroy
Guest.find(params[:id]).destroy!
render json: {}, status: :ok render json: {}, status: :ok
end end
private
def guest_params
user_signed_in? ? params.expect(guest: %i[name group_id status]) : params.expect(guest: %i[status])
end
end end

View File

@ -0,0 +1,76 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class InvitationsController < ApplicationController
skip_before_action :authenticate_user!, only: :show
def index
@invitations = Invitation.includes(:guests).all
respond_to do |format|
format.json do
render json: @invitations.as_json(
only: :id,
include: { guests: { only: %i[id name] } }
)
end
format.pdf do
pdf_html = ActionController::Base.new.render_to_string(
template: 'invitations/sheet',
layout: 'pdf',
locals: { invitations: @invitations }
)
pdf = WickedPdf.new.pdf_from_string(pdf_html)
send_data pdf, filename: "invitations_#{Time.current.strftime('%Y%m%d_%H%M%S')}.pdf"
end
end
end
def email
AdminMailer.with(wedding_id: ActsAsTenant.current_tenant.id).invitations_pdf_email.deliver_later
head :ok
end
def sheet; end
def show
invitation = Invitation.includes(:guests).find(params[:id])
if invitation
render json: invitation, only: :id, include: { guests: { only: %i[id name status] } }, status: :ok
else
render json: { error: 'Invitation not found' }, status: :not_found
end
end
def create
invitation = Invitation.create
if invitation.persisted?
render json: invitation, only: :id, status: :created
else
render json: { errors: invitation.errors.full_messages }, status: :unprocessable_entity
end
end
def update
invitation = Invitation.find(params[:id])
if invitation.update(guest_ids: params[:invitation][:guest_ids])
render json: invitation, only: :id, include: { guests: { only: %i[id name] } }, status: :ok
else
render json: { errors: invitation.errors.full_messages }, status: :unprocessable_entity
end
end
def destroy
invitation = Invitation.find(params[:id])
if invitation.destroy
head :no_content
else
render json: { errors: invitation.errors.full_messages }, status: :unprocessable_entity
end
end
end

View File

@ -0,0 +1,44 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class SummaryController < ApplicationController
def index
render json: {
expenses:,
guests:
}
end
private
def guests
guest_summary = Guest.group(:status).count
{
total: guest_summary.except('considered').values.sum,
confirmed: guest_summary['confirmed'].to_i,
declined: guest_summary['declined'].to_i,
tentative: guest_summary['tentative'].to_i,
invited: guest_summary['invited'].to_i
}
end
def expenses
expense_summary = Expenses::TotalQuery.new(wedding: ActsAsTenant.current_tenant).call
{
projected: {
total: expense_summary['total_projected'],
guests: expense_summary['projected_guests']
},
confirmed: {
total: expense_summary['total_confirmed'],
guests: expense_summary['confirmed_guests']
},
status: {
paid: 0
}
}
end
end

View File

@ -1,16 +1,57 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class TablesArrangementsController < ApplicationController class TablesArrangementsController < ApplicationController
def index def index
render json: TablesArrangement.all.order(discomfort: :asc).limit(3).as_json(only: %i[id discomfort]) current_digest = Tables::Distribution.digest(current_tenant)
render json: TablesArrangement
.order(valid: :desc)
.order(discomfort: :asc)
.select(:id, :name, :discomfort, :status, :progress)
.select("digest = '#{current_digest}'::uuid OR discomfort IS NULL as valid")
.limit(20)
.as_json(only: %i[id name discomfort valid status progress])
end end
def show def show
Seat.joins(:guest).where(tables_arrangement_id: params[:id]) Guest.joins(:seats, :group)
.pluck(:table_number, Arel.sql("guests.first_name || ' ' || guests.last_name "), 'guests.id') .where(seats: { tables_arrangement_id: params[:id] })
.group_by(&:first) .select('guests.*', 'groups.color', 'seats.table_number')
.transform_values { |table| table.map { |(_, name, id)| { id:, name: } } } .group_by(&:table_number)
.map { |number, guests| { number:, guests: } } .map { |number, guests| format(number:, guests:) }
.then { |result| render json: result } .then { |result| render json: { id: params[:id], tables: result } }
end
def create
ActiveRecord::Base.transaction do
tables_arrangement = TablesArrangement.create!(status: :not_started)
TableSimulatorJob.perform_later(current_tenant.id, tables_arrangement.id)
end
render json: {}, status: :created
end
private
def format(number:, guests:)
{
number: number,
discomfort: discomfort(guests: guests),
guests: guests.as_json(only: %i[id name color])
}
end
def discomfort(guests:)
table = Tables::Table.new(guests)
table.min_per_table = TableSimulatorJob::MIN_PER_TABLE
table.max_per_table = TableSimulatorJob::MAX_PER_TABLE
calculator = Tables::DiscomfortCalculator.new(table:)
{
discomfort: calculator.calculate,
breakdown: calculator.breakdown
}
end end
end end

View File

@ -0,0 +1,12 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class TokensController < ApplicationController
skip_before_action :authenticate_user!
skip_before_action :set_tenant
def show
head :ok
end
end

View File

@ -0,0 +1,27 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Users
class ConfirmationsController < Devise::ConfirmationsController
clear_respond_to
respond_to :json
def show
super do |resource|
if resource.errors.empty?
respond_to do |format|
format.json { render json: resource, status: :ok }
format.any { redirect_to root_path }
end
else
render json: {
message: 'Record invalid',
errors: resource.errors.full_messages
}, status: :unprocessable_entity
end
return
end
end
end
end

View File

@ -0,0 +1,32 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Users
class RegistrationsController < Devise::RegistrationsController
clear_respond_to
respond_to :json
before_action :validate_captcha!, only: :create
def create
wedding = Wedding.create(slug: params[:slug])
unless wedding.persisted?
render json: { errors: wedding.errors.full_messages }, status: :unprocessable_entity
return
end
ActsAsTenant.with_tenant(wedding) do
super do |user|
wedding.destroy unless user.persisted?
end
end
end
private
def set_tenant
set_current_tenant(nil)
end
end
end

View File

@ -0,0 +1,10 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Users
class SessionsController < Devise::SessionsController
clear_respond_to
respond_to :json
end
end

View File

@ -0,0 +1,25 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class WebsitesController < ApplicationController
skip_before_action :authenticate_user!, only: :show
def show
render json: current_tenant.website.as_json(only: %i[content]) || {}, status: :ok
end
def update
ActiveRecord::Base.transaction do
website = current_tenant.website || current_tenant.create_website
website.update!(website_params)
render json: website.as_json(only: %i[content]), status: :ok
end
end
private
def website_params
params.expect(website: [:content])
end
end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module TreeNodeExtension module TreeNodeExtension
def distance_to_common_ancestor(another_node) def distance_to_common_ancestor(another_node)

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module ApplicationHelper module ApplicationHelper
end end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module ExpensesHelper module ExpensesHelper
end end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module GroupsHelper module GroupsHelper
end end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module GuestsHelper module GuestsHelper
end end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module TablesArrangementsHelper module TablesArrangementsHelper
end end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class ApplicationJob < ActiveJob::Base class ApplicationJob < ActiveJob::Base
# Automatically retry jobs that encountered a deadlock # Automatically retry jobs that encountered a deadlock

View File

@ -0,0 +1,51 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class TableSimulatorJob < ApplicationJob
queue_as :default
MIN_PER_TABLE = 8
MAX_PER_TABLE = 10
def perform(wedding_id, tables_arrangement_id) # rubocop:disable Metrics/MethodLength
Rails.logger.info "Starting table simulation #{tables_arrangement_id} for wedding #{wedding_id}"
ActsAsTenant.with_tenant(Wedding.find(wedding_id)) do
engine = VNS::Engine.new
engine.add_optimization(Tables::Swap)
engine.add_optimization(Tables::Shift)
tables_arrangement = TablesArrangement.find(tables_arrangement_id)
initial_solution = Tables::Distribution.new(
min_per_table: MIN_PER_TABLE,
max_per_table: MAX_PER_TABLE,
tables_arrangement_id:
)
initial_solution.random_distribution(Guest.potential.shuffle)
initial_solution.save!
engine.notify_progress do |current_progress|
tables_arrangement.update_columns(status: :in_progress, progress: current_progress)
end
engine.on_better_solution do |better_solution|
better_solution.save!
tables_arrangement.update_columns(discomfort: better_solution.discomfort) # TODO: remove?
end
engine.initial_solution = initial_solution
engine.target_function(&:discomfort)
best_solution = engine.run
best_solution.save!
tables_arrangement.update_columns(status: :completed)
end
end
end

View File

@ -0,0 +1,45 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class AdminMailer < ApplicationMailer
def attendance_change_email
@guest = Guest.find(params[:guest_id])
ActsAsTenant.with_tenant(@guest.wedding) do
mail(
to: recipients,
subject: I18n.t(
'admin_mailer.attendance_change_email.subject',
name: @guest.name,
status: I18n.t("active_record.attributes.guest/status.#{@guest.status}")
)
)
end
end
def invitations_pdf_email
ActsAsTenant.with_tenant(Wedding.find(params[:wedding_id])) do
invitations = Invitation.includes(:guests).all
pdf_html = ActionController::Base.new.render_to_string(
template: 'invitations/sheet',
layout: 'pdf',
locals: { invitations: }
)
pdf = WickedPdf.new.pdf_from_string(pdf_html)
attachments["invitations_#{Time.current.strftime('%Y%m%d_%H%M%S')}.pdf"] = pdf
mail(
to: recipients,
subject: I18n.t('admin_mailer.invitations_pdf_email.subject')
)
end
end
private
def recipients
ActsAsTenant.current_tenant.users.pluck(:email)
end
end

View File

@ -1,6 +1,18 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class ApplicationMailer < ActionMailer::Base class ApplicationMailer < ActionMailer::Base
default from: "from@example.com" class << self
layout "mailer" private
def default_from
File.read('/run/secrets/smtp_user_name').strip
rescue Errno::ENOENT
'development@example.com'
end
end
default from: default_from
layout 'mailer'
end end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class ApplicationRecord < ActiveRecord::Base class ApplicationRecord < ActiveRecord::Base
primary_abstract_class primary_abstract_class

View File

@ -1,4 +1,34 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: expenses
#
# id :uuid not null, primary key
# amount :decimal(, )
# name :string
# pricing_type :enum default("fixed"), not null
# created_at :datetime not null
# updated_at :datetime not null
# wedding_id :uuid not null
#
# Indexes
#
# index_expenses_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (wedding_id => weddings.id) ON DELETE => cascade
#
class Expense < ApplicationRecord class Expense < ApplicationRecord
acts_as_tenant :wedding
enum :pricing_type,
fixed: 'fixed',
per_person: 'per_person'
validates :name, presence: true
validates :amount, presence: true, numericality: { greater_than: 0 }
validates :pricing_type, presence: true
end end

View File

@ -1,13 +1,77 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: groups
#
# id :uuid not null, primary key
# color :string
# icon :string
# name :string not null
# order :integer default(1), not null
# created_at :datetime not null
# updated_at :datetime not null
# parent_id :uuid
# wedding_id :uuid not null
#
# Indexes
#
# index_groups_on_name (name) UNIQUE
# index_groups_on_parent_id (parent_id)
# index_groups_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (parent_id => groups.id)
# fk_rails_... (wedding_id => weddings.id) ON DELETE => cascade
#
class Group < ApplicationRecord class Group < ApplicationRecord
acts_as_tenant :wedding
validates :name, uniqueness: true validates :name, uniqueness: true
validates :name, :order, presence: true validates :name, :order, presence: true
has_many :children, class_name: 'Group', foreign_key: 'parent_id' has_many :children, class_name: 'Group', foreign_key: 'parent_id', dependent: :nullify, inverse_of: :parent
belongs_to :parent, class_name: 'Group', optional: true belongs_to :parent, class_name: 'Group', optional: true
before_create :set_color
scope :roots, -> { where(parent_id: nil) } scope :roots, -> { where(parent_id: nil) }
has_many :guests has_many :guests, dependent: :nullify
def colorize_children(generation = 1)
children.zip(palette(generation)) do |child, raw_color|
final_color = raw_color.paint
final_color.brighten(60) if final_color.dark?
child.update!(color: final_color)
child.colorize_children(generation + 1)
end
end
def affinities
GroupAffinity.where(group_a_id: id).or(GroupAffinity.where(group_b_id: id))
end
private
def palette(generation)
if generation == 1
color.paint.palette.analogous(size: children.count)
else
color.paint.palette.decreasing_saturation
end
end
def set_color
return if color.present?
new_color = "##{SecureRandom.hex(3)}".paint
new_color = new_color.lighten(30) if new_color.dark?
self.color = new_color
end
end end

View File

@ -0,0 +1,43 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: group_affinities
#
# id :bigint not null, primary key
# discomfort :float not null
# created_at :datetime not null
# updated_at :datetime not null
# group_a_id :uuid not null
# group_b_id :uuid not null
#
# Indexes
#
# index_group_affinities_on_group_a_id (group_a_id)
# index_group_affinities_on_group_b_id (group_b_id)
# uindex_group_pair (LEAST(group_a_id, group_b_id), GREATEST(group_a_id, group_b_id)) UNIQUE
#
# Foreign Keys
#
# fk_rails_... (group_a_id => groups.id)
# fk_rails_... (group_b_id => groups.id)
#
class GroupAffinity < ApplicationRecord
NEUTRAL = 1
MIN_DISCOMFORT = 0
MAX_DISCOMFORT = 2
belongs_to :group_a, class_name: 'Group'
belongs_to :group_b, class_name: 'Group'
validates :discomfort,
numericality: { greater_than_or_equal_to: MIN_DISCOMFORT, less_than_or_equal_to: MAX_DISCOMFORT }
def another_group(group)
return nil if group != group_a && group != group_b
group == group_a ? group_b : group_a
end
end

View File

@ -1,17 +1,49 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: guests
#
# id :uuid not null, primary key
# name :string
# phone :string
# status :integer default("considered")
# created_at :datetime not null
# updated_at :datetime not null
# group_id :uuid
# invitation_id :uuid
# wedding_id :uuid not null
#
# Indexes
#
# index_guests_on_group_id (group_id)
# index_guests_on_invitation_id (invitation_id)
# index_guests_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (group_id => groups.id)
# fk_rails_... (invitation_id => invitations.id)
# fk_rails_... (wedding_id => weddings.id) ON DELETE => cascade
#
class Guest < ApplicationRecord class Guest < ApplicationRecord
belongs_to :group acts_as_tenant :wedding
belongs_to :group, optional: true
belongs_to :invitation, optional: true
enum status: { enum :status, {
considered: 0, considered: 0,
invited: 10, invited: 10,
confirmed: 20, confirmed: 20,
declined: 30, declined: 30,
tentative: 40, tentative: 40
} }, validate: true
def full_name validates :name, presence: true
"#{first_name} #{last_name}"
end scope :potential, -> { where.not(status: %i[declined considered]) }
has_many :seats, dependent: :delete_all
end end

29
app/models/invitation.rb Normal file
View File

@ -0,0 +1,29 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: invitations
#
# id :uuid not null, primary key
# created_at :datetime not null
# updated_at :datetime not null
# wedding_id :uuid not null
#
# Indexes
#
# index_invitations_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (wedding_id => weddings.id) ON DELETE => cascade
#
class Invitation < ApplicationRecord
acts_as_tenant :wedding
has_many :guests, dependent: :nullify
def url
"#{Rails.application.routes.url_helpers.root_url(slug: ActsAsTenant.current_tenant.slug)}/site/invitation/#{id}"
end
end

View File

@ -1,6 +1,33 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: seats
#
# id :uuid not null, primary key
# table_number :integer
# created_at :datetime not null
# updated_at :datetime not null
# guest_id :uuid not null
# tables_arrangement_id :uuid not null
# wedding_id :uuid not null
#
# Indexes
#
# index_seats_on_guest_id (guest_id)
# index_seats_on_tables_arrangement_id (tables_arrangement_id)
# index_seats_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (guest_id => guests.id)
# fk_rails_... (tables_arrangement_id => tables_arrangements.id) ON DELETE => cascade
# fk_rails_... (wedding_id => weddings.id) ON DELETE => cascade
#
class Seat < ApplicationRecord class Seat < ApplicationRecord
acts_as_tenant :wedding
belongs_to :guest belongs_to :guest
belongs_to :table_arrangement belongs_to :tables_arrangement
end end

View File

@ -1,6 +1,39 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: tables_arrangements
#
# id :uuid not null, primary key
# digest :uuid not null
# discomfort :integer
# name :string not null
# progress :float default(0.0), not null
# status :string default("complete"), not null
# created_at :datetime not null
# updated_at :datetime not null
# wedding_id :uuid not null
#
# Indexes
#
# index_tables_arrangements_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (wedding_id => weddings.id) ON DELETE => cascade
#
class TablesArrangement < ApplicationRecord class TablesArrangement < ApplicationRecord
has_many :seats acts_as_tenant :wedding
has_many :seats, dependent: :delete_all
has_many :guests, through: :seats has_many :guests, through: :seats
before_create :assign_name
private
def assign_name
self.name = "#{Faker::Adjective.positive} #{Faker::Creature::Animal.name}".capitalize
end
end end

42
app/models/user.rb Normal file
View File

@ -0,0 +1,42 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: users
#
# id :uuid not null, primary key
# confirmation_sent_at :datetime
# confirmation_token :string
# confirmed_at :datetime
# email :string default(""), not null
# encrypted_password :string default(""), not null
# failed_attempts :integer default(0), not null
# locked_at :datetime
# reset_password_sent_at :datetime
# reset_password_token :string
# unconfirmed_email :string
# unlock_token :string
# created_at :datetime not null
# updated_at :datetime not null
# wedding_id :uuid not null
#
# Indexes
#
# index_users_on_confirmation_token (confirmation_token) UNIQUE
# index_users_on_email (email) UNIQUE
# index_users_on_reset_password_token (reset_password_token) UNIQUE
# index_users_on_unlock_token (unlock_token) UNIQUE
# index_users_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (wedding_id => weddings.id) ON DELETE => cascade
#
class User < ApplicationRecord
acts_as_tenant :wedding
devise :database_authenticatable, :registerable,
:recoverable, :validatable, :confirmable, :lockable
end

25
app/models/website.rb Normal file
View File

@ -0,0 +1,25 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: websites
#
# id :bigint not null, primary key
# content :text
# created_at :datetime not null
# updated_at :datetime not null
# wedding_id :uuid not null
#
# Indexes
#
# index_websites_on_wedding_id (wedding_id)
#
# Foreign Keys
#
# fk_rails_... (wedding_id => weddings.id)
#
class Website < ApplicationRecord
belongs_to :wedding
end

28
app/models/wedding.rb Normal file
View File

@ -0,0 +1,28 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# == Schema Information
#
# Table name: weddings
#
# id :uuid not null, primary key
# slug :string not null
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_weddings_on_slug (slug) UNIQUE
#
class Wedding < ApplicationRecord
SLUG_REGEX = /[a-z\d-]+/
validates :slug, presence: true, uniqueness: true, format: { with: /\A#{SLUG_REGEX}\z/ }
has_many :guests, dependent: :delete_all
has_many :groups, dependent: :delete_all
has_many :invitations, dependent: :delete_all
has_many :users, dependent: :delete_all
has_one :website, dependent: :destroy
end

View File

@ -1,47 +1,49 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Expenses module Expenses
class TotalQuery class TotalQuery
private attr_reader :wedding
def initialize(wedding:)
@wedding = wedding
end
def call def call
ActiveRecord::Base.connection.execute(query).first ActiveRecord::Base.connection.execute(
ActiveRecord::Base.sanitize_sql_array([query, { wedding_id: wedding.id }])
).first
end end
private private
def query def query
<<~SQL <<~SQL.squish
WITH guest_count AS (#{guest_count_per_status}), WITH guest_count AS (#{guest_count_per_status}),
expense_summary AS (#{expense_summary}) expense_summary AS (#{expense_summary})
SELECT expense_summary.fixed, SELECT guest_count.confirmed as confirmed_guests,
expense_summary.fixed_count,
expense_summary.variable,
expense_summary.variable_count,
expense_summary.total_count,
guest_count.confirmed as confirmed_guests,
guest_count.projected as projected_guests, guest_count.projected as projected_guests,
expense_summary.fixed + expense_summary.variable * guest_count.confirmed as total, expense_summary.fixed + expense_summary.variable * guest_count.confirmed as total_confirmed,
expense_summary.fixed + expense_summary.variable * guest_count.projected as max_projected, expense_summary.fixed + expense_summary.variable * guest_count.projected as total_projected
(expense_summary.fixed + expense_summary.variable * guest_count.confirmed) / guest_count.confirmed as per_person
FROM guest_count, expense_summary; FROM guest_count, expense_summary;
SQL SQL
end end
def expense_summary def expense_summary
<<~SQL <<~SQL.squish
SELECT coalesce(sum(amount) filter (where pricing_type = 'fixed'), 0) as fixed, SELECT coalesce(sum(amount) filter (where pricing_type = 'fixed'), 0) as fixed,
coalesce(count(amount) filter (where pricing_type = 'fixed'), 0) as fixed_count, coalesce(sum(amount) filter (where pricing_type = 'per_person'), 0) as variable
coalesce(sum(amount) filter (where pricing_type = 'per_person'), 0) as variable,
coalesce(count(amount) filter (where pricing_type = 'per_person'), 0) as variable_count,
count(*) as total_count
FROM expenses FROM expenses
WHERE wedding_id = :wedding_id
SQL SQL
end end
def guest_count_per_status def guest_count_per_status
<<~SQL <<~SQL.squish
SELECT COALESCE(count(*) filter(where status = #{Guest.statuses["confirmed"]}), 0) as confirmed, SELECT COALESCE(count(*) filter(where status = #{Guest.statuses['confirmed']}), 0) as confirmed,
COALESCE(count(*) filter(where status IN (#{Guest.statuses.values_at("confirmed", "invited", "tentative").join(",")})), 0) as projected COALESCE(count(*) filter(where status IN (#{Guest.statuses.values_at('confirmed', 'invited', 'tentative').join(',')})), 0) as projected
FROM guests FROM guests
WHERE wedding_id = :wedding_id
SQL SQL
end end
end end

View File

@ -0,0 +1,31 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Groups
class SummaryQuery
def call
Group.left_joins(:guests).group(:id).pluck_to_hash(
:id,
:name,
:icon,
:parent_id,
:color,
*count_expressions
)
end
private
def count_expressions
[
Arel.sql('count(*) filter (where status IS NOT NULL) as total'),
Arel.sql('count(*) filter (where status = 0) as considered'),
Arel.sql('count(*) filter (where status = 10) as invited'),
Arel.sql('count(*) filter (where status = 20) as confirmed'),
Arel.sql('count(*) filter (where status = 30) as declined'),
Arel.sql('count(*) filter (where status = 40) as tentative')
]
end
end
end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class SerializableGroup < JSONAPI::Serializable::Resource class SerializableGroup < JSONAPI::Serializable::Resource
type 'group' type 'group'

View File

@ -1,16 +1,14 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class SerializableGuest < JSONAPI::Serializable::Resource class SerializableGuest < JSONAPI::Serializable::Resource
type 'guest' type 'guest'
attributes :id, :email, :group_id, :status attributes :id, :status
attribute :name do attribute :name do
"#{@object.first_name} #{@object.last_name}" @object.name
end
attribute :group_name do
@object.group.name
end end
attribute :status do attribute :status do

View File

@ -1,7 +1,9 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class AffinityGroupsHierarchy < Array class AffinityGroupsHierarchy < Array
include Singleton DEFAULT_DISCOMFORT = 1
def initialize def initialize
super super
@ -12,6 +14,10 @@ class AffinityGroupsHierarchy < Array
hydrate(group) hydrate(group)
end end
discomforts
invitation_counts
freeze
end end
def find(id) def find(id)
@ -33,8 +39,43 @@ class AffinityGroupsHierarchy < Array
@references[id_a].distance_to_common_ancestor(@references[id_b]) @references[id_a].distance_to_common_ancestor(@references[id_b])
end end
def discomfort(id_a, id_b)
return 0 if id_a == id_b
@discomforts[uuid_to_int(id_a) + uuid_to_int(id_b)] || DEFAULT_DISCOMFORT
end
def default_discomfort(id_a, id_b)
return 0 if id_a == id_b
dist = distance(id_a, id_b)
return DEFAULT_DISCOMFORT if dist.nil?
Rational(dist, dist + 1)
end
def guest_count(invitation_id)
@invitation_counts[invitation_id] || 0
end
private private
def invitation_counts
@invitation_counts = Guest.where.not(invitation_id: nil).group(:invitation_id).count
end
def discomforts
@discomforts ||= GroupAffinity.pluck(:group_a_id, :group_b_id,
:discomfort).each_with_object({}) do |(id_a, id_b, discomfort), acc|
acc[uuid_to_int(id_a) + uuid_to_int(id_b)] = discomfort
end
end
def uuid_to_int(uuid)
uuid.gsub('-', '').hex
end
def hydrate(group) def hydrate(group)
group.children.each do |child| group.children.each do |child|
register_child(group.id, child.id) register_child(group.id, child.id)

View File

@ -0,0 +1,20 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class LibreCaptcha
def id
HTTParty.post('http://libre-captcha:8888/v2/captcha',
body: {
input_type: 'text',
level: :hard,
media: 'image/png',
size: '350x100'
}.to_json).then { |raw| JSON.parse(raw)['id'] }
end
def valid?(id:, answer:)
HTTParty.post('http://libre-captcha:8888/v2/answer',
body: { id:, answer: }.to_json).then { |raw| JSON.parse(raw)['result'] == 'True' }
end
end

View File

@ -1,26 +1,60 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Tables module Tables
class DiscomfortCalculator class DiscomfortCalculator
private attr_reader :table private attr_reader :table, :hierarchy
def initialize(table) def initialize(table:, hierarchy: AffinityGroupsHierarchy.new)
@table = table @table = table
@hierarchy = hierarchy
end end
def calculate def calculate
cohesion_penalty breakdown.values.sum
end
def breakdown
@breakdown ||= { table_size_penalty:, cohesion_penalty:, invitations_penalty: }
end end
private private
#
# Calculates the penalty associated with violating the table size constraints. The penalty is
# zero when the limits are honored, and it increases linearly as the number of guests deviates
# from the limits. Overcapacity is penalized more severely than undercapacity.
#
# @return [Number] The penalty associated with violating the table size constraints.
#
def table_size_penalty
case table.size
when 0...table.min_per_table then 5 * (table.min_per_table - table.size)
when table.min_per_table..table.max_per_table then 0
else 5 * (table.size - table.max_per_table)
end
end
def cohesion_penalty def cohesion_penalty
10 * (cohesion_discomfort * 1.0 / table.size)
end
def invitations_penalty
2 * table.map(&:invitation_id)
.tally
.sum { |invitation_id, guests_in_table| hierarchy.guest_count(invitation_id) - guests_in_table }
end
#
# Calculates the discomfort of the table based on the cohesion of the guests. The total discomfort
# is calculated as the sum of the discomfort of each pair of guests. The discomfort of a pair of
# guests is a rational number between 1 (unrelated groups) and 0 (same group).
#
# @return [Number] Total discomfort of the table.
#
def cohesion_discomfort
table.map(&:group_id).tally.to_a.combination(2).sum do |(a, count_a), (b, count_b)| table.map(&:group_id).tally.to_a.combination(2).sum do |(a, count_a), (b, count_b)|
distance = AffinityGroupsHierarchy.instance.distance(a, b) count_a * count_b * hierarchy.discomfort(a, b)
next count_a * count_b if distance.nil?
next 0 if distance.zero?
count_a * count_b * Rational(distance, distance + 1)
end end
end end
end end

View File

@ -1,21 +1,35 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
require_relative '../../extensions/tree_node_extension' require_relative '../../extensions/tree_node_extension'
module Tables module Tables
class Distribution class Distribution
attr_accessor :tables class << self
def digest(wedding)
def initialize(min_per_table:, max_per_table:) Digest::UUID.uuid_v5(wedding.id, wedding.guests.potential.order(:id).pluck(:id).join)
@min_per_table = min_per_table end
@max_per_table = max_per_table
@tables = []
end end
def random_distribution(people) attr_accessor :tables, :min_per_table, :max_per_table, :hierarchy, :tables_arrangement_id
@tables = []
@tables << Table.new(people.slice!(0..rand(@min_per_table..@max_per_table))) while people.any? def initialize(min_per_table:, max_per_table:, tables_arrangement_id:, hierarchy: AffinityGroupsHierarchy.new)
@min_per_table = min_per_table
@max_per_table = max_per_table
@hierarchy = hierarchy
@tables = []
@tables_arrangement_id = tables_arrangement_id
end
def random_distribution(people, random: Random.new)
min_tables = (people.count * 1.0 / @max_per_table).ceil
max_tables = (people.count * 1.0 / @min_per_table).ceil
table_size = random.rand(min_tables..max_tables)
@tables = people.in_groups(table_size, false)
.map { |group| Table.new(group) }
.each { |table| table.min_per_table = @min_per_table }
.each { |table| table.max_per_table = @max_per_table }
end end
def discomfort def discomfort
@ -28,21 +42,24 @@ module Tables
"#{@tables.count} tables, discomfort: #{discomfort}" "#{@tables.count} tables, discomfort: #{discomfort}"
end end
def pretty_print
@tables.map.with_index do |table, i|
"Table #{i + 1} (#{table.count} ppl): (#{local_discomfort(table)}) #{table.map(&:full_name).join(', ')}"
end.join("\n")
end
def deep_dup def deep_dup
self.class.new(min_per_table: @min_per_table, max_per_table: @max_per_table).tap do |new_distribution| self.class.new(
min_per_table: @min_per_table,
max_per_table: @max_per_table,
hierarchy: @hierarchy,
tables_arrangement_id: @tables_arrangement_id
).tap do |new_distribution|
new_distribution.tables = @tables.map(&:dup) new_distribution.tables = @tables.map(&:dup)
end end
end end
def save! def save!
ActiveRecord::Base.transaction do ActiveRecord::Base.transaction do
arrangement = TablesArrangement.create! arrangement = TablesArrangement.find(tables_arrangement_id)
self.tables_arrangement_id = arrangement.id
arrangement.seats.delete_all
records_to_store = [] records_to_store = []
@ -54,14 +71,17 @@ module Tables
Seat.insert_all!(records_to_store) Seat.insert_all!(records_to_store)
arrangement.update!(discomfort:) arrangement.update!(
discomfort:,
digest: self.class.digest(tables.first.first.wedding)
)
end end
end end
private private
def local_discomfort(table) def local_discomfort(table)
table.discomfort ||= DiscomfortCalculator.new(table).calculate table.discomfort ||= DiscomfortCalculator.new(table:, hierarchy:).calculate
end end
end end
end end

View File

@ -0,0 +1,32 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Tables
class Shift
private attr_reader :initial_solution
def initialize(initial_solution)
@initial_solution = initial_solution
end
def each
@initial_solution.tables.permutation(2) do |table_a, table_b|
table_a.dup.each do |person|
original_discomfort_a = table_a.reset
original_discomfort_b = table_b.reset
table_a.delete(person)
table_b << person
yield(@initial_solution)
ensure
table_b.delete(person)
table_a << person
table_a.discomfort = original_discomfort_a
table_b.discomfort = original_discomfort_b
end
end
end
end
end

View File

@ -1,4 +1,6 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Tables module Tables
class Swap class Swap
@ -9,7 +11,7 @@ module Tables
def each def each
@initial_solution.tables.combination(2) do |table_a, table_b| @initial_solution.tables.combination(2) do |table_a, table_b|
table_a.product(table_b).each do |(person_a, person_b)| table_a.to_a.product(table_b.to_a).each do |(person_a, person_b)|
original_discomfort_a = table_a.reset original_discomfort_a = table_a.reset
original_discomfort_b = table_b.reset original_discomfort_b = table_b.reset

View File

@ -1,8 +1,11 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Tables module Tables
class Table < Array class Table < Set
attr_accessor :discomfort attr_accessor :discomfort, :min_per_table, :max_per_table
def initialize(*args) def initialize(*args)
super super
reset reset

View File

@ -0,0 +1,33 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module Tables
class WheelSwap
private attr_reader :initial_solution
def initialize(initial_solution)
@initial_solution = initial_solution
end
def call(size = 1)
Rails.logger.debug { "WheelSwap with size: #{size}" }
new_solution = @initial_solution.deep_dup
selected_guests = []
size.times do
selected_guests += new_solution.tables.map(&:pop)
end
selected_guests.shuffle!
tables = new_solution.tables.cycle
tables.next << selected_guests.pop while selected_guests.any?
new_solution.tables.each(&:reset)
new_solution
end
end
end

View File

@ -1,49 +1,112 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
module VNS module VNS
class Engine class Engine
PERTURBATION_SIZES = [1, 1, 1, 2, 2, 3].freeze
ITERATIONS = 50
class << self
def sequence(elements)
elements = elements.to_a
(elements + elements.reverse).chunk(&:itself).map(&:first)
end
end
def initialize
@perturbations = Set.new
end
def target_function(&function) def target_function(&function)
@target_function = function @target_function = function
end end
def add_optimization(klass)
@optimizations ||= Set.new
@optimizations << klass
end
def add_perturbation(klass) def add_perturbation(klass)
@perturbations ||= Set.new
@perturbations << klass @perturbations << klass
end end
def notify_progress(&block)
@progress_notifier = block
end
def on_better_solution(&block)
@better_solution_notifier = block
end
attr_writer :initial_solution attr_writer :initial_solution
def run def run
raise 'No target function defined' unless @target_function check_preconditions!
raise 'No perturbations defined' unless @perturbations
raise 'No initial solution defined' unless @initial_solution
@best_solution = @initial_solution @current_solution = @initial_solution
@best_score = @target_function.call(@best_solution) @best_score = @target_function.call(@current_solution)
puts "Initial score: #{@best_score.to_f}" run_all_optimizations
@perturbations.each do |perturbation| @progress_notifier&.call(Rational(1, ITERATIONS + 1))
puts "Running perturbation: #{perturbation.name}"
optimize(perturbation.new(@best_solution)) best_solution = @current_solution
(1..ITERATIONS).each do |iteration|
@current_solution = Tables::WheelSwap.new(best_solution).call(PERTURBATION_SIZES.sample)
@best_score = @target_function.call(@current_solution)
Rails.logger.debug { "After perturbation: #{@best_score}" }
run_all_optimizations
@progress_notifier&.call(Rational(iteration + 1, ITERATIONS + 1))
next unless best_solution.discomfort > @current_solution.discomfort
best_solution = @current_solution
@better_solution_notifier&.call(best_solution)
Rails.logger.debug do
"Found better solution after perturbation optimization: #{@current_solution.discomfort}"
end
end end
@best_solution best_solution
end end
private private
def optimize(perturbation) def check_preconditions!
perturbation.each do |alternative_solution| raise 'No target function defined' unless @target_function
raise 'No optimizations defined' unless @optimizations
raise 'No initial solution defined' unless @initial_solution
end
def run_all_optimizations
self.class.sequence(@optimizations).each do |optimization|
optimize(optimization)
Rails.logger.debug { "Finished optimization phase: #{optimization}" }
end
Rails.logger.debug { 'Finished all optimization phases' }
end
def optimize(optimization_klass)
loop do
optimized = false
optimization_klass.new(@current_solution).each do |alternative_solution|
score = @target_function.call(alternative_solution) score = @target_function.call(alternative_solution)
next if score >= @best_score next if score >= @best_score
@best_solution = alternative_solution.deep_dup @current_solution = alternative_solution.deep_dup
@best_score = score @best_score = score
optimized = true
Rails.logger.debug { "[#{optimization_klass}] Found better solution with score: #{score}" }
puts "New lowest score: #{@best_score.to_f}" break
end
return optimize(perturbation.class.new(@best_solution)) return unless optimized
end end
end end
end end

View File

@ -0,0 +1,17 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<p><%= I18n.t('admin_mailer.greeting') %>,</p>
<p>
<%= I18n.t('admin_mailer.attendance_change_email.paragraph_1', name: @guest.name) %>
</p>
<ul>
<li>
<strong><%= I18n.t("active_record.attributes.guest.status") %>:</strong> <%= I18n.t("active_record.attributes.guest/status.#{@guest.status}") %>
</li>
</ul>
<p>
<%= I18n.t("admin_mailer.attendance_change_email.notify_on_updates") %>
</p>

View File

@ -0,0 +1,9 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<%= I18n.t('admin_mailer.greeting') %>,
<%= I18n.t('admin_mailer.attendance_change_email.paragraph_1', name: @guest.name) %>
- <%= I18n.t("active_record.attributes.guest.status") %>: <%= I18n.t("active_record.attributes.guest/status.#{@guest.status}") %>
<%= I18n.t("admin_mailer.attendance_change_email.notify_on_updates") %>

View File

@ -0,0 +1,7 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<p><%= I18n.t('admin_mailer.greeting') %>,</p>
<p>
<%= I18n.t('admin_mailer.invitations_pdf_email.paragraph_1') %>
</p>

View File

@ -0,0 +1,5 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<%= I18n.t('admin_mailer.greeting') %>,
<%= I18n.t('admin_mailer.invitations_pdf_email.paragraph_1') %>

View File

@ -0,0 +1,33 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<% invitations.each_slice(4) do |invitation_group| %>
<table style="width: 100%; border-collapse: separate; border-spacing: 0 20px; margin-bottom: 40px;">
<% invitation_group.each do |invitation| %>
<tr>
<td style="width: 270px; height: 270px; text-align: center; vertical-align: middle; padding: 10px;">
<%= image_tag(RQRCode::QRCode.new(invitation.url).as_png(
bit_depth: 1,
border_modules: 4,
color_mode: ChunkyPNG::COLOR_GRAYSCALE,
color: "black",
file: nil,
fill: "white",
module_px_size: 6,
resize_exactly_to: false,
resize_gte_to: false,
size: 250
).to_data_url)
%>
</td>
<td style="vertical-align: middle; padding: 10px;">
<ul style="margin: 0; padding-left: 20px;">
<% invitation.guests.each do |guest| %>
<%= content_tag(:li, guest.name) %>
<% end %>
</ul>
</td>
</tr>
<% end %>
</table>
<div style="page-break-after: always;"></div>
<% end %>

View File

@ -1,4 +1,4 @@
<%# Copyright (C) 2024 Manuel Bustillo %> <%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>

View File

@ -1,3 +1,3 @@
<%# Copyright (C) 2024 Manuel Bustillo %> <%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<%= yield %> <%= yield %>

View File

@ -0,0 +1,12 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<!doctype html>
<html>
<head>
<meta charset='utf-8' />
</head>
<div id="content">
<%= yield %>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<p>Welcome <%= @email %>!</p>
<p>You can confirm your account email through the link below:</p>
<p><%= link_to 'Confirm my account', confirmation_url(slug: ActsAsTenant.current_tenant&.slug, confirmation_token: @token) %></p>

View File

@ -0,0 +1,9 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<p>Hello <%= @email %>!</p>
<% if @resource.try(:unconfirmed_email?) %>
<p>We're contacting you to notify you that your email is being changed to <%= @resource.unconfirmed_email %>.</p>
<% else %>
<p>We're contacting you to notify you that your email has been changed to <%= @resource.email %>.</p>
<% end %>

View File

@ -0,0 +1,5 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<p>Hello <%= @resource.email %>!</p>
<p>We're contacting you to notify you that your password has been changed.</p>

View File

@ -0,0 +1,10 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<p>Hello <%= @resource.email %>!</p>
<p>Someone has requested a link to change your password. You can do this through the link below.</p>
<p><%= link_to 'Change my password', edit_password_url(slug: ActsAsTenant.current_tenant&.slug, reset_password_token: @token) %></p>
<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>

View File

@ -0,0 +1,9 @@
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
<p>Hello <%= @resource.email %>!</p>
<p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
<p>Click the link below to unlock your account:</p>
<p><%= link_to 'Unlock my account', unlock_url(slug: ActsAsTenant.current_tenant&.slug, unlock_token: @token) %></p>

7
bin/jobs Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env ruby
require_relative "../config/environment"
require "solid_queue/cli"
SolidQueue.logger = ActiveSupport::Logger.new($stdout)
SolidQueue::Cli.start(ARGV)

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
# This file is used by Rack-based servers to start the application. # This file is used by Rack-based servers to start the application.
require_relative "config/environment" require_relative 'config/environment'
run Rails.application run Rails.application
Rails.application.load_server Rails.application.load_server

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
require_relative 'boot' require_relative 'boot'
@ -30,6 +30,9 @@ module WeddingPlanner
# Common ones are `templates`, `generators`, or `middleware`, for example. # Common ones are `templates`, `generators`, or `middleware`, for example.
config.autoload_lib(ignore: %w[assets tasks]) config.autoload_lib(ignore: %w[assets tasks])
# Use a real queuing backend for Active Job (and separate queues per environment).
config.active_job.queue_adapter = :solid_queue
# Configuration for the application, engines, and railties goes here. # Configuration for the application, engines, and railties goes here.
# #
# These settings can be overridden in specific environments using the files # These settings can be overridden in specific environments using the files

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)

View File

@ -83,6 +83,7 @@ test:
# #
production: production:
<<: *default <<: *default
host: db
database: wedding_planner_production database: wedding_planner_production
username: wedding_planner username: wedding_planner
password: <%= ENV["WEDDING_PLANNER_DATABASE_PASSWORD"] %> password: <%= ENV["WEDDING_PLANNER_DATABASE_PASSWORD"] %>

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# Load the Rails application. # Load the Rails application.
require_relative "application" require_relative "application"

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
require "active_support/core_ext/integer/time" require "active_support/core_ext/integer/time"
@ -40,8 +40,10 @@ Rails.application.configure do
# Don't care if the mailer can't send. # Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_caching = false config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { host: 'libre-wedding-planner.app.localhost/api' }
config.action_mailer.delivery_method = :letter_opener_web
config.action_mailer.perform_deliveries = true
# Print deprecation notices to the Rails logger. # Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log config.active_support.deprecation = :log
@ -77,4 +79,5 @@ Rails.application.configure do
config.action_controller.raise_on_missing_callback_actions = true config.action_controller.raise_on_missing_callback_actions = true
config.hosts << "libre-wedding-planner.app.localhost" config.hosts << "libre-wedding-planner.app.localhost"
Rails.application.routes.default_url_options[:host] = "libre-wedding-planner.app.localhost"
end end

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
require "active_support/core_ext/integer/time" require "active_support/core_ext/integer/time"
@ -69,11 +69,23 @@ Rails.application.configure do
# Use a different cache store in production. # Use a different cache store in production.
# config.cache_store = :mem_cache_store # config.cache_store = :mem_cache_store
# Use a real queuing backend for Active Job (and separate queues per environment).
# config.active_job.queue_adapter = :resque
# config.active_job.queue_name_prefix = "wedding_planner_production" # config.active_job.queue_name_prefix = "wedding_planner_production"
config.action_mailer.perform_caching = false config.action_mailer.perform_caching = false
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = begin
{
address: File.read("/run/secrets/smtp_address").strip,
port: File.read("/run/secrets/smtp_port").strip.to_i,
user_name: File.read("/run/secrets/smtp_user_name").strip,
password: File.read("/run/secrets/smtp_password").strip,
authentication: File.read("/run/secrets/smtp_authentication").strip.to_sym,
tls: true
}
rescue Errno::ENOENT
{}
end
# Ignore bad email addresses and do not raise email delivery errors. # Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors.
@ -94,6 +106,10 @@ Rails.application.configure do
# "example.com", # Allow requests from example.com # "example.com", # Allow requests from example.com
# /.*\.example\.com/ # Allow requests from subdomains like `www.example.com` # /.*\.example\.com/ # Allow requests from subdomains like `www.example.com`
# ] # ]
config.hosts << "app.libreweddingplanner.org"
Rails.application.routes.default_url_options[:host] = "app.libreweddingplanner.org"
# Skip DNS rebinding protection for the default health check endpoint. # Skip DNS rebinding protection for the default health check endpoint.
# config.host_authorization = { exclude: ->(request) { request.path == "/up" } } config.host_authorization = { exclude: ->(request) { request.path == "/up" } }
end end

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
require "active_support/core_ext/integer/time" require "active_support/core_ext/integer/time"

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# Pin npm packages by running ./bin/importmap # Pin npm packages by running ./bin/importmap

View File

@ -0,0 +1,9 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
ActsAsTenant.configure do |config|
config.require_tenant = !Rails.env.test?
end
Rails.application.console do
ActsAsTenant.current_tenant = Wedding.first
end

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# Be sure to restart your server when you modify this file. # Be sure to restart your server when you modify this file.

View File

@ -0,0 +1,8 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
Chroma.define_palette :decreasing_saturation do
spin(20).desaturate(40)
spin(-20).desaturate(40)
spin(40).desaturate(40)
spin(-40).desaturate(40)
end

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# Be sure to restart your server when you modify this file. # Be sure to restart your server when you modify this file.

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# config/initializers/cors.rb # config/initializers/cors.rb

View File

@ -0,0 +1,315 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
# Assuming you have not yet modified this file, each configuration option below
# is set to its default value. Note that some are commented out while others
# are not: uncommented lines are intended to protect your configuration from
# breaking changes in upgrades (i.e., in the event that future versions of
# Devise change the default values for those options).
#
# Use this hook to configure devise mailer, warden hooks and so forth.
# Many of these configuration options can be set straight in your model.
Devise.setup do |config|
# The secret key used by Devise. Devise uses this key to generate
# random tokens. Changing this key will render invalid all existing
# confirmation, reset password and unlock tokens in the database.
# Devise will use the `secret_key_base` as its `secret_key`
# by default. You can change it below and use your own secret key.
# config.secret_key = '11353ae8c2bf66dd638d9edff9ec82856aecf74bba6c598273559a8750c902d3439da1b301e40c47578577a971f1058dbf37211c107fba5107c29baa654e9888'
# ==> Controller configuration
# Configure the parent class to the devise controllers.
# config.parent_controller = 'DeviseController'
# ==> Mailer Configuration
# Configure the e-mail address which will be shown in Devise::Mailer,
# note that it will be overwritten if you use your own mailer class
# with default "from" parameter.
config.mailer_sender = 'noreply@libreweddingplanner.org'
# Configure the class responsible to send e-mails.
# config.mailer = 'Devise::Mailer'
# Configure the parent class responsible to send e-mails.
# config.parent_mailer = 'ActionMailer::Base'
# ==> ORM configuration
# Load and configure the ORM. Supports :active_record (default) and
# :mongoid (bson_ext recommended) by default. Other ORMs may be
# available as additional gems.
require 'devise/orm/active_record'
# ==> Configuration for any authentication mechanism
# Configure which keys are used when authenticating a user. The default is
# just :email. You can configure it to use [:username, :subdomain], so for
# authenticating a user, both parameters are required. Remember that those
# parameters are used only when authenticating and not when retrieving from
# session. If you need permissions, you should implement that in a before filter.
# You can also supply a hash where the value is a boolean determining whether
# or not authentication should be aborted when the value is not present.
# config.authentication_keys = [:email]
# Configure parameters from the request object used for authentication. Each entry
# given should be a request method and it will automatically be passed to the
# find_for_authentication method and considered in your model lookup. For instance,
# if you set :request_keys to [:subdomain], :subdomain will be used on authentication.
# The same considerations mentioned for authentication_keys also apply to request_keys.
# config.request_keys = []
# Configure which authentication keys should be case-insensitive.
# These keys will be downcased upon creating or modifying a user and when used
# to authenticate or find a user. Default is :email.
config.case_insensitive_keys = [:email]
# Configure which authentication keys should have whitespace stripped.
# These keys will have whitespace before and after removed upon creating or
# modifying a user and when used to authenticate or find a user. Default is :email.
config.strip_whitespace_keys = [:email]
# Tell if authentication through request.params is enabled. True by default.
# It can be set to an array that will enable params authentication only for the
# given strategies, for example, `config.params_authenticatable = [:database]` will
# enable it only for database (email + password) authentication.
# config.params_authenticatable = true
# Tell if authentication through HTTP Auth is enabled. False by default.
# It can be set to an array that will enable http authentication only for the
# given strategies, for example, `config.http_authenticatable = [:database]` will
# enable it only for database authentication.
# For API-only applications to support authentication "out-of-the-box", you will likely want to
# enable this with :database unless you are using a custom strategy.
# The supported strategies are:
# :database = Support basic authentication with authentication key + password
# config.http_authenticatable = false
# If 401 status code should be returned for AJAX requests. True by default.
# config.http_authenticatable_on_xhr = true
# The realm used in Http Basic Authentication. 'Application' by default.
# config.http_authentication_realm = 'Application'
# It will change confirmation, password recovery and other workflows
# to behave the same regardless if the e-mail provided was right or wrong.
# Does not affect registerable.
config.paranoid = true
# By default Devise will store the user in session. You can skip storage for
# particular strategies by setting this option.
# Notice that if you are skipping storage for all authentication paths, you
# may want to disable generating routes to Devise's sessions controller by
# passing skip: :sessions to `devise_for` in your config/routes.rb
config.skip_session_storage = [:http_auth]
# By default, Devise cleans up the CSRF token on authentication to
# avoid CSRF token fixation attacks. This means that, when using AJAX
# requests for sign in and sign up, you need to get a new CSRF token
# from the server. You can disable this option at your own risk.
# config.clean_up_csrf_token_on_authentication = true
# When false, Devise will not attempt to reload routes on eager load.
# This can reduce the time taken to boot the app but if your application
# requires the Devise mappings to be loaded during boot time the application
# won't boot properly.
# config.reload_routes = true
# ==> Configuration for :database_authenticatable
# For bcrypt, this is the cost for hashing the password and defaults to 12. If
# using other algorithms, it sets how many times you want the password to be hashed.
# The number of stretches used for generating the hashed password are stored
# with the hashed password. This allows you to change the stretches without
# invalidating existing passwords.
#
# Limiting the stretches to just one in testing will increase the performance of
# your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use
# a value less than 10 in other environments. Note that, for bcrypt (the default
# algorithm), the cost increases exponentially with the number of stretches (e.g.
# a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation).
config.stretches = Rails.env.test? ? 1 : 12
# Set up a pepper to generate the hashed password.
# config.pepper = '6f86425fd587f80f4a338a785a6abbbccf8de7322f70fcccf356118d982942c9421819445f9d236a296fa3c431ef5e509be20e6db03f90ec2b42aa78f3a7e526'
# Send a notification to the original email when the user's email is changed.
config.send_email_changed_notification = false
# Send a notification email when the user's password is changed.
config.send_password_change_notification = false
# ==> Configuration for :confirmable
# A period that the user is allowed to access the website even without
# confirming their account. For instance, if set to 2.days, the user will be
# able to access the website for two days without confirming their account,
# access will be blocked just in the third day.
# You can also set it to nil, which will allow the user to access the website
# without confirming their account.
# Default is 0.days, meaning the user cannot access the website without
# confirming their account.
# config.allow_unconfirmed_access_for = 2.days
# A period that the user is allowed to confirm their account before their
# token becomes invalid. For example, if set to 3.days, the user can confirm
# their account within 3 days after the mail was sent, but on the fourth day
# their account can't be confirmed with the token any more.
# Default is nil, meaning there is no restriction on how long a user can take
# before confirming their account.
config.confirm_within = 3.days
# If true, requires any email changes to be confirmed (exactly the same way as
# initial account confirmation) to be applied. Requires additional unconfirmed_email
# db field (see migrations). Until confirmed, new email is stored in
# unconfirmed_email column, and copied to email column on successful confirmation.
config.reconfirmable = true
# Defines which key will be used when confirming an account
# config.confirmation_keys = [:email]
# ==> Configuration for :rememberable
# The time the user will be remembered without asking for credentials again.
# config.remember_for = 2.weeks
# Invalidates all the remember me tokens when the user signs out.
config.expire_all_remember_me_on_sign_out = true
# If true, extends the user's remember period when remembered via cookie.
# config.extend_remember_period = false
# Options to be passed to the created cookie. For instance, you can set
# secure: true in order to force SSL only cookies.
# config.rememberable_options = {}
# ==> Configuration for :validatable
# Range for password length.
config.password_length = 15..128
# Email regex used to validate email formats. It simply asserts that
# one (and only one) @ exists in the given string. This is mainly
# to give user feedback and not to assert the e-mail validity.
config.email_regexp = /\A[^@\s]+@[^@\s]+\z/
# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
# config.timeout_in = 30.minutes
# ==> Configuration for :lockable
# Defines which strategy will be used to lock an account.
# :failed_attempts = Locks an account after a number of failed attempts to sign in.
# :none = No lock strategy. You should handle locking by yourself.
config.lock_strategy = :failed_attempts
# Defines which key will be used when locking and unlocking an account
# config.unlock_keys = [:email]
# Defines which strategy will be used to unlock an account.
# :email = Sends an unlock link to the user email
# :time = Re-enables login after a certain amount of time (see :unlock_in below)
# :both = Enables both strategies
# :none = No unlock strategy. You should handle unlocking by yourself.
config.unlock_strategy = :both
# Number of authentication tries before locking an account if lock_strategy
# is failed attempts.
config.maximum_attempts = 10
# Time interval to unlock the account if :time is enabled as unlock_strategy.
config.unlock_in = 1.hour
# Warn on the last attempt before the account is locked.
# config.last_attempt_warning = true
# ==> Configuration for :recoverable
#
# Defines which key will be used when recovering the password for an account
# config.reset_password_keys = [:email]
# Time interval you can reset your password with a reset password key.
# Don't put a too small interval or your users won't have the time to
# change their passwords.
config.reset_password_within = 6.hours
# When set to false, does not sign a user in automatically after their password is
# reset. Defaults to true, so a user is signed in automatically after a reset.
config.sign_in_after_reset_password = true
# ==> Configuration for :encryptable
# Allow you to use another hashing or encryption algorithm besides bcrypt (default).
# You can use :sha1, :sha512 or algorithms from others authentication tools as
# :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20
# for default behavior) and :restful_authentication_sha1 (then you should set
# stretches to 10, and copy REST_AUTH_SITE_KEY to pepper).
#
# Require the `devise-encryptable` gem when using anything other than bcrypt
# config.encryptor = :sha512
# ==> Scopes configuration
# Turn scoped views on. Before rendering "sessions/new", it will first check for
# "users/sessions/new". It's turned off by default because it's slower if you
# are using only default views.
config.scoped_views = true
# Configure the default scope given to Warden. By default it's the first
# devise role declared in your routes (usually :user).
# config.default_scope = :user
# Set this configuration to false if you want /users/sign_out to sign out
# only the current scope. By default, Devise signs out all scopes.
# config.sign_out_all_scopes = true
# ==> Navigation configuration
# Lists the formats that should be treated as navigational. Formats like
# :html should redirect to the sign in page when the user does not have
# access, but formats like :xml or :json, should return 401.
#
# If you have any extra navigational formats, like :iphone or :mobile, you
# should add them to the navigational formats lists.
#
# The "*/*" below is required to match Internet Explorer requests.
# config.navigational_formats = ['*/*', :html, :turbo_stream]
# The default HTTP method used to sign out a resource. Default is :delete.
config.sign_out_via = :delete
# ==> OmniAuth
# Add a new OmniAuth provider. Check the wiki for more information on setting
# up on your models and hooks.
# config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
# ==> Warden configuration
# If you want to use other strategies, that are not supported by Devise, or
# change the failure app, you can configure them inside the config.warden block.
#
# config.warden do |manager|
# manager.intercept_401 = false
# manager.default_strategies(scope: :user).unshift :some_external_strategy
# end
# ==> Mountable engine configurations
# When using Devise inside an engine, let's call it `MyEngine`, and this engine
# is mountable, there are some extra configurations to be taken into account.
# The following options are available, assuming the engine is mounted as:
#
# mount MyEngine, at: '/my_engine'
#
# The router that invoked `devise_for`, in the example above, would be:
# config.router_name = :my_engine
#
# When using OmniAuth, Devise cannot automatically set OmniAuth path,
# so you need to do it manually. For the users scope, it would be:
# config.omniauth_path_prefix = '/my_engine/users/auth'
# ==> Hotwire/Turbo configuration
# When using Devise with Hotwire/Turbo, the http status for error responses
# and some redirects must match the following. The default in Devise for existing
# apps is `200 OK` and `302 Found` respectively, but new apps are generated with
# these new defaults that match Hotwire/Turbo behavior.
# Note: These might become the new default in future versions of Devise.
config.responder.error_status = :unprocessable_entity
config.responder.redirect_status = :see_other
# ==> Configuration for :registerable
# When set to false, does not sign a user in automatically after their password is
# changed. Defaults to true, so a user is signed in automatically after changing a password.
# config.sign_in_after_change_password = true
end

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# Be sure to restart your server when you modify this file. # Be sure to restart your server when you modify this file.

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# Be sure to restart your server when you modify this file. # Be sure to restart your server when you modify this file.

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# Be sure to restart your server when you modify this file. # Be sure to restart your server when you modify this file.

View File

@ -0,0 +1,16 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
Rswag::Api.configure do |c|
# Specify a root folder where Swagger JSON files are located
# This is used by the Swagger middleware to serve requests for API descriptions
# NOTE: If you're using rswag-specs to generate Swagger, you'll need to ensure
# that it's configured to generate files in the same folder
c.openapi_root = Rails.root.to_s + '/swagger'
# Inject a lambda function to alter the returned Swagger prior to serialization
# The function will have access to the rack env for the current request
# For example, you could leverage this to dynamically assign the "host" property
#
#c.swagger_filter = lambda { |swagger, env| swagger['host'] = env['HTTP_HOST'] }
end

View File

@ -0,0 +1,18 @@
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
Rswag::Ui.configure do |c|
# List the Swagger endpoints that you want to be documented through the
# swagger-ui. The first parameter is the path (absolute or relative to the UI
# host) to the corresponding endpoint and the second is a title that will be
# displayed in the document selector.
# NOTE: If you're using rspec-api to expose Swagger files
# (under openapi_root) as JSON or YAML endpoints, then the list below should
# correspond to the relative paths for those endpoints.
c.openapi_endpoint '/api/api-docs/v1/swagger.yaml', 'API V1 Docs'
# Add Basic Auth in case your API is private
# c.basic_auth_enabled = true
# c.basic_auth_credentials 'username', 'password'
end

View File

@ -1,4 +1,4 @@
# Copyright (C) 2024 Manuel Bustillo # Copyright (C) 2024-2025 LibreWeddingPlanner contributors
class Numeric class Numeric
def to_currency def to_currency
@ -6,8 +6,14 @@ class Numeric
end end
end end
class Array class Set
def to_table def to_table
Tables::Table.new(self) Tables::Table.new(self)
end end
def pop
element = self.to_a.sample
self.delete(element)
element
end
end end

Some files were not shown because too many files have changed in this diff Show More