Compare commits
234 commits
depfu/upda
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
abbd12cc96 | ||
|
|
68c5f5e32b | ||
|
|
ef82ef8941 | ||
|
|
e267adf8b7 | ||
|
|
a5718c7ac9 | ||
|
|
4c23286900 | ||
|
|
9ccd5f0cb4 | ||
|
|
892b5bf729 | ||
|
|
7cd8156c90 | ||
|
|
c6b66dcce2 | ||
|
|
d2ce016030 | ||
|
|
9fbccfcaea | ||
|
|
83b746ef4c | ||
|
|
18bba1ae8c | ||
|
|
a2f13d90b7 | ||
|
|
f2e63bb570 | ||
|
|
ddfb343d75 | ||
|
|
fc3d09808f | ||
|
|
379886ed84 | ||
|
|
b0d261adae | ||
|
|
47351fb163 | ||
|
|
51cb804410 | ||
|
|
cbaf7d33b5 | ||
|
|
e6988e8418 | ||
|
|
4dbb1bba27 | ||
|
|
399d174fa9 | ||
|
|
1cd22381fc | ||
|
|
f525469c52 | ||
|
|
6aef4883a3 | ||
|
|
4b6895f31d | ||
|
|
83148dfea1 | ||
|
|
d5a056d7cf | ||
|
|
1346187fa6 | ||
|
|
70f61787b6 | ||
|
|
6341d1e3b3 | ||
|
|
cb5ad735c4 | ||
|
|
de4400a01f | ||
|
|
4c19375c6a | ||
|
|
03a8035eb9 | ||
|
|
00c5740869 | ||
|
|
8125ffa818 | ||
|
|
75344ae4a0 | ||
|
|
f66eb8393c | ||
|
|
bd149ff255 | ||
|
|
9b5f97c00a | ||
|
|
c0fe3d9083 | ||
|
|
a9198a0576 | ||
|
|
c6b012868d | ||
|
|
f4230eece1 | ||
|
|
010169f9b4 | ||
|
|
580943c28d | ||
|
|
0e7eb51f7e | ||
|
|
0861ca9dbc | ||
|
|
dc1ce6318b | ||
|
|
96f712a1f8 | ||
|
|
c8e6fabed1 | ||
|
|
c9a4604fc2 | ||
|
|
6289a9cd57 | ||
|
|
76509f739d | ||
|
|
6e74df2b10 | ||
|
|
22aa9a33db | ||
|
|
71679bb95b | ||
|
|
c972db79d4 | ||
|
|
45cc3ef1bd | ||
|
|
c8b94ce8b7 | ||
|
|
36d97ac405 | ||
|
|
14b636cd85 | ||
|
|
0df9272151 | ||
|
|
ce9e49a510 | ||
|
|
9d43a47ebb | ||
|
|
baaf6f9378 | ||
|
|
953b712719 | ||
|
|
57846bf7ee | ||
|
|
db13f563b2 | ||
|
|
ee48f02425 | ||
|
|
99d0e2257b | ||
|
|
bd241868a4 | ||
|
|
533f09a6dd | ||
|
|
e4d15aa1f7 | ||
|
|
ba59f4b5c8 | ||
|
|
2dde4af593 | ||
|
|
fb5d37453f | ||
|
|
dc6bd8f352 | ||
|
|
95c81938d0 | ||
|
|
b846b3fca9 | ||
|
|
d652179f59 | ||
|
|
8ca6e62104 | ||
|
|
14b022d8c7 | ||
|
|
24d018773d | ||
|
|
70128c8280 | ||
|
|
b1c7d3619c | ||
|
|
91ab8c7814 | ||
|
|
a4386334ed | ||
|
|
a826113f51 | ||
|
|
0e94be0774 | ||
|
|
9ff37fe106 | ||
|
|
3494b91f4d | ||
|
|
ad92fd4b9b | ||
|
|
e6875c6c1c | ||
|
|
7e5c874d5e | ||
|
|
76c9a5330e | ||
|
|
d6e36f2845 | ||
|
|
d588fb00da | ||
|
|
bb3868f351 | ||
|
|
d69255dbbd | ||
|
|
cf87cc6280 | ||
|
|
bead2ecff7 | ||
|
|
c9e927d4fa | ||
|
|
48748cb466 | ||
|
|
f52b58ec40 | ||
|
|
c8d33018e4 | ||
|
|
8943807c04 | ||
|
|
44db914089 | ||
|
|
486eb1922a | ||
|
|
23d2ee5ced | ||
|
|
891842c8c3 | ||
|
|
c894c80e14 | ||
|
|
df0d263a46 | ||
|
|
1b7f8569a6 | ||
|
|
b9b2a75f70 | ||
|
|
a7a022e68e | ||
|
|
2f575a52fc | ||
|
|
ba53909d3a | ||
|
|
6e84eca20a | ||
|
|
db7fdc4964 | ||
|
|
5cb70ba0bb | ||
|
|
25f73b54cb | ||
|
|
b500f5722b | ||
|
|
81e0c4254e | ||
|
|
c380cdf97e | ||
|
|
bb0181f651 | ||
|
|
08fcfee6e9 | ||
|
|
b67265f8ce | ||
|
|
12cc7527cd | ||
|
|
17b7330e28 | ||
|
|
5b04b8892d | ||
|
|
4ba2eee42e | ||
|
|
ae34a6d625 | ||
|
|
b96263be5f | ||
|
|
89c5861b79 | ||
|
|
f564fc6d65 | ||
|
|
ff391e296a | ||
|
|
5a7a5c21dd | ||
|
|
901070f7e5 | ||
|
|
13601bf818 | ||
|
|
5c054c8618 | ||
|
|
743834af83 | ||
|
|
e7335430e7 | ||
|
|
e911c4285c | ||
|
|
3c7cb02a2e | ||
|
|
c407d2f4a7 | ||
|
|
b0c53a8e9d | ||
|
|
00787f45df | ||
|
|
f3f2887ba8 | ||
|
|
173d12ad91 | ||
|
|
972cbdfa69 | ||
|
|
77568760e6 | ||
|
|
14836a04a8 | ||
|
|
ae30f6ec23 | ||
|
|
e13485d14e | ||
|
|
e17acb7ea5 | ||
|
|
01adc1cce0 | ||
|
|
35e667375c | ||
|
|
8fd68a525f | ||
|
|
4fc8726c41 | ||
|
|
0f7f610aba | ||
|
|
44502ea5fa | ||
|
|
d9c76e1a8d | ||
|
|
3f6938d0ee | ||
|
|
e703d1dcf4 | ||
|
|
2083fde297 | ||
|
|
c2238b9025 | ||
|
|
7d9739349b | ||
|
|
fe8b4b71e4 | ||
|
|
688a8e3561 | ||
|
|
9dd52fddf5 | ||
|
|
8d3808e1bb | ||
|
|
5e34a09983 | ||
|
|
58f4746ace | ||
|
|
69e00aae8e | ||
|
|
cb767c8e77 | ||
|
|
0aa688dfd8 | ||
|
|
6445e5c340 | ||
|
|
4ba2a241ec | ||
|
|
768f42a0b3 | ||
|
|
19d28def75 | ||
|
|
e98cce5294 | ||
|
|
e67184cfac | ||
|
|
93662dc489 | ||
|
|
eca537daf7 | ||
|
|
270cd76e45 | ||
|
|
7439fb4dfb | ||
|
|
0540401c71 | ||
|
|
60cb627275 | ||
|
|
1ab2b3b276 | ||
|
|
6072110906 | ||
|
|
9d4cf0799e | ||
|
|
677044b490 | ||
|
|
14578a80fd | ||
|
|
b63afc4630 | ||
|
|
ce2ee2a925 | ||
|
|
ff140c1969 | ||
|
|
d45e6797cf | ||
|
|
499f007810 | ||
|
|
0af86f55c3 | ||
|
|
2756a9e84b | ||
|
|
762809b031 | ||
|
|
6e276b2787 | ||
|
|
3d2e03a091 | ||
|
|
d8faa3afc3 | ||
|
|
6668f90910 | ||
|
|
dd9dede062 | ||
|
|
aaff07e48b | ||
|
|
9a398da9c8 | ||
|
|
e8ea0f1c25 | ||
|
|
3e5871a8ab | ||
|
|
1aeb87854c | ||
|
|
86781095cd | ||
|
|
3c7ec664c1 | ||
|
|
3266406626 | ||
|
|
3351030c84 | ||
|
|
ebf972a69b | ||
|
|
d0cb4d01f9 | ||
|
|
9725ada314 | ||
|
|
49c4832100 | ||
|
|
84cde8f7b1 | ||
|
|
89eb6af498 | ||
|
|
8d1fd67a8e | ||
|
|
c9e863a2de | ||
|
|
59270e0691 | ||
|
|
378ba175d5 | ||
|
|
8336f0cce5 | ||
|
|
c5cbf38639 | ||
|
|
97cc0b3d6a |
76 changed files with 352 additions and 353 deletions
|
|
@ -1 +1 @@
|
||||||
3.4.5
|
3.4.10
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
4
Gemfile
4
Gemfile
|
|
@ -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
|
||||||
|
|
|
||||||
410
Gemfile.lock
410
Gemfile.lock
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Gemfile
|
|
||||||
1
Gemfile.next
Normal file
1
Gemfile.next
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Gemfile
|
||||||
16
INSTALL.md
16
INSTALL.md
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
37
app.json
37
app.json
|
|
@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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?
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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: [],
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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?
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
%th
|
%th
|
||||||
%b Track
|
%b Track
|
||||||
%th
|
%th
|
||||||
%b Difficulty
|
%b Audience
|
||||||
%th
|
%th
|
||||||
%b State
|
%b State
|
||||||
%th
|
%th
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 : '' )
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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'} *
|
||||||
|
|
|
||||||
|
|
@ -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'} *
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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|
|
||||||
|
|
|
||||||
|
|
@ -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" }
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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?
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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
0
bin/bundle
Executable file → Normal file
0
bin/bundle_report
Executable file → Normal file
0
bin/bundle_report
Executable file → Normal file
0
bin/delayed_job
Executable file → Normal file
0
bin/delayed_job
Executable file → Normal file
0
bin/deprecations
Executable file → Normal file
0
bin/deprecations
Executable file → Normal file
0
bin/gem-next-diff
Executable file → Normal file
0
bin/gem-next-diff
Executable file → Normal file
0
bin/next
Executable file → Normal file
0
bin/next
Executable file → Normal file
0
bin/rails
Executable file → Normal file
0
bin/rails
Executable file → Normal file
0
bin/rake
Executable file → Normal file
0
bin/rake
Executable file → Normal file
0
bin/rspec
Executable file → Normal file
0
bin/rspec
Executable file → Normal 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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
11
railway.json
11
railway.json
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
0
spec/models/conference_spec.rb
Executable file → Normal file
Loading…
Add table
Add a link
Reference in a new issue