Compare commits

..

234 commits

Author SHA1 Message Date
gunghogeoduck
abbd12cc96 Changed banner color to Furrest City's
Some checks failed
Specs / linters (push) Has been cancelled
Specs / spec (push) Has been cancelled
Specs / spec-1 (push) Has been cancelled
Specs / spec-2 (push) Has been cancelled
Specs / spec-3 (push) Has been cancelled
Specs / spec-4 (push) Has been cancelled
2026-08-19 18:30:56 -04:00
gunghogeoduck
68c5f5e32b Merged Mythic's changes.
Some checks are pending
Specs / linters (push) Waiting to run
Specs / spec (push) Blocked by required conditions
Specs / spec-1 (push) Blocked by required conditions
Specs / spec-2 (push) Blocked by required conditions
Specs / spec-3 (push) Blocked by required conditions
Specs / spec-4 (push) Blocked by required conditions
2026-08-19 00:29:55 -04:00
gunghogeoduck
ef82ef8941 Updated banner color and initialized time parameters 2026-08-12 23:47:47 -04:00
Henne Vogelsang
e267adf8b7
Merge pull request #3830 from openSUSE/depfu/update/erb-6.0.6
Update erb 6.0.4 → 6.0.6 (patch)
2026-08-11 16:30:59 +02:00
Henne Vogelsang
a5718c7ac9
Merge pull request #3829 from openSUSE/depfu/update/parser-3.3.12.0
Update parser 3.3.11.1 → 3.3.12.0 (patch)
2026-08-11 16:30:36 +02:00
depfu[bot]
4c23286900
Update erb to version 6.0.6 2026-08-11 11:25:31 +00:00
depfu[bot]
9ccd5f0cb4
Update parser to version 3.3.12.0 2026-08-11 11:20:27 +00:00
Henne Vogelsang
892b5bf729
Merge pull request #3828 from openSUSE/depfu/update/mini_magick-5.3.2
Update mini_magick 5.3.1 → 5.3.2 (patch)
2026-08-11 13:19:44 +02:00
Henne Vogelsang
7cd8156c90
Merge pull request #3827 from openSUSE/depfu/update/json-2.21.2
🚨 [security] Update json 2.21.1 → 2.21.2 (patch)
2026-08-11 13:18:48 +02:00
depfu[bot]
c6b66dcce2
Update mini_magick to version 5.3.2 2026-08-11 10:45:26 +00:00
depfu[bot]
d2ce016030
Update json to version 2.21.2 2026-08-11 10:44:57 +00:00
Henne Vogelsang
9fbccfcaea
Merge pull request #3825 from openSUSE/depfu/update/mail-2.9.1
Update mail 2.9.0 → 2.9.1 (patch)
2026-08-11 12:43:34 +02:00
Henne Vogelsang
83b746ef4c
Merge pull request #3826 from openSUSE/depfu/update/language_server-protocol-3.17.0.6
Update language_server-protocol 3.17.0.5 → 3.17.0.6 (patch)
2026-08-11 12:43:15 +02:00
depfu[bot]
18bba1ae8c
Update language_server-protocol to version 3.17.0.6 2026-08-11 10:00:30 +00:00
Henne Vogelsang
a2f13d90b7
Merge pull request #3679 from openSUSE/depfu/update/cancancan-3.6.1
Update cancancan 3.3.0 → 3.6.1 (minor)
2026-08-11 11:56:56 +02:00
depfu[bot]
f2e63bb570
Update mail to version 2.9.1 2026-08-11 09:55:33 +00:00
Henne Vogelsang
ddfb343d75
Merge pull request #3819 from openSUSE/depfu/update/rails-html-sanitizer-1.7.1
🚨 [security] Update rails-html-sanitizer 1.7.0 → 1.7.1 (patch)
2026-08-11 11:54:54 +02:00
depfu[bot]
fc3d09808f
Update cancancan to version 3.6.1 2026-08-11 09:27:35 +00:00
Henne Vogelsang
379886ed84
Merge pull request #3822 from openSUSE/depfu/update/icalendar-2.12.4
Update icalendar 2.12.2 → 2.12.4 (patch)
2026-08-11 11:26:47 +02:00
Henne Vogelsang
b0d261adae
Merge pull request #3814 from openSUSE/depfu/engine/ruby-3.4.10
Update Ruby 3.4.9 → 3.4.10
2026-08-11 11:26:24 +02:00
Henne Vogelsang
47351fb163
Merge pull request #3820 from openSUSE/depfu/update/oauth2-2.0.25
🚨 [security] Update oauth2 2.0.18 → 2.0.25 (patch)
2026-08-11 11:25:51 +02:00
Henne Vogelsang
51cb804410
Merge pull request #3817 from openSUSE/depfu/update/loofah-2.25.2
🚨 [security] Update loofah 2.25.1 → 2.25.2 (patch)
2026-08-11 11:25:26 +02:00
Henne Vogelsang
cbaf7d33b5
Merge pull request #3816 from openSUSE/depfu/update/websocket-driver-0.8.2
🚨 [security] Update websocket-driver 0.8.0 → 0.8.2 (minor)
2026-08-10 16:47:11 +02:00
depfu[bot]
e6988e8418
Update icalendar to version 2.12.4 2026-08-07 14:15:27 +00:00
depfu[bot]
4dbb1bba27
Update oauth2 to version 2.0.25 2026-07-28 18:06:15 +00:00
depfu[bot]
399d174fa9
Update rails-html-sanitizer to version 1.7.1 2026-07-22 00:17:03 +00:00
depfu[bot]
1cd22381fc
Update loofah to version 2.25.2 2026-07-21 16:10:35 +00:00
depfu[bot]
f525469c52
Update websocket-driver to version 0.8.2 2026-07-16 00:06:35 +00:00
depfu[bot]
6aef4883a3
Update Ruby to version 3.4.10 2026-07-08 00:00:18 +00:00
Henne Vogelsang
4b6895f31d
Merge pull request #3811 from openSUSE/depfu/update/concurrent-ruby-1.3.7
🚨 [security] Update concurrent-ruby 1.3.6 → 1.3.7 (patch)
2026-06-23 13:27:36 +02:00
Henne Vogelsang
83148dfea1
Merge pull request #3810 from openSUSE/depfu/update/faraday-2.14.3
🚨 [security] Update faraday 2.14.2 → 2.14.3 (patch)
2026-06-23 13:26:59 +02:00
Henne Vogelsang
d5a056d7cf
Merge pull request #3809 from openSUSE/depfu/update/nokogiri-1.19.4
🚨 [security] Update nokogiri 1.19.3 → 1.19.4 (patch)
2026-06-23 13:26:29 +02:00
depfu[bot]
1346187fa6
Update concurrent-ruby to version 1.3.7 2026-06-19 22:20:35 +00:00
depfu[bot]
70f61787b6
Update faraday to version 2.14.3 2026-06-19 20:12:42 +00:00
depfu[bot]
6341d1e3b3
Update nokogiri to version 1.19.4 2026-06-19 18:15:40 +00:00
Henne Vogelsang
cb5ad735c4
Merge pull request #3803 from RedZapdos123/fix-commercial-auth
Fix: event commercial permissions in non-admin flow
2026-06-18 17:29:24 +02:00
Mridankan Mandal
de4400a01f
Merge branch 'master' into fix-commercial-auth 2026-06-18 00:33:08 +05:30
Mridankan Mandal
4c19375c6a test: drop redundant controller spec
Signed-off-by: Mridankan Mandal <xerontitan90@gmail.com>
2026-06-18 00:24:34 +05:30
Henne Vogelsang
03a8035eb9
Merge pull request #3805 from openSUSE/depfu/update/net-imap-0.6.4.1
🚨 [security] Update net-imap 0.6.4 → 0.6.4.1 (minor)
2026-06-10 15:31:09 +02:00
Henne Vogelsang
00c5740869
Merge pull request #3804 from openSUSE/depfu/update/puma-8.0.2
🚨 [security] Update puma 6.6.1 → 8.0.2 (major)
2026-06-10 15:30:31 +02:00
depfu[bot]
8125ffa818
Update net-imap to version 0.6.4.1 2026-06-09 20:10:16 +00:00
depfu[bot]
75344ae4a0
Update puma to version 8.0.2 2026-06-09 00:10:33 +00:00
Mridankan Mandal
f66eb8393c fix(auth): allow event commercial management
Non-admin proposal flow uses Ability, not AdminAbility, so organizers and CFP users could edit proposals but could not create event commercials.

Closes #3143.

Signed-off-by: Mridankan Mandal <xerontitan90@gmail.com>
2026-05-31 21:23:54 +05:30
Henne Vogelsang
bd149ff255
Merge pull request #3800 from openSUSE/depfu/update/carrierwave-3.1.3
🚨 [security] Update carrierwave 3.1.2 → 3.1.3 (patch)
2026-05-29 13:50:25 +02:00
depfu[bot]
9b5f97c00a
Update carrierwave to version 3.1.3 2026-05-27 02:07:07 +00:00
Henne Vogelsang
c0fe3d9083
Merge pull request #3796 from openSUSE/depfu/update/jwt-3.2.0
🚨 [security] Update jwt 3.1.2 → 3.2.0 (minor)
2026-05-19 15:41:01 +02:00
Henne Vogelsang
a9198a0576
Merge pull request #3795 from openSUSE/depfu/update/faraday-2.14.2
🚨 [security] Update faraday 2.14.1 → 2.14.2 (patch)
2026-05-19 15:40:37 +02:00
depfu[bot]
c6b012868d
Update jwt to version 3.2.0 2026-05-18 18:05:45 +00:00
depfu[bot]
f4230eece1
Update faraday to version 2.14.2 2026-05-18 16:10:14 +00:00
Henne Vogelsang
010169f9b4
Merge pull request #3787 from openSUSE/depfu/update/net-imap-0.6.4
🚨 [security] Update net-imap 0.6.3 → 0.6.4 (minor)
2026-05-18 14:13:06 +02:00
Henne Vogelsang
580943c28d
Merge pull request #3782 from openSUSE/depfu/update/active_model_serializers-0.10.16
Update active_model_serializers 0.10.15 → 0.10.16 (minor)
2026-05-18 14:12:44 +02:00
Henne Vogelsang
0e7eb51f7e
Merge pull request #3789 from openSUSE/depfu/update/devise-5.0.4
🚨 [security] Update devise 5.0.3 → 5.0.4 (patch)
2026-05-18 14:11:54 +02:00
depfu[bot]
0861ca9dbc
Update devise to version 5.0.4 2026-05-08 16:05:28 +00:00
depfu[bot]
dc1ce6318b
Update net-imap to version 0.6.4 2026-05-05 00:05:37 +00:00
depfu[bot]
96f712a1f8
Update active_model_serializers to version 0.10.16 2026-04-17 14:40:12 +00:00
Henne Vogelsang
c8e6fabed1
Merge pull request #3781 from openSUSE/depfu/update/dotenv-rails-3.2.0
Update dotenv-rails 3.1.8 → 3.2.0 (minor)
2026-04-17 16:36:29 +02:00
depfu[bot]
c9a4604fc2
Update dotenv-rails to version 3.2.0 2026-04-17 14:25:12 +00:00
Henne Vogelsang
6289a9cd57
Merge pull request #3780 from openSUSE/depfu/update/recaptcha-5.21.2
Update recaptcha 5.21.1 → 5.21.2 (patch)
2026-04-17 16:24:27 +02:00
depfu[bot]
76509f739d
Update recaptcha to version 5.21.2 2026-04-17 12:05:11 +00:00
Henne Vogelsang
6e74df2b10
Merge pull request #3779 from openSUSE/depfu/update/htmlentities-4.4.2
Update htmlentities 4.3.4 → 4.4.2 (minor)
2026-04-17 13:51:25 +02:00
depfu[bot]
22aa9a33db
Update htmlentities to version 4.4.2 2026-04-09 11:40:12 +00:00
Henne Vogelsang
71679bb95b
Merge pull request #3776 from openSUSE/depfu/update/mail-2.9.0
Update mail 2.8.1 → 2.9.0 (minor)
2026-04-09 13:22:12 +02:00
Henne Vogelsang
c972db79d4
Merge pull request #3775 from openSUSE/depfu/update/jquery-rails-4.6.1
Update jquery-rails 4.4.0 → 4.6.1 (minor)
2026-04-09 13:21:54 +02:00
Henne Vogelsang
45cc3ef1bd
Merge pull request #3774 from openSUSE/depfu/update/acts_as_list-1.2.6
Update acts_as_list 1.0.4 → 1.2.6 (minor)
2026-04-09 13:21:32 +02:00
depfu[bot]
c8b94ce8b7
Update mail to version 2.9.0 2026-04-09 11:10:12 +00:00
depfu[bot]
36d97ac405
Update jquery-rails to version 4.6.1 2026-04-09 11:05:12 +00:00
depfu[bot]
14b636cd85
Update acts_as_list to version 1.2.6 2026-04-09 11:00:14 +00:00
Henne Vogelsang
0df9272151
Merge pull request #3753 from openSUSE/depfu/update/omniauth-google-oauth2-1.2.2
Update omniauth-google-oauth2 1.2.1 → 1.2.2 (patch)
2026-04-09 12:59:43 +02:00
Henne Vogelsang
ce9e49a510
Merge pull request #3772 from openSUSE/depfu/update/json-2.19.3
Update json 2.19.2 → 2.19.3 (patch)
2026-04-09 12:59:15 +02:00
Henne Vogelsang
9d43a47ebb
Merge pull request #3773 from openSUSE/depfu/update/minitest-6.0.3
Update minitest 6.0.2 → 6.0.3 (patch)
2026-04-09 12:59:02 +02:00
depfu[bot]
baaf6f9378
Update minitest to version 6.0.3 2026-04-09 09:15:12 +00:00
Henne Vogelsang
953b712719
Merge pull request #3771 from openSUSE/depfu/update/ffi-1.17.4
Update ffi 1.17.3 → 1.17.4 (patch)
2026-04-09 11:11:12 +02:00
depfu[bot]
57846bf7ee
Update json to version 2.19.3 2026-04-09 09:10:12 +00:00
Henne Vogelsang
db13f563b2
Merge pull request #3770 from openSUSE/depfu/update/next_rails-1.4.8
Update next_rails 1.4.6 → 1.4.8 (patch)
2026-04-09 11:08:54 +02:00
depfu[bot]
ee48f02425
Update ffi to version 1.17.4 2026-04-08 15:05:12 +00:00
depfu[bot]
99d0e2257b
Update next_rails to version 1.4.8 2026-04-08 15:00:14 +00:00
Henne Vogelsang
bd241868a4
Merge pull request #3768 from openSUSE/depfu/update/fastimage-2.4.1
Update fastimage 2.4.0 → 2.4.1 (patch)
2026-04-08 16:59:46 +02:00
Henne Vogelsang
533f09a6dd
Merge pull request #3769 from openSUSE/depfu/update/nokogiri-1.19.2
Update nokogiri 1.19.1 → 1.19.2 (patch)
2026-04-08 16:59:20 +02:00
depfu[bot]
e4d15aa1f7
Update nokogiri to version 1.19.2 2026-04-08 14:50:14 +00:00
depfu[bot]
ba59f4b5c8
Update fastimage to version 2.4.1 2026-04-08 14:45:12 +00:00
Henne Vogelsang
2dde4af593
Merge pull request #3765 from openSUSE/depfu/update/parser-3.3.11.1
Update parser 3.3.10.1 → 3.3.11.1 (patch)
2026-04-08 16:36:26 +02:00
Henne Vogelsang
fb5d37453f
Merge pull request #3766 from openSUSE/depfu/update/addressable-2.9.0
🚨 [security] Update addressable 2.8.8 → 2.9.0 (minor)
2026-04-08 16:36:03 +02:00
Henne Vogelsang
dc6bd8f352
Merge pull request #3767 from openSUSE/depfu/update/rack-session-2.1.2
🚨 [security] Update rack-session 2.1.1 → 2.1.2 (patch)
2026-04-08 16:35:32 +02:00
depfu[bot]
95c81938d0
Update rack-session to version 2.1.2 2026-04-08 02:35:15 +00:00
depfu[bot]
b846b3fca9
Update addressable to version 2.9.0 2026-04-08 02:25:19 +00:00
depfu[bot]
d652179f59
Update parser to version 3.3.11.1 2026-04-03 17:50:20 +00:00
Henne Vogelsang
8ca6e62104
Merge pull request #3761 from openSUSE/depfu/update/icalendar-2.12.2
🚨 [security] Update icalendar 2.11.2 → 2.12.2 (minor)
2026-03-25 12:34:22 +01:00
depfu[bot]
14b022d8c7
Update icalendar to version 2.12.2 2026-03-24 20:05:21 +00:00
Henne Vogelsang
24d018773d
Merge pull request #3759 from openSUSE/depfu/update/bcrypt-3.1.22
🚨 [security] Update bcrypt 3.1.21 → 3.1.22 (patch)
2026-03-23 14:25:30 +01:00
depfu[bot]
70128c8280
Update omniauth-google-oauth2 to version 1.2.2 2026-03-23 13:25:11 +00:00
Henne Vogelsang
b1c7d3619c
Merge pull request #3757 from openSUSE/depfu/update/json-2.19.2
🚨 [security] Update json 2.18.1 → 2.19.2 (minor)
2026-03-23 14:23:35 +01:00
depfu[bot]
91ab8c7814
Update bcrypt to version 3.1.22 2026-03-19 18:06:11 +00:00
depfu[bot]
a4386334ed
Update json to version 2.19.2 2026-03-19 14:05:32 +00:00
Henne Vogelsang
a826113f51
Merge pull request #3756 from openSUSE/depfu/engine/ruby-3.4.9
Update Ruby 3.4.8 → 3.4.9
2026-03-19 12:39:02 +01:00
depfu[bot]
0e94be0774
Update Ruby to version 3.4.9 2026-03-19 00:00:16 +00:00
Henne Vogelsang
9ff37fe106
Merge pull request #3755 from hennevogel/bugfix/3743
Fix parameter generation for activating a schedule
2026-03-18 14:52:23 +01:00
Henne Vogelsang
3494b91f4d
Fix parameter generation for activating a schedule
Also: `@program` is instantiated via `load_and_authorize_resource` already...
2026-03-18 13:11:17 +01:00
Henne Vogelsang
ad92fd4b9b
Merge pull request #3752 from openSUSE/depfu/update/rspec-rails-8.0.4
Update rspec-rails 8.0.2 → 8.0.4 (patch)
2026-03-18 12:41:08 +01:00
Henne Vogelsang
e6875c6c1c
Merge pull request #3750 from openSUSE/depfu/update/devise-5.0.3
🚨 [security] Update devise 4.9.4 → 5.0.3 (major)
2026-03-18 12:40:30 +01:00
Henne Vogelsang
7e5c874d5e
Merge pull request #3749 from hennevogel/bugfix/3747
Cleanup some strong parameters
2026-03-18 12:35:00 +01:00
Henne Vogelsang
76c9a5330e
Fix too loose registration strong parameters 2026-03-18 12:20:20 +01:00
Henne Vogelsang
d6e36f2845
Fix too loose strong parameters in the admin interface
There are some attributes that we don't use and/or that should
not be changeable, even by admins.
2026-03-18 12:20:20 +01:00
Henne Vogelsang
d588fb00da
Fix too loose strong Booth parameters
People should not be able to change the state, conference or timestamps of
booths.
2026-03-18 12:18:10 +01:00
depfu[bot]
bb3868f351
Update rspec-rails to version 8.0.4 2026-03-18 09:45:15 +00:00
depfu[bot]
d69255dbbd
Update devise to version 5.0.3 2026-03-17 18:05:44 +00:00
Henne Vogelsang
cf87cc6280
Remove unused ticket_purchase_params 2026-03-17 15:59:02 +01:00
Henne Vogelsang
bead2ecff7
Merge pull request #3746 from hennevogel/bugfix/connection_pool
Pin connection_pool to <3
2026-03-03 16:41:24 +01:00
Henne Vogelsang
c9e927d4fa
Pin connection_pool to <3
To work around https://github.com/mperham/connection_pool/issues/212
2026-03-03 16:34:52 +01:00
Henne Vogelsang
48748cb466
Merge pull request #3745 from hennevogel/update/delayed_job
Update delayed_job to 4.2.0
2026-03-03 16:25:14 +01:00
Henne Vogelsang
f52b58ec40
Update delayed_job to 4.2.0 2026-03-03 16:17:32 +01:00
Henne Vogelsang
c8d33018e4
Merge pull request #3742 from gunapriya07/fix-code-of-conduct-authorization
Fix: allow all users to view conference code of conduct (#3708)
2026-03-03 15:58:14 +01:00
gunapriya07
8943807c04
Fix: allow all users to view conference code of conduct (#3708) 2026-03-03 15:52:07 +01:00
Henne Vogelsang
44db914089
Merge pull request #3727 from openSUSE/depfu/update/pdf-reader-2.15.1
Update pdf-reader 2.15.0 → 2.15.1 (patch)
2026-02-27 12:01:27 +01:00
Henne Vogelsang
486eb1922a
Merge pull request #3737 from openSUSE/depfu/update/globalid-1.3.0
Update globalid 1.2.1 → 1.3.0 (minor)
2026-02-27 12:00:55 +01:00
depfu[bot]
23d2ee5ced
Update globalid to version 1.3.0 2026-02-19 16:55:11 +00:00
Henne Vogelsang
891842c8c3
Merge pull request #3732 from openSUSE/depfu/update/unicode-display_width-3.2.0
Update unicode-display_width 3.1.5 → 3.2.0 (minor)
2026-02-19 17:46:29 +01:00
Henne Vogelsang
c894c80e14
Merge pull request #3731 from openSUSE/depfu/update/hashdiff-1.2.1
Update hashdiff 1.0.1 → 1.2.1 (minor)
2026-02-19 17:46:00 +01:00
Henne Vogelsang
df0d263a46
Merge pull request #3733 from openSUSE/depfu/update/recaptcha-5.21.1
Update recaptcha 5.20.1 → 5.21.1 (minor)
2026-02-19 17:45:33 +01:00
Henne Vogelsang
1b7f8569a6
Merge pull request #3736 from openSUSE/depfu/update/nokogiri-1.19.1
🚨 [security] Update nokogiri 1.19.0 → 1.19.1 (patch)
2026-02-19 17:44:38 +01:00
Henne Vogelsang
b9b2a75f70
Merge pull request #3735 from openSUSE/depfu/update/rack-3.2.5
🚨 [security] Update rack 3.2.4 → 3.2.5 (patch)
2026-02-19 17:44:11 +01:00
depfu[bot]
a7a022e68e
Update nokogiri to version 1.19.1 2026-02-19 00:30:23 +00:00
depfu[bot]
2f575a52fc
Update rack to version 3.2.5 2026-02-17 18:15:30 +00:00
depfu[bot]
ba53909d3a
Update recaptcha to version 5.21.1 2026-02-10 17:40:16 +00:00
depfu[bot]
6e84eca20a
Update unicode-display_width to version 3.2.0 2026-02-10 17:35:13 +00:00
depfu[bot]
db7fdc4964
Update hashdiff to version 1.2.1 2026-02-10 17:30:13 +00:00
Henne Vogelsang
5cb70ba0bb
Merge pull request #3728 from openSUSE/depfu/update/ffi-1.17.3
Update ffi 1.17.2 → 1.17.3 (patch)
2026-02-10 18:29:39 +01:00
Henne Vogelsang
25f73b54cb
Merge pull request #3729 from openSUSE/depfu/update/bcrypt-3.1.21
Update bcrypt 3.1.20 → 3.1.21 (patch)
2026-02-10 18:29:20 +01:00
Henne Vogelsang
b500f5722b
Merge pull request #3730 from openSUSE/depfu/update/parser-3.3.10.1
Update parser 3.3.9.0 → 3.3.10.1 (patch)
2026-02-10 18:28:57 +01:00
depfu[bot]
81e0c4254e
Update parser to version 3.3.10.1 2026-02-10 12:30:12 +00:00
depfu[bot]
c380cdf97e
Update bcrypt to version 3.1.21 2026-02-10 12:25:12 +00:00
depfu[bot]
bb0181f651
Update ffi to version 1.17.3 2026-02-10 12:20:12 +00:00
depfu[bot]
08fcfee6e9
Update pdf-reader to version 2.15.1 2026-02-10 12:15:11 +00:00
Henne Vogelsang
b67265f8ce
Merge pull request #3726 from openSUSE/depfu/update/addressable-2.8.8
Update addressable 2.8.7 → 2.8.8 (patch)
2026-02-10 12:52:45 +01:00
Henne Vogelsang
12cc7527cd
Merge pull request #3725 from openSUSE/depfu/update/oauth2-2.0.18
🚨 [security] Update oauth2 2.0.12 → 2.0.18 (patch)
2026-02-10 12:52:26 +01:00
depfu[bot]
17b7330e28
Update addressable to version 2.8.8 2026-02-10 11:45:12 +00:00
depfu[bot]
5b04b8892d
Update oauth2 to version 2.0.18 2026-02-10 11:40:14 +00:00
Henne Vogelsang
4ba2eee42e
Merge pull request #3717 from openSUSE/depfu/update/rspec-core-3.13.6
Update rspec-core 3.13.5 → 3.13.6 (patch)
2026-02-10 12:37:57 +01:00
Henne Vogelsang
ae34a6d625
Merge pull request #3719 from openSUSE/depfu/update/nio4r-2.7.5
Update nio4r 2.7.4 → 2.7.5 (patch)
2026-02-10 12:37:39 +01:00
Henne Vogelsang
b96263be5f
Merge pull request #3720 from openSUSE/depfu/update/rspec-mocks-3.13.7
Update rspec-mocks 3.13.5 → 3.13.7 (patch)
2026-02-10 12:36:14 +01:00
Henne Vogelsang
89c5861b79
Merge pull request #3724 from openSUSE/depfu/update/faraday-2.14.0
Update faraday 2.13.4 → 2.14.0 (minor)
2026-02-10 12:32:02 +01:00
depfu[bot]
f564fc6d65
Update faraday to version 2.14.0 2026-02-09 22:20:12 +00:00
depfu[bot]
ff391e296a
Update rspec-mocks to version 3.13.7 2026-02-05 15:05:13 +00:00
depfu[bot]
5a7a5c21dd
Update nio4r to version 2.7.5 2026-02-05 14:55:12 +00:00
Henne Vogelsang
901070f7e5
Merge pull request #3712 from openSUSE/depfu/update/factory_bot_rails-6.5.1
🚨 [security] Update factory_bot_rails 6.5.0 → 6.5.1 (patch)
2026-02-05 15:50:52 +01:00
depfu[bot]
13601bf818
Update factory_bot_rails to version 6.5.1 2026-02-05 14:05:58 +00:00
Henne Vogelsang
5c054c8618
Merge pull request #3716 from openSUSE/depfu/update/chartkick-5.2.1
Update chartkick 5.2.0 → 5.2.1 (patch)
2026-02-05 15:05:14 +01:00
depfu[bot]
743834af83
Update rspec-core to version 3.13.6 2026-02-05 13:45:12 +00:00
depfu[bot]
e7335430e7
Update chartkick to version 5.2.1 2026-02-05 13:40:15 +00:00
Henne Vogelsang
e911c4285c
Merge pull request #3713 from openSUSE/depfu/update/rexml-3.4.4
Update rexml 3.4.2 → 3.4.4 (patch)
2026-02-05 14:37:50 +01:00
Henne Vogelsang
3c7cb02a2e
Merge pull request #3714 from openSUSE/depfu/update/regexp_parser-2.11.3
Update regexp_parser 2.11.2 → 2.11.3 (patch)
2026-02-05 14:37:07 +01:00
Henne Vogelsang
c407d2f4a7
Merge pull request #3715 from openSUSE/depfu/update/omniauth-2.1.4
Update omniauth 2.1.3 → 2.1.4 (patch)
2026-02-05 14:36:42 +01:00
depfu[bot]
b0c53a8e9d
Update omniauth to version 2.1.4 2026-02-05 11:20:12 +00:00
depfu[bot]
00787f45df
Update regexp_parser to version 2.11.3 2026-02-05 11:15:13 +00:00
depfu[bot]
f3f2887ba8
Update rexml to version 3.4.4 2026-02-05 11:10:13 +00:00
Henne Vogelsang
173d12ad91
Merge pull request #3681 from openSUSE/depfu/update/mina-1.2.5
Update mina 1.2.4 → 1.2.5 (patch)
2026-02-05 11:59:47 +01:00
Henne Vogelsang
972cbdfa69
Merge pull request #3697 from openSUSE/depfu/update/factory_bot-6.5.6
Update factory_bot 6.5.4 → 6.5.6 (patch)
2026-02-05 11:58:46 +01:00
Henne Vogelsang
77568760e6
Merge pull request #3707 from openSUSE/depfu/update/version_gem-1.1.9
Update version_gem 1.1.8 → 1.1.9 (patch)
2026-02-05 11:58:21 +01:00
Henne Vogelsang
14836a04a8
Merge pull request #3711 from openSUSE/depfu/update/rspec-support-3.13.7
Update rspec-support 3.13.4 → 3.13.7 (patch)
2026-02-05 11:57:35 +01:00
depfu[bot]
ae30f6ec23
Update rspec-support to version 3.13.7 2026-02-04 22:45:14 +00:00
depfu[bot]
e13485d14e
Update version_gem to version 1.1.9 2026-01-07 12:45:11 +00:00
Henne Vogelsang
e17acb7ea5
Merge pull request #3704 from openSUSE/depfu/update/uri-1.1.1
🚨 [security] Update uri 1.0.3 → 1.1.1 (minor)
2026-01-07 13:37:41 +01:00
Henne Vogelsang
01adc1cce0
Merge pull request #3706 from openSUSE/depfu/update/pg-1.6.3
Update pg 1.6.1 → 1.6.3 (patch)
2026-01-07 13:37:20 +01:00
Henne Vogelsang
35e667375c
Merge pull request #3701 from openSUSE/depfu/engine/ruby-3.4.8
Update Ruby 3.4.7 → 3.4.8
2026-01-07 13:36:37 +01:00
depfu[bot]
8fd68a525f
Update pg to version 1.6.3 2026-01-05 21:45:22 +00:00
depfu[bot]
4fc8726c41
Update uri to version 1.1.1 2025-12-30 22:15:11 +00:00
depfu[bot]
0f7f610aba
Update Ruby to version 3.4.8 2025-12-25 00:00:21 +00:00
Henne Vogelsang
44502ea5fa
Merge pull request #3694 from openSUSE/depfu/engine/ruby-3.4.7
Update Ruby 3.4.5 → 3.4.7
2025-11-21 13:25:24 +01:00
Stella Rouzi
d9c76e1a8d
Merge pull request #3699 from chennes/chennesFixAreaTypo
Fix typo in venue form help text
2025-11-14 08:35:46 +02:00
Stella Rouzi
3f6938d0ee
Merge branch 'master' into chennesFixAreaTypo 2025-11-13 13:39:09 +02:00
Chris Hennes
e703d1dcf4
Fix typo in venue form help text 2025-11-05 16:17:49 -06:00
depfu[bot]
2083fde297
Update factory_bot to version 6.5.6 2025-10-31 21:45:14 +00:00
Henne Vogelsang
c2238b9025
Merge pull request #3695 from luzpaz/typos
Fix various typos
2025-10-15 13:41:22 +02:00
luzpaz
7d9739349b Fix various typos
Fixes user-facing and non-user-facing typos

Found via `codespell -S "./vendor" -L ontext,rememberable,ridiculus,varius`
2025-10-15 11:15:47 +00:00
depfu[bot]
fe8b4b71e4
Update Ruby to version 3.4.7 2025-10-15 00:00:22 +00:00
Henne Vogelsang
688a8e3561
Merge pull request #3692 from chennes/patch-1
Fix typo in edit track header
2025-10-13 15:37:41 +02:00
Henne Vogelsang
9dd52fddf5
Merge pull request #3691 from openSUSE/depfu/update/rack-3.1.18
🚨 [security] Update rack 3.1.17 → 3.1.18 (patch)
2025-10-13 13:32:32 +02:00
Chris Hennes
8d3808e1bb
Fix typo in edit track header 2025-10-12 21:31:57 -05:00
depfu[bot]
5e34a09983
Update rack to version 3.1.18 2025-10-10 18:25:36 +00:00
Henne Vogelsang
58f4746ace
Merge pull request #3690 from openSUSE/depfu/update/rack-3.1.17
🚨 [security] Update rack 3.1.16 → 3.1.17 (patch)
2025-10-08 16:11:32 +02:00
depfu[bot]
69e00aae8e
Update rack to version 3.1.17 2025-10-07 18:39:12 +00:00
Henne Vogelsang
cb767c8e77
Merge pull request #3683 from hennevogel/bugfix/demo
Tell people when the next demo data reset is
2025-09-05 12:14:46 +02:00
Henne Vogelsang
0aa688dfd8
Tell people when the next demo data reset is 2025-09-05 12:08:42 +02:00
depfu[bot]
6445e5c340
Update mina to version 1.2.5 2025-09-04 21:40:12 +00:00
Henne Vogelsang
4ba2a241ec
Merge pull request #3678 from openSUSE/depfu/update/net-imap-0.5.10
Update net-imap 0.5.9 → 0.5.10 (minor)
2025-09-04 22:41:54 +02:00
Henne Vogelsang
768f42a0b3
Merge pull request #3677 from hennevogel/bugfix/demo
Adapt demo description to new setup
2025-09-04 22:23:42 +02:00
Henne Vogelsang
19d28def75
Adapt demo description to new setup 2025-09-04 22:17:49 +02:00
depfu[bot]
e98cce5294
Update net-imap to version 0.5.10 2025-09-04 20:16:38 +00:00
Henne Vogelsang
e67184cfac
Merge pull request #3676 from hennevogel/bugfix/docker-production
Adapt to osem/base:latest using openSUSE Leap 15.6
2025-09-04 21:20:57 +02:00
Henne Vogelsang
93662dc489
Adapt Dockerfile.productiono to openSUSE Leap 15.6
- No need to manually install bundler anymore
- bundle to vendor/bundle
- build nokogiri against system libraries
- expose the port foreman is using
- serve static files
2025-09-04 18:09:50 +02:00
Henne Vogelsang
eca537daf7
Merge pull request #3675 from hennevogel/doc/drop-heroku-deploy
Remove heroku/railway configuration
2025-09-04 18:08:56 +02:00
Henne Vogelsang
270cd76e45
Remove heroku/railway configuration
No one here uses this anymore so no one maintains it.
2025-09-04 14:01:25 +02:00
Henne Vogelsang
7439fb4dfb
Merge pull request #3673 from openSUSE/depfu/update/simplecov-cobertura-3.1.0
Update simplecov-cobertura 3.0.0 → 3.1.0 (minor)
2025-09-04 13:46:49 +02:00
depfu[bot]
0540401c71
Update simplecov-cobertura to version 3.1.0 2025-09-03 01:45:40 +00:00
Henne Vogelsang
60cb627275
Merge pull request #3671 from openSUSE/depfu/update/ruby-vips-2.2.5
Update ruby-vips 2.2.4 → 2.2.5 (patch)
2025-08-27 15:24:25 +02:00
depfu[bot]
1ab2b3b276
Update ruby-vips to version 2.2.5 2025-08-27 13:16:00 +00:00
Henne Vogelsang
6072110906
Merge pull request #3670 from openSUSE/depfu/update/mini_magick-5.3.1
Update mini_magick 5.3.0 → 5.3.1 (patch)
2025-08-27 10:58:25 +02:00
depfu[bot]
9d4cf0799e
Update mini_magick to version 5.3.1 2025-08-26 20:16:22 +00:00
Henne Vogelsang
677044b490
Merge pull request #3667 from openSUSE/depfu/update/caxlsx-4.3.0
Update caxlsx 4.2.0 → 4.3.0 (minor)
2025-08-26 16:41:11 +02:00
Henne Vogelsang
14578a80fd
Merge pull request #3664 from openSUSE/depfu/update/haml_lint-0.66.0
Update haml_lint 0.65.1 → 0.66.0 (major)
2025-08-26 16:40:36 +02:00
Henne Vogelsang
b63afc4630
Merge pull request #3662 from openSUSE/depfu/update/rubocop-rails-2.33.3
Update rubocop-rails 2.33.1 → 2.33.3 (patch)
2025-08-26 16:40:16 +02:00
Henne Vogelsang
ce2ee2a925
Merge pull request #3661 from openSUSE/depfu/update/json-schema-6.0.0
Update json-schema 2.8.1 → 6.0.0 (major)
2025-08-26 16:39:55 +02:00
depfu[bot]
ff140c1969
Update caxlsx to version 4.3.0 2025-08-23 07:15:48 +00:00
depfu[bot]
d45e6797cf
Update haml_lint to version 0.66.0 2025-08-21 00:46:05 +00:00
Henne Vogelsang
499f007810
Merge pull request #3663 from openSUSE/depfu/update/haml-rails-2.1.0
Update haml-rails 2.0.1 → 2.1.0 (minor)
2025-08-20 11:44:00 +02:00
depfu[bot]
0af86f55c3
Update haml-rails to version 2.1.0 2025-08-20 09:32:18 +00:00
depfu[bot]
2756a9e84b
Update rubocop-rails to version 2.33.3 2025-08-20 09:29:36 +00:00
depfu[bot]
762809b031
Update json-schema to version 6.0.0 2025-08-19 13:45:59 +00:00
Henne Vogelsang
6e276b2787
Merge pull request #3657 from openSUSE/depfu/update/haml_lint-0.65.1
Update haml_lint 0.37.1 → 0.65.1 (major)
2025-08-14 17:28:27 +02:00
Henne Vogelsang
3d2e03a091
Merge pull request #3658 from openSUSE/depfu/update/rspec-activemodel-mocks-1.3.0
Update rspec-activemodel-mocks 1.1.0 → 1.3.0 (minor)
2025-08-14 17:20:26 +02:00
depfu[bot]
d8faa3afc3 Update haml_lint to version 0.65.1 2025-08-14 17:20:09 +02:00
depfu[bot]
6668f90910
Update rspec-activemodel-mocks to version 1.3.0 2025-08-14 10:16:04 +00:00
Henne Vogelsang
dd9dede062
Merge pull request #3596 from hennevogel/feature/ticket-reg-export
Put the ticket token into the registration export
2025-08-14 11:58:09 +02:00
Henne Vogelsang
aaff07e48b Put the ticket token into the registration export 2025-08-14 11:44:26 +02:00
Henne Vogelsang
9a398da9c8
Merge pull request #3656 from openSUSE/depfu/update/archive-zip-0.13.1
Update archive-zip 0.12.0 → 0.13.1 (major)
2025-08-14 11:42:56 +02:00
Henne Vogelsang
e8ea0f1c25
Merge pull request #3652 from openSUSE/depfu/update/rqrcode_core-2.0.0
Update rqrcode_core 1.1.0 → 2.0.0 (major)
2025-08-14 11:42:26 +02:00
Henne Vogelsang
3e5871a8ab
Merge pull request #3655 from openSUSE/depfu/update/afm-1.0.0
Update afm 0.2.2 → 1.0.0 (major)
2025-08-14 11:41:37 +02:00
Henne Vogelsang
1aeb87854c
Merge pull request #3654 from openSUSE/depfu/update/io-like-0.4.0
Update io-like 0.3.1 → 0.4.0 (major)
2025-08-14 11:41:04 +02:00
Henne Vogelsang
86781095cd
Merge pull request #3653 from openSUSE/depfu/update/rqrcode-3.1.0
Update rqrcode 2.0.0 → 3.1.0 (major)
2025-08-14 11:40:35 +02:00
depfu[bot]
3c7ec664c1
Update archive-zip to version 0.13.1 2025-08-13 15:50:30 +00:00
depfu[bot]
3266406626
Update afm to version 1.0.0 2025-08-13 15:45:59 +00:00
depfu[bot]
3351030c84
Update io-like to version 0.4.0 2025-08-13 15:41:08 +00:00
depfu[bot]
ebf972a69b
Update rqrcode to version 3.1.0 2025-08-13 15:35:37 +00:00
depfu[bot]
d0cb4d01f9
Update rqrcode_core to version 2.0.0 2025-08-13 15:30:26 +00:00
Henne Vogelsang
9725ada314
Merge pull request #3651 from openSUSE/depfu/update/byebug-12.0.0
Update byebug 11.1.3 → 12.0.0 (major)
2025-08-13 17:27:33 +02:00
Henne Vogelsang
49c4832100
Merge pull request #3650 from openSUSE/depfu/update/temple-0.10.4
Update temple 0.8.2 → 0.10.4 (major)
2025-08-13 17:27:13 +02:00
Henne Vogelsang
84cde8f7b1
Merge pull request #3649 from openSUSE/depfu/update/recaptcha-5.20.1
Update recaptcha 5.8.1 → 5.20.1 (minor)
2025-08-13 17:26:50 +02:00
Henne Vogelsang
89eb6af498
Merge pull request #3648 from openSUSE/depfu/update/tilt-2.6.1
Update tilt 2.0.10 → 2.6.1 (minor)
2025-08-13 17:26:20 +02:00
Henne Vogelsang
8d1fd67a8e
Merge pull request #3645 from openSUSE/depfu/update/matrix-0.4.3
Update matrix 0.4.2 → 0.4.3 (minor)
2025-08-13 17:26:03 +02:00
Henne Vogelsang
c9e863a2de
Merge pull request #3643 from openSUSE/depfu/update/chartkick-5.2.0
Update chartkick 4.1.3 → 5.2.0 (major)
2025-08-13 17:25:38 +02:00
depfu[bot]
59270e0691
Update byebug to version 12.0.0 2025-08-13 15:20:38 +00:00
depfu[bot]
378ba175d5
Update recaptcha to version 5.20.1 2025-08-13 15:10:54 +00:00
depfu[bot]
8336f0cce5
Update matrix to version 0.4.3 2025-08-13 15:10:02 +00:00
depfu[bot]
c5cbf38639
Update chartkick to version 5.2.0 2025-08-13 15:08:31 +00:00
depfu[bot]
97cc0b3d6a
Update tilt to version 2.6.1 2025-08-13 15:07:23 +00:00
76 changed files with 352 additions and 353 deletions

View file

@ -1 +1 @@
3.4.5 3.4.10

View file

@ -1,20 +1,28 @@
FROM registry.opensuse.org/opensuse/infrastructure/dale/containers/osem/base:latest FROM registry.opensuse.org/opensuse/infrastructure/dale/containers/osem/base:latest
EXPOSE 5000
ENV RAILS_ENV=production ENV RAILS_ENV=production
ENV RAILS_SERVE_STATIC_FILES=true
# Add our files # Add our files
COPY --chown=1000:1000 . /osem/ COPY --chown=1000:1000 . /osem/
# Install bundler & foreman # Install foreman
RUN gem install bundler -v "$(grep -A 1 "BUNDLED WITH" /osem/Gemfile.lock | tail -n 1)"; \ RUN gem install foreman
gem install foreman
USER osem USER osem
WORKDIR /osem/ WORKDIR /osem/
RUN rm -rf /osem/public/system/sponsors; mkdir -p /osem/public/system/sponsors; \
rm -rf /osem/public/assets; mkdir -p /osem/public/assets; \
rm -rf /osem/log; mkdir -p /osem/public/assets
# Install our bundle # Install our bundle
RUN bundle config set --local without 'test development' RUN bundle config set --local without 'test development'; \
RUN bundle install --jobs=3 --retry=3 bundle config set --local path 'vendor/bundle'; \
bundle config build.nokogiri --use-system-libraries; \
bundle install --jobs=4 --retry=3
# Generate assets # Generate assets
RUN bundle exec rake assets:precompile RUN bundle exec rake assets:precompile

View file

@ -183,6 +183,8 @@ gem 'sprockets-rails'
# for multiple speakers select on proposal/event forms # for multiple speakers select on proposal/event forms
gem 'selectize-rails' gem 'selectize-rails'
# Pin to solve https://github.com/mperham/connection_pool/issues/212
gem "connection_pool", "< 3"
# memcached binary connector # memcached binary connector
gem 'dalli' gem 'dalli'
@ -193,7 +195,7 @@ gem 'icalendar'
gem 'lograge' gem 'lograge'
group :development do group :development do
# for static code analisys # for static code analysis
gem 'rubocop', require: false gem 'rubocop', require: false
gem 'rubocop-rspec', require: false gem 'rubocop-rspec', require: false
gem 'rubocop-rails', require: false gem 'rubocop-rails', require: false

View file

@ -2,71 +2,73 @@ GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
Ascii85 (2.0.1) Ascii85 (2.0.1)
actioncable (7.2.2.1) actioncable (7.2.3)
actionpack (= 7.2.2.1) actionpack (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
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.1) actionmailbox (7.2.3)
actionpack (= 7.2.2.1) actionpack (= 7.2.3)
activejob (= 7.2.2.1) activejob (= 7.2.3)
activerecord (= 7.2.2.1) activerecord (= 7.2.3)
activestorage (= 7.2.2.1) activestorage (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
mail (>= 2.8.0) mail (>= 2.8.0)
actionmailer (7.2.2.1) actionmailer (7.2.3)
actionpack (= 7.2.2.1) actionpack (= 7.2.3)
actionview (= 7.2.2.1) actionview (= 7.2.3)
activejob (= 7.2.2.1) activejob (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
mail (>= 2.8.0) mail (>= 2.8.0)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
actionpack (7.2.2.1) actionpack (7.2.3)
actionview (= 7.2.2.1) actionview (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
cgi
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
racc racc
rack (>= 2.2.4, < 3.2) rack (>= 2.2.4, < 3.3)
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.1) actiontext (7.2.3)
actionpack (= 7.2.2.1) actionpack (= 7.2.3)
activerecord (= 7.2.2.1) activerecord (= 7.2.3)
activestorage (= 7.2.2.1) activestorage (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
globalid (>= 0.6.0) globalid (>= 0.6.0)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
actionview (7.2.2.1) actionview (7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
builder (~> 3.1) builder (~> 3.1)
cgi
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)
active_model_serializers (0.10.15) active_model_serializers (0.10.16)
actionpack (>= 4.1) actionpack (>= 4.1)
activemodel (>= 4.1) activemodel (>= 4.1)
case_transform (>= 0.2) case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3) jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (7.2.2.1) activejob (7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
globalid (>= 0.3.6) globalid (>= 0.3.6)
activemodel (7.2.2.1) activemodel (7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
activerecord (7.2.2.1) activerecord (7.2.3)
activemodel (= 7.2.2.1) activemodel (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
timeout (>= 0.4.0) timeout (>= 0.4.0)
activestorage (7.2.2.1) activestorage (7.2.3)
actionpack (= 7.2.2.1) actionpack (= 7.2.3)
activejob (= 7.2.2.1) activejob (= 7.2.3)
activerecord (= 7.2.2.1) activerecord (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
marcel (~> 1.0) marcel (~> 1.0)
activesupport (7.2.2.1) activesupport (7.2.3)
base64 base64
benchmark (>= 0.3) benchmark (>= 0.3)
bigdecimal bigdecimal
@ -82,32 +84,37 @@ GEM
activerecord (>= 3.0) activerecord (>= 3.0)
activesupport (>= 3.0) activesupport (>= 3.0)
awesome_nested_set (>= 2.0) awesome_nested_set (>= 2.0)
acts_as_list (1.0.4) acts_as_list (1.2.6)
activerecord (>= 4.2) activerecord (>= 6.1)
addressable (2.8.7) activesupport (>= 6.1)
public_suffix (>= 2.0.2, < 7.0) addressable (2.9.0)
afm (0.2.2) public_suffix (>= 2.0.2, < 8.0)
afm (1.0.0)
ajax-datatables-rails (1.3.1) ajax-datatables-rails (1.3.1)
zeitwerk zeitwerk
archive-zip (0.12.0) anonymous_loader (0.1.3)
io-like (~> 0.3.0) version_gem (~> 1.1, >= 1.1.14)
archive-zip (0.13.1)
io-like (~> 0.4.0)
ast (2.4.3) ast (2.4.3)
auth-sanitizer (0.2.3)
version_gem (~> 1.1, >= 1.1.14)
autoprefixer-rails (10.3.1.0) autoprefixer-rails (10.3.1.0)
execjs (~> 2) execjs (~> 2)
awesome_nested_set (3.8.0) awesome_nested_set (3.8.0)
activerecord (>= 4.0.0, < 8.1) activerecord (>= 4.0.0, < 8.1)
base64 (0.3.0) base64 (0.3.0)
bcrypt (3.1.20) bcrypt (3.1.22)
benchmark (0.4.1) benchmark (0.5.0)
bigdecimal (3.2.2) bigdecimal (3.3.1)
bindex (0.8.1) bindex (0.8.1)
bootstrap-sass (3.4.1) bootstrap-sass (3.4.1)
autoprefixer-rails (>= 5.2.1) autoprefixer-rails (>= 5.2.1)
sassc (>= 2.0.0) sassc (>= 2.0.0)
bootstrap-switch-rails (3.3.3) bootstrap-switch-rails (3.3.3)
builder (3.3.0) builder (3.3.0)
byebug (11.1.3) byebug (12.0.0)
cancancan (3.3.0) cancancan (3.6.1)
capybara (3.40.0) capybara (3.40.0)
addressable addressable
matrix matrix
@ -117,7 +124,7 @@ GEM
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0) regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2) xpath (~> 3.2)
carrierwave (3.1.2) carrierwave (3.1.3)
activemodel (>= 6.0.0) activemodel (>= 6.0.0)
activesupport (>= 6.0.0) activesupport (>= 6.0.0)
addressable (~> 2.6) addressable (~> 2.6)
@ -130,15 +137,16 @@ GEM
fastimage fastimage
case_transform (0.2) case_transform (0.2)
activesupport activesupport
caxlsx (4.2.0) caxlsx (4.3.0)
htmlentities (~> 4.3, >= 4.3.4) htmlentities (~> 4.3, >= 4.3.4)
marcel (~> 1.0) marcel (~> 1.0)
nokogiri (~> 1.10, >= 1.10.4) nokogiri (~> 1.10, >= 1.10.4)
rubyzip (>= 1.3.0, < 3) rubyzip (>= 2.4, < 4)
caxlsx_rails (0.6.2) caxlsx_rails (0.6.2)
actionpack (>= 3.1) actionpack (>= 3.1)
caxlsx (>= 3.0) caxlsx (>= 3.0)
chartkick (4.1.3) cgi (0.5.1)
chartkick (5.2.1)
childprocess (5.1.0) childprocess (5.1.0)
logger (~> 1.5) logger (~> 1.5)
chronic (0.10.2) chronic (0.10.2)
@ -150,13 +158,13 @@ GEM
faraday-multipart (~> 1.0, >= 1.0.4) faraday-multipart (~> 1.0, >= 1.0.4)
ostruct ostruct
cocoon (1.2.15) cocoon (1.2.15)
concurrent-ruby (1.3.5) concurrent-ruby (1.3.7)
connection_pool (2.5.3) connection_pool (2.5.5)
countable-rails (0.0.1) countable-rails (0.0.1)
railties (>= 3.1) railties (>= 3.1)
crack (0.4.5) crack (0.4.5)
rexml rexml
crass (1.0.6) crass (1.0.7)
csv (3.3.5) csv (3.3.5)
daemons (1.4.0) daemons (1.4.0)
dalli (2.7.11) dalli (2.7.11)
@ -167,39 +175,40 @@ GEM
activerecord (>= 5.a) activerecord (>= 5.a)
database_cleaner-core (~> 2.0) database_cleaner-core (~> 2.0)
database_cleaner-core (2.0.1) database_cleaner-core (2.0.1)
date (3.4.1) date (3.5.1)
delayed_job (4.1.13) delayed_job (4.2.0)
activesupport (>= 3.0, < 9.0) activesupport (>= 3.0, < 9.0)
benchmark
logger
delayed_job_active_record (4.1.11) delayed_job_active_record (4.1.11)
activerecord (>= 3.0, < 9.0) activerecord (>= 3.0, < 9.0)
delayed_job (>= 3.0, < 5) delayed_job (>= 3.0, < 5)
devise (4.9.4) devise (5.0.4)
bcrypt (~> 3.0) bcrypt (~> 3.0)
orm_adapter (~> 0.1) orm_adapter (~> 0.1)
railties (>= 4.1.0) railties (>= 7.0)
responders responders
warden (~> 1.2.3) warden (~> 1.2.3)
devise_ichain_authenticatable (0.3.2) devise_ichain_authenticatable (0.3.2)
devise (>= 2.2) devise (>= 2.2)
diff-lcs (1.6.2) diff-lcs (1.6.2)
docile (1.4.1) docile (1.4.1)
dotenv (3.1.8) dotenv (3.2.0)
dotenv-rails (3.1.8) dotenv-rails (3.2.0)
dotenv (= 3.1.8) dotenv (= 3.2.0)
railties (>= 6.1) railties (>= 6.1)
drb (2.2.3) drb (2.2.3)
erb (5.0.2) erb (6.0.6)
erubi (1.13.1) erubi (1.13.1)
erubis (2.7.0)
execjs (2.8.1) execjs (2.8.1)
factory_bot (6.5.4) factory_bot (6.5.6)
activesupport (>= 6.1.0) activesupport (>= 6.1.0)
factory_bot_rails (6.5.0) factory_bot_rails (6.5.1)
factory_bot (~> 6.5) factory_bot (~> 6.5)
railties (>= 6.1.0) railties (>= 6.1.0)
faker (3.5.2) faker (3.5.2)
i18n (>= 1.8.11, < 2) i18n (>= 1.8.11, < 2)
faraday (2.13.4) faraday (2.14.3)
faraday-net_http (>= 2.0, < 3.5) faraday-net_http (>= 2.0, < 3.5)
json json
logger logger
@ -207,46 +216,42 @@ GEM
faraday (>= 1, < 3) faraday (>= 1, < 3)
faraday-multipart (1.1.1) faraday-multipart (1.1.1)
multipart-post (~> 2.0) multipart-post (~> 2.0)
faraday-net_http (3.4.1) faraday-net_http (3.4.4)
net-http (>= 0.5.0) net-http (~> 0.5)
fastimage (2.4.0) fastimage (2.4.1)
feature (1.4.0) feature (1.4.0)
ffi (1.17.2) ffi (1.17.4)
font-awesome-sass (6.7.2) font-awesome-sass (6.7.2)
sassc (~> 2.0) sassc (~> 2.0)
geckodriver-helper (0.24.0) geckodriver-helper (0.24.0)
archive-zip (~> 0.7) archive-zip (~> 0.7)
globalid (1.2.1) globalid (1.3.0)
activesupport (>= 6.1) activesupport (>= 6.1)
gravtastic (3.2.6) gravtastic (3.2.6)
haml (5.2.2) haml (6.3.0)
temple (>= 0.8.0) temple (>= 0.8.2)
thor
tilt tilt
haml-rails (2.0.1) haml-rails (2.1.0)
actionpack (>= 5.1) actionpack (>= 5.1)
activesupport (>= 5.1) activesupport (>= 5.1)
haml (>= 4.0.6, < 6.0) haml (>= 4.0.6)
html2haml (>= 1.0.1)
railties (>= 5.1) railties (>= 5.1)
haml_lint (0.37.1) haml_lint (0.66.0)
haml (>= 4.0, < 5.3) haml (>= 5.0)
parallel (~> 1.10) parallel (~> 1.10)
rainbow rainbow
rubocop (>= 0.50.0) rubocop (>= 1.0)
sysexits (~> 1.1) sysexits (~> 1.1)
hashdiff (1.0.1) hashdiff (1.2.1)
hashery (2.1.2) hashery (2.1.2)
hashie (5.0.0) hashie (5.1.0)
html2haml (2.2.0) logger
erubis (~> 2.7.0) htmlentities (4.4.2)
haml (>= 4.0, < 6) i18n (1.14.8)
nokogiri (>= 1.6.0)
ruby_parser (~> 3.5)
htmlentities (4.3.4)
i18n (1.14.7)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
i18n_data (0.13.0) i18n_data (0.13.0)
icalendar (2.11.2) icalendar (2.12.4)
base64 base64
ice_cube (~> 0.16) ice_cube (~> 0.16)
logger logger
@ -255,10 +260,11 @@ GEM
image_processing (1.14.0) image_processing (1.14.0)
mini_magick (>= 4.9.5, < 6) mini_magick (>= 4.9.5, < 6)
ruby-vips (>= 2.0.17, < 3) ruby-vips (>= 2.0.17, < 3)
io-console (0.8.1) io-console (0.8.2)
io-like (0.3.1) io-like (0.4.0)
irb (1.15.2) irb (1.18.0)
pp (>= 0.6.0) pp (>= 0.6.0)
prism (>= 1.3.0)
rdoc (>= 4.0.0) rdoc (>= 4.0.0)
reline (>= 0.4.2) reline (>= 0.4.2)
iso-639 (0.3.8) iso-639 (0.3.8)
@ -268,19 +274,20 @@ GEM
jquery-rails jquery-rails
railties (>= 3.1) railties (>= 3.1)
sass-rails sass-rails
jquery-rails (4.4.0) jquery-rails (4.6.1)
rails-dom-testing (>= 1, < 3) rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0) railties (>= 4.2.0)
thor (>= 0.14, < 2.0) thor (>= 0.14, < 2.0)
jquery-ui-rails (6.0.1) jquery-ui-rails (6.0.1)
railties (>= 3.2.16) railties (>= 3.2.16)
json (2.13.2) json (2.21.2)
json-schema (2.8.1) json-schema (6.0.0)
addressable (>= 2.4) addressable (~> 2.8)
bigdecimal (~> 3.1)
jsonapi-renderer (0.2.2) jsonapi-renderer (0.2.2)
jwt (3.1.2) jwt (3.2.0)
base64 base64
language_server-protocol (3.17.0.5) language_server-protocol (3.17.0.6)
launchy (3.1.1) launchy (3.1.1)
addressable (~> 2.8) addressable (~> 2.8)
childprocess (~> 5.0) childprocess (~> 5.0)
@ -302,24 +309,26 @@ GEM
activesupport (>= 4) activesupport (>= 4)
railties (>= 4) railties (>= 4)
request_store (~> 1.0) request_store (~> 1.0)
loofah (2.24.1) loofah (2.25.2)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.12.0) nokogiri (>= 1.12.0)
mail (2.8.1) mail (2.9.1)
logger
mini_mime (>= 0.1.1) mini_mime (>= 0.1.1)
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
marcel (1.0.4) marcel (1.0.4)
matrix (0.4.2) matrix (0.4.3)
mina (1.2.4) mina (1.2.5)
open4 (~> 1.3.4)
rake rake
mini_magick (5.3.0) mini_magick (5.3.2)
logger logger
mini_mime (1.1.5) mini_mime (1.1.5)
mini_portile2 (2.8.9) mini_portile2 (2.8.9)
minitest (5.25.5) minitest (6.0.6)
drb (~> 2.0)
prism (~> 1.5)
monetize (1.9.4) monetize (1.9.4)
money (~> 6.12) money (~> 6.12)
money (6.13.8) money (6.13.8)
@ -330,12 +339,12 @@ GEM
money (~> 6.13.2) money (~> 6.13.2)
railties (>= 3.0) railties (>= 3.0)
multi_json (1.17.0) multi_json (1.17.0)
multi_xml (0.7.2) multi_xml (0.9.1)
bigdecimal (~> 3.1) bigdecimal (>= 3.1, < 5)
multipart-post (2.4.1) multipart-post (2.4.1)
net-http (0.6.0) net-http (0.9.1)
uri uri (>= 0.11.1)
net-imap (0.5.9) net-imap (0.6.6)
date date
net-protocol net-protocol
net-pop (0.1.2) net-pop (0.1.2)
@ -344,22 +353,25 @@ GEM
timeout timeout
net-smtp (0.5.1) net-smtp (0.5.1)
net-protocol net-protocol
next_rails (1.4.6) next_rails (1.4.8)
rainbow (>= 3) rainbow (>= 3)
nio4r (2.7.4) nio4r (2.7.5)
nokogiri (1.18.9) nokogiri (1.19.4)
mini_portile2 (~> 2.8.2) mini_portile2 (~> 2.8.2)
racc (~> 1.4) racc (~> 1.4)
oauth2 (2.0.12) oauth2 (2.0.25)
anonymous_loader (~> 0.1, >= 0.1.3)
auth-sanitizer (~> 0.2, >= 0.2.3)
faraday (>= 0.17.3, < 4.0) faraday (>= 0.17.3, < 4.0)
jwt (>= 1.0, < 4.0) jwt (>= 1.0, < 4.0)
logger (~> 1.2) logger (~> 1.2)
multi_xml (~> 0.5) multi_xml (~> 0.5)
rack (>= 1.2, < 4) rack (>= 1.2, < 4)
snaky_hash (~> 2.0, >= 2.0.3) snaky_hash (~> 2.0, >= 2.0.7)
version_gem (>= 1.1.8, < 3) version_gem (~> 1.1, >= 1.1.14)
omniauth (2.1.3) omniauth (2.1.4)
hashie (>= 3.4.6) hashie (>= 3.4.6)
logger
rack (>= 2.2.3) rack (>= 2.2.3)
rack-protection rack-protection
omniauth-facebook (8.0.0) omniauth-facebook (8.0.0)
@ -367,13 +379,13 @@ GEM
omniauth-github (2.0.1) omniauth-github (2.0.1)
omniauth (~> 2.0) omniauth (~> 2.0)
omniauth-oauth2 (~> 1.8) omniauth-oauth2 (~> 1.8)
omniauth-google-oauth2 (1.2.1) omniauth-google-oauth2 (1.2.2)
jwt (>= 2.9.2) jwt (>= 2.9.2)
oauth2 (~> 2.0) oauth2 (~> 2.0)
omniauth (~> 2.0) omniauth (~> 2.0)
omniauth-oauth2 (~> 1.8) omniauth-oauth2 (~> 1.8)
omniauth-oauth2 (1.8.0) omniauth-oauth2 (1.9.0)
oauth2 (>= 1.4, < 3) oauth2 (>= 2.0.2, < 3)
omniauth (~> 2.0) omniauth (~> 2.0)
omniauth-openid (2.0.2) omniauth-openid (2.0.2)
omniauth (>= 1.1) omniauth (>= 1.1)
@ -383,27 +395,26 @@ GEM
omniauth-rails_csrf_protection (1.0.0) omniauth-rails_csrf_protection (1.0.0)
actionpack (>= 4.2) actionpack (>= 4.2)
omniauth (~> 2.0) omniauth (~> 2.0)
open4 (1.3.4)
orm_adapter (0.5.0) orm_adapter (0.5.0)
ostruct (0.6.3) ostruct (0.6.3)
paper_trail (16.0.0) paper_trail (16.0.0)
activerecord (>= 6.1) activerecord (>= 6.1)
request_store (~> 1.4) request_store (~> 1.4)
parallel (1.27.0) parallel (1.27.0)
parser (3.3.9.0) parser (3.3.12.0)
ast (~> 2.4.1) ast (~> 2.4.1)
racc racc
pdf-core (0.10.0) pdf-core (0.10.0)
pdf-inspector (1.3.0) pdf-inspector (1.3.0)
pdf-reader (>= 1.0, < 3.0.a) pdf-reader (>= 1.0, < 3.0.a)
pdf-reader (2.14.1) pdf-reader (2.15.1)
Ascii85 (>= 1.0, < 3.0, != 2.0.0) Ascii85 (>= 1.0, < 3.0, != 2.0.0)
afm (~> 0.2.1) afm (>= 0.2.1, < 2)
hashery (~> 2.0) hashery (~> 2.0)
ruby-rc4 ruby-rc4
ttfunk ttfunk
pg (1.6.1) pg (1.6.3)
pp (0.6.2) pp (0.6.3)
prettyprint prettyprint
prawn (2.5.0) prawn (2.5.0)
matrix (~> 0.4) matrix (~> 0.4)
@ -420,43 +431,43 @@ GEM
prawn-table (0.2.2) prawn-table (0.2.2)
prawn (>= 1.3.0, < 3.0.0) prawn (>= 1.3.0, < 3.0.0)
prettyprint (0.2.0) prettyprint (0.2.0)
prism (1.4.0) prism (1.9.0)
psych (5.2.6) psych (5.3.1)
date date
stringio stringio
public_suffix (6.0.2) public_suffix (7.0.5)
puma (6.6.1) puma (8.0.2)
nio4r (~> 2.0) nio4r (~> 2.0)
racc (1.8.1) racc (1.8.1)
rack (3.1.16) rack (3.2.6)
rack-openid (1.4.2) rack-openid (1.4.2)
rack (>= 1.1.0) rack (>= 1.1.0)
ruby-openid (>= 2.1.8) ruby-openid (>= 2.1.8)
rack-protection (4.1.1) rack-protection (4.2.1)
base64 (>= 0.1.0) base64 (>= 0.1.0)
logger (>= 1.6.0) logger (>= 1.6.0)
rack (>= 3.0.0, < 4) rack (>= 3.0.0, < 4)
rack-session (2.1.1) rack-session (2.1.2)
base64 (>= 0.1.0) base64 (>= 0.1.0)
rack (>= 3.0.0) rack (>= 3.0.0)
rack-test (2.2.0) rack-test (2.2.0)
rack (>= 1.3) rack (>= 1.3)
rackup (2.2.1) rackup (2.3.1)
rack (>= 3) rack (>= 3)
rails (7.2.2.1) rails (7.2.3)
actioncable (= 7.2.2.1) actioncable (= 7.2.3)
actionmailbox (= 7.2.2.1) actionmailbox (= 7.2.3)
actionmailer (= 7.2.2.1) actionmailer (= 7.2.3)
actionpack (= 7.2.2.1) actionpack (= 7.2.3)
actiontext (= 7.2.2.1) actiontext (= 7.2.3)
actionview (= 7.2.2.1) actionview (= 7.2.3)
activejob (= 7.2.2.1) activejob (= 7.2.3)
activemodel (= 7.2.2.1) activemodel (= 7.2.3)
activerecord (= 7.2.2.1) activerecord (= 7.2.3)
activestorage (= 7.2.2.1) activestorage (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
bundler (>= 1.15.0) bundler (>= 1.15.0)
railties (= 7.2.2.1) railties (= 7.2.3)
rails-controller-testing (1.0.5) rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1) actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1)
@ -465,63 +476,65 @@ GEM
activesupport (>= 5.0.0) activesupport (>= 5.0.0)
minitest minitest
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.6.2) rails-html-sanitizer (1.7.1)
loofah (~> 2.21) loofah (~> 2.25, >= 2.25.2)
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) 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)
rails-i18n (7.0.1) rails-i18n (7.0.1)
i18n (>= 0.7, < 2) i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8) railties (>= 6.0.0, < 8)
railties (7.2.2.1) railties (7.2.3)
actionpack (= 7.2.2.1) actionpack (= 7.2.3)
activesupport (= 7.2.2.1) activesupport (= 7.2.3)
cgi
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)
tsort (>= 0.2)
zeitwerk (~> 2.6) zeitwerk (~> 2.6)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.3.0) rake (13.4.2)
rdoc (6.14.2) rdoc (7.2.0)
erb erb
psych (>= 4.0.0) psych (>= 4.0.0)
recaptcha (5.8.1) tsort
json recaptcha (5.21.2)
redcarpet (3.6.1) redcarpet (3.6.1)
regexp_parser (2.11.1) regexp_parser (2.11.3)
reline (0.6.2) reline (0.6.3)
io-console (~> 0.5) io-console (~> 0.5)
request_store (1.7.0) request_store (1.7.0)
rack (>= 1.4) rack (>= 1.4)
responders (3.1.1) responders (3.2.0)
actionpack (>= 5.2) actionpack (>= 7.0)
railties (>= 5.2) railties (>= 7.0)
rexml (3.4.1) rexml (3.4.4)
rolify (6.0.0) rolify (6.0.0)
rqrcode (2.0.0) rqrcode (3.1.0)
chunky_png (~> 1.0) chunky_png (~> 1.0)
rqrcode_core (~> 1.0) rqrcode_core (~> 2.0)
rqrcode_core (1.1.0) rqrcode_core (2.0.0)
rspec-activemodel-mocks (1.1.0) rspec-activemodel-mocks (1.3.0)
activemodel (>= 3.0) activemodel (>= 3.0)
activesupport (>= 3.0) activesupport (>= 3.0)
rspec-mocks (>= 2.99, < 4.0) rspec-mocks (>= 2.99, < 4.0)
rspec-core (3.13.5) rspec-core (3.13.6)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-expectations (3.13.5) 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.5) rspec-mocks (3.13.8)
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 (8.0.2) rspec-rails (8.0.4)
actionpack (>= 7.2) actionpack (>= 7.2)
activesupport (>= 7.2) activesupport (>= 7.2)
railties (>= 7.2) railties (>= 7.2)
rspec-core (~> 3.13) rspec-core (>= 3.13.0, < 5.0.0)
rspec-expectations (~> 3.13) rspec-expectations (>= 3.13.0, < 5.0.0)
rspec-mocks (~> 3.13) rspec-mocks (>= 3.13.0, < 5.0.0)
rspec-support (~> 3.13) rspec-support (>= 3.13.0, < 5.0.0)
rspec-support (3.13.4) rspec-support (3.13.7)
rubocop (1.79.2) rubocop (1.79.2)
json (~> 2.3) json (~> 2.3)
language_server-protocol (~> 3.17.0.2) language_server-protocol (~> 3.17.0.2)
@ -546,7 +559,7 @@ GEM
lint_roller (~> 1.1) lint_roller (~> 1.1)
rubocop (>= 1.75.0, < 2.0) rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.38.0, < 2.0) rubocop-ast (>= 1.38.0, < 2.0)
rubocop-rails (2.33.1) rubocop-rails (2.33.3)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
lint_roller (~> 1.1) lint_roller (~> 1.1)
rack (>= 1.1) rack (>= 1.1)
@ -563,11 +576,9 @@ GEM
ruby-openid (2.9.2) ruby-openid (2.9.2)
ruby-progressbar (1.13.0) ruby-progressbar (1.13.0)
ruby-rc4 (0.1.5) ruby-rc4 (0.1.5)
ruby-vips (2.2.4) ruby-vips (2.3.0)
ffi (~> 1.12) ffi (~> 1.12)
logger logger
ruby_parser (3.17.0)
sexp_processor (~> 4.15, >= 4.15.1)
rubyzip (2.4.1) rubyzip (2.4.1)
sass-rails (6.0.0) sass-rails (6.0.0)
sassc-rails (~> 2.1, >= 2.1.1) sassc-rails (~> 2.1, >= 2.1.1)
@ -591,21 +602,20 @@ GEM
sentry-ruby (5.26.0) sentry-ruby (5.26.0)
bigdecimal bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
sexp_processor (4.15.3)
shoulda-matchers (6.5.0) shoulda-matchers (6.5.0)
activesupport (>= 5.2.0) activesupport (>= 5.2.0)
simplecov (0.22.0) simplecov (0.22.0)
docile (~> 1.1) docile (~> 1.1)
simplecov-html (~> 0.11) simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1) simplecov_json_formatter (~> 0.1)
simplecov-cobertura (3.0.0) simplecov-cobertura (3.1.0)
rexml rexml
simplecov (~> 0.19) simplecov (~> 0.19)
simplecov-html (0.13.2) simplecov-html (0.13.2)
simplecov_json_formatter (0.1.4) simplecov_json_formatter (0.1.4)
snaky_hash (2.0.3) snaky_hash (2.0.7)
hashie (>= 0.1.0, < 6) hashie (>= 0.1.0, < 6)
version_gem (>= 1.1.8, < 3) version_gem (~> 1.1, >= 1.1.14)
sprockets (4.2.2) sprockets (4.2.2)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
logger logger
@ -614,8 +624,8 @@ GEM
actionpack (>= 4.0) actionpack (>= 4.0)
activesupport (>= 4.0) activesupport (>= 4.0)
sprockets (>= 3.0.0) sprockets (>= 3.0.0)
ssrf_filter (1.3.0) ssrf_filter (1.5.0)
stringio (3.1.7) stringio (3.2.0)
stripe (5.43.0) stripe (5.43.0)
stripe-ruby-mock (3.1.0.rc3) stripe-ruby-mock (3.1.0.rc3)
dante (>= 0.2.0) dante (>= 0.2.0)
@ -623,11 +633,12 @@ GEM
stripe (> 5, < 6) stripe (> 5, < 6)
sysexits (1.2.0) sysexits (1.2.0)
temple (0.10.4) temple (0.10.4)
thor (1.4.0) thor (1.5.0)
tilt (2.0.10) tilt (2.6.1)
timecop (0.9.4) timecop (0.9.4)
timeout (0.4.3) timeout (0.6.1)
transitions (1.2.1) transitions (1.2.1)
tsort (0.2.0)
ttfunk (1.8.0) ttfunk (1.8.0)
bigdecimal (~> 3.1) bigdecimal (~> 3.1)
turbolinks (5.2.1) turbolinks (5.2.1)
@ -637,14 +648,14 @@ GEM
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
uglifier (4.2.0) uglifier (4.2.0)
execjs (>= 0.3.0, < 3) execjs (>= 0.3.0, < 3)
unicode-display_width (3.1.4) unicode-display_width (3.2.0)
unicode-emoji (~> 4.0, >= 4.0.4) unicode-emoji (~> 4.1)
unicode-emoji (4.0.4) unicode-emoji (4.2.0)
unobtrusive_flash (3.3.1) unobtrusive_flash (3.3.1)
railties railties
uri (1.0.3) uri (1.1.1)
useragent (0.16.11) useragent (0.16.11)
version_gem (1.1.8) version_gem (1.1.14)
warden (1.2.9) warden (1.2.9)
rack (>= 2.0.9) rack (>= 2.0.9)
web-console (4.1.0) web-console (4.1.0)
@ -661,7 +672,7 @@ GEM
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0) hashdiff (>= 0.4.0, < 2.0.0)
websocket (1.2.11) websocket (1.2.11)
websocket-driver (0.8.0) websocket-driver (0.8.2)
base64 base64
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5) websocket-extensions (0.1.5)
@ -669,7 +680,7 @@ GEM
chronic (>= 0.6.3) chronic (>= 0.6.3)
xpath (3.2.0) xpath (3.2.0)
nokogiri (~> 1.8) nokogiri (~> 1.8)
zeitwerk (2.7.3) zeitwerk (2.7.5)
PLATFORMS PLATFORMS
ruby ruby
@ -693,6 +704,7 @@ DEPENDENCIES
climate_control climate_control
cloudinary cloudinary
cocoon cocoon
connection_pool (< 3)
countable-rails countable-rails
daemons daemons
dalli dalli
@ -775,7 +787,7 @@ DEPENDENCIES
whenever whenever
RUBY VERSION RUBY VERSION
ruby 3.4.5 ruby 3.4.10
BUNDLED WITH BUNDLED WITH
2.6.9 2.6.9

View file

@ -1 +0,0 @@
Gemfile

1
Gemfile.next Normal file
View file

@ -0,0 +1 @@
Gemfile

View file

@ -26,21 +26,22 @@ You can find the latest OSEM releases on our [release page](https://github.com/o
## Deploy to the cloud ## Deploy to the cloud
The easiest way to deploy OSEM is to use one of the many platform as a service providers that support ruby on rails. We have prepared OSEM to be used with [heroku](https://heroku.com). So if you have an account there, you can deploy OSEM by pressing this button: The easiest way to deploy OSEM is to use one of the many platform as a service (PaaS) providers that support Ruby on Rails.
There are too many to list, here are a few we have seen OSEM deployed to:
<a href="https://heroku.com/deploy?template=https://github.com/openSUSE/osem/tree/v1.0"> - https://heroku.com
<img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy"> - https://render.com
</a> - https://fly.io
## Deploy to your own server ## Deploy to your own server
We recommend to run OSEM in production with [mod\_passenger](https://www.phusionpassenger.com/download/#open_source) We recommend to run OSEM in production with [mod\_passenger](https://www.phusionpassenger.com/download/#open_source)
and the [apache web-server](https://www.apache.org/). There are tons of guides on how to deploy rails apps on various and the [apache web-server](https://www.apache.org/). There are tons of guides on how to deploy rails apps on various
base operating systems. [Check Google](https://encrypted.google.com/search?hl=en&q=ruby%20on%20rails%20apache%20passenger). Of course there are also other options for the application server and reverse proxy, pick your poison. base operating systems, [check DuckDuckGo](https://duckduckgo.com/?t=h_&q=ruby+on+rails+apache+passenger). Of course there are also other options for the application server and reverse proxy, pick your poison.
## Deploy via docker/docker-compose ## Deploy via docker/docker-compose
There is a rudimentary docker-compose configuration for production usage (`docker-compose.yml.production-example`). It brings [OSEM up](http://0.0.0.0:8080) on port 8080. It uses persistent storage volumes for all the data users might create. You can start it with There is a rudimentary docker-compose configuration for production usage (`docker-compose.yml.production-example`). It brings OSEM up on port 80. It uses persistent storage volumes for all the data your users might create. You can start it with
1. Configure OSEM (at least `SECRET_KEY_BASE`) 1. Configure OSEM (at least `SECRET_KEY_BASE`)
``` ```
@ -53,12 +54,13 @@ There is a rudimentary docker-compose configuration for production usage (`docke
``` ```
1. Setup the database (only once) 1. Setup the database (only once)
``` ```
docker-compose -f docker-compose.yml.production-example run --rm production_web bundle exec rake db:bootstrap docker-compose -f docker-compose.yml.production-example run --rm osem bundle exec rake db:setup
``` ```
1. Start the services 1. Start the services
``` ```
docker-compose -f docker-compose.yml.production-example up docker-compose -f docker-compose.yml.production-example up
``` ```
1. Visit http://0.0.0.0
## Configuration ## Configuration
OSEM is configured through environment variables and falls back to sensible defaults. See the [dotenv.example](https://github.com/openSUSE/osem/blob/master/dotenv.example) for all possible configuration options. However here is a list of things you most likely want to configure because otherwise things will not work as expected. OSEM is configured through environment variables and falls back to sensible defaults. See the [dotenv.example](https://github.com/openSUSE/osem/blob/master/dotenv.example) for all possible configuration options. However here is a list of things you most likely want to configure because otherwise things will not work as expected.

View file

@ -8,6 +8,10 @@
An event management tool tailored to Free and Open Source Software conferences. An event management tool tailored to Free and Open Source Software conferences.
## Trial
Check out our demo at https://osem.copyleft.dev
## Installation ## Installation
Please refer to our [installation guide](INSTALL.md). Please refer to our [installation guide](INSTALL.md).
@ -15,4 +19,7 @@ Please refer to our [installation guide](INSTALL.md).
Please refer to our [contributing guide](CONTRIBUTING.md). Please refer to our [contributing guide](CONTRIBUTING.md).
## Contact ## Contact
GitHub issues are the primary way for communicating about specific proposed changes to this project. If you have other questions feel free to subscribe to the [opensuse-web@opensuse.org](http://lists.opensuse.org/opensuse-web/) mailinglist, all OSEM contributors are on that list! Additionally you can use #osem channel on [libera.chat IRC](https://libera.chat). GitHub issues are the primary way for communicating about specific proposed changes to this project. If you have other questions feel free chat us up in the #osem channel on [libera.chat IRC](https://libera.chat).
https://web.libera.chat/#osem

View file

@ -1,37 +0,0 @@
{
"name": "osem",
"description": "Open Source Event Manager",
"repository": "https://github.com/openSUSE/osem",
"env": {
"CLOUDINARY_URL": {
"description": "Create a https://cloudinary.com account and set the cloud url here. It starts with cloudinary://",
"required": false
},
"SECRET_KEY_BASE": {
"description": "A key to verify sessions. At least 40 characters. For instance: https://www.randomlists.com/string?base=16&length=64&qty=1",
"generator": "secret"
},
"NOKOGIRI_USE_SYSTEM_LIBRARIES": "1",
"RAILS_ENV": "production",
"RACK_ENV": "production"
},
"scripts": {
"postdeploy": "bundle exec rake db:schema:load db:seed"
},
"formation": {
"web": {
"quantity": 1
},
"worker": {
"quantity": 1
}
},
"addons": [
{
"plan": "heroku-postgresql"
},
{
"plan": "sendgrid"
}
]
}

View file

@ -1,4 +1,4 @@
$navbar-default-bg: #299a0b; $navbar-default-bg: #005cb3;
$navbar-default-link-active-bg: #DFE0DF; $navbar-default-link-active-bg: #DFE0DF;
$navbar-default-border: 1px solid #d4d4d4; $navbar-default-border: 1px solid #d4d4d4;
$navbar-default-color: #ffffff; $navbar-default-color: #ffffff;

View file

@ -130,8 +130,7 @@ module Admin
end end
def booth_params def booth_params
params.require(:booth).permit(:title, :description, :reasoning, :state, :picture, :conference_id, params.require(:booth).permit(:title, :description, :reasoning, :picture, :website_url, :submitter_relationship, responsible_ids: [])
:created_at, :updated_at, :submitter_relationship, :website_url, responsible_ids: [])
end end
end end
end end

View file

@ -51,7 +51,7 @@ module Admin
private private
def difficulty_level_params def difficulty_level_params
params.require(:difficulty_level).permit(:title, :description, :color, :conference_id) params.require(:difficulty_level).permit(:title, :description, :color)
end end
end end
end end

View file

@ -49,7 +49,7 @@ module Admin
private private
def event_type_params def event_type_params
params.require(:event_type).permit(:title, :length, :minimum_abstract_length, :maximum_abstract_length, :color, :conference_id, :description) params.require(:event_type).permit(:title, :length, :minimum_abstract_length, :maximum_abstract_length, :color, :description)
end end
end end
end end

View file

@ -178,7 +178,7 @@ module Admin
end end
def comment_params def comment_params
params.require(:comment).permit(:commentable, :body, :user_id) params.require(:comment).permit(:body)
end end
def update_state(transition, notice, mail = false, subject = false, send_mail = false) def update_state(transition, notice, mail = false, subject = false, send_mail = false)

View file

@ -49,7 +49,7 @@ module Admin
private private
def lodging_params def lodging_params
params.require(:lodging).permit(:name, :description, :picture, :picture_cache, :website_link, :conference_id) params.require(:lodging).permit(:name, :description, :picture, :picture_cache, :website_link)
end end
end end
end end

View file

@ -11,7 +11,7 @@ module Admin
def update def update
authorize! :update, @conference.program authorize! :update, @conference.program
@program = @conference.program
params['program']['languages'] = params['program']['languages'].join(',') if params['program']['languages'].present? params['program']['languages'] = params['program']['languages'].join(',') if params['program']['languages'].present?
@program.assign_attributes(program_params) @program.assign_attributes(program_params)
send_mail_on_schedule_public = @program.notify_on_schedule_public? send_mail_on_schedule_public = @program.notify_on_schedule_public?

View file

@ -97,7 +97,7 @@ module Admin
private private
def question_params def question_params
params.require(:question).permit(:title, :global, :answer_ids, :question_type_id, :conference_id, answers_attributes: [:id, :title]) params.require(:question).permit(:title, :global, :answer_ids, :question_type_id, answers_attributes: [:id, :title])
end end
def conference_params def conference_params

View file

@ -82,8 +82,7 @@ module Admin
def registration_params def registration_params
params.require(:registration).permit( params.require(:registration).permit(
:user_id, :conference_id, :attended, :attended, :volunteer, :other_special_needs, :accepted_code_of_conduct,
:volunteer, :other_special_needs, :accepted_code_of_conduct,
vchoice_ids: [], qanswer_ids: [], qanswers_attributes: [], event_ids: [] vchoice_ids: [], qanswer_ids: [], qanswers_attributes: [], event_ids: []
) )
end end

View file

@ -48,7 +48,7 @@ module Admin
private private
def resource_params def resource_params
params.require(:resource).permit(:name, :description, :quantity, :used, :conference_id) params.require(:resource).permit(:name, :description, :quantity, :used)
end end
end end
end end

View file

@ -94,7 +94,7 @@ module Admin
elsif user.add_role @role.name, role_resource elsif user.add_role @role.name, role_resource
flash[:notice] = "Successfully added role #{@role.name} to user #{user.email}" flash[:notice] = "Successfully added role #{@role.name} to user #{user.email}"
else else
flash[:error] = "Coud not add role #{@role.name} to #{user.email}" flash[:error] = "Could not add role #{@role.name} to #{user.email}"
end end
respond_to do |format| respond_to do |format|

View file

@ -52,7 +52,7 @@ module Admin
private private
def sponsor_params def sponsor_params
params.require(:sponsor).permit(:name, :description, :website_url, :picture, :picture_cache, :sponsorship_level_id, :conference_id) params.require(:sponsor).permit(:name, :description, :website_url, :picture, :picture_cache, :sponsorship_level_id)
end end
def sponsorship_level_required def sponsorship_level_required

View file

@ -61,7 +61,7 @@ module Admin
private private
def sponsorship_level_params def sponsorship_level_params
params.require(:sponsorship_level).permit(:title, :conference_id) params.require(:sponsorship_level).permit(:title)
end end
end end
end end

View file

@ -52,7 +52,7 @@ module Admin
private private
def ticket_params def ticket_params
params.require(:ticket).permit(:conference, :title, :url, :description, :conference_id, :price_cents, :price_currency, :price, :registration_ticket) params.require(:ticket).permit(:title, :url, :description, :price_cents, :price_currency, :price, :registration_ticket)
end end
end end
end end

View file

@ -46,7 +46,7 @@ module Admin
private private
def venue_params def venue_params
params.require(:venue).permit(:name, :street, :postalcode, :city, :country, :longitude, :latitude, :description, :website, :picture, :picture_cache, :lodgings_attributes, :conference_id) params.require(:venue).permit(:name, :street, :postalcode, :city, :country, :longitude, :latitude, :description, :website, :picture, :picture_cache, :lodgings_attributes)
end end
end end
end end

View file

@ -45,7 +45,7 @@ module Admin
end end
elsif @version.event == 'create' && @version.item elsif @version.event == 'create' && @version.item
# if @version represets a create event and is not currently deleted # if @version represents a create event and is not currently deleted
@version.item.destroy @version.item.destroy
flash[:notice] = 'The selected change was successfully reverted' flash[:notice] = 'The selected change was successfully reverted'

View file

@ -94,7 +94,6 @@ class BoothsController < ApplicationController
private private
def booth_params def booth_params
params.require(:booth).permit(:title, :description, :reasoning, :state, :picture, :conference_id, params.require(:booth).permit(:title, :description, :reasoning, :picture, :website_url, :submitter_relationship, responsible_ids: [])
:created_at, :updated_at, :submitter_relationship, :website_url, responsible_ids: [])
end end
end end

View file

@ -110,7 +110,6 @@ class ConferenceRegistrationsController < ApplicationController
def registration_params def registration_params
params.require(:registration) params.require(:registration)
.permit( .permit(
:conference_id,
:volunteer, :accepted_code_of_conduct, :volunteer, :accepted_code_of_conduct,
vchoice_ids: [], qanswer_ids: [], vchoice_ids: [], qanswer_ids: [],
qanswers_attributes: [], qanswers_attributes: [],

View file

@ -39,7 +39,7 @@ class SchedulesController < ApplicationController
@current_day = @conference.current_conference_day @current_day = @conference.current_conference_day
@day = @current_day.present? ? @current_day : @dates.first @day = @current_day.present? ? @current_day : @dates.first
if @current_day if @current_day
# the schedule takes you to the current time if it is beetween the start and the end time. # the schedule takes you to the current time if it is between the start and the end time.
@hour_column = @conference.hours_from_start_time(@conf_start, @conference.end_hour) @hour_column = @conference.hours_from_start_time(@conf_start, @conference.end_hour)
end end
# Ids of the @event_schedules of confrmed self_organized tracks along with the selected_schedule_id # Ids of the @event_schedules of confrmed self_organized tracks along with the selected_schedule_id

View file

@ -31,10 +31,4 @@ class TicketPurchasesController < ApplicationController
def index def index
@unpaid_ticket_purchases = current_user.ticket_purchases.by_conference(@conference).unpaid @unpaid_ticket_purchases = current_user.ticket_purchases.by_conference(@conference).unpaid
end end
private
def ticket_purchase_params
params.require(:ticket_purchase).permit(:ticket_id, :user_id, :conference_id, :quantity)
end
end end

View file

@ -45,7 +45,7 @@ module ConferenceHelper
location += "#{v.country_name}, " if v.country_name location += "#{v.country_name}, " if v.country_name
e.location = location e.location = location
end end
e.categories = conference.title, "Difficulty: #{proposal.difficulty_level.title}", "Track: #{proposal.track.name}" e.categories = conference.title, "Audience: #{proposal.difficulty_level.title}", "Track: #{proposal.track.name}"
end end
end end
calendar calendar

View file

@ -17,7 +17,7 @@ module DateTimeHelper
## ##
# Gets a datetime object # Gets a datetime object
# ====Returns # ====Returns
# * +String+ -> formated datetime object # * +String+ -> formatted datetime object
def format_datetime(obj) def format_datetime(obj)
return unless obj return unless obj

View file

@ -21,6 +21,7 @@ class Ability
can [:show], Conference do |conference| can [:show], Conference do |conference|
conference.splashpage&.public == true conference.splashpage&.public == true
end end
can :code_of_conduct, Conference
# Can view the schedule # Can view the schedule
can [:schedule, :events], Conference do |conference| can [:schedule, :events], Conference do |conference|
conference.program.cfp && conference.program.schedule_public conference.program.cfp && conference.program.schedule_public
@ -151,6 +152,8 @@ class Ability
can :manage, Registration, conference_id: conf_ids_for_organizer can :manage, Registration, conference_id: conf_ids_for_organizer
# To access conference/proposals # To access conference/proposals
can :manage, Event, program: { conference_id: conf_ids_for_organizer } can :manage, Event, program: { conference_id: conf_ids_for_organizer }
can :manage, Commercial, commercialable_type: 'Event',
commercialable_id: Event.where(program_id: Program.where(conference_id: conf_ids_for_organizer).pluck(:id)).pluck(:id)
# To access comment link in menu bar # To access comment link in menu bar
can :index, Comment, commentable_type: 'Event', can :index, Comment, commentable_type: 'Event',
commentable_id: Event.where(program_id: Program.where(conference_id: conf_ids_for_organizer).pluck(:id)).pluck(:id) commentable_id: Event.where(program_id: Program.where(conference_id: conf_ids_for_organizer).pluck(:id)).pluck(:id)
@ -162,6 +165,8 @@ class Ability
commentable_id: Event.where(program_id: Program.where(conference_id: conf_ids_for_cfp).pluck(:id)).pluck(:id) commentable_id: Event.where(program_id: Program.where(conference_id: conf_ids_for_cfp).pluck(:id)).pluck(:id)
# To access conference/proposals # To access conference/proposals
can :manage, Event, program: { conference_id: conf_ids_for_cfp } can :manage, Event, program: { conference_id: conf_ids_for_cfp }
can :manage, Commercial, commercialable_type: 'Event',
commercialable_id: Event.where(program_id: Program.where(conference_id: conf_ids_for_cfp).pluck(:id)).pluck(:id)
end end
if conf_ids_for_info_desk if conf_ids_for_info_desk

View file

@ -422,7 +422,7 @@ class Conference < ApplicationRecord
## ##
# Returns a hash with affiliation => # Returns a hash with affiliation =>
# {value: count of registration whose user has that affilation, color: color} # {value: count of registration whose user has that affiliation, color: color}
# In case that the affiliation is blank, it groups them in None and # In case that the affiliation is blank, it groups them in None and
# if the number of persons that have an affiliation are less than the 2% of # if the number of persons that have an affiliation are less than the 2% of
# the total number of registered people, they are grouped in others. # the total number of registered people, they are grouped in others.
@ -696,7 +696,7 @@ class Conference < ApplicationRecord
end end
# Returns the number of hours since the conference start hour (9) to the # Returns the number of hours since the conference start hour (9) to the
# current hour, in case that the current hour is beetween the start and the # current hour, in case that the current hour is between the start and the
# end hour (20). Otherwise, returns 0 # end hour (20). Otherwise, returns 0
def hours_from_start_time(start_hour, end_hour) def hours_from_start_time(start_hour, end_hour)
current_time = Time.find_zone(timezone).now current_time = Time.find_zone(timezone).now
@ -744,7 +744,7 @@ class Conference < ApplicationRecord
'#' + next_color_component(:r, i) + next_color_component(:g, i) + next_color_component(:b, i) '#' + next_color_component(:r, i) + next_color_component(:g, i) + next_color_component(:b, i)
end end
# Auxiliar function which is used in next_color and returns each component of # Auxiliary function which is used in next_color and returns each component of
# the color. We make use of big prime numbers to avoid repetition and to make # the color. We make use of big prime numbers to avoid repetition and to make
# consecutive colors clearly different. # consecutive colors clearly different.
def next_color_component(component, i) def next_color_component(component, i)
@ -787,7 +787,7 @@ class Conference < ApplicationRecord
## ##
# Checks if start hour of the conference is greater or equal than the end hour # Checks if start hour of the conference is greater or equal than the end hour
# and that both hours are beetween 0 and 24 # and that both hours are between 0 and 24
# #
# Reports an error when such a condition is found # Reports an error when such a condition is found
def valid_times_range? def valid_times_range?
@ -922,7 +922,7 @@ class Conference < ApplicationRecord
# #
# ====Returns # ====Returns
# * +True+ -> One difficulty level or more # * +True+ -> One difficulty level or more
# * +False+ -> No diffculty level # * +False+ -> No difficulty level
def difficulty_levels_set? def difficulty_levels_set?
program.difficulty_levels.any? program.difficulty_levels.any?
end end
@ -932,7 +932,7 @@ class Conference < ApplicationRecord
# #
# ====Returns # ====Returns
# * +True+ -> One difficulty level or more # * +True+ -> One difficulty level or more
# * +False+ -> No diffculty level # * +False+ -> No difficulty level
def event_types_set? def event_types_set?
program.event_types.any? program.event_types.any?
end end

View file

@ -94,7 +94,7 @@ class Event < ApplicationRecord
}.freeze }.freeze
## ##
# Checkes if the event has a start_time and a room for the selected schedule if there is any # Checks if the event has a start_time and a room for the selected schedule if there is any
# ====Returns # ====Returns
# * +true+ or +false+ # * +true+ or +false+
def scheduled? def scheduled?

View file

@ -133,7 +133,7 @@ class Program < ApplicationRecord
end end
## ##
# Checcks if the program has rating enabled # Checks if the program has rating enabled
# #
# ====Returns # ====Returns
# * +false+ -> If rating is not enabled # * +false+ -> If rating is not enabled

View file

@ -13,7 +13,7 @@ class Ticket < ApplicationRecord
scope :for_registration, -> { where(registration_ticket: true) } scope :for_registration, -> { where(registration_ticket: true) }
# This validation is for the sake of simplicity. # This validation is for the sake of simplicity.
# If we would allow different currencies per conference we also have to handle convertions between currencies! # If we would allow different currencies per conference we also have to handle conversions between currencies!
validate :tickets_of_conference_have_same_currency validate :tickets_of_conference_have_same_currency
validates :price_cents, :price_currency, :title, presence: true validates :price_cents, :price_currency, :title, presence: true

View file

@ -111,7 +111,7 @@ class User < ApplicationRecord
}.freeze }.freeze
## ##
# Checkes if the user attended the event # Checks if the user attended the event
# This is used for events that require registration # This is used for events that require registration
# The user must have registered to attend the event # The user must have registered to attend the event
# Gets an event # Gets an event

View file

@ -2,7 +2,7 @@
.col-md-12 .col-md-12
.page-header .page-header
%h1 %h1
Edit Difficulty Level Edit Audience
= @difficulty_level.title = @difficulty_level.title
.row .row
.col-md-8 .col-md-8

View file

@ -1,7 +1,7 @@
.row .row
.col-md-12 .col-md-12
.page-header .page-header
%h1 Difficulty Levels %h1 Audiences
%p.text-muted %p.text-muted
Classify your conference.program.events by difficulty Classify your conference.program.events by difficulty
.row .row
@ -32,4 +32,4 @@
data: { confirm: "Do you really want to delete #{difficulty_level.title}? Attention: This difficulty level will be removed from all Events that have it set" } data: { confirm: "Do you really want to delete #{difficulty_level.title}? Attention: This difficulty level will be removed from all Events that have it set" }
.row .row
.col-md-12.text-right .col-md-12.text-right
= link_to 'Add Difficulty Level', new_admin_conference_program_difficulty_level_path(@conference.short_title), class: 'btn btn-primary' = link_to 'Add Audience', new_admin_conference_program_difficulty_level_path(@conference.short_title), class: 'btn btn-primary'

View file

@ -2,7 +2,7 @@
.col-md-12 .col-md-12
.page-header .page-header
%h1 %h1
Create Difficulty Level Create Audience
.row .row
.col-md-8 .col-md-8
= render partial: 'form' = render partial: 'form'

View file

@ -82,7 +82,7 @@
%th %th
%b Track %b Track
%th %th
%b Difficulty %b Audience
%th %th
%b State %b State
%th %th

View file

@ -92,7 +92,7 @@
%td{ 'class' => class_for_todo(progress_status['track']) } %td{ 'class' => class_for_todo(progress_status['track']) }
%span{ 'class' => [icon_for_todo(progress_status['track']), 'fa-lg'] } %span{ 'class' => [icon_for_todo(progress_status['track']), 'fa-lg'] }
%tr %tr
%td= link_to 'Add a difficulty level', edit_admin_conference_program_event_path(@event.program.conference.short_title, @event) %td= link_to 'Add an Audience level', edit_admin_conference_program_event_path(@event.program.conference.short_title, @event)
%td{ 'class' => class_for_todo(progress_status['difficulty_level']) } %td{ 'class' => class_for_todo(progress_status['difficulty_level']) }
%span{ 'class' => [icon_for_todo(progress_status['difficulty_level']), 'fa-lg'] } %span{ 'class' => [icon_for_todo(progress_status['difficulty_level']), 'fa-lg'] }
#proposal-commercials.tab-pane #proposal-commercials.tab-pane

View file

@ -28,7 +28,7 @@
%dd %dd
= tracks(@conference) = tracks(@conference)
%dt %dt
Difficulty Levels: Audiences:
%dd %dd
= difficulty_levels(@conference) = difficulty_levels(@conference)
%dt %dt

View file

@ -1,5 +1,5 @@
%p %p
Setup the time frame in which people can registrer to your conference Setup the time frame in which people can register to your conference
= form_for(@registration_period, url: admin_conference_registration_period_path(@conference.short_title)) do |f| = form_for(@registration_period, url: admin_conference_registration_period_path(@conference.short_title)) do |f|
.form-group .form-group
= f.label :start_date = f.label :start_date

View file

@ -3,7 +3,7 @@
wb = xlsx_package.workbook wb = xlsx_package.workbook
wb.add_worksheet(name: 'registrations') do |sheet| wb.add_worksheet(name: 'registrations') do |sheet|
bold_style = wb.styles.add_style(b: true) bold_style = wb.styles.add_style(b: true)
row = ['Attended', 'Name', 'Nickname', 'Affilιation', 'Email'] row = ['Attended', 'Name', 'Nickname', 'Affilιation', 'Email', 'Ticket Token']
@conference.questions.each do |question| @conference.questions.each do |question|
row << question.title row << question.title
@ -18,6 +18,7 @@ wb.add_worksheet(name: 'registrations') do |sheet|
row << registration.nickname row << registration.nickname
row << registration.affiliation row << registration.affiliation
row << registration.email row << registration.email
row << registration.user.physical_tickets.by_conference(@conference).first&.token
@conference.questions.each do |question| @conference.questions.each do |question|
qa = registration.qanswers.find_by(question: question) qa = registration.qanswers.find_by(question: question)
answer = ( qa ? qa.answer.title : '' ) answer = ( qa ? qa.answer.title : '' )

View file

@ -17,7 +17,7 @@
url = update_selected_schedule_admin_conference_program_track_path(@conference.short_title, @schedule.track) + '?[track][selected_schedule_id]=' url = update_selected_schedule_admin_conference_program_track_path(@conference.short_title, @schedule.track) + '?[track][selected_schedule_id]='
else else
value = @schedule.id == @selected_schedule.try(:id) value = @schedule.id == @selected_schedule.try(:id)
url = admin_conference_program_path(@conference.short_title) + '?[program][selected_schedule_id]=' url = admin_conference_program_path(@conference.short_title) + '?program[selected_schedule_id]='
end end
= check_box_tag @conference.short_title, @schedule.id, value, url: url, = check_box_tag @conference.short_title, @schedule.id, value, url: url,
class: 'switch-checkbox-schedule' class: 'switch-checkbox-schedule'

View file

@ -2,7 +2,7 @@
.col-md-12 .col-md-12
.page-header .page-header
%h1 %h1
Edit Tack Edit Track
= @track.name = @track.name
.row .row
.col-md-12 .col-md-12

View file

@ -33,7 +33,7 @@
= f.file_field :picture = f.file_field :picture
= f.hidden_field :picture_cache = f.hidden_field :picture_cache
%span.help-block %span.help-block
This will be displayed on the venue are of the splash page. This will be displayed on the venue area of the splash page.
.form-group .form-group
= f.label :street = f.label :street
%abbr{title: 'This field is required'} * %abbr{title: 'This field is required'} *

View file

@ -18,7 +18,7 @@
%abbr{title: 'This field is required'} * %abbr{title: 'This field is required'} *
= f.text_field :submitter_relationship, rows: 5, required: true, class: 'form-control' = f.text_field :submitter_relationship, rows: 5, required: true, class: 'form-control'
%span.help-block %span.help-block
e.g. employee, comunity manager, etc e.g. employee, community manager, etc
.form-group .form-group
= f.label :website_url, 'Website URL' = f.label :website_url, 'Website URL'
%abbr{title: 'This field is required'} * %abbr{title: 'This field is required'} *

View file

@ -80,7 +80,7 @@
= link_to 'Event Types', admin_conference_program_event_types_path(@conference.short_title) = link_to 'Event Types', admin_conference_program_event_types_path(@conference.short_title)
- if can? :update, @conference.program.difficulty_levels.build, conference_id: @conference.id - if can? :update, @conference.program.difficulty_levels.build, conference_id: @conference.id
%li{class: active_nav_li(admin_conference_program_difficulty_levels_path(@conference.short_title))} %li{class: active_nav_li(admin_conference_program_difficulty_levels_path(@conference.short_title))}
= link_to 'Difficulty Levels', admin_conference_program_difficulty_levels_path(@conference.short_title) = link_to 'Audience', admin_conference_program_difficulty_levels_path(@conference.short_title)
- if can? :update, @conference.program.schedules.build - if can? :update, @conference.program.schedules.build
%li{class: active_nav_li(admin_conference_schedules_path(@conference.short_title))} %li{class: active_nav_li(admin_conference_schedules_path(@conference.short_title))}
= link_to 'Schedules', admin_conference_schedules_path(@conference.short_title) = link_to 'Schedules', admin_conference_schedules_path(@conference.short_title)

View file

@ -37,7 +37,7 @@
= f.select :language, @program.languages_list, { include_blank: false}, { class: 'select-help-toggle form-control' } = f.select :language, @program.languages_list, { include_blank: false}, { class: 'select-help-toggle form-control' }
- if display_details - if display_details
- if @conference.program.difficulty_levels.any? - if @conference.program.difficulty_levels.any?
= f.label :difficulty_level = f.label :difficulty_level, 'Audience'
= f.select :difficulty_level_id, @conference.program.difficulty_levels.map{|level| [level.title, level.id ] }, {include_blank: false}, { class: 'select-help-toggle form-control' } = f.select :difficulty_level_id, @conference.program.difficulty_levels.map{|level| [level.title, level.id ] }, {include_blank: false}, { class: 'select-help-toggle form-control' }
= render 'shared/select_help_text', f: f, for: :difficulty_level_id, options: @conference.program.difficulty_levels do |difficulty_level| = render 'shared/select_help_text', f: f, for: :difficulty_level_id, options: @conference.program.difficulty_levels do |difficulty_level|
= difficulty_level.description = difficulty_level.description

View file

@ -27,4 +27,4 @@
= link_to 'Add a track', edit_conference_program_proposal_path(event.program.conference.short_title, event) = link_to 'Add a track', edit_conference_program_proposal_path(event.program.conference.short_title, event)
%li{'class'=>class_for_todo(progress_status['difficulty_level'])} %li{'class'=>class_for_todo(progress_status['difficulty_level'])}
%span{'class'=>icon_for_todo(progress_status['difficulty_level'])} %span{'class'=>icon_for_todo(progress_status['difficulty_level'])}
= link_to 'Add a difficulty level', edit_conference_program_proposal_path(event.program.conference.short_title, event) = link_to 'Add an Audience', edit_conference_program_proposal_path(event.program.conference.short_title, event)

View file

@ -73,7 +73,7 @@
%dl#proposal-info %dl#proposal-info
.col-md-12 .col-md-12
%dt Date: %dt Date:
%dd= @event_schedule.start_time.strftime("%Y %B %e - %H:%M") if @event_schedule %dd= @event_schedule.start_time.strftime("%Y %B %e - %-I:%M %p") if @event_schedule
.col-md-12 .col-md-12
%dt Duration: %dt Duration:
%dd= show_time(@event.event_type.length) %dd= show_time(@event.event_type.length)
@ -95,7 +95,7 @@
%span.label{style: "background-color: #{@event.track.color}; color: #{ contrast_color(@event.track.color) }"} %span.label{style: "background-color: #{@event.track.color}; color: #{ contrast_color(@event.track.color) }"}
= @event.track.name = @event.track.name
.col-md-12 .col-md-12
%dt Difficulty: %dt Audience:
%dd %dd
- if @event.difficulty_level - if @event.difficulty_level
%span.label{style: "background-color: #{@event.difficulty_level.color}; color: #{ contrast_color(@event.difficulty_level.color) };"} %span.label{style: "background-color: #{@event.difficulty_level.color}; color: #{ contrast_color(@event.difficulty_level.color) };"}
@ -118,7 +118,7 @@
%dl %dl
%dt Start Time: %dt Start Time:
%dd %dd
= event.program.selected_event_schedules.find { |es| es.event == event }.start_time.strftime("%Y %B %e %H:%M") = event.program.selected_event_schedules.find { |es| es.event == event }.start_time.strftime("%Y %B %e %-I:%M %p")
%br %br
%dt Room: %dt Room:
%dd %dd

View file

@ -17,9 +17,7 @@
- interval_count.times do - interval_count.times do
%th.date %th.date
%span %span
= (td_start_time).strftime("%H:") = (td_start_time).strftime("%-I:%M %p")
%span
= (td_start_time).strftime("%M")
- td_start_time += @step_minutes - td_start_time += @step_minutes
- start_room_time = start_time - start_room_time = start_time
- @rooms.each do |room| - @rooms.each do |room|

View file

@ -24,9 +24,9 @@
%span.track %span.track
%span.fa-solid.fa-clock %span.fa-solid.fa-clock
%span.label{ style: "background-color: grey" } %span.label{ style: "background-color: grey" }
= event_schedule.start_time.strftime('%H:%M') = event_schedule.start_time.strftime('%-I:%M %p')
\- \-
= event_schedule.end_time.strftime('%H:%M') = event_schedule.end_time.strftime('%-I:%M %p')
%span.track %span.track
%span.fa-solid.fa-location-dot %span.fa-solid.fa-location-dot
%span.label{ style: "background-color: grey" } %span.label{ style: "background-color: grey" }

View file

@ -42,7 +42,7 @@
} }
}); });
// hide the right and left controls when neccesary after moving the carousel // hide the right and left controls when necessary after moving the carousel
$('.carousel').on('slid.bs.carousel', '', $('.carousel').on('slid.bs.carousel', '',
function(){ function(){
$(this).children('.left.carousel-control').show(); $(this).children('.left.carousel-control').show();

View file

@ -21,7 +21,6 @@
/ scheduled events / scheduled events
- date = nil - date = nil
- time = nil
- @events_schedules.each do |event_schedule| - @events_schedules.each do |event_schedule|
- unless event_schedule.start_time.strftime('%Y-%m-%d').eql?(date) - unless event_schedule.start_time.strftime('%Y-%m-%d').eql?(date)
.col-xs-12.col-md-12 .col-xs-12.col-md-12
@ -30,16 +29,12 @@
= date = event_schedule.start_time.strftime('%Y-%m-%d') = date = event_schedule.start_time.strftime('%Y-%m-%d')
%a{ title: "Go up", class: "pull-right", href: "#program" } %a{ title: "Go up", class: "pull-right", href: "#program" }
%i{ class: "fa-solid fa-angles-up fa-lg", 'aria-hidden' => true } %i{ class: "fa-solid fa-angles-up fa-lg", 'aria-hidden' => true }
- unless event_schedule.start_time.strftime('%H:%M').eql?(time)
.col-xs-12.col-md-1 .col-xs-12.col-md-1
.start-time .start-time
= time = event_schedule.start_time.strftime('%H:%M') = event_schedule.start_time.strftime('%-I:%M %p')
.col-xs-12.col-md-11 .col-xs-12.col-md-11
.new-time-event .new-time-event
= render partial: 'event', locals: { event: event_schedule.event, event_schedule: event_schedule } = render partial: 'event', locals: { event: event_schedule.event, event_schedule: event_schedule }
- else
.col-xs-12.col-md-11.col-md-offset-1
= render partial: 'event', locals: { event: event_schedule.event, event_schedule: event_schedule }
/ confirmed events that are not scheduled / confirmed events that are not scheduled
- if @unscheduled_events.any? - if @unscheduled_events.any?

View file

@ -43,7 +43,7 @@
}); });
}); });
// hide the right and left controls when neccesary after moving the carousel // hide the right and left controls when necessary after moving the carousel
$('.carousel').on('slid.bs.carousel', '', $('.carousel').on('slid.bs.carousel', '',
function(){ function(){
$(this).children('.left.carousel-control').show(); $(this).children('.left.carousel-control').show();

View file

@ -12,7 +12,7 @@
%th Updated Attribute %th Updated Attribute
%th{ class: "#{'hidden' if version.event == 'create'}" } %th{ class: "#{'hidden' if version.event == 'create'}" }
Prevous Value Previous Value
%th{ class: "#{'hidden' if version.event == 'destroy'}" } %th{ class: "#{'hidden' if version.event == 'destroy'}" }
New Value New Value

0
bin/bundle Executable file → Normal file
View file

0
bin/bundle_report Executable file → Normal file
View file

0
bin/delayed_job Executable file → Normal file
View file

0
bin/deprecations Executable file → Normal file
View file

0
bin/gem-next-diff Executable file → Normal file
View file

0
bin/next Executable file → Normal file
View file

0
bin/rails Executable file → Normal file
View file

0
bin/rake Executable file → Normal file
View file

0
bin/rspec Executable file → Normal file
View file

View file

@ -1,24 +1,25 @@
services: services:
production_database: postgres:
image: postgres:12-alpine image: postgres:16-alpine
environment: environment:
PGDATA: /var/lib/postgresql/data/pgdata PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_USER: osem
POSTGRES_PASSWORD: mysecretpassword POSTGRES_PASSWORD: mysecretpassword
volumes: volumes:
- osem_production_database:/var/lib/postgresql/data/pgdata - osem_production_database:/var/lib/postgresql/data/pgdata
production_web: osem:
build: build:
context: . context: .
dockerfile: Dockerfile.production dockerfile: Dockerfile.production
depends_on: depends_on:
- production_database - postgres
ports: ports:
- 8080:3000 - 80:5000
env_file: .env.production # see dotenv.example file env_file: .env.production # see dotenv.example file
environment: environment:
OSEM_DB_HOST: production_database OSEM_DB_HOST: postgres
RAILS_SERVE_STATIC_FILES: 'true' OSEM_DB_USER: osem
command: foreman start -p 3000 OSEM_DB_PASSWORD: mysecretpassword
volumes: volumes:
- osem_production_web_data:/osem/public/system - osem_production_web_data:/osem/public/system
- osem_production_web_assets:/osem/public/assets - osem_production_web_assets:/osem/public/assets

View file

@ -12,7 +12,7 @@
# The name of the host the database runs on # The name of the host the database runs on
# OSEM_DB_HOST=database # OSEM_DB_HOST=database
# The port the databse runs on # The port the database runs on
# OSEM_DB_PORT=3306 # OSEM_DB_PORT=3306
# The user to access the database with # The user to access the database with

View file

@ -6,7 +6,7 @@ namespace :data do
task demo: :environment do task demo: :environment do
include FactoryBot::Syntax::Methods include FactoryBot::Syntax::Methods
conference = create(:full_conference, title: 'Open Source Event Manager Demo', short_title: 'osemdemo' ,description: "This is a [Open Source Event Manager](http://osem.io/) demo instance. You can log in as **admin** with the password **password123** or just you just [sign up](/accounts/sign_up) with your own user. We hope you enjoy checking out all the functionality, if you have questions don't hesitate to [contact us](http://osem.io/#contact)!\r\n\r\n## Data will be destroyed every thirty minutes or whenever someone updates the [OSEM source code on github](https://github.com/openSUSE/osem/commits/master).") conference = create(:full_conference, title: 'Open Source Event Manager Demo', short_title: 'osemdemo' ,description: "This is an [Open Source Event Manager](http://osem.io/) demo instance. You can log in as **admin** with the password **password123** or you [sign up](/accounts/sign_up) as a user. We hope you enjoy checking out all the functionality, if you have questions do not hesitate to contact us on [IRC](https://web.libera.chat/#osem) or file an issue on [GitHub](https://github.com/openSUSE/osem).\r\n\r\n## Data will be destroyed every thirty minutes! (next reset: #{29.minutes.after})")
conference.contact.update(email: 'osemdemo@osem.io', sponsor_email: 'osemdemo@osem.io') conference.contact.update(email: 'osemdemo@osem.io', sponsor_email: 'osemdemo@osem.io')
create(:admin, email: 'admin@osem.io', username: 'admin', password: 'password123', password_confirmation: 'password123') create(:admin, email: 'admin@osem.io', username: 'admin', password: 'password123', password_confirmation: 'password123')
end end

View file

@ -7,7 +7,7 @@ namespace :data do
task surveys: :environment do task surveys: :environment do
conference = create(:full_conference, start_date: Date.current, end_date: Date.current + 1.day) conference = create(:full_conference, start_date: Date.current, end_date: Date.current + 1.day)
survey_after_conference_active = create(:survey, surveyable: conference, target: :after_conference, title: 'Survey about the conference', start_date: conference.start_date - 1.day, end_date: conference.end_date + 5.days, description: 'Survey about the conference. You can already see it.') survey_after_conference_active = create(:survey, surveyable: conference, target: :after_conference, title: 'Survey about the conference', start_date: conference.start_date - 1.day, end_date: conference.end_date + 5.days, description: 'Survey about the conference. You can already see it.')
# survey_after_conference_inactive = create(:survey, surveyable: conference, target: :after_conference, title: 'Survey about the conference', start_date: conference.start_date + 1.day, end_date: conference.end_date + 5.days, description: 'Survey abou the conference. Not available yet!') # survey_after_conference_inactive = create(:survey, surveyable: conference, target: :after_conference, title: 'Survey about the conference', start_date: conference.start_date + 1.day, end_date: conference.end_date + 5.days, description: 'Survey about the conference. Not available yet!')
# survey_on_registration = create(:survey, surveyable: conference, target: :during_registration, title: 'Survey during registation', start_date: conference.registration_period.start_date, end_date: conference.registration_period.end_date, description: 'Survey during registration.') # survey_on_registration = create(:survey, surveyable: conference, target: :during_registration, title: 'Survey during registation', start_date: conference.registration_period.start_date, end_date: conference.registration_period.end_date, description: 'Survey during registration.')
create(:boolean_non_mandatory, survey: survey_after_conference_active) create(:boolean_non_mandatory, survey: survey_after_conference_active)

View file

@ -16,7 +16,7 @@ namespace :user do
end end
end end
desc "Set email_public attrubute true for all users" desc "Set email_public attribute true for all users"
task :set_email_public => :environment do task :set_email_public => :environment do
User.update_all email_public: true User.update_all email_public: true
end end

View file

@ -1,11 +0,0 @@
{
"$schema": "https://railway.app/railway.schema.json",
"build": {
"builder": "nixpacks"
},
"deploy": {
"startCommand": "foreman start -p 3000",
"restartPolicyType": "ON_FAILURE",
"restartPolicyMaxRetries": 2
}
}

View file

@ -264,5 +264,31 @@ describe 'User' do
it{ should_not be_able_to(:edit, other_self_organized_track) } it{ should_not be_able_to(:edit, other_self_organized_track) }
it{ should_not be_able_to(:update, other_self_organized_track) } it{ should_not be_able_to(:update, other_self_organized_track) }
end end
context 'when user is organizer of conference' do
let(:conference) { create(:conference) }
let(:user) { create(:organizer, resource: conference) }
let(:event_in_conference) { create(:event, program: conference.program) }
let(:event_in_other_conference) { create(:event) }
let(:commercial_in_conference) { create(:commercial, commercialable: event_in_conference) }
let(:commercial_in_other_conference) { create(:commercial, commercialable: event_in_other_conference) }
it{ should be_able_to(:create, event_in_conference.commercials.new) }
it{ should be_able_to(:manage, commercial_in_conference) }
it{ should_not be_able_to(:manage, commercial_in_other_conference) }
end
context 'when user is on cfp team of conference' do
let(:conference) { create(:conference) }
let(:user) { create(:cfp_user, resource: conference) }
let(:event_in_conference) { create(:event, program: conference.program) }
let(:event_in_other_conference) { create(:event) }
let(:commercial_in_conference) { create(:commercial, commercialable: event_in_conference) }
let(:commercial_in_other_conference) { create(:commercial, commercialable: event_in_other_conference) }
it{ should be_able_to(:create, event_in_conference.commercials.new) }
it{ should be_able_to(:manage, commercial_in_conference) }
it{ should_not be_able_to(:manage, commercial_in_other_conference) }
end
end end
end end

View file

@ -4,7 +4,7 @@
FactoryBot.define do FactoryBot.define do
factory :comment do factory :comment do
body { 'Most interresting comment ever, created by a girl.' } body { 'Most interesting comment ever, created by a girl.' }
user user
association :commentable, factory: :event association :commentable, factory: :event
end end

0
spec/models/conference_spec.rb Executable file → Normal file
View file