mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
commit
457fbd1d5a
239 changed files with 2715 additions and 2786 deletions
2
.github/workflows/next-rails.yml
vendored
2
.github/workflows/next-rails.yml
vendored
|
|
@ -26,7 +26,7 @@ jobs:
|
|||
echo "BUNDLE_CACHE_PATH=vendor/cache.next" >> $GITHUB_ENV
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.5
|
||||
ruby-version: 3.1.0
|
||||
bundler-cache: true
|
||||
- name: Prepare spec
|
||||
run: |
|
||||
|
|
|
|||
4
.github/workflows/spec.yml
vendored
4
.github/workflows/spec.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.5
|
||||
ruby-version: 3.1.0
|
||||
bundler-cache: true
|
||||
- run: bundle exec rubocop
|
||||
- run: bundle exec haml-lint app/views
|
||||
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.5
|
||||
ruby-version: 3.1
|
||||
bundler-cache: true
|
||||
- name: Prepare spec
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
# This configuration was generated by
|
||||
# `rubocop --auto-gen-config`
|
||||
# on 2021-08-13 12:49:18 UTC using RuboCop version 1.19.0.
|
||||
# on 2022-02-10 16:47:29 UTC using RuboCop version 1.25.1.
|
||||
# The point is for the user to remove these configuration records
|
||||
# one by one as the offenses are removed from the code base.
|
||||
# Note that changes in the inspected code, or installation of new
|
||||
# versions of RuboCop, may require this file to be generated again.
|
||||
|
||||
# Offense count: 1
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
|
||||
# Include: **/*.gemfile, **/Gemfile, **/gems.rb
|
||||
|
|
@ -14,13 +14,12 @@ Bundler/OrderedGems:
|
|||
Exclude:
|
||||
- 'Gemfile'
|
||||
|
||||
# Offense count: 5
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: IndentationWidth.
|
||||
Layout/AssignmentIndentation:
|
||||
Exclude:
|
||||
- 'app/helpers/format_helper.rb'
|
||||
- 'config/environments/development.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# Cop supports --auto-correct.
|
||||
|
|
@ -33,6 +32,7 @@ Layout/ClosingParenthesisIndentation:
|
|||
|
||||
# Offense count: 14
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowForAlignment.
|
||||
Layout/CommentIndentation:
|
||||
Exclude:
|
||||
- 'app/controllers/admin/comments_controller.rb'
|
||||
|
|
@ -42,13 +42,6 @@ Layout/CommentIndentation:
|
|||
- 'app/models/track.rb'
|
||||
- 'spec/features/volunteers_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowBorderComment, AllowMarginComment.
|
||||
Layout/EmptyComment:
|
||||
Exclude:
|
||||
- 'config/initializers/formtastic.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
Layout/EmptyLineAfterGuardClause:
|
||||
|
|
@ -62,7 +55,7 @@ Layout/EmptyLineAfterMagicComment:
|
|||
Exclude:
|
||||
- 'spec/models/conference_spec.rb'
|
||||
|
||||
# Offense count: 113
|
||||
# Offense count: 108
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: empty_lines, no_empty_lines
|
||||
|
|
@ -75,17 +68,13 @@ Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
|||
Exclude:
|
||||
- 'app/models/payment.rb'
|
||||
|
||||
# Offense count: 13
|
||||
# Offense count: 6
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
|
||||
Layout/ExtraSpacing:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
- 'app/controllers/application_controller.rb'
|
||||
- 'app/views/admin/events/_all_with_comments.xlsx.axlsx'
|
||||
- 'bin/rails'
|
||||
- 'config.ru'
|
||||
- 'config/environments/test.rb'
|
||||
- 'db/migrate/20140623101032_create_ahoy_events.rb'
|
||||
- 'db/migrate/20140701123203_add_events_per_week_to_conference.rb'
|
||||
- 'db/migrate/20140719160903_create_delayed_jobs.rb'
|
||||
|
|
@ -140,12 +129,11 @@ Layout/IndentationWidth:
|
|||
Exclude:
|
||||
- 'app/controllers/users_controller.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
|
||||
Layout/LeadingCommentSpace:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
- 'app/models/comment.rb'
|
||||
|
||||
# Offense count: 32
|
||||
|
|
@ -179,14 +167,14 @@ Layout/MultilineHashBraceLayout:
|
|||
- 'config/routes.rb'
|
||||
- 'spec/models/event_spec.rb'
|
||||
|
||||
# Offense count: 36
|
||||
# Offense count: 35
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: symmetrical, new_line, same_line
|
||||
Layout/MultilineMethodCallBraceLayout:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 56
|
||||
# Offense count: 55
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
||||
# SupportedStyles: aligned, indented, indented_relative_to_receiver
|
||||
|
|
@ -241,14 +229,13 @@ Layout/SpaceAroundMethodCallOperator:
|
|||
- 'spec/features/organizer_ability_spec.rb'
|
||||
- 'spec/models/program_spec.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
|
||||
# SupportedStylesForExponentOperator: space, no_space
|
||||
Layout/SpaceAroundOperators:
|
||||
Exclude:
|
||||
- 'app/views/admin/events/_all_with_comments.xlsx.axlsx'
|
||||
- 'config/environments/test.rb'
|
||||
- 'lib/tasks/data.rake'
|
||||
|
||||
# Offense count: 139
|
||||
|
|
@ -278,12 +265,6 @@ Layout/SpaceBeforeFirstArg:
|
|||
Exclude:
|
||||
- 'app/controllers/admin/booths_controller.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
Layout/SpaceBeforeSemicolon:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
|
||||
# Offense count: 8
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBrackets.
|
||||
|
|
@ -339,7 +320,7 @@ Layout/SpaceInsideHashLiteralBraces:
|
|||
# Offense count: 4
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: space, no_space
|
||||
# SupportedStyles: space, compact, no_space
|
||||
Layout/SpaceInsideParens:
|
||||
Exclude:
|
||||
- 'app/views/admin/registrations/index.xlsx.axlsx'
|
||||
|
|
@ -371,11 +352,17 @@ Lint/AmbiguousBlockAssociation:
|
|||
- 'spec/controllers/schedules_controller_spec.rb'
|
||||
- 'spec/models/user_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Configuration parameters: AllowSafeAssignment.
|
||||
Lint/AssignmentInCondition:
|
||||
# Offense count: 13
|
||||
# Cop supports --auto-correct.
|
||||
Lint/AmbiguousOperatorPrecedence:
|
||||
Exclude:
|
||||
- 'bin/spring'
|
||||
- 'app/controllers/application_controller.rb'
|
||||
- 'app/helpers/conference_helper.rb'
|
||||
- 'app/models/admin_ability.rb'
|
||||
- 'app/models/commercial.rb'
|
||||
- 'app/models/conference.rb'
|
||||
- 'app/models/track.rb'
|
||||
- 'app/pdfs/ticket_pdf.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Configuration parameters: AllowedMethods.
|
||||
|
|
@ -409,31 +396,12 @@ Lint/IneffectiveAccessModifier:
|
|||
- 'app/models/commercial.rb'
|
||||
- 'app/models/conference.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
Lint/NonDeterministicRequireOrder:
|
||||
Exclude:
|
||||
- 'spec/spec_helper.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
Lint/RedundantCopDisableDirective:
|
||||
Exclude:
|
||||
- 'spec/support/save_feature_failures.rb'
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
Lint/ScriptPermission:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
- 'Rakefile'
|
||||
|
||||
# Offense count: 1
|
||||
# Configuration parameters: AllowComments, AllowNil.
|
||||
Lint/SuppressedException:
|
||||
Exclude:
|
||||
- 'bin/rspec'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
|
||||
|
|
@ -455,16 +423,16 @@ Lint/UriRegexp:
|
|||
- 'app/models/commercial.rb'
|
||||
- 'app/models/contact.rb'
|
||||
|
||||
# Offense count: 128
|
||||
# Offense count: 127
|
||||
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
||||
Metrics/AbcSize:
|
||||
Max: 71
|
||||
|
||||
# Offense count: 315
|
||||
# Offense count: 313
|
||||
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
||||
# IgnoredMethods: refine
|
||||
Metrics/BlockLength:
|
||||
Max: 1344
|
||||
Max: 1341
|
||||
|
||||
# Offense count: 1
|
||||
# Configuration parameters: CountBlocks.
|
||||
|
|
@ -476,12 +444,12 @@ Metrics/BlockNesting:
|
|||
Metrics/ClassLength:
|
||||
Max: 652
|
||||
|
||||
# Offense count: 28
|
||||
# Offense count: 29
|
||||
# Configuration parameters: IgnoredMethods.
|
||||
Metrics/CyclomaticComplexity:
|
||||
Max: 16
|
||||
|
||||
# Offense count: 150
|
||||
# Offense count: 152
|
||||
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
||||
Metrics/MethodLength:
|
||||
Max: 56
|
||||
|
|
@ -491,7 +459,7 @@ Metrics/MethodLength:
|
|||
Metrics/ModuleLength:
|
||||
Max: 173
|
||||
|
||||
# Offense count: 25
|
||||
# Offense count: 26
|
||||
# Configuration parameters: IgnoredMethods.
|
||||
Metrics/PerceivedComplexity:
|
||||
Max: 19
|
||||
|
|
@ -510,15 +478,6 @@ Naming/HeredocDelimiterNaming:
|
|||
- 'spec/factories/users.rb'
|
||||
- 'spec/models/user_spec.rb'
|
||||
|
||||
# Offense count: 10
|
||||
# Configuration parameters: CheckIdentifiers, CheckConstants, CheckVariables, CheckStrings, CheckSymbols, CheckComments, CheckFilepaths, FlaggedTerms.
|
||||
Naming/InclusiveLanguage:
|
||||
Exclude:
|
||||
- 'app/controllers/admin/contacts_controller.rb'
|
||||
- 'app/controllers/users_controller.rb'
|
||||
- 'app/uploaders/picture_uploader.rb'
|
||||
- 'config/application.rb'
|
||||
|
||||
# Offense count: 2
|
||||
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
||||
# AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
|
||||
|
|
@ -618,7 +577,7 @@ RSpec/DescribedClass:
|
|||
- 'spec/serializers/speaker_serializer_spec.rb'
|
||||
- 'spec/serializers/track_serializer_spec.rb'
|
||||
|
||||
# Offense count: 13
|
||||
# Offense count: 11
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowConsecutiveOneLiners.
|
||||
RSpec/EmptyLineAfterExample:
|
||||
|
|
@ -649,7 +608,7 @@ RSpec/EmptyLineAfterFinalLet:
|
|||
- 'spec/models/payment_spec.rb'
|
||||
- 'spec/models/ticket_spec.rb'
|
||||
|
||||
# Offense count: 16
|
||||
# Offense count: 17
|
||||
# Cop supports --auto-correct.
|
||||
RSpec/EmptyLineAfterHook:
|
||||
Exclude:
|
||||
|
|
@ -682,7 +641,7 @@ RSpec/EmptyLineAfterSubject:
|
|||
RSpec/ExampleLength:
|
||||
Max: 187
|
||||
|
||||
# Offense count: 19
|
||||
# Offense count: 18
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: CustomTransform, IgnoredWords.
|
||||
RSpec/ExampleWording:
|
||||
|
|
@ -829,7 +788,7 @@ RSpec/MultipleDescribes:
|
|||
- 'spec/controllers/application_controller_spec.rb'
|
||||
- 'spec/models/conference_spec.rb'
|
||||
|
||||
# Offense count: 279
|
||||
# Offense count: 277
|
||||
RSpec/MultipleExpectations:
|
||||
Max: 97
|
||||
|
||||
|
|
@ -951,7 +910,7 @@ Style/AccessorGrouping:
|
|||
- 'app/models/payment.rb'
|
||||
|
||||
# Offense count: 12
|
||||
# Cop supports --auto-correct.
|
||||
# Cop supports --auto-correct-all.
|
||||
Style/CaseLikeIf:
|
||||
Exclude:
|
||||
- 'app/controllers/admin/roles_controller.rb'
|
||||
|
|
@ -1007,14 +966,6 @@ Style/ConditionalAssignment:
|
|||
Style/Documentation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: allowed_in_returns, forbidden
|
||||
Style/DoubleNegation:
|
||||
Exclude:
|
||||
- 'config/environments/production.rb'
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
Style/EmptyCaseCondition:
|
||||
|
|
@ -1042,37 +993,22 @@ Style/EmptyMethod:
|
|||
- 'db/migrate/20130206192339_rename_attending_social_events_with_partner.rb'
|
||||
- 'db/migrate/20130216122155_set_registration_defaults_to_false.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
Style/Encoding:
|
||||
Exclude:
|
||||
- 'app/uploaders/picture_uploader.rb'
|
||||
- 'config/initializers/formtastic.rb'
|
||||
- 'config/initializers/money.rb'
|
||||
- 'spec/models/conference_spec.rb'
|
||||
|
||||
# Offense count: 11
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
Style/ExpandPathArguments:
|
||||
Exclude:
|
||||
- 'Rakefile'
|
||||
- 'bin/bundle'
|
||||
- 'bin/rails'
|
||||
- 'bin/rspec'
|
||||
- 'bin/setup'
|
||||
- 'bin/update'
|
||||
- 'config.ru'
|
||||
- 'config/application.rb'
|
||||
- 'config/environment.rb'
|
||||
- 'spec/spec_helper.rb'
|
||||
|
||||
# Offense count: 9
|
||||
# Cop supports --auto-correct.
|
||||
Style/ExplicitBlockArgument:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
|
||||
# Offense count: 48
|
||||
# Offense count: 41
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: always, always_true, never
|
||||
|
|
@ -1085,7 +1021,7 @@ Style/GlobalStdStream:
|
|||
Exclude:
|
||||
- 'config/environments/production.rb'
|
||||
|
||||
# Offense count: 28
|
||||
# Offense count: 29
|
||||
# Configuration parameters: MinBodyLength.
|
||||
Style/GuardClause:
|
||||
Enabled: false
|
||||
|
|
@ -1114,25 +1050,22 @@ Style/HashLikeCase:
|
|||
Exclude:
|
||||
- 'app/helpers/versions_helper.rb'
|
||||
|
||||
# Offense count: 7
|
||||
# Offense count: 358
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
|
||||
# Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
|
||||
# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
|
||||
# SupportedShorthandSyntax: always, never, either
|
||||
Style/HashSyntax:
|
||||
Exclude:
|
||||
- 'Gemfile'
|
||||
- 'app/views/admin/events/events.xlsx.axlsx'
|
||||
- 'app/views/admin/registrations/index.xlsx.axlsx'
|
||||
- 'lib/tasks/user.rake'
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Cop supports --auto-correct-all.
|
||||
Style/HashTransformValues:
|
||||
Exclude:
|
||||
- 'app/controllers/admin/comments_controller.rb'
|
||||
- 'app/helpers/chart_helper.rb'
|
||||
|
||||
# Offense count: 59
|
||||
# Offense count: 61
|
||||
# Cop supports --auto-correct.
|
||||
Style/IfUnlessModifier:
|
||||
Enabled: false
|
||||
|
|
@ -1144,6 +1077,12 @@ Style/LineEndConcatenation:
|
|||
- 'spec/features/conference_spec.rb'
|
||||
- 'spec/features/registration_periods_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct-all.
|
||||
Style/MapToHash:
|
||||
Exclude:
|
||||
- 'app/controllers/admin/comments_controller.rb'
|
||||
|
||||
# Offense count: 9
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
|
|
@ -1154,12 +1093,9 @@ Style/MethodDefParentheses:
|
|||
- 'app/models/user.rb'
|
||||
- 'lib/tasks/demo_data_for_development.rake'
|
||||
|
||||
# Offense count: 4
|
||||
# Offense count: 1
|
||||
Style/MixinUsage:
|
||||
Exclude:
|
||||
- 'bin/setup'
|
||||
- 'bin/update'
|
||||
- 'config/application.rb'
|
||||
- 'spec/spec_helper.rb'
|
||||
|
||||
# Offense count: 7
|
||||
|
|
@ -1213,12 +1149,12 @@ Style/NumericLiteralPrefix:
|
|||
|
||||
# Offense count: 7
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: Strict.
|
||||
# Configuration parameters: Strict, AllowedNumbers.
|
||||
Style/NumericLiterals:
|
||||
MinDigits: 15
|
||||
|
||||
# Offense count: 36
|
||||
# Cop supports --auto-correct.
|
||||
# Cop supports --auto-correct-all.
|
||||
# Configuration parameters: EnforcedStyle, IgnoredMethods.
|
||||
# SupportedStyles: predicate, comparison
|
||||
Style/NumericPredicate:
|
||||
|
|
@ -1266,14 +1202,28 @@ Style/ParenthesesAroundCondition:
|
|||
- 'app/controllers/application_controller.rb'
|
||||
- 'app/helpers/format_helper.rb'
|
||||
|
||||
# Offense count: 21
|
||||
# Offense count: 19
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: PreferredDelimiters.
|
||||
Style/PercentLiteralDelimiters:
|
||||
Enabled: false
|
||||
Exclude:
|
||||
- 'Gemfile'
|
||||
- 'app/controllers/admin/users_controller.rb'
|
||||
- 'app/models/cfp.rb'
|
||||
- 'app/models/comment.rb'
|
||||
- 'app/models/commercial.rb'
|
||||
- 'app/models/conference.rb'
|
||||
- 'app/models/contact.rb'
|
||||
- 'app/models/registration.rb'
|
||||
- 'app/models/subscription.rb'
|
||||
- 'app/models/track.rb'
|
||||
- 'app/uploaders/picture_uploader.rb'
|
||||
- 'config/deploy.rb'
|
||||
- 'config/initializers/formtastic.rb'
|
||||
- 'spec/models/program_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Cop supports --auto-correct-all.
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: short, verbose
|
||||
Style/PreferredHashMethods:
|
||||
|
|
@ -1308,7 +1258,7 @@ Style/RedundantCondition:
|
|||
- 'app/models/ticket.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
# Cop supports --auto-correct-all.
|
||||
# Configuration parameters: SafeForConstants.
|
||||
Style/RedundantFetchBlock:
|
||||
Exclude:
|
||||
|
|
@ -1336,13 +1286,12 @@ Style/RedundantReturn:
|
|||
- 'app/controllers/admin/events_controller.rb'
|
||||
- 'app/controllers/admin/organizations_controller.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, AllowInnerSlashes.
|
||||
# SupportedStyles: slashes, percent_r, mixed
|
||||
Style/RegexpLiteral:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
- 'app/uploaders/picture_uploader.rb'
|
||||
|
||||
# Offense count: 2
|
||||
|
|
@ -1363,13 +1312,6 @@ Style/SignalException:
|
|||
- 'lib/tasks/user.rake'
|
||||
- 'spec/support/flash.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowIfMethodIsEmpty.
|
||||
Style/SingleLineMethods:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
|
||||
# Offense count: 6
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowModifier.
|
||||
|
|
@ -1382,13 +1324,20 @@ Style/SoleNestedConditional:
|
|||
- 'db/migrate/20140801170430_move_event_media_to_commercial.rb'
|
||||
- 'db/migrate/20151018152439_create_programs_table.rb'
|
||||
|
||||
# Offense count: 31
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: RequireEnglish.
|
||||
# SupportedStyles: use_perl_names, use_english_names
|
||||
Style/SpecialGlobalVars:
|
||||
EnforcedStyle: use_perl_names
|
||||
|
||||
# Offense count: 31
|
||||
# Cop supports --auto-correct-all.
|
||||
# Configuration parameters: Mode.
|
||||
Style/StringConcatenation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 31
|
||||
# Offense count: 35
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
|
||||
# SupportedStyles: single_quotes, double_quotes
|
||||
|
|
@ -1396,7 +1345,6 @@ Style/StringLiterals:
|
|||
Exclude:
|
||||
- 'Gemfile'
|
||||
- 'bin/rspec'
|
||||
- 'bin/spring'
|
||||
- 'config/deploy.rb'
|
||||
- 'config/environments/production.rb'
|
||||
- 'config/puma.rb'
|
||||
|
|
@ -1416,7 +1364,7 @@ Style/StringLiteralsInInterpolation:
|
|||
- 'app/views/admin/events/_confirmed_events.xlsx.axlsx'
|
||||
- 'lib/tasks/dump_db.rake'
|
||||
|
||||
# Offense count: 108
|
||||
# Offense count: 109
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, MinSize.
|
||||
# SupportedStyles: percent, brackets
|
||||
|
|
@ -1424,7 +1372,7 @@ Style/SymbolArray:
|
|||
Enabled: false
|
||||
|
||||
# Offense count: 10
|
||||
# Cop supports --auto-correct.
|
||||
# Cop supports --auto-correct-all.
|
||||
# Configuration parameters: AllowMethodsWithArguments, IgnoredMethods.
|
||||
# IgnoredMethods: respond_to, define_method
|
||||
Style/SymbolProc:
|
||||
|
|
@ -1445,14 +1393,6 @@ Style/TernaryParentheses:
|
|||
Exclude:
|
||||
- 'app/helpers/format_helper.rb'
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyleForMultiline.
|
||||
# SupportedStylesForMultiline: comma, consistent_comma, no_comma
|
||||
Style/TrailingCommaInArrayLiteral:
|
||||
Exclude:
|
||||
- 'Guardfile'
|
||||
|
||||
# Offense count: 21
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyleForMultiline.
|
||||
|
|
@ -1476,9 +1416,9 @@ Style/WordArray:
|
|||
EnforcedStyle: percent
|
||||
MinSize: 6
|
||||
|
||||
# Offense count: 533
|
||||
# Offense count: 532
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
||||
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
||||
# URISchemes: http, https
|
||||
Layout/LineLength:
|
||||
Max: 619
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2.5.9
|
||||
3.1.0
|
||||
|
|
|
|||
11
Dockerfile
11
Dockerfile
|
|
@ -1,5 +1,6 @@
|
|||
FROM registry.opensuse.org/opensuse/infrastructure/dale/containers/osem/base:latest
|
||||
ARG CONTAINER_USERID
|
||||
ENV NOKOGIRI_USE_SYSTEM_LIBRARIES=1
|
||||
|
||||
# Configure our user
|
||||
RUN usermod -u $CONTAINER_USERID osem
|
||||
|
|
@ -12,13 +13,15 @@ COPY Gemfile /osem/
|
|||
COPY Gemfile.lock /osem/
|
||||
RUN chown -R osem /osem
|
||||
|
||||
# Add our files
|
||||
# Install bundler & foreman
|
||||
RUN gem.ruby3.1 install bundler -v "$(grep -A 1 "BUNDLED WITH" /osem/Gemfile.lock | tail -n 1)"; \
|
||||
gem.ruby3.1 install foreman
|
||||
|
||||
# Continue as user
|
||||
USER osem
|
||||
WORKDIR /osem/
|
||||
|
||||
# Install bundler & foreman
|
||||
RUN sudo gem install bundler:1.17.3 foreman
|
||||
# Install our bundle
|
||||
RUN export NOKOGIRI_USE_SYSTEM_LIBRARIES=1; bundle install --jobs=3 --retry=3
|
||||
RUN bundle install --jobs=3 --retry=3
|
||||
|
||||
CMD ["foreman", "start"]
|
||||
|
|
|
|||
20
Gemfile
20
Gemfile
|
|
@ -5,7 +5,7 @@ end
|
|||
|
||||
source 'https://rubygems.org'
|
||||
|
||||
ruby ENV['OSEM_RUBY_VERSION'] || '2.5.9'
|
||||
ruby ENV['OSEM_RUBY_VERSION'] || '3.1.0'
|
||||
|
||||
# rails-assets requires >= 1.8.4
|
||||
if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.8.4')
|
||||
|
|
@ -14,7 +14,7 @@ end
|
|||
|
||||
# as web framework
|
||||
if next?
|
||||
gem 'rails', '~> 6'
|
||||
gem 'rails', '~> 7'
|
||||
else
|
||||
gem 'rails', '~> 5.2'
|
||||
end
|
||||
|
|
@ -85,8 +85,6 @@ gem 'uglifier', '>= 1.3.0'
|
|||
gem 'autoprefixer-rails'
|
||||
gem 'bootstrap-sass', '~> 3.4.0'
|
||||
gem 'cocoon'
|
||||
gem 'formtastic', '~> 3.1.5'
|
||||
gem 'formtastic-bootstrap'
|
||||
|
||||
# as the JavaScript library
|
||||
gem 'jquery-rails'
|
||||
|
|
@ -143,6 +141,9 @@ gem 'country_select'
|
|||
# as PDF generator
|
||||
gem 'prawn-qrcode'
|
||||
gem 'prawn-rails'
|
||||
# FIXME: for prawn, matrix isn't in the default set of Ruby 3.1 anymore
|
||||
# see https://github.com/prawnpdf/prawn/commit/3658d5125c3b20eb11484c3b039ca6b89dc7d1b7
|
||||
gem 'matrix', '~> 0.4'
|
||||
|
||||
# for QR code generation
|
||||
gem 'rqrcode'
|
||||
|
|
@ -165,9 +166,6 @@ gem 'font-awesome-rails'
|
|||
# for markdown
|
||||
gem 'redcarpet'
|
||||
|
||||
# for visitor tracking
|
||||
gem 'piwik_analytics', '~> 1.0.1'
|
||||
|
||||
# for recurring jobs
|
||||
gem 'delayed_job_active_record'
|
||||
gem 'whenever', :require => false
|
||||
|
|
@ -228,16 +226,12 @@ gem 'dalli'
|
|||
|
||||
gem 'icalendar'
|
||||
|
||||
# Use guard and spring for testing in development
|
||||
group :development do
|
||||
# to launch specs when files are modified
|
||||
gem 'guard-rspec'
|
||||
gem 'haml_lint'
|
||||
gem 'spring-commands-rspec'
|
||||
# for static code analisys
|
||||
gem 'rubocop', require: false
|
||||
gem 'rubocop-rspec', require: false
|
||||
gem 'rubocop-rails', require: false
|
||||
gem 'haml_lint'
|
||||
# to open mails
|
||||
gem 'letter_opener'
|
||||
gem 'letter_opener_web'
|
||||
|
|
@ -265,7 +259,7 @@ group :test do
|
|||
# for mocking external requests
|
||||
gem 'webmock'
|
||||
# for mocking Stripe responses in tests
|
||||
gem 'stripe-ruby-mock'
|
||||
gem 'stripe-ruby-mock', '~> 3.1.0.rc3'
|
||||
# For validating JSON schemas
|
||||
gem 'json-schema'
|
||||
# For using 'assigns' in tests
|
||||
|
|
|
|||
149
Gemfile.lock
149
Gemfile.lock
|
|
@ -1,6 +1,29 @@
|
|||
GEM
|
||||
remote: https://rails-assets.org/
|
||||
specs:
|
||||
rails-assets-bootstrap (3.3.6)
|
||||
rails-assets-jquery (>= 1.9.1, < 3)
|
||||
rails-assets-bootstrap-markdown (2.10.0)
|
||||
rails-assets-bootstrap (~> 3)
|
||||
rails-assets-bootstrap-select (1.13.3)
|
||||
rails-assets-bootstrap (>= 3.0.0)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-date.format (1.2.3)
|
||||
rails-assets-holderjs (2.9.6)
|
||||
rails-assets-jquery (2.2.4)
|
||||
rails-assets-jquery-smooth-scroll (2.2.0)
|
||||
rails-assets-jquery (>= 1.7.0)
|
||||
rails-assets-markdown (0.5.0)
|
||||
rails-assets-momentjs (2.22.2)
|
||||
rails-assets-spectrum (1.8.0)
|
||||
rails-assets-jquery (>= 1.7.2)
|
||||
rails-assets-tinycolor (1.4.1)
|
||||
rails-assets-to-markdown (3.1.1)
|
||||
rails-assets-trianglify (1.2.0)
|
||||
rails-assets-waypoints (4.0.1)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
remote: https://rails-assets.org/
|
||||
specs:
|
||||
Ascii85 (1.1.0)
|
||||
actioncable (5.2.6)
|
||||
|
|
@ -66,8 +89,8 @@ GEM
|
|||
ast (2.4.2)
|
||||
autoprefixer-rails (10.3.3.0)
|
||||
execjs (~> 2)
|
||||
awesome_nested_set (3.4.0)
|
||||
activerecord (>= 4.0.0, < 7.0)
|
||||
awesome_nested_set (3.5.0)
|
||||
activerecord (>= 4.0.0, < 7.1)
|
||||
aws_cf_signer (0.1.3)
|
||||
bcrypt (3.1.16)
|
||||
bindex (0.8.1)
|
||||
|
|
@ -110,7 +133,7 @@ GEM
|
|||
caxlsx_rails (0.6.2)
|
||||
actionpack (>= 3.1)
|
||||
caxlsx (>= 3.0)
|
||||
chartkick (3.4.2)
|
||||
chartkick (4.1.3)
|
||||
childprocess (3.0.0)
|
||||
chronic (0.10.2)
|
||||
chunky_png (1.4.0)
|
||||
|
|
@ -119,7 +142,6 @@ GEM
|
|||
aws_cf_signer
|
||||
rest-client (>= 2.0.0)
|
||||
cocoon (1.2.15)
|
||||
coderay (1.1.3)
|
||||
colorize (0.8.1)
|
||||
concurrent-ruby (1.1.9)
|
||||
countable-rails (0.0.1)
|
||||
|
|
@ -147,7 +169,7 @@ GEM
|
|||
delayed_job_active_record (4.1.6)
|
||||
activerecord (>= 3.0, < 6.2)
|
||||
delayed_job (>= 3.0, < 5)
|
||||
devise (4.8.0)
|
||||
devise (4.8.1)
|
||||
bcrypt (~> 3.0)
|
||||
orm_adapter (~> 0.1)
|
||||
railties (>= 4.1.0)
|
||||
|
|
@ -197,30 +219,11 @@ GEM
|
|||
ffi (1.15.4)
|
||||
font-awesome-rails (4.7.0.7)
|
||||
railties (>= 3.2, < 7)
|
||||
formatador (0.3.0)
|
||||
formtastic (3.1.5)
|
||||
actionpack (>= 3.2.13)
|
||||
formtastic-bootstrap (3.1.1)
|
||||
formtastic (>= 3.0)
|
||||
geckodriver-helper (0.24.0)
|
||||
archive-zip (~> 0.7)
|
||||
globalid (0.4.2)
|
||||
activesupport (>= 4.2.0)
|
||||
gravtastic (3.2.6)
|
||||
guard (2.18.0)
|
||||
formatador (>= 0.2.4)
|
||||
listen (>= 2.7, < 4.0)
|
||||
lumberjack (>= 1.0.12, < 2.0)
|
||||
nenv (~> 0.1)
|
||||
notiffany (~> 0.0)
|
||||
pry (>= 0.13.0)
|
||||
shellany (~> 0.0)
|
||||
thor (>= 0.18.1)
|
||||
guard-compat (1.2.1)
|
||||
guard-rspec (4.7.3)
|
||||
guard (~> 2.1)
|
||||
guard-compat (~> 1.1)
|
||||
rspec (>= 2.99.0, < 4.0)
|
||||
haml (5.2.2)
|
||||
temple (>= 0.8.0)
|
||||
tilt
|
||||
|
|
@ -248,7 +251,7 @@ GEM
|
|||
http-accept (1.7.0)
|
||||
http-cookie (1.0.4)
|
||||
domain_name (~> 0.5)
|
||||
i18n (1.8.10)
|
||||
i18n (1.9.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
i18n_data (0.13.0)
|
||||
icalendar (2.7.1)
|
||||
|
|
@ -285,16 +288,13 @@ GEM
|
|||
actionmailer (>= 3.2)
|
||||
letter_opener (~> 1.0)
|
||||
railties (>= 3.2)
|
||||
listen (3.7.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
loofah (2.12.0)
|
||||
loofah (2.13.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
lumberjack (1.2.8)
|
||||
mail (2.7.1)
|
||||
mini_mime (>= 0.1.1)
|
||||
marcel (1.0.1)
|
||||
matrix (0.4.2)
|
||||
method_source (1.0.0)
|
||||
mime-types (3.3.1)
|
||||
mime-types-data (~> 3.2015)
|
||||
|
|
@ -304,8 +304,8 @@ GEM
|
|||
rake
|
||||
mini_magick (4.11.0)
|
||||
mini_mime (1.1.1)
|
||||
mini_portile2 (2.6.1)
|
||||
minitest (5.14.4)
|
||||
mini_portile2 (2.7.1)
|
||||
minitest (5.15.0)
|
||||
momentjs-rails (2.20.1)
|
||||
railties (>= 3.1)
|
||||
monetize (1.9.4)
|
||||
|
|
@ -321,17 +321,13 @@ GEM
|
|||
multi_xml (0.6.0)
|
||||
multipart-post (2.1.1)
|
||||
mysql2 (0.5.3)
|
||||
nenv (0.3.0)
|
||||
netrc (0.11.0)
|
||||
next_rails (1.0.4)
|
||||
colorize (>= 0.8.1)
|
||||
nio4r (2.5.8)
|
||||
nokogiri (1.12.5)
|
||||
mini_portile2 (~> 2.6.1)
|
||||
nokogiri (1.13.1)
|
||||
mini_portile2 (~> 2.7.0)
|
||||
racc (~> 1.4)
|
||||
notiffany (0.1.3)
|
||||
nenv (~> 0.1)
|
||||
shellany (~> 0.0)
|
||||
oauth2 (1.4.7)
|
||||
faraday (>= 0.8, < 2.0)
|
||||
jwt (>= 1.0, < 3.0)
|
||||
|
|
@ -363,11 +359,11 @@ GEM
|
|||
omniauth (~> 2.0)
|
||||
open4 (1.3.4)
|
||||
orm_adapter (0.5.0)
|
||||
paper_trail (12.1.0)
|
||||
paper_trail (12.2.0)
|
||||
activerecord (>= 5.2)
|
||||
request_store (~> 1.1)
|
||||
parallel (1.20.1)
|
||||
parser (3.0.2.0)
|
||||
parallel (1.21.0)
|
||||
parser (3.1.0.0)
|
||||
ast (~> 2.4.1)
|
||||
pdf-core (0.9.0)
|
||||
pdf-inspector (1.3.0)
|
||||
|
|
@ -379,10 +375,6 @@ GEM
|
|||
ruby-rc4
|
||||
ttfunk
|
||||
pg (1.2.3)
|
||||
piwik_analytics (1.0.2)
|
||||
actionpack
|
||||
activesupport
|
||||
rails (>= 3.0.0)
|
||||
prawn (2.4.0)
|
||||
pdf-core (~> 0.9.0)
|
||||
ttfunk (~> 1.7)
|
||||
|
|
@ -395,13 +387,10 @@ GEM
|
|||
prawn-table
|
||||
prawn-table (0.2.2)
|
||||
prawn (>= 1.3.0, < 3.0.0)
|
||||
pry (0.14.1)
|
||||
coderay (~> 1.1)
|
||||
method_source (~> 1.0)
|
||||
public_suffix (4.0.6)
|
||||
puma (4.3.9)
|
||||
nio4r (~> 2.0)
|
||||
racc (1.5.2)
|
||||
racc (1.6.0)
|
||||
rack (2.2.3)
|
||||
rack-openid (1.4.2)
|
||||
rack (>= 1.1.0)
|
||||
|
|
@ -423,26 +412,6 @@ GEM
|
|||
bundler (>= 1.3.0)
|
||||
railties (= 5.2.6)
|
||||
sprockets-rails (>= 2.0.0)
|
||||
rails-assets-bootstrap (3.3.6)
|
||||
rails-assets-jquery (>= 1.9.1, < 3)
|
||||
rails-assets-bootstrap-markdown (2.10.0)
|
||||
rails-assets-bootstrap (~> 3)
|
||||
rails-assets-bootstrap-select (1.13.3)
|
||||
rails-assets-bootstrap (>= 3.0.0)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-date.format (1.2.3)
|
||||
rails-assets-holderjs (2.9.6)
|
||||
rails-assets-jquery (2.2.4)
|
||||
rails-assets-jquery-smooth-scroll (2.2.0)
|
||||
rails-assets-jquery (>= 1.7.0)
|
||||
rails-assets-markdown (0.5.0)
|
||||
rails-assets-momentjs (2.22.2)
|
||||
rails-assets-spectrum (1.8.0)
|
||||
rails-assets-jquery (>= 1.7.2)
|
||||
rails-assets-tinycolor (1.4.1)
|
||||
rails-assets-to-markdown (3.1.1)
|
||||
rails-assets-trianglify (1.2.0)
|
||||
rails-assets-waypoints (4.0.1)
|
||||
rails-controller-testing (1.0.5)
|
||||
actionpack (>= 5.0.1.rc1)
|
||||
actionview (>= 5.0.1.rc1)
|
||||
|
|
@ -461,7 +430,7 @@ GEM
|
|||
method_source
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.19.0, < 2.0)
|
||||
rainbow (3.0.0)
|
||||
rainbow (3.1.1)
|
||||
rake (13.0.6)
|
||||
rb-fsevent (0.11.0)
|
||||
rb-inotify (0.10.1)
|
||||
|
|
@ -469,8 +438,8 @@ GEM
|
|||
recaptcha (4.14.0)
|
||||
json
|
||||
redcarpet (3.5.1)
|
||||
regexp_parser (2.1.1)
|
||||
request_store (1.5.0)
|
||||
regexp_parser (2.2.0)
|
||||
request_store (1.5.1)
|
||||
rack (>= 1.4)
|
||||
responders (3.0.1)
|
||||
actionpack (>= 5.0)
|
||||
|
|
@ -486,10 +455,6 @@ GEM
|
|||
chunky_png (~> 1.0)
|
||||
rqrcode_core (~> 1.0)
|
||||
rqrcode_core (1.2.0)
|
||||
rspec (3.6.0)
|
||||
rspec-core (~> 3.6.0)
|
||||
rspec-expectations (~> 3.6.0)
|
||||
rspec-mocks (~> 3.6.0)
|
||||
rspec-activemodel-mocks (1.1.0)
|
||||
activemodel (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
|
|
@ -511,16 +476,16 @@ GEM
|
|||
rspec-mocks (~> 3.6.0)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-support (3.6.0)
|
||||
rubocop (1.19.1)
|
||||
rubocop (1.25.1)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.0.0.0)
|
||||
parser (>= 3.1.0.0)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml
|
||||
rubocop-ast (>= 1.9.1, < 2.0)
|
||||
rubocop-ast (>= 1.15.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 1.4.0, < 3.0)
|
||||
rubocop-ast (1.11.0)
|
||||
rubocop-ast (1.15.1)
|
||||
parser (>= 3.0.1.1)
|
||||
rubocop-rails (2.11.3)
|
||||
activesupport (>= 4.2.0)
|
||||
|
|
@ -563,7 +528,6 @@ GEM
|
|||
concurrent-ruby
|
||||
faraday
|
||||
sexp_processor (4.15.3)
|
||||
shellany (0.0.1)
|
||||
shoulda-matchers (4.5.1)
|
||||
activesupport (>= 4.2.0)
|
||||
simplecov (0.21.2)
|
||||
|
|
@ -581,9 +545,6 @@ GEM
|
|||
activesupport (>= 4.2.0)
|
||||
sort_alphabetical (1.1.0)
|
||||
unicode_utils (>= 1.2.2)
|
||||
spring (2.1.1)
|
||||
spring-commands-rspec (1.0.4)
|
||||
spring (>= 0.9.1)
|
||||
sprockets (3.7.2)
|
||||
concurrent-ruby (~> 1.0)
|
||||
rack (> 1, < 3)
|
||||
|
|
@ -594,13 +555,13 @@ GEM
|
|||
sqlite3 (1.4.2)
|
||||
ssrf_filter (1.0.7)
|
||||
stripe (5.38.0)
|
||||
stripe-ruby-mock (3.0.1)
|
||||
stripe-ruby-mock (3.1.0.rc3)
|
||||
dante (>= 0.2.0)
|
||||
multi_json (~> 1.0)
|
||||
stripe (> 5, < 6)
|
||||
sysexits (1.2.0)
|
||||
temple (0.8.2)
|
||||
thor (1.1.0)
|
||||
thor (1.2.1)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.10)
|
||||
timecop (0.9.4)
|
||||
|
|
@ -616,7 +577,7 @@ GEM
|
|||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.7.7)
|
||||
unicode-display_width (2.0.0)
|
||||
unicode-display_width (2.1.0)
|
||||
unicode_utils (1.4.0)
|
||||
unobtrusive_flash (3.3.1)
|
||||
railties
|
||||
|
|
@ -679,11 +640,8 @@ DEPENDENCIES
|
|||
faker
|
||||
feature
|
||||
font-awesome-rails
|
||||
formtastic (~> 3.1.5)
|
||||
formtastic-bootstrap
|
||||
geckodriver-helper
|
||||
gravtastic
|
||||
guard-rspec
|
||||
haml-rails
|
||||
haml_lint
|
||||
icalendar
|
||||
|
|
@ -695,6 +653,7 @@ DEPENDENCIES
|
|||
leaflet-rails
|
||||
letter_opener
|
||||
letter_opener_web
|
||||
matrix (~> 0.4)
|
||||
mina
|
||||
mini_magick
|
||||
money-rails
|
||||
|
|
@ -710,7 +669,6 @@ DEPENDENCIES
|
|||
paper_trail
|
||||
pdf-inspector
|
||||
pg
|
||||
piwik_analytics (~> 1.0.1)
|
||||
prawn-qrcode
|
||||
prawn-rails
|
||||
puma (~> 4.3)
|
||||
|
|
@ -746,11 +704,10 @@ DEPENDENCIES
|
|||
shoulda-matchers
|
||||
simplecov-cobertura
|
||||
skylight
|
||||
spring-commands-rspec
|
||||
sprockets-rails
|
||||
sqlite3
|
||||
stripe
|
||||
stripe-ruby-mock
|
||||
stripe-ruby-mock (~> 3.1.0.rc3)
|
||||
timecop
|
||||
transitions
|
||||
turbolinks
|
||||
|
|
@ -762,7 +719,7 @@ DEPENDENCIES
|
|||
whenever
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.5.9p229
|
||||
ruby 3.1.0
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.3
|
||||
2.3.3
|
||||
|
|
|
|||
|
|
@ -1,76 +1,105 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
remote: https://rails-assets.org/
|
||||
specs:
|
||||
rails-assets-bootstrap (3.4.1)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-bootstrap-markdown (2.10.0)
|
||||
rails-assets-bootstrap (~> 3)
|
||||
rails-assets-bootstrap-select (1.13.10)
|
||||
rails-assets-bootstrap (>= 3.0.0)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-date.format (1.2.3)
|
||||
rails-assets-holderjs (2.9.6)
|
||||
rails-assets-jquery (3.4.1)
|
||||
rails-assets-jquery-smooth-scroll (2.2.0)
|
||||
rails-assets-jquery (>= 1.7.0)
|
||||
rails-assets-markdown (0.5.0)
|
||||
rails-assets-momentjs (2.22.2)
|
||||
rails-assets-spectrum (1.8.0)
|
||||
rails-assets-jquery (>= 1.7.2)
|
||||
rails-assets-tinycolor (1.4.1)
|
||||
rails-assets-to-markdown (3.1.1)
|
||||
rails-assets-trianglify (1.2.0)
|
||||
rails-assets-waypoints (4.0.1)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
Ascii85 (1.1.0)
|
||||
actioncable (6.1.4)
|
||||
actionpack (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
actioncable (7.0.1)
|
||||
actionpack (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
nio4r (~> 2.0)
|
||||
websocket-driver (>= 0.6.1)
|
||||
actionmailbox (6.1.4)
|
||||
actionpack (= 6.1.4)
|
||||
activejob (= 6.1.4)
|
||||
activerecord (= 6.1.4)
|
||||
activestorage (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
actionmailbox (7.0.1)
|
||||
actionpack (= 7.0.1)
|
||||
activejob (= 7.0.1)
|
||||
activerecord (= 7.0.1)
|
||||
activestorage (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
mail (>= 2.7.1)
|
||||
actionmailer (6.1.4)
|
||||
actionpack (= 6.1.4)
|
||||
actionview (= 6.1.4)
|
||||
activejob (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
net-imap
|
||||
net-pop
|
||||
net-smtp
|
||||
actionmailer (7.0.1)
|
||||
actionpack (= 7.0.1)
|
||||
actionview (= 7.0.1)
|
||||
activejob (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
mail (~> 2.5, >= 2.5.4)
|
||||
net-imap
|
||||
net-pop
|
||||
net-smtp
|
||||
rails-dom-testing (~> 2.0)
|
||||
actionpack (6.1.4)
|
||||
actionview (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
rack (~> 2.0, >= 2.0.9)
|
||||
actionpack (7.0.1)
|
||||
actionview (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
rack (~> 2.0, >= 2.2.0)
|
||||
rack-test (>= 0.6.3)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
||||
actiontext (6.1.4)
|
||||
actionpack (= 6.1.4)
|
||||
activerecord (= 6.1.4)
|
||||
activestorage (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
actiontext (7.0.1)
|
||||
actionpack (= 7.0.1)
|
||||
activerecord (= 7.0.1)
|
||||
activestorage (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
globalid (>= 0.6.0)
|
||||
nokogiri (>= 1.8.5)
|
||||
actionview (6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
actionview (7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
builder (~> 3.1)
|
||||
erubi (~> 1.4)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
||||
active_model_serializers (0.10.12)
|
||||
actionpack (>= 4.1, < 6.2)
|
||||
activemodel (>= 4.1, < 6.2)
|
||||
active_model_serializers (0.10.13)
|
||||
actionpack (>= 4.1, < 7.1)
|
||||
activemodel (>= 4.1, < 7.1)
|
||||
case_transform (>= 0.2)
|
||||
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
|
||||
activejob (6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
activejob (7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
globalid (>= 0.3.6)
|
||||
activemodel (6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
activerecord (6.1.4)
|
||||
activemodel (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
activestorage (6.1.4)
|
||||
actionpack (= 6.1.4)
|
||||
activejob (= 6.1.4)
|
||||
activerecord (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
marcel (~> 1.0.0)
|
||||
activemodel (7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
activerecord (7.0.1)
|
||||
activemodel (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
activestorage (7.0.1)
|
||||
actionpack (= 7.0.1)
|
||||
activejob (= 7.0.1)
|
||||
activerecord (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
marcel (~> 1.0)
|
||||
mini_mime (>= 1.1.0)
|
||||
activesupport (6.1.4)
|
||||
activesupport (7.0.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
zeitwerk (~> 2.3)
|
||||
acts_as_commentable_with_threading (2.0.1)
|
||||
activerecord (>= 4.0)
|
||||
activesupport (>= 4.0)
|
||||
awesome_nested_set (>= 3.0)
|
||||
acts_as_commentable_with_threading (1.2.0)
|
||||
activerecord (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
awesome_nested_set (>= 2.0)
|
||||
acts_as_list (1.0.4)
|
||||
activerecord (>= 4.2)
|
||||
addressable (2.8.0)
|
||||
|
|
@ -83,8 +112,8 @@ GEM
|
|||
ast (2.4.2)
|
||||
autoprefixer-rails (10.3.1.0)
|
||||
execjs (~> 2)
|
||||
awesome_nested_set (3.4.0)
|
||||
activerecord (>= 4.0.0, < 7.0)
|
||||
awesome_nested_set (3.5.0)
|
||||
activerecord (>= 4.0.0, < 7.1)
|
||||
aws_cf_signer (0.1.3)
|
||||
bcrypt (3.1.16)
|
||||
bindex (0.8.1)
|
||||
|
|
@ -127,7 +156,7 @@ GEM
|
|||
caxlsx_rails (0.6.2)
|
||||
actionpack (>= 3.1)
|
||||
caxlsx (>= 3.0)
|
||||
chartkick (3.4.2)
|
||||
chartkick (4.1.3)
|
||||
childprocess (3.0.0)
|
||||
chronic (0.10.2)
|
||||
chunky_png (1.4.0)
|
||||
|
|
@ -136,7 +165,6 @@ GEM
|
|||
aws_cf_signer
|
||||
rest-client (>= 2.0.0)
|
||||
cocoon (1.2.15)
|
||||
coderay (1.1.3)
|
||||
colorize (0.8.1)
|
||||
concurrent-ruby (1.1.9)
|
||||
countable-rails (0.0.1)
|
||||
|
|
@ -159,12 +187,12 @@ GEM
|
|||
activerecord (>= 5.a)
|
||||
database_cleaner-core (~> 2.0.0)
|
||||
database_cleaner-core (2.0.1)
|
||||
delayed_job (4.1.9)
|
||||
activesupport (>= 3.0, < 6.2)
|
||||
delayed_job_active_record (4.1.6)
|
||||
activerecord (>= 3.0, < 6.2)
|
||||
delayed_job (4.1.10)
|
||||
activesupport (>= 3.0, < 8.0)
|
||||
delayed_job_active_record (4.1.7)
|
||||
activerecord (>= 3.0, < 8.0)
|
||||
delayed_job (>= 3.0, < 5)
|
||||
devise (4.8.0)
|
||||
devise (4.8.1)
|
||||
bcrypt (~> 3.0)
|
||||
orm_adapter (~> 0.1)
|
||||
railties (>= 4.1.0)
|
||||
|
|
@ -173,6 +201,7 @@ GEM
|
|||
devise_ichain_authenticatable (0.3.2)
|
||||
devise (>= 2.2)
|
||||
diff-lcs (1.4.4)
|
||||
digest (3.1.0)
|
||||
docile (1.4.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
|
|
@ -212,32 +241,13 @@ GEM
|
|||
fastimage (2.2.5)
|
||||
feature (1.4.0)
|
||||
ffi (1.15.3)
|
||||
font-awesome-rails (4.7.0.7)
|
||||
railties (>= 3.2, < 7)
|
||||
formatador (0.3.0)
|
||||
formtastic (3.1.5)
|
||||
actionpack (>= 3.2.13)
|
||||
formtastic-bootstrap (3.1.1)
|
||||
formtastic (>= 3.0)
|
||||
font-awesome-rails (4.7.0.8)
|
||||
railties (>= 3.2, < 8.0)
|
||||
geckodriver-helper (0.24.0)
|
||||
archive-zip (~> 0.7)
|
||||
globalid (0.5.2)
|
||||
globalid (1.0.0)
|
||||
activesupport (>= 5.0)
|
||||
gravtastic (3.2.6)
|
||||
guard (2.18.0)
|
||||
formatador (>= 0.2.4)
|
||||
listen (>= 2.7, < 4.0)
|
||||
lumberjack (>= 1.0.12, < 2.0)
|
||||
nenv (~> 0.1)
|
||||
notiffany (~> 0.0)
|
||||
pry (>= 0.13.0)
|
||||
shellany (~> 0.0)
|
||||
thor (>= 0.18.1)
|
||||
guard-compat (1.2.1)
|
||||
guard-rspec (4.7.3)
|
||||
guard (~> 2.1)
|
||||
guard-compat (~> 1.1)
|
||||
rspec (>= 2.99.0, < 4.0)
|
||||
haml (5.2.2)
|
||||
temple (>= 0.8.0)
|
||||
tilt
|
||||
|
|
@ -265,7 +275,7 @@ GEM
|
|||
http-accept (1.7.0)
|
||||
http-cookie (1.0.4)
|
||||
domain_name (~> 0.5)
|
||||
i18n (1.8.10)
|
||||
i18n (1.9.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
i18n_data (0.13.0)
|
||||
icalendar (2.7.1)
|
||||
|
|
@ -275,6 +285,7 @@ GEM
|
|||
mini_magick (>= 4.9.5, < 5)
|
||||
ruby-vips (>= 2.0.17, < 3)
|
||||
io-like (0.3.1)
|
||||
io-wait (0.2.1)
|
||||
iso-639 (0.3.5)
|
||||
jquery-datatables-rails (3.4.0)
|
||||
actionpack (>= 3.1)
|
||||
|
|
@ -298,20 +309,18 @@ GEM
|
|||
rails (>= 4.2.0)
|
||||
letter_opener (1.7.0)
|
||||
launchy (~> 2.2)
|
||||
letter_opener_web (1.4.0)
|
||||
actionmailer (>= 3.2)
|
||||
letter_opener (~> 1.0)
|
||||
railties (>= 3.2)
|
||||
listen (3.6.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
loofah (2.12.0)
|
||||
letter_opener_web (2.0.0)
|
||||
actionmailer (>= 5.2)
|
||||
letter_opener (~> 1.7)
|
||||
railties (>= 5.2)
|
||||
rexml
|
||||
loofah (2.13.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
lumberjack (1.2.8)
|
||||
mail (2.7.1)
|
||||
mini_mime (>= 0.1.1)
|
||||
marcel (1.0.1)
|
||||
matrix (0.4.2)
|
||||
method_source (1.0.0)
|
||||
mime-types (3.3.1)
|
||||
mime-types-data (~> 3.2015)
|
||||
|
|
@ -320,9 +329,9 @@ GEM
|
|||
open4 (~> 1.3.4)
|
||||
rake
|
||||
mini_magick (4.11.0)
|
||||
mini_mime (1.1.0)
|
||||
mini_portile2 (2.6.1)
|
||||
minitest (5.14.4)
|
||||
mini_mime (1.1.2)
|
||||
mini_portile2 (2.7.1)
|
||||
minitest (5.15.0)
|
||||
momentjs-rails (2.20.1)
|
||||
railties (>= 3.1)
|
||||
monetize (1.9.4)
|
||||
|
|
@ -338,17 +347,28 @@ GEM
|
|||
multi_xml (0.6.0)
|
||||
multipart-post (2.1.1)
|
||||
mysql2 (0.5.3)
|
||||
nenv (0.3.0)
|
||||
net-imap (0.2.3)
|
||||
digest
|
||||
net-protocol
|
||||
strscan
|
||||
net-pop (0.1.1)
|
||||
digest
|
||||
net-protocol
|
||||
timeout
|
||||
net-protocol (0.1.2)
|
||||
io-wait
|
||||
timeout
|
||||
net-smtp (0.3.1)
|
||||
digest
|
||||
net-protocol
|
||||
timeout
|
||||
netrc (0.11.0)
|
||||
next_rails (1.0.4)
|
||||
colorize (>= 0.8.1)
|
||||
nio4r (2.5.8)
|
||||
nokogiri (1.12.3)
|
||||
mini_portile2 (~> 2.6.1)
|
||||
nokogiri (1.13.1)
|
||||
mini_portile2 (~> 2.7.0)
|
||||
racc (~> 1.4)
|
||||
notiffany (0.1.3)
|
||||
nenv (~> 0.1)
|
||||
shellany (~> 0.0)
|
||||
oauth2 (1.4.7)
|
||||
faraday (>= 0.8, < 2.0)
|
||||
jwt (>= 1.0, < 3.0)
|
||||
|
|
@ -380,11 +400,11 @@ GEM
|
|||
omniauth (~> 2.0)
|
||||
open4 (1.3.4)
|
||||
orm_adapter (0.5.0)
|
||||
paper_trail (12.0.0)
|
||||
paper_trail (12.2.0)
|
||||
activerecord (>= 5.2)
|
||||
request_store (~> 1.1)
|
||||
parallel (1.20.1)
|
||||
parser (3.0.2.0)
|
||||
parallel (1.21.0)
|
||||
parser (3.1.0.0)
|
||||
ast (~> 2.4.1)
|
||||
pdf-core (0.9.0)
|
||||
pdf-inspector (1.3.0)
|
||||
|
|
@ -396,10 +416,6 @@ GEM
|
|||
ruby-rc4
|
||||
ttfunk
|
||||
pg (1.2.3)
|
||||
piwik_analytics (1.0.2)
|
||||
actionpack
|
||||
activesupport
|
||||
rails (>= 3.0.0)
|
||||
prawn (2.4.0)
|
||||
pdf-core (~> 0.9.0)
|
||||
ttfunk (~> 1.7)
|
||||
|
|
@ -412,13 +428,10 @@ GEM
|
|||
prawn-table
|
||||
prawn-table (0.2.2)
|
||||
prawn (>= 1.3.0, < 3.0.0)
|
||||
pry (0.14.1)
|
||||
coderay (~> 1.1)
|
||||
method_source (~> 1.0)
|
||||
public_suffix (4.0.6)
|
||||
puma (4.3.8)
|
||||
nio4r (~> 2.0)
|
||||
racc (1.5.2)
|
||||
racc (1.6.0)
|
||||
rack (2.2.3)
|
||||
rack-openid (1.4.2)
|
||||
rack (>= 1.1.0)
|
||||
|
|
@ -427,41 +440,20 @@ GEM
|
|||
rack
|
||||
rack-test (1.1.0)
|
||||
rack (>= 1.0, < 3)
|
||||
rails (6.1.4)
|
||||
actioncable (= 6.1.4)
|
||||
actionmailbox (= 6.1.4)
|
||||
actionmailer (= 6.1.4)
|
||||
actionpack (= 6.1.4)
|
||||
actiontext (= 6.1.4)
|
||||
actionview (= 6.1.4)
|
||||
activejob (= 6.1.4)
|
||||
activemodel (= 6.1.4)
|
||||
activerecord (= 6.1.4)
|
||||
activestorage (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
rails (7.0.1)
|
||||
actioncable (= 7.0.1)
|
||||
actionmailbox (= 7.0.1)
|
||||
actionmailer (= 7.0.1)
|
||||
actionpack (= 7.0.1)
|
||||
actiontext (= 7.0.1)
|
||||
actionview (= 7.0.1)
|
||||
activejob (= 7.0.1)
|
||||
activemodel (= 7.0.1)
|
||||
activerecord (= 7.0.1)
|
||||
activestorage (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
bundler (>= 1.15.0)
|
||||
railties (= 6.1.4)
|
||||
sprockets-rails (>= 2.0.0)
|
||||
rails-assets-bootstrap (3.4.1)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-bootstrap-markdown (2.10.0)
|
||||
rails-assets-bootstrap (~> 3)
|
||||
rails-assets-bootstrap-select (1.13.10)
|
||||
rails-assets-bootstrap (>= 3.0.0)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-date.format (1.2.3)
|
||||
rails-assets-holderjs (2.9.6)
|
||||
rails-assets-jquery (3.4.1)
|
||||
rails-assets-jquery-smooth-scroll (2.2.0)
|
||||
rails-assets-jquery (>= 1.7.0)
|
||||
rails-assets-markdown (0.5.0)
|
||||
rails-assets-momentjs (2.22.2)
|
||||
rails-assets-spectrum (1.8.0)
|
||||
rails-assets-jquery (>= 1.7.2)
|
||||
rails-assets-tinycolor (1.4.1)
|
||||
rails-assets-to-markdown (3.1.1)
|
||||
rails-assets-trianglify (1.2.0)
|
||||
rails-assets-waypoints (4.0.1)
|
||||
railties (= 7.0.1)
|
||||
rails-controller-testing (1.0.5)
|
||||
actionpack (>= 5.0.1.rc1)
|
||||
actionview (>= 5.0.1.rc1)
|
||||
|
|
@ -469,27 +461,25 @@ GEM
|
|||
rails-dom-testing (2.0.3)
|
||||
activesupport (>= 4.2.0)
|
||||
nokogiri (>= 1.6)
|
||||
rails-html-sanitizer (1.3.0)
|
||||
rails-html-sanitizer (1.4.2)
|
||||
loofah (~> 2.3)
|
||||
rails-i18n (6.0.0)
|
||||
rails-i18n (7.0.1)
|
||||
i18n (>= 0.7, < 2)
|
||||
railties (>= 6.0.0, < 7)
|
||||
railties (6.1.4)
|
||||
actionpack (= 6.1.4)
|
||||
activesupport (= 6.1.4)
|
||||
railties (>= 6.0.0, < 8)
|
||||
railties (7.0.1)
|
||||
actionpack (= 7.0.1)
|
||||
activesupport (= 7.0.1)
|
||||
method_source
|
||||
rake (>= 0.13)
|
||||
rake (>= 12.2)
|
||||
thor (~> 1.0)
|
||||
rainbow (3.0.0)
|
||||
zeitwerk (~> 2.5)
|
||||
rainbow (3.1.1)
|
||||
rake (13.0.6)
|
||||
rb-fsevent (0.11.0)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
recaptcha (5.8.1)
|
||||
json
|
||||
redcarpet (3.5.1)
|
||||
regexp_parser (2.1.1)
|
||||
request_store (1.5.0)
|
||||
regexp_parser (2.2.0)
|
||||
request_store (1.5.1)
|
||||
rack (>= 1.4)
|
||||
responders (3.0.1)
|
||||
actionpack (>= 5.0)
|
||||
|
|
@ -505,10 +495,6 @@ GEM
|
|||
chunky_png (~> 1.0)
|
||||
rqrcode_core (~> 1.0)
|
||||
rqrcode_core (1.1.0)
|
||||
rspec (3.10.0)
|
||||
rspec-core (~> 3.10.0)
|
||||
rspec-expectations (~> 3.10.0)
|
||||
rspec-mocks (~> 3.10.0)
|
||||
rspec-activemodel-mocks (1.1.0)
|
||||
activemodel (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
|
|
@ -530,16 +516,16 @@ GEM
|
|||
rspec-mocks (~> 3.10)
|
||||
rspec-support (~> 3.10)
|
||||
rspec-support (3.10.2)
|
||||
rubocop (1.19.0)
|
||||
rubocop (1.25.1)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.0.0.0)
|
||||
parser (>= 3.1.0.0)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml
|
||||
rubocop-ast (>= 1.9.1, < 2.0)
|
||||
rubocop-ast (>= 1.15.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 1.4.0, < 3.0)
|
||||
rubocop-ast (1.10.0)
|
||||
rubocop-ast (1.15.1)
|
||||
parser (>= 3.0.1.1)
|
||||
rubocop-rails (2.11.3)
|
||||
activesupport (>= 4.2.0)
|
||||
|
|
@ -579,7 +565,6 @@ GEM
|
|||
concurrent-ruby
|
||||
faraday
|
||||
sexp_processor (4.15.3)
|
||||
shellany (0.0.1)
|
||||
shoulda-matchers (4.5.1)
|
||||
activesupport (>= 4.2.0)
|
||||
simplecov (0.21.2)
|
||||
|
|
@ -595,9 +580,6 @@ GEM
|
|||
activesupport (>= 5.2.0)
|
||||
sort_alphabetical (1.1.0)
|
||||
unicode_utils (>= 1.2.2)
|
||||
spring (2.1.1)
|
||||
spring-commands-rspec (1.0.4)
|
||||
spring (>= 0.9.1)
|
||||
sprockets (4.0.2)
|
||||
concurrent-ruby (~> 1.0)
|
||||
rack (> 1, < 3)
|
||||
|
|
@ -607,16 +589,18 @@ GEM
|
|||
sprockets (>= 3.0.0)
|
||||
sqlite3 (1.4.2)
|
||||
ssrf_filter (1.0.7)
|
||||
stripe (5.38.0)
|
||||
stripe-ruby-mock (3.0.1)
|
||||
stripe (5.43.0)
|
||||
stripe-ruby-mock (3.1.0.rc3)
|
||||
dante (>= 0.2.0)
|
||||
multi_json (~> 1.0)
|
||||
stripe (> 5, < 6)
|
||||
strscan (3.0.1)
|
||||
sysexits (1.2.0)
|
||||
temple (0.8.2)
|
||||
thor (1.1.0)
|
||||
thor (1.2.1)
|
||||
tilt (2.0.10)
|
||||
timecop (0.9.4)
|
||||
timeout (0.2.0)
|
||||
transitions (1.2.1)
|
||||
ttfunk (1.7.0)
|
||||
turbolinks (5.2.1)
|
||||
|
|
@ -629,7 +613,7 @@ GEM
|
|||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.7.7)
|
||||
unicode-display_width (2.0.0)
|
||||
unicode-display_width (2.1.0)
|
||||
unicode_utils (1.4.0)
|
||||
unobtrusive_flash (3.3.1)
|
||||
railties
|
||||
|
|
@ -655,7 +639,7 @@ GEM
|
|||
chronic (>= 0.6.3)
|
||||
xpath (3.2.0)
|
||||
nokogiri (~> 1.8)
|
||||
zeitwerk (2.4.2)
|
||||
zeitwerk (2.5.4)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
|
@ -693,11 +677,8 @@ DEPENDENCIES
|
|||
faker
|
||||
feature
|
||||
font-awesome-rails
|
||||
formtastic (~> 3.1.5)
|
||||
formtastic-bootstrap
|
||||
geckodriver-helper
|
||||
gravtastic
|
||||
guard-rspec
|
||||
haml-rails
|
||||
haml_lint
|
||||
icalendar
|
||||
|
|
@ -709,6 +690,7 @@ DEPENDENCIES
|
|||
leaflet-rails
|
||||
letter_opener
|
||||
letter_opener_web
|
||||
matrix (~> 0.4)
|
||||
mina
|
||||
mini_magick
|
||||
money-rails
|
||||
|
|
@ -724,11 +706,10 @@ DEPENDENCIES
|
|||
paper_trail
|
||||
pdf-inspector
|
||||
pg
|
||||
piwik_analytics (~> 1.0.1)
|
||||
prawn-qrcode
|
||||
prawn-rails
|
||||
puma (~> 4.3)
|
||||
rails (~> 6)
|
||||
rails (~> 7)
|
||||
rails-assets-bootstrap-markdown!
|
||||
rails-assets-bootstrap-select!
|
||||
rails-assets-date.format!
|
||||
|
|
@ -760,11 +741,10 @@ DEPENDENCIES
|
|||
shoulda-matchers
|
||||
simplecov-cobertura
|
||||
skylight
|
||||
spring-commands-rspec
|
||||
sprockets-rails
|
||||
sqlite3
|
||||
stripe
|
||||
stripe-ruby-mock
|
||||
stripe-ruby-mock (~> 3.1.0.rc3)
|
||||
timecop
|
||||
transitions
|
||||
turbolinks
|
||||
|
|
@ -776,7 +756,7 @@ DEPENDENCIES
|
|||
whenever
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.5.9p229
|
||||
ruby 3.1.0
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.3
|
||||
2.3.3
|
||||
|
|
|
|||
66
Guardfile
66
Guardfile
|
|
@ -1,66 +0,0 @@
|
|||
#!/usr/bin/ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# More info at https://github.com/guard/guard#readme
|
||||
|
||||
guard_opts = {
|
||||
all_on_start: true,
|
||||
all_after_pass: true,
|
||||
cmd: 'spring rspec'
|
||||
}
|
||||
|
||||
def model_specs ; 'spec/models' end
|
||||
|
||||
def model_spec(model)
|
||||
"spec/models/#{model}_spec.rb"
|
||||
end
|
||||
|
||||
def all_testunit_tests
|
||||
[
|
||||
model_tests,
|
||||
controller_tests,
|
||||
helper_tests,
|
||||
integration_tests,
|
||||
]
|
||||
end
|
||||
|
||||
def all_specs
|
||||
[
|
||||
model_specs,
|
||||
]
|
||||
end
|
||||
|
||||
def startup_guards
|
||||
watch(%r{^Gemfile$}) { yield }
|
||||
watch(%r{^Gemfile.lock$}) { yield }
|
||||
watch(%r{^config/routes.rb$}) { yield }
|
||||
watch(%r{^config/application\.rb$}) { yield }
|
||||
watch(%r{^config/environment\.rb$}) { yield }
|
||||
watch(%r{^config/environments/.+\.rb$}) { yield }
|
||||
watch(%r{^config/initializers/.+\.rb$}) { yield }
|
||||
watch(%r{^db/schema\.rb$}) { yield }
|
||||
watch(%r{^spec/spec_helper\.rb$}) { yield }
|
||||
end
|
||||
|
||||
def rspec_guards
|
||||
watch(%r{^spec/factories/.+\.rb$}) { all_specs }
|
||||
watch(%r{^spec/.+_spec\.rb$})
|
||||
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
||||
end
|
||||
|
||||
group :rspec do
|
||||
guard 'rspec', guard_opts do
|
||||
#startup_guards { all_specs }
|
||||
rspec_guards
|
||||
#all_specs
|
||||
end
|
||||
end
|
||||
|
||||
# group :bundler do
|
||||
# guard 'bundler' do
|
||||
# watch('Gemfile')
|
||||
# # Uncomment next line if Gemfile contain `gemspec' command
|
||||
# # watch(/^.+\.gemspec/)
|
||||
# end
|
||||
# end
|
||||
7
Rakefile
7
Rakefile
|
|
@ -1,9 +1,6 @@
|
|||
#!/usr/bin/env rake
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
||||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
||||
|
||||
require File.expand_path('../config/application', __FILE__)
|
||||
require_relative 'config/application'
|
||||
|
||||
Osem::Application.load_tasks
|
||||
Rails.application.load_tasks
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// This is a sprockets 4.0 manifest file
|
||||
//
|
||||
//= link webui/application.css
|
||||
//= link webui/application.js
|
||||
//= link application.css
|
||||
//= link application.js
|
||||
//= link_tree ../images
|
||||
//= link_tree ../fonts
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require jquery.mobile.custom.min
|
||||
//= require jquery-ui/widgets/draggable
|
||||
//= require jquery-ui/widgets/droppable
|
||||
//= require waypoints/jquery.waypoints
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -94,11 +94,6 @@ $(function () {
|
|||
return false;
|
||||
});
|
||||
|
||||
$("#event-comment-link").click(function(){
|
||||
$("#comments-div").toggle();
|
||||
return false;
|
||||
});
|
||||
|
||||
$(".comment-reply").hide();
|
||||
$(".user-details-popover").popover();
|
||||
$("#comments-div").hide();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/*
|
||||
*= require strap-on
|
||||
*= require formtastic-bootstrap
|
||||
*= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
|
||||
*= require osem
|
||||
*= require osem-rating
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ module Admin
|
|||
def update
|
||||
@url = admin_conference_booth_path(@conference.short_title, @booth.id)
|
||||
|
||||
@booth.update_attributes(booth_params)
|
||||
@booth.update(booth_params)
|
||||
|
||||
if @booth.save
|
||||
redirect_to admin_conference_booths_path,
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ module Admin
|
|||
|
||||
send_mail_on_cfp_dates_updates = @cfp.notify_on_cfp_date_update?
|
||||
|
||||
if @cfp.update_attributes(cfp_params)
|
||||
if @cfp.update(cfp_params)
|
||||
ConferenceCfpUpdateMailJob.perform_later(@conference) if send_mail_on_cfp_dates_updates
|
||||
redirect_to admin_conference_program_cfps_path(@conference.short_title),
|
||||
notice: 'Call for papers successfully updated.'
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ module Admin
|
|||
|
||||
def new
|
||||
@conference = Conference.new
|
||||
@organizations = Organization.accessible_by(current_ability, :update).pluck(:name, :id)
|
||||
end
|
||||
|
||||
def create
|
||||
|
|
@ -91,7 +90,7 @@ module Admin
|
|||
@conference.assign_attributes(conference_params)
|
||||
send_mail_on_conf_update = @conference.notify_on_dates_changed?
|
||||
|
||||
if @conference.update_attributes(conference_params)
|
||||
if @conference.update(conference_params)
|
||||
ConferenceDateUpdateMailJob.perform_later(@conference) if send_mail_on_conf_update
|
||||
redirect_to edit_admin_conference_path(id: @conference.short_title),
|
||||
notice: 'Conference was successfully updated.'
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @difficulty_level.update_attributes(difficulty_level_params)
|
||||
if @difficulty_level.update(difficulty_level_params)
|
||||
redirect_to admin_conference_program_difficulty_levels_path(conference_id: @conference.short_title),
|
||||
notice: 'Difficulty level successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @event_type.update_attributes(event_type_params)
|
||||
if @event_type.update(event_type_params)
|
||||
redirect_to admin_conference_program_event_types_path(conference_id: @conference.short_title),
|
||||
notice: 'Event type successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ module Admin
|
|||
|
||||
def update
|
||||
@languages = @program.languages_list
|
||||
if @event.update_attributes(event_params)
|
||||
if @event.update(event_params)
|
||||
|
||||
if request.xhr?
|
||||
render js: 'index'
|
||||
|
|
@ -142,7 +142,7 @@ module Admin
|
|||
@votes = @event.votes.includes(:user)
|
||||
|
||||
if (votes = current_user.votes.find_by_event_id(params[:id]))
|
||||
votes.update_attributes(rating: params[:rating])
|
||||
votes.update(rating: params[:rating])
|
||||
else
|
||||
@myvote = @event.votes.build
|
||||
@myvote.user = current_user
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ module Admin
|
|||
def edit; end
|
||||
|
||||
def update
|
||||
if @lodging.update_attributes(lodging_params)
|
||||
if @lodging.update(lodging_params)
|
||||
redirect_to admin_conference_lodgings_path(conference_id: @conference.short_title),
|
||||
notice: 'Lodging successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ module Admin
|
|||
def edit; end
|
||||
|
||||
def update
|
||||
if @organization.update_attributes(organization_params)
|
||||
if @organization.update(organization_params)
|
||||
redirect_to admin_organizations_path,
|
||||
notice: 'Organization successfully updated'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -12,11 +12,12 @@ module Admin
|
|||
def update
|
||||
authorize! :update, @conference.program
|
||||
@program = @conference.program
|
||||
params['program']['languages'] = params['program']['languages'].join(',') if params['program']['languages'].present?
|
||||
@program.assign_attributes(program_params)
|
||||
send_mail_on_schedule_public = @program.notify_on_schedule_public?
|
||||
event_schedules_count_was = @program.event_schedules.count
|
||||
|
||||
if @program.update_attributes(program_params)
|
||||
if @program.save
|
||||
ConferenceScheduleUpdateMailJob.perform_later(@conference) if send_mail_on_schedule_public
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
|
|
@ -40,7 +41,7 @@ module Admin
|
|||
private
|
||||
|
||||
def program_params
|
||||
params.require(:program).permit(:rating, :schedule_public, :schedule_interval, :schedule_fluid, :languages, :blind_voting, :voting_start_date, :voting_end_date, :selected_schedule_id)
|
||||
params.require(:program).permit(:rating, :schedule_public, :schedule_interval, :schedule_fluid, :blind_voting, :voting_start_date, :voting_end_date, :selected_schedule_id, :languages)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
module Admin
|
||||
class QuestionsController < Admin::BaseController
|
||||
load_and_authorize_resource :conference, find_by: :short_title
|
||||
load_and_authorize_resource through: :conference, except: [:new, :create]
|
||||
load_and_authorize_resource except: [:new, :create]
|
||||
|
||||
def index
|
||||
authorize! :index, Question.new(conference_id: @conference.id)
|
||||
|
|
@ -48,7 +48,7 @@ module Admin
|
|||
|
||||
# PUT questions/1
|
||||
def update
|
||||
if @question.update_attributes(question_params)
|
||||
if @question.update(question_params)
|
||||
redirect_to admin_conference_questions_path(conference_id: @conference.short_title), notice: "Question '#{@question.title}' for #{@conference.short_title} successfully updated."
|
||||
else
|
||||
redirect_to admin_conference_questions_path(conference_id: @conference.short_title), notice: "Update of questions for #{@conference.short_title} failed. #{@question.errors.full_messages.join('. ')}"
|
||||
|
|
@ -58,7 +58,7 @@ module Admin
|
|||
# Update questions used for the conference
|
||||
def update_conference
|
||||
authorize! :update, Question.new(conference_id: @conference.id)
|
||||
if @conference.update_attributes(conference_params)
|
||||
if @conference.update(conference_params)
|
||||
redirect_to admin_conference_questions_path(conference_id: @conference.short_title), notice: "Questions for #{@conference.short_title} successfully updated."
|
||||
else
|
||||
redirect_to admin_conference_questions_path(conference_id: @conference.short_title), notice: "Update of questions for #{@conference.short_title} failed."
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ module Admin
|
|||
respond_to do |format|
|
||||
format.html
|
||||
format.json do
|
||||
render json: RegistrationDatatable.new(view_context, conference: @conference)
|
||||
render json: RegistrationDatatable.new({}, conference: @conference, view_context: view_context)
|
||||
end
|
||||
format.pdf { render 'index', layout: false }
|
||||
format.xlsx do
|
||||
|
|
@ -37,9 +37,9 @@ module Admin
|
|||
def edit; end
|
||||
|
||||
def update
|
||||
@user.update_attributes(user_params)
|
||||
@user.update(user_params)
|
||||
|
||||
@registration.update_attributes(registration_params)
|
||||
@registration.update(registration_params)
|
||||
if @registration.save
|
||||
redirect_to admin_conference_registrations_path(@conference.short_title),
|
||||
notice: "Successfully updated registration for #{@registration.user.email}!"
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @resource.update_attributes(resource_params)
|
||||
if @resource.update(resource_params)
|
||||
redirect_to admin_conference_resources_path(conference_id: @conference.short_title),
|
||||
notice: 'Resource successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ module Admin
|
|||
def update
|
||||
role_name = @role.name
|
||||
|
||||
if @role.update_attributes(role_params)
|
||||
if @role.update(role_params)
|
||||
url = if @track
|
||||
admin_conference_program_track_role_path(@conference.short_title, @track, @role.name)
|
||||
else
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @room.update_attributes(room_params)
|
||||
if @room.update(room_params)
|
||||
redirect_to admin_conference_venue_rooms_path(conference_id: @conference.short_title),
|
||||
notice: 'Room successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @splashpage.update_attributes(splashpage_params)
|
||||
if @splashpage.update(splashpage_params)
|
||||
redirect_to admin_conference_splashpage_path,
|
||||
notice: 'Splashpage successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @sponsor.update_attributes(sponsor_params)
|
||||
if @sponsor.update(sponsor_params)
|
||||
redirect_to admin_conference_sponsors_path(
|
||||
conference_id: @conference.short_title),
|
||||
notice: 'Sponsor successfully updated.'
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @sponsorship_level.update_attributes(sponsorship_level_params)
|
||||
if @sponsorship_level.update(sponsorship_level_params)
|
||||
redirect_to admin_conference_sponsorship_levels_path(
|
||||
conference_id: @conference.short_title),
|
||||
notice: 'Sponsorship level successfully updated.'
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ module Admin
|
|||
|
||||
# PUT questions/1
|
||||
def update
|
||||
if @survey_question.update_attributes(survey_question_params)
|
||||
if @survey_question.update(survey_question_params)
|
||||
redirect_to admin_conference_survey_path(@conference.short_title, @survey), notice: 'Successfully updated Survey Question.'
|
||||
else
|
||||
@url = admin_conference_survey_survey_question_path(@conference.short_title, @survey, @survey_question)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @survey.update_attributes(survey_params)
|
||||
if @survey.update(survey_params)
|
||||
redirect_to admin_conference_surveys_path(@conference.short_title)
|
||||
else
|
||||
@url = admin_conference_survey_path(@conference.short_title, @survey)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ module Admin
|
|||
|
||||
def create
|
||||
@ticket = @conference.tickets.new(ticket_params)
|
||||
if @ticket.save(ticket_params)
|
||||
if @ticket.save
|
||||
redirect_to admin_conference_tickets_path(conference_id: @conference.short_title),
|
||||
notice: 'Ticket successfully created.'
|
||||
else
|
||||
|
|
@ -29,7 +29,7 @@ module Admin
|
|||
def edit; end
|
||||
|
||||
def update
|
||||
if @ticket.update_attributes(ticket_params)
|
||||
if @ticket.update(ticket_params)
|
||||
redirect_to admin_conference_tickets_path(conference_id: @conference.short_title),
|
||||
notice: 'Ticket successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ module Admin
|
|||
def edit; end
|
||||
|
||||
def update
|
||||
if @track.update_attributes(track_params)
|
||||
if @track.update(track_params)
|
||||
redirect_to admin_conference_program_tracks_path(conference_id: @conference.short_title),
|
||||
notice: 'Track successfully updated.'
|
||||
else
|
||||
|
|
@ -122,7 +122,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update_selected_schedule
|
||||
if @track.update_attributes(params.require(:track).permit(:selected_schedule_id))
|
||||
if @track.update(params.require(:track).permit(:selected_schedule_id))
|
||||
respond_to do |format|
|
||||
format.js { render json: {} }
|
||||
end
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ module Admin
|
|||
respond_to do |format|
|
||||
format.html
|
||||
format.json do
|
||||
render json: UserDatatable.new(view_context)
|
||||
render json: UserDatatable.new(view_context: view_context)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -56,7 +56,7 @@ module Admin
|
|||
end
|
||||
end
|
||||
|
||||
if @user.update_attributes(user_params)
|
||||
if @user.update(user_params)
|
||||
redirect_to admin_users_path, notice: "Updated #{@user.name} (#{@user.email})!" + message
|
||||
else
|
||||
redirect_to admin_users_path, error: "Could not update #{@user.name} (#{@user.email}). #{@user.errors.full_messages.join('. ')}."
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @venue.update_attributes(venue_params)
|
||||
if @venue.update(venue_params)
|
||||
redirect_to admin_conference_venue_path(conference_id: @conference.short_title),
|
||||
notice: 'Venue was successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ module Admin
|
|||
end
|
||||
|
||||
def update
|
||||
if @conference.update_attributes(conference_params)
|
||||
if @conference.update(conference_params)
|
||||
redirect_to admin_conference_volunteers_info_path(conference_id: params[:conference_id]), notice: 'Volunteering options were successfully updated.'
|
||||
else
|
||||
redirect_to admin_conference_volunteers_info_path(conference_id: params[:conference_id]), error: "Volunteering options update failed: #{@conference.errors.full_messages.join '. '}"
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class BoothsController < ApplicationController
|
|||
|
||||
def update
|
||||
@url = conference_booth_path(@conference.short_title, @booth.id)
|
||||
@booth.update_attributes(booth_params)
|
||||
@booth.update(booth_params)
|
||||
|
||||
if @booth.save
|
||||
redirect_to conference_booths_path,
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class ConferenceRegistrationsController < ApplicationController
|
|||
end
|
||||
authorize! :new, @registration, message: message
|
||||
|
||||
# @user variable needs to be set so that _sign_up_form_embedded works properly
|
||||
# @user needs to be set for devise/registrations/new_embedded
|
||||
@user = @registration.build_user
|
||||
end
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ class ConferenceRegistrationsController < ApplicationController
|
|||
@registration = @conference.registrations.new(registration_params)
|
||||
|
||||
@user = if current_user.nil?
|
||||
# @user variable needs to be set so that _sign_up_form_embedded works properly
|
||||
# @user needs to be set for devise/registrations/new_embedded
|
||||
@registration.build_user(user_params)
|
||||
else
|
||||
current_user
|
||||
|
|
@ -72,7 +72,7 @@ class ConferenceRegistrationsController < ApplicationController
|
|||
end
|
||||
|
||||
def update
|
||||
if @registration.update_attributes(registration_params)
|
||||
if @registration.update(registration_params)
|
||||
redirect_to conference_conference_registration_path(@conference.short_title),
|
||||
notice: 'Registration was successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -3,16 +3,6 @@
|
|||
class RegistrationsController < Devise::RegistrationsController
|
||||
prepend_before_action :check_captcha, only: [:create]
|
||||
|
||||
def edit
|
||||
@openids = Openid.where(user_id: current_user.id).order(:provider)
|
||||
super
|
||||
end
|
||||
|
||||
def update
|
||||
@openids = Openid.where(user_id: current_user.id).order(:provider)
|
||||
super
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def after_update_path_for(resource)
|
||||
|
|
|
|||
|
|
@ -27,14 +27,14 @@ class SurveysController < ApplicationController
|
|||
reply_text = survey_submission[survey_question.id.to_s].reject(&:blank?).join(',')
|
||||
|
||||
if reply
|
||||
reply.update_attributes(text: reply_text) unless reply.text == reply_text
|
||||
reply.update(text: reply_text) unless reply.text == reply_text
|
||||
else
|
||||
survey_question.survey_replies.create!(text: reply_text, user: current_user)
|
||||
end
|
||||
|
||||
user_survey_submission = @survey.survey_submissions.find_by(user: current_user)
|
||||
if user_survey_submission
|
||||
user_survey_submission.update_attributes(updated_at: Time.current)
|
||||
user_survey_submission.update_attribute(:updated_at, Time.current)
|
||||
else
|
||||
@survey.survey_submissions.create!(user: current_user)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class TracksController < ApplicationController
|
|||
end
|
||||
|
||||
def update
|
||||
if @track.update_attributes(track_params)
|
||||
if @track.update(track_params)
|
||||
redirect_to conference_program_tracks_path(conference_id: @conference.short_title),
|
||||
notice: 'Track request successfully updated.'
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class UsersController < ApplicationController
|
||||
before_action :authenticate_user!, only: :search
|
||||
load_and_authorize_resource
|
||||
|
||||
# GET /users/1
|
||||
|
|
@ -22,6 +23,14 @@ class UsersController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def search
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
render json: { users: User.where('username like ?', "%#{params[:query]}%").select(:username, :id) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Only allow a trusted parameter "white list" through.
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RegistrationDatatable < AjaxDatatablesRails::Base
|
||||
class RegistrationDatatable < AjaxDatatablesRails::ActiveRecord
|
||||
extend Forwardable
|
||||
|
||||
def_delegator :@view, :edit_admin_conference_registration_path
|
||||
|
||||
def initialize(params, opts = {})
|
||||
@view = opts[:view_context]
|
||||
super
|
||||
end
|
||||
|
||||
def view_columns
|
||||
@view_columns ||= {
|
||||
id: { source: 'Registration.id', cond: :eq },
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class UserDatatable < AjaxDatatablesRails::Base
|
||||
extend Forwardable
|
||||
|
||||
def_delegator :@view, :show_roles
|
||||
def_delegator :@view, :admin_user_path
|
||||
def_delegator :@view, :edit_admin_user_path
|
||||
|
|
|
|||
|
|
@ -88,14 +88,6 @@ module ApplicationHelper
|
|||
end
|
||||
end
|
||||
|
||||
def redirect_back_or_to(options = {}, response_status = {})
|
||||
if request.env['HTTP_REFERER']
|
||||
redirect_back(fallback_location: root_path)
|
||||
else
|
||||
redirect_to options, response_status
|
||||
end
|
||||
end
|
||||
|
||||
def concurrent_events(event)
|
||||
return nil unless event.scheduled? && event.program.selected_event_schedules
|
||||
|
||||
|
|
@ -123,14 +115,6 @@ module ApplicationHelper
|
|||
user_selector_input(:speakers, form, '', true)
|
||||
end
|
||||
|
||||
def responsibles_selector_input(form)
|
||||
user_selector_input(
|
||||
:responsibles,
|
||||
form,
|
||||
"The people responsible for the #{t 'booth'}. You can only select existing users."
|
||||
)
|
||||
end
|
||||
|
||||
def user_selector_input(field, form, hint = '', multiple = true)
|
||||
users = User.where(is_disabled: false).pluck(:id, :name, :username, :email).map { |user| [user[0], user[1].blank? ? user[2] : user[1], user[2], user[3]] }.sort_by { |user| user[1].downcase }
|
||||
form.input(
|
||||
|
|
|
|||
13
app/helpers/event_types_helper.rb
Normal file
13
app/helpers/event_types_helper.rb
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module EventTypesHelper
|
||||
##
|
||||
# Includes functions related to event_types
|
||||
##
|
||||
##
|
||||
# ====Returns
|
||||
# * +String+ -> number of registrations / max allowed registrations
|
||||
def event_type_select_options(event_types = {})
|
||||
event_types.map { |type| ["#{type.title} - #{show_time(type.length)}", type.id] }
|
||||
end
|
||||
end
|
||||
|
|
@ -46,14 +46,6 @@ module EventsHelper
|
|||
end
|
||||
end
|
||||
|
||||
def track_selector_input(form)
|
||||
if @program.tracks.confirmed.cfp_active.any?
|
||||
form.input :track_id, as: :select,
|
||||
collection: @program.tracks.confirmed.cfp_active.pluck(:name, :id),
|
||||
include_blank: '(Please select)'
|
||||
end
|
||||
end
|
||||
|
||||
def rating_tooltip(event, max_rating)
|
||||
"#{event.average_rating}/#{max_rating}, #{pluralize(event.voters.length, 'vote')}"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ module UsersHelper
|
|||
end
|
||||
|
||||
def omniauth_configured
|
||||
return Devise.omniauth_providers if OmniAuth.config.test_mode
|
||||
|
||||
providers = []
|
||||
Devise.omniauth_providers.each do |provider|
|
||||
provider_key = "#{provider}_key"
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ class Conference < ApplicationRecord
|
|||
delegate :city, :country_name, to: :venue, allow_nil: true
|
||||
delegate :name, :street, to: :venue, prefix: true, allow_nil: true
|
||||
|
||||
has_many :physical_tickets, through: :ticket_purchases
|
||||
has_many :ticket_purchases, dependent: :destroy
|
||||
has_many :physical_tickets, through: :ticket_purchases
|
||||
has_many :payments, dependent: :destroy
|
||||
has_many :supporters, through: :ticket_purchases, source: :user
|
||||
has_many :tickets, dependent: :destroy
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ class Program < ApplicationRecord
|
|||
def normalize_event_types_length
|
||||
event_types.each do |event_type|
|
||||
new_length = event_type.length > schedule_interval ? event_type.length - (event_type.length % schedule_interval) : schedule_interval
|
||||
event_type.update_attributes length: new_length
|
||||
event_type.update_attribute(:length, new_length)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ class TicketPurchase < ApplicationRecord
|
|||
end
|
||||
|
||||
def pay(payment)
|
||||
update_attributes(paid: true, payment: payment)
|
||||
update(paid: true, payment: payment)
|
||||
PhysicalTicket.transaction do
|
||||
quantity.times { physical_tickets.create }
|
||||
end
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ class UserDisabled < StandardError
|
|||
end
|
||||
|
||||
class User < ApplicationRecord
|
||||
rolify
|
||||
# prevent N+1 queries with has_cached_role? by preloading roles *always*
|
||||
default_scope { preload(:roles) }
|
||||
|
||||
|
|
@ -17,8 +16,15 @@ class User < ApplicationRecord
|
|||
where('ticket_purchases.conference_id = ?', conference)
|
||||
end
|
||||
end
|
||||
has_many :tickets, through: :ticket_purchases, source: :ticket do
|
||||
def for_registration conference
|
||||
where(conference: conference, registration_ticket: true).first
|
||||
end
|
||||
end
|
||||
|
||||
has_many :users_roles
|
||||
has_many :roles, through: :users_roles, dependent: :destroy
|
||||
rolify
|
||||
|
||||
has_paper_trail on: [:create, :update], ignore: [:sign_in_count, :remember_created_at, :current_sign_in_at, :last_sign_in_at, :current_sign_in_ip, :last_sign_in_ip, :unconfirmed_email,
|
||||
:avatar_content_type, :avatar_file_size, :avatar_updated_at, :updated_at, :confirmation_sent_at, :confirmation_token, :reset_password_token]
|
||||
|
|
@ -69,11 +75,7 @@ class User < ApplicationRecord
|
|||
end
|
||||
has_many :events_registrations, through: :registrations
|
||||
has_many :payments, dependent: :destroy
|
||||
has_many :tickets, through: :ticket_purchases, source: :ticket do
|
||||
def for_registration conference
|
||||
where(conference: conference, registration_ticket: true).first
|
||||
end
|
||||
end
|
||||
|
||||
has_many :votes, dependent: :destroy
|
||||
has_many :voted_events, through: :votes, source: :events
|
||||
has_many :subscriptions, dependent: :destroy
|
||||
|
|
@ -154,9 +156,9 @@ class User < ApplicationRecord
|
|||
raise UserDisabled if user&.is_disabled
|
||||
|
||||
if user
|
||||
user.update_attributes(email: attributes[:email],
|
||||
last_sign_in_at: user.current_sign_in_at,
|
||||
current_sign_in_at: Time.current)
|
||||
user.update(email: attributes[:email],
|
||||
last_sign_in_at: user.current_sign_in_at,
|
||||
current_sign_in_at: Time.current)
|
||||
else
|
||||
begin
|
||||
user = create!(username: username, email: attributes[:email])
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class TicketPdf < Prawn::Document
|
|||
when 'http', 'ftp:' # CDNs
|
||||
begin
|
||||
open(@conference.picture.ticket.url)
|
||||
rescue OpenURI::HTTPError
|
||||
rescue OpenURI::HTTPError, Errno::ENOENT
|
||||
nil
|
||||
end
|
||||
when '/sys' # local storage
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
%h1
|
||||
Editing
|
||||
= @booth.title
|
||||
|
||||
= render 'booths/form'
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit #{t'booth'}
|
||||
= @booth.title
|
||||
.row
|
||||
.col-md-8
|
||||
= render 'booths/form'
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
%h1 New #{t'booth'}
|
||||
|
||||
= render 'booths/form'
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
New #{t'booth'}
|
||||
.row
|
||||
.col-md-8
|
||||
= render 'booths/form'
|
||||
|
|
|
|||
|
|
@ -1,28 +1,20 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Call for
|
||||
= cfp.cfp_type.capitalize
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(cfp, url: cfp_form_url(cfp, conference),
|
||||
html: { multipart: true,
|
||||
data: { end_conference: conference.end_date.to_s } }) do |f|
|
||||
= f.input :cfp_type, as: :hidden
|
||||
= f.input :start_date, as: :string,
|
||||
input_html: { class: 'form-control',
|
||||
id: 'registration-period-start-datepicker' }
|
||||
= f.input :end_date, as: :string,
|
||||
input_html: { class: 'form-control',
|
||||
id: 'registration-period-end-datepicker' }
|
||||
= f.input :description, hint: markdown_hint,
|
||||
input_html: { rows: 2, data: { provide: 'markdown' } }
|
||||
- if cfp.cfp_type == 'events'
|
||||
= f.input :enable_registrations, as: :boolean,
|
||||
hint: 'Allow submitters to request registration?'
|
||||
- else
|
||||
= f.input :enable_registrations, as: :hidden
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button,
|
||||
button_html: { class: 'btn btn-primary' }
|
||||
= form_for(@cfp, url: (@cfp.new_record? ? admin_conference_program_cfps_path : admin_conference_program_cfp_path(@conference.short_title, @cfp)), data: { end_conference: @conference.end_date.to_s }) do |f|
|
||||
= f.hidden_field :cfp_type
|
||||
.form-group
|
||||
= f.label :start_date, "Start Date"
|
||||
= f.text_field :start_date, class: 'form-control', id: 'registration-period-start-datepicker', start_date: @conference.start_date, end_date: @conference.end_date
|
||||
.form-group
|
||||
= f.label :end_date, "End Date"
|
||||
= f.text_field :end_date, class: 'form-control', id: 'registration-period-end-datepicker', start_date: @conference.start_date, end_date: @conference.end_date
|
||||
.form-group
|
||||
= f.label :description, "Description"
|
||||
= f.text_area :description, rows: 2, data: { provide: 'markdown' }
|
||||
%span.help-block
|
||||
= markdown_hint
|
||||
- if @cfp.cfp_type == 'events'
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :enable_registrations
|
||||
Allow submitters to request registration?
|
||||
%p.text-right
|
||||
= f.submit nil, { class: 'btn btn-success' }
|
||||
|
|
|
|||
|
|
@ -1 +1,9 @@
|
|||
= render 'form', cfp: @cfp, conference: @conference
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Call for
|
||||
= @cfp.cfp_type.capitalize
|
||||
.row
|
||||
.col-md-8
|
||||
= render 'form'
|
||||
|
|
|
|||
|
|
@ -1 +1,9 @@
|
|||
= render 'form', cfp: @cfp, conference: @conference
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Call for
|
||||
= @cfp.cfp_type.capitalize
|
||||
.row
|
||||
.col-md-8
|
||||
= render 'form'
|
||||
|
|
|
|||
|
|
@ -13,10 +13,13 @@
|
|||
#resource-placeholder{ style: 'background-color:#d3d3d3; float: left; width: 400px; height: 250px; margin: 5px; border-width: 1px; border-style: solid; border-color: rgba(0,0,0,.2);' }
|
||||
.row
|
||||
.col-md-6
|
||||
= semantic_form_for(@commercial, url: admin_conference_commercials_path(conference_id: @conference.short_title)) do |f|
|
||||
= f.input :url, label: 'URL', as: :string, input_html: { required: 'required', autofocus: true },
|
||||
hint: 'Just paste the url of your video/photo provider. YouTube, Vimeo, SpeakerDeck, SlideShare, Instagram, Flickr.'
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary pull-right', disabled: true }
|
||||
= form_for(@commercial, url: admin_conference_commercials_path(conference_id: @conference.short_title)) do |f|
|
||||
.form-group
|
||||
= f.label :url
|
||||
= f.url_field :url, required: 'required', autofocus: true, class: 'form-control'
|
||||
%span.help-block
|
||||
Just paste the url of your video/photo provider. YouTube, Vimeo, SpeakerDeck, SlideShare, Instagram, Flickr.
|
||||
= f.submit nil, { class: 'btn btn-primary pull-right', id: 'commercial_submit_action', disabled: true }
|
||||
%hr
|
||||
|
||||
- @commercials.each_slice(3) do |slice|
|
||||
|
|
@ -29,9 +32,13 @@
|
|||
= render partial: 'shared/media_item', locals: { commercial: commercial }
|
||||
.caption
|
||||
- if can? :update, commercial
|
||||
= semantic_form_for commercial, url: admin_conference_commercial_path(conference_id: @conference.short_title, id: commercial) do |f|
|
||||
= f.input :url, label: 'URL', as: :string, input_html: { id: "commercial_url_#{commercial.id}", required: 'required' }, hint: 'Just paste the url of your video/photo provider'
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-success' }, label: 'Update'
|
||||
= form_for commercial, url: admin_conference_commercial_path(conference_id: @conference.short_title, id: commercial) do |f|
|
||||
.form-group
|
||||
= f.label :url
|
||||
= f.url_field :url, id: "commercial_url_#{commercial.id}", required: 'required'
|
||||
%span.help-block
|
||||
Just paste the url of your video/photo provider
|
||||
= f.submit nil, { class: 'btn btn-success' }
|
||||
- if can? :destroy, commercial
|
||||
= link_to 'Delete', admin_conference_commercial_path(@conference.short_title, commercial.id),
|
||||
method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-danger'
|
||||
|
|
|
|||
95
app/views/admin/conferences/_form_fields.html.haml
Normal file
95
app/views/admin/conferences/_form_fields.html.haml
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
%h4
|
||||
Basic Information
|
||||
%hr
|
||||
- if f.object.new_record?
|
||||
.form-group
|
||||
= f.label :organization, "Organization"
|
||||
= f.select :organization_id, Organization.accessible_by(current_ability, :update).pluck(:name, :id)
|
||||
.form-group
|
||||
= f.label :title, "Title"
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :title, required: true, class: 'form-control', placeholder: 'Title'
|
||||
%span.help-block
|
||||
The name of your conference as it shall appear throughout the site. Example: 'openSUSE Conference 2013'
|
||||
.form-group
|
||||
= f.label :title, "Short Title"
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :short_title, required: true, pattern: '[a-zA-Z0-9_-]+', title: 'Only letters, numbers, underscores, and dashes.', prepend: conferences_url + '/', class: 'form-control', placeholder: 'Short Title'
|
||||
%span.help-block
|
||||
A short and unique handle for your conference, using only letters, numbers, underscores, and dashes. This will be used to identify your conference in URLs etc. Example:
|
||||
%em
|
||||
froscon2011
|
||||
- unless f.object.new_record? # We are showing more fields on the edit form
|
||||
.form-group
|
||||
= f.text_area :description, rows: 5, data: { provide: 'markdown' }, class: 'form-control'
|
||||
%span.help-block
|
||||
= markdown_hint('A description of the conference.')
|
||||
.form-group
|
||||
= f.color_field :color, size: 6, class: 'form-control'
|
||||
%span.help-block
|
||||
The color will be used for the dashboard, for instance.
|
||||
.form-group
|
||||
= f.label :picture, 'Conference Logo'
|
||||
- if f.object.picture?
|
||||
= image_tag f.object.picture.thumb.url
|
||||
= f.file_field :picture
|
||||
%span.help-block
|
||||
This will be displayed on the front page.
|
||||
= f.hidden_field :picture_cache
|
||||
= f.select :ticket_layout, Conference.ticket_layouts.keys, {}, class: 'form-control'
|
||||
%span.help-block
|
||||
Layout type for tickets of the conference.
|
||||
|
||||
%h4
|
||||
Scheduling
|
||||
%hr
|
||||
= f.time_zone_select :timezone, nil, { default: 'UTC' }, { class: 'form-control' }
|
||||
%span.help-block
|
||||
Please select in what time zone your conference will take place.
|
||||
.form-group
|
||||
= f.label :start_date, "Start Date"
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :start_date, id: 'conference-start-datepicker', required: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :end_date, "End Date"
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :end_date, id: 'conference-end-datepicker', required: true, class: 'form-control'
|
||||
- unless f.object.new_record? # We are showing more fields on the edit form
|
||||
.form-group
|
||||
= f.number_field :start_hour, size: 2, min: 0, max: 23, class: 'form-control'
|
||||
%span.help-block
|
||||
= rescheduling_hint(@affected_event_count)
|
||||
.form-group
|
||||
= f.number_field :end_hour, size: 2, min: 1, max: 24, class: 'form-control'
|
||||
%span.help-block
|
||||
= rescheduling_hint(@affected_event_count)
|
||||
%h4
|
||||
Registrations
|
||||
%hr
|
||||
.form-group
|
||||
= f.number_field :registration_limit, in: 0..9999, class: 'form-control'
|
||||
%span.help-block
|
||||
Limit the number of registrations to the conference (0 no limit). Please note that the registration limit
|
||||
does not apply to speakers of confirmed events, they will still be able to register even if the limit has been reached.
|
||||
You currently have
|
||||
= pluralize(@conference.registrations.count, 'registration')
|
||||
%h4
|
||||
Booths
|
||||
%hr
|
||||
.form-group
|
||||
= f.number_field :booth_limit, in: 0..9999, class: 'form-control'
|
||||
%span.help-block
|
||||
= (t'booth').capitalize
|
||||
limit is the maximum number of
|
||||
= (t'booth').pluralize
|
||||
that you can accept for this conference. By setting this number (0 no limit) you can be sure that you are not
|
||||
going to accept more
|
||||
= (t'booth').pluralize
|
||||
than the conference can accommodate. You currently have
|
||||
= pluralize(@conference.booths.accepted.count, "accepted #{t'booth'}") + '.'
|
||||
%p.text-right
|
||||
- if f.object.new_record?
|
||||
= f.submit nil, { class: 'btn btn-success' }
|
||||
- else
|
||||
= f.submit nil, { class: 'btn btn-success', data: { confirm: 'Are you sure you want to proceed?' } }
|
||||
|
||||
|
|
@ -6,27 +6,5 @@
|
|||
The most basic settings of your conference
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@conference, url: admin_conference_path(@conference.short_title), html: {multipart: true}) do |f|
|
||||
= f.input :title, hint: "The full title of the conference, e.g. 'openSUSE Conference 2014'"
|
||||
= f.input :short_title, hint: "A short title, e.g. 'oSC14', to be used in URLs"
|
||||
= f.input :description, hint: markdown_hint('A description of the conference.'), input_html: { rows: 5, data: { provide: 'markdown' } }
|
||||
= f.input :color, hint: 'The color will be used eg for the dashboard.', input_html: {size: 6, type: 'color'}
|
||||
= f.label 'Conference Logo'
|
||||
%br
|
||||
- if @conference.picture?
|
||||
= image_tag @conference.picture.thumb.url
|
||||
= f.input :picture, label: false, hint: 'This will be displayed on the front page.'
|
||||
= f.hidden_field :picture_cache
|
||||
= f.input :ticket_layout, as: :select, collection: Conference.ticket_layouts.keys, hint: "Layout type for tickets of the conference."
|
||||
= f.inputs name: 'Scheduling' do
|
||||
= f.input :timezone, as: :time_zone, hint: 'The conference time zone'
|
||||
= f.input :start_date, as: :string, input_html: { id: 'conference-start-datepicker', readonly: 'readonly' }
|
||||
= f.input :end_date, as: :string, input_html: { id: 'conference-end-datepicker', readonly: 'readonly' }
|
||||
= f.input :start_hour, input_html: {size: 2, type: 'number', min: 0, max: 23}, hint: rescheduling_hint(@affected_event_count)
|
||||
= f.input :end_hour, input_html: {size: 2, type: 'number', min: 1, max: 24}, hint: rescheduling_hint(@affected_event_count)
|
||||
= f.inputs name: 'Registrations' do
|
||||
= f.input :registration_limit, as: :number, in: 0..9999, hint: 'Limit the number of registrations to the conference (0 no limit). Please note that the registration limit doesn\'t apply to speakers of confirmed events (they will still be able to register even if it has been reached). You currently have ' + pluralize(@conference.registrations.count, 'registration')
|
||||
= f.inputs name: 'Booths' do
|
||||
= f.input :booth_limit, as: :number, in: 0..9999,
|
||||
hint: "#{(t'booth').capitalize } limit is the maximum number of #{(t'booth').pluralize} that you can accept for this conference. By setting this number (0 no limit) you can be sure that you are not going to accept more #{(t'booth').pluralize} than the conference can accommodate. You currently have " + pluralize(@conference.booths.accepted.count, "accepted #{t'booth'}") +'.'
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary', data: { confirm: 'Are you sure you want to proceed?' } }
|
||||
= form_for(@conference, url: admin_conference_path(@conference.short_title), html: {multipart: true}) do |f|
|
||||
= render partial: 'form_fields', locals: { f: f }
|
||||
|
|
|
|||
|
|
@ -1,15 +1,4 @@
|
|||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@conference, url: admin_conferences_path) do |f|
|
||||
= f.inputs 'Basic Information' do
|
||||
= f.input :organization, as: :select, collection: @organizations
|
||||
= f.input :title, hint: "The name of your conference as it shall appear throughout the site. Example: 'OpenSUSE Conference 2013'",
|
||||
input_html: { required: 'required' }
|
||||
= f.input :short_title, hint: "A short and unique handle for your conference, using only letters, numbers, underscores, and dashes. This will be used to identify your conference in URLs etc. Example: 'froscon2011'",
|
||||
input_html: { required: 'required', pattern: '[a-zA-Z0-9_-]+', title: 'Only letters, numbers, underscores, and dashes.' }, prepend: conferences_url + '/'
|
||||
= f.inputs 'Scheduling' do
|
||||
= f.input :timezone, as: :time_zone, default: Time.zone.name, hint: 'Please select in what time zone your conference will take place.'
|
||||
= f.input :start_date, as: :string, input_html: { id: 'conference-start-datepicker', required: 'required' }
|
||||
= f.input :end_date, as: :string, input_html: { id: 'conference-end-datepicker', required: 'required' }
|
||||
= f.actions do
|
||||
= f.action :submit, button_html: {class: 'btn btn-success pull-right'}
|
||||
= form_for(@conference, url: admin_conferences_path) do |f|
|
||||
= render partial: 'form_fields', locals: { f: f }
|
||||
|
|
|
|||
|
|
@ -6,17 +6,53 @@
|
|||
How people can contact you
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@contact, url: admin_conference_contact_path(@conference.short_title), html: {multipart: true}) do |f|
|
||||
= f.inputs name: 'Mail' do
|
||||
= f.input :email, input_html: { autofocus: true }, hint: 'Contact email address for your conference. Will be used as reply-to address in emails sent out by the system.'
|
||||
= f.input :sponsor_email, hint: 'This will appear in the sponsor segment of the splash for the sponsors to contact to the organizers'
|
||||
= f.inputs name: 'Social Media' do
|
||||
= f.input :social_tag, hint: "The hashtag you'll use on Twitter and Google+. Don't include the '#' sign!'"
|
||||
= f.input :blog, hint: 'This will appear in the social media section as a link to your conference blog.'
|
||||
= f.input :facebook, hint: 'This will appear in the social media section as a link to the Facebook page of your Conference'
|
||||
= f.input :googleplus, label: 'Google+ Url', hint: 'This will appear in the social media section as a link to the Google+ Page of your Conference'
|
||||
= f.input :twitter, hint: 'This will appear in the social media section as a link to the Twitter Page of your Conference'
|
||||
= f.input :instagram, hint: 'This will appear in the social media section as a link to the Instagram Page of your Conference'
|
||||
= f.input :mastodon, hint: 'This will appear in the social media section as a link to the Mastodon Page of your Conference'
|
||||
= f.input :youtube, hint: 'This will appear in the social media section as a link to the YouTube channel for your conference.'
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
= form_for(@contact, url: admin_conference_contact_path(@conference.short_title), html: {multipart: true}) do |f|
|
||||
%h4
|
||||
Mail
|
||||
%hr
|
||||
.form-group
|
||||
= f.label :email
|
||||
= f.email_field :email, autofocus: true, class: 'form-control'
|
||||
%span.help-block
|
||||
Contact email address for your conference. Will be used as reply-to address in emails sent out by the system.
|
||||
= f.label :sponsor_email
|
||||
= f.email_field :sponsor_email, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the sponsor segment of the splash for the sponsors to contact to the organizers.
|
||||
%h4
|
||||
Social Media
|
||||
%hr
|
||||
.form-group
|
||||
= f.label :social_tag
|
||||
= f.text_field :social_tag, class: 'form-control'
|
||||
%span.help-block
|
||||
The hashtag you'll use on Twitter and Google+. Don't include the '#' sign!
|
||||
= f.label :blog, 'Blog URL'
|
||||
= f.url_field :blog, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the social media section as a link to your conference blog.
|
||||
= f.label :facebook, 'Facebook URL'
|
||||
= f.url_field :facebook, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the social media section as a link to the Facebook page of your Conference'
|
||||
= f.label :googleplus, 'Google+ URL'
|
||||
= f.url_field :googleplus, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the social media section as a link to the Google+ Page of your Conference'
|
||||
= f.label :twitter, 'Twitter URL'
|
||||
= f.url_field :twitter, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the social media section as a link to the Twitter Page of your Conference'
|
||||
= f.label :instagram, 'Insta URL'
|
||||
= f.url_field :instagram, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the social media section as a link to the Instagram Page of your Conference
|
||||
= f.label :mastodon, 'Mastodon URL'
|
||||
= f.url_field :mastodon, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the social media section as a link to the Mastodon Page of your Conference
|
||||
= f.label :youtube, 'Youtube URL'
|
||||
= f.url_field :youtube, class: 'form-control'
|
||||
%span.help-block
|
||||
This will appear in the social media section as a link to the YouTube channel for your conference.
|
||||
= f.submit nil, class: 'btn btn-primary'
|
||||
|
|
|
|||
|
|
@ -1,16 +1,13 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
- if @difficulty_level.new_record?
|
||||
New
|
||||
Difficulty Level
|
||||
= @difficulty_level.title
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@difficulty_level, url: (@difficulty_level.new_record? ? admin_conference_program_difficulty_levels_path : admin_conference_program_difficulty_level_path(@conference.short_title, @difficulty_level))) do |f|
|
||||
= f.input :title, input_html: { autofocus: true }, required: true
|
||||
= f.input :description, input_html: {rows: 3, class: 'span6'}
|
||||
= f.input :color, input_html: {size: 6, type: 'color'}
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
= form_for(@difficulty_level, url: (@difficulty_level.new_record? ? admin_conference_program_difficulty_levels_path : admin_conference_program_difficulty_level_path(@conference.short_title, @difficulty_level))) do |f|
|
||||
.form-group
|
||||
= f.label :title
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :title, autofocus: true , required: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :description
|
||||
= f.text_area :description, rows: 3, class: 'span6 form-control'
|
||||
.form-group
|
||||
= f.label :color
|
||||
= f.color_field :color, class: 'form-control'
|
||||
%p.text-right
|
||||
= f.submit nil, class: 'btn btn-primary'
|
||||
|
|
|
|||
9
app/views/admin/difficulty_levels/edit.html.haml
Normal file
9
app/views/admin/difficulty_levels/edit.html.haml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit Difficulty Level
|
||||
= @difficulty_level.title
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
8
app/views/admin/difficulty_levels/new.html.haml
Normal file
8
app/views/admin/difficulty_levels/new.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Create Difficulty Level
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@settings, url: admin_conference_email_path(@conference.short_title, @conference.email_settings), html: {multipart: true}) do |f|
|
||||
= form_for(@settings, url: admin_conference_email_path(@conference.short_title, @conference.email_settings), html: {multipart: true}) do |f|
|
||||
.row
|
||||
.col-md-12
|
||||
%div{ role: 'tabpanel' }
|
||||
|
|
@ -19,43 +19,77 @@
|
|||
/ Tab panes
|
||||
.tab-content
|
||||
#onboarding.tab-pane.active{ role: 'tabpanel' }
|
||||
= f.input :send_on_registration, label: 'Send an email when the user registers for the conference?', input_html: {'data-name' => 'email_settings_registration_subject', 'class' => 'send_on_radio'}
|
||||
= f.input :registration_subject
|
||||
= f.input :registration_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_registration, data: {name: 'email_settings_registration_subject'}, class: 'send_on_radio'
|
||||
Send an email when the user registers for the conference?
|
||||
.form-group
|
||||
= f.label :registration_subject, 'Subject'
|
||||
= f.text_field :registration_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :registration_body, 'Body'
|
||||
= f.text_area :registration_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_registration_subject', 'data-subject-text' => 'Thank you for registering',
|
||||
'data-body-input-id' => 'email_settings_registration_body',
|
||||
'data-body-text' => "Dear {name},\n\nThank you for Registering for the conference {conference}.\nPlease complete your registration by filling out your travel information.\n\nIf you are unable to attend please unregister online:\n{registrationlink}\n\nFeel free to contact us with any questions or concerns.\nWe look forward to see you there.\n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'registration_help' } Show Help
|
||||
= render partial: 'help', locals: { id: 'registration_help', show_event_variables: false }
|
||||
#proposal.tab-pane{ role: 'tabpanel' }
|
||||
= f.input :send_on_submitted_proposal, label: 'Send an email when the proposal is submitted', input_html: { 'data-name' => 'email_settings_proposal_submited_subject', 'class' => 'send_on_radio' }
|
||||
= f.input :submitted_proposal_subject
|
||||
= f.input :submitted_proposal_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_submitted_proposal, data: { name: 'email_settings_proposal_submited_subject'}, class: 'send_on_radio'
|
||||
Send an email when the proposal is submitted
|
||||
.form-group
|
||||
= f.label :submitted_proposal_subject, 'Subject'
|
||||
= f.text_field :submitted_proposal_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :submitted_proposal_body, 'Body'
|
||||
= f.text_area :submitted_proposal_body, input_html: { rows: 10, cols: 20 }, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_submitted_proposal_subject', 'data-subject-text' => 'Your proposal has been submitted successfully', 'data-body-input-id' => 'email_settings_submitted_proposal_body', 'data-body-text' => "Dear {name}\n\nThank you for submitting your proposal {eventtitle}.\n\nOur team will review it and get back to you as soon as possible.\n\nFeel free to contact us with any questions or concerns.\n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'submitted_proposal_help' } Show Help
|
||||
= render partial: 'help', locals: { id: 'submitted_proposal_help', show_event_variables: true }
|
||||
|
||||
= f.input :send_on_accepted, label: 'Send an email when the proposal is accepted?', input_html: { 'data-name' => 'email_settings_accepted_subject', 'class' => 'send_on_radio' }
|
||||
= f.input :accepted_subject
|
||||
= f.input :accepted_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_accepted, data: { name: 'email_settings_accepted_subject' }, class: 'send_on_radio'
|
||||
Send an email when the proposal is accepted?
|
||||
.form-group
|
||||
= f.label :accepted_subject, 'Subject'
|
||||
= f.text_field :accepted_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :accepted_body, 'Body'
|
||||
= f.text_area :accepted_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_accepted_subject',
|
||||
'data-subject-text' => 'Your submission has been accepted',
|
||||
'data-body-input-id' => 'email_settings_accepted_body',
|
||||
'data-body-text' => "Dear {name}\n\nWe are very pleased to inform you that your submission {eventtitle} has been accepted for the conference {conference}.\n\nThe public page of your submission can be found at:\n{proposalslink}\nIf you haven´t already registered for {conference}, please do as soon as possible:\n{registrationlink}\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'accepted_help' } Show Help
|
||||
= render partial: 'help', locals: { id: 'accepted_help', show_event_variables: true }
|
||||
= f.input :send_on_rejected, label: 'Send an email when the proposal is rejected?', input_html: { 'data-name' => 'email_settings_rejected_subject', 'class' => 'send_on_radio' }
|
||||
= f.input :rejected_subject
|
||||
= f.input :rejected_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_rejected, data: { name: 'email_settings_rejected_subject'}, class: 'send_on_radio'
|
||||
Send an email when the proposal is rejected?
|
||||
.form-group
|
||||
= f.label :rejected_subject, 'Subject'
|
||||
= f.text_field :rejected_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :rejected_body, 'Body'
|
||||
= f.text_area :rejected_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_rejected_subject',
|
||||
'data-subject-text' => 'Your submission has been rejected',
|
||||
'data-body-input-id' => 'email_settings_rejected_body',
|
||||
'data-body-text' => "Dear {name},\n\nThank you for your submission {eventtitle} for the conference {conference}.\nAfter careful consideration we are sorry to inform you that your submission has been rejected.\n\n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'rejected_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'rejected_help', show_event_variables: true}
|
||||
= f.input :send_on_confirmed_without_registration, label: "Send an email when a user has a confirmed proposal, but isn't yet registered?", input_html: {'data-name' => 'email_settings_confirmed_without_registration_subject', 'class' => 'send_on_radio'}
|
||||
= f.input :confirmed_without_registration_subject
|
||||
= f.input :confirmed_without_registration_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_confirmed_without_registration, data: {name: 'email_settings_confirmed_without_registration_subject'}, class: 'send_on_radio'
|
||||
Send an email when a user has a confirmed proposal, but isn't yet registered?
|
||||
.form-group
|
||||
= f.label :confirmed_without_registration_subject, 'Subject'
|
||||
= f.text_field :confirmed_without_registration_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :confirmed_without_registration_body, 'Body'
|
||||
= f.text_area :confirmed_without_registration_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_confirmed_without_registration_subject',
|
||||
'data-subject-text' => 'Your proposal has been confirmed without registration',
|
||||
'data-body-input-id' => 'email_settings_confirmed_without_registration_body',
|
||||
|
|
@ -63,27 +97,48 @@
|
|||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'confirmed_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'confirmed_help', show_event_variables: true}
|
||||
#notifications.tab-pane{ role: 'tabpanel' }
|
||||
= f.input :send_on_conference_dates_updated, label: 'This is to notify all participants that the conference dates has been changed.', input_html: { 'data-name' => 'email_settings_conference_dates_updated_subject', 'class' => 'send_on_radio' }
|
||||
= f.input :conference_dates_updated_subject
|
||||
= f.input :conference_dates_updated_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_conference_dates_updated, data: { name: 'email_settings_conference_dates_updated_subject'}, class: 'send_on_radio'
|
||||
Send an email when to all participants if the conference dates are changed?
|
||||
.form-group
|
||||
= f.label :conference_dates_updated_subject, 'Subject'
|
||||
= f.text_field :conference_dates_updated_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :conference_dates_updated_body, 'Body'
|
||||
= f.text_area :conference_dates_updated_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_conference_dates_updated_subject',
|
||||
'data-subject-text' => 'The dates of the conference have changed',
|
||||
'data-body-input-id' => 'email_settings_conference_dates_updated_body',
|
||||
'data-body-text' => "Dear {name},\n\nThe date of {conference} has changed.\n New Dates : {conference_start_date} - {conference_end_date}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'updated_dates_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_dates_help', show_event_variables: false}
|
||||
= f.input :send_on_conference_registration_dates_updated, label: 'This is to notify all participants that the conference registration dates has been changed.', input_html: {'data-name' => 'email_settings_conference_registration_dates_updated_subject', 'class' => 'send_on_radio'}
|
||||
= f.input :conference_registration_dates_updated_subject
|
||||
= f.input :conference_registration_dates_updated_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_conference_registration_dates_updated, data: { name: 'email_settings_conference_registration_dates_updated_subject' }, class: 'send_on_radio'
|
||||
Send an email when to all participants if the conference registration dates changed?
|
||||
.form-group
|
||||
= f.label :conference_registration_dates_updated_subject, 'Subject'
|
||||
= f.text_field :conference_registration_dates_updated_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :conference_registration_dates_updated_body, 'Body'
|
||||
= f.text_area :conference_registration_dates_updated_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_conference_registration_dates_updated_subject',
|
||||
'data-subject-text' => 'The registration dates have changed',
|
||||
'data-body-input-id' => 'email_settings_conference_registration_dates_updated_body',
|
||||
'data-body-text' => "Dear {name},\n\nThe registration date of {conference} has changed.\n New Dates : {registration_start_date} - {registration_end_date}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'updated_registrations_dates_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_registrations_dates_help', show_event_variables: false}
|
||||
= f.input :send_on_venue_updated, label: 'Send an email on updating the Venue.', input_html: { 'data-name' => 'email_settings_venue_updated_subject', 'class' => 'send_on_radio' }
|
||||
= f.input :venue_updated_subject
|
||||
= f.input :venue_updated_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_venue_updated, data: { name: 'email_settings_venue_updated_subject'}, class: 'send_on_radio'
|
||||
Send an email on updating the Venue?
|
||||
.form-group
|
||||
= f.label :venue_updated_subject, 'Subject'
|
||||
= f.text_field :venue_updated_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :venue_updated_body, 'Body'
|
||||
= f.text_area :venue_updated_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_venue_updated_subject',
|
||||
'data-subject-text' => 'The venue has changed',
|
||||
'data-body-input-id' => 'email_settings_venue_updated_body',
|
||||
|
|
@ -91,18 +146,32 @@
|
|||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'updated_venue_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_venue_help', show_event_variables: false}
|
||||
#cfp.tab-pane{ role: 'tabpanel' }
|
||||
= f.input :send_on_program_schedule_public, hint: 'This will notify all participants when the dates are updated or when the schedule is made public'
|
||||
= f.input :program_schedule_public_subject, hint: 'This subject will used whenever dates are updated or when the schedule is made public'
|
||||
= f.input :program_schedule_public_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%labl
|
||||
= f.check_box :send_on_program_schedule_public
|
||||
Send an email when to all participants if the schedule is made public?
|
||||
.form-group
|
||||
= f.label :program_schedule_public_subject, 'Subject'
|
||||
= f.text_field :program_schedule_public_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :program_schedule_public_body, 'Body'
|
||||
= f.text_area :program_schedule_public_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_program_schedule_public_subject',
|
||||
'data-subject-text' => 'The schedule has been released',
|
||||
'data-body-input-id' => 'email_settings_program_schedule_public_body',
|
||||
'data-body-text' => "Dear {name},\n\nThe schedule for {conference} has been announced.\nLink to Schedule {schedule_link}\n\nBest wishes\n{conference} Team" } Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'updated_cfp_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_cfp_help', show_event_variables: false}
|
||||
= f.input :send_on_cfp_dates_updated, hint: 'This will notify all participants when the dates are updated or when the schedule is made public'
|
||||
= f.input :cfp_dates_updated_subject, hint: 'This subject will used whenever dates are updated or when the schedule is made public'
|
||||
= f.input :cfp_dates_updated_body, input_html: { rows: 10, cols: 20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_cfp_dates_updated
|
||||
Send an email when to all participants if call for paper dates are updated?
|
||||
.form-group
|
||||
= f.label :cfp_dates_updated_subject, 'Subject'
|
||||
= f.text_field :cfp_dates_updated_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :cfp_dates_updated_body, 'Body'
|
||||
= f.text_area :cfp_dates_updated_body, rows: 10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_cfp_dates_updated_subject',
|
||||
'data-subject-text' => 'The Call for Papers dates have changed',
|
||||
'data-body-input-id' => 'email_settings_cfp_dates_updated_body',
|
||||
|
|
@ -110,18 +179,30 @@
|
|||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'updated_cfp_help' } Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_cfp_help', show_event_variables: false}
|
||||
#booth.tab-pane{ role: 'tabpanel' }
|
||||
= f.input :send_on_booths_acceptance
|
||||
= f.input :booths_acceptance_subject
|
||||
= f.input :booths_acceptance_body, input_html: { rows:10, cols: 20 }
|
||||
.check_box
|
||||
%label
|
||||
= f.check_box :send_on_booths_acceptance
|
||||
.form-group
|
||||
= f.label :booths_acceptance_subject, 'Subject'
|
||||
= f.text_field :booths_acceptance_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :booths_acceptance_body, 'Body'
|
||||
= f.text_area :booths_acceptance_body, rows:10, cols: 20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_booths_acceptance_subject',
|
||||
'data-subject-text' => "Your #{t'booth'} has been accepted!",
|
||||
'data-body-input-id' => 'email_settings_booths_acceptance_body',
|
||||
'data-body-text' => "Dear {name},\n\nWe are pleased to inform you that your #{t'booth'} request {booth_title} has been accepted for the conference {conference}.\nPlease click the confirm button to let us know you can make it as soon as possible!\n\nFeel free to contact us with any questions or concerns.\n\nWe are looking forward to seeing you there.\n\nBest wishes\n\n{conference} Team"} Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{ 'data-name' => 'booth_acceptance_help' } Show help
|
||||
= render partial: 'help', locals: {id: 'booth_acceptance_help', show_event_variables: false}
|
||||
= f.input :send_on_booths_rejection
|
||||
= f.input :booths_rejection_subject
|
||||
= f.input :booths_rejection_body, input_html: { rows:10, cols:20 }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :send_on_booths_rejection
|
||||
.form-group
|
||||
= f.label :booths_rejection_subject, 'Subject'
|
||||
= f.text_field :booths_rejection_subject, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :booths_rejection_body, 'Body'
|
||||
= f.text_area :booths_rejection_body, rows:10, cols:20, class: 'form-control'
|
||||
%a.btn.btn-link.control_label.load_template{ 'data-subject-input-id' => 'email_settings_booths_rejection_subject',
|
||||
'data-subject-text' => "Your #{t'booth'} request has been rejected",
|
||||
'data-body-input-id' => 'email_settings_booths_rejection_body',
|
||||
|
|
@ -131,4 +212,4 @@
|
|||
|
||||
.row
|
||||
.col-md-12
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
= f.submit nil, { class: 'btn btn-primary' }
|
||||
|
|
|
|||
|
|
@ -1,19 +1,29 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
- if @event_type.new_record?
|
||||
New
|
||||
Event Type
|
||||
= @event_type.title
|
||||
.row
|
||||
.col-md-12
|
||||
= semantic_form_for(@event_type, url: (@event_type.new_record? ? admin_conference_program_event_types_path : admin_conference_program_event_type_path(@conference.short_title, @event_type))) do |f|
|
||||
= f.input :title, input_html: { autofocus: true }
|
||||
= f.input :length, input_html: {size: 3, type: 'number', step: @event_type.program.schedule_interval, min: @event_type.program.schedule_interval}
|
||||
= f.input :description
|
||||
= f.input :minimum_abstract_length, input_html: {size: 3}
|
||||
= f.input :maximum_abstract_length, input_html: {size: 3}
|
||||
= f.input :color, input_html: { size: 6, type: 'color' }
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
= form_for(@event_type, url: (@event_type.new_record? ? admin_conference_program_event_types_path : admin_conference_program_event_type_path(@conference.short_title, @event_type))) do |f|
|
||||
.form-group
|
||||
= f.label :title
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :title, autofocus: true, required: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :length
|
||||
= f.number_field :length, size: 3, step: @event_type.program.schedule_interval, min: @event_type.program.schedule_interval, class: 'form-control'
|
||||
%span.help-block
|
||||
In steps of
|
||||
= @event_type.program.schedule_interval
|
||||
and minimum
|
||||
= @event_type.program.schedule_interval
|
||||
.form-group
|
||||
= f.label :description
|
||||
= f.text_field :description, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :minimum_abstract_length
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.number_field :minimum_abstract_length, size: 3, required: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :maximum_abstract_length
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.number_field :maximum_abstract_length, size: 3, required: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :color
|
||||
= f.color_field :color, class: 'form-control'
|
||||
%p.text-right
|
||||
= f.submit nil, class: 'btn btn-primary'
|
||||
|
|
|
|||
9
app/views/admin/event_types/edit.html.haml
Normal file
9
app/views/admin/event_types/edit.html.haml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit Event Type
|
||||
= @event_type.title
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
8
app/views/admin/event_types/new.html.haml
Normal file
8
app/views/admin/event_types/new.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Create Event Type
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
|
|
@ -6,8 +6,9 @@
|
|||
%div
|
||||
%a.pull-right.comment-reply-link{ href: '#' } Reply
|
||||
.comment-reply
|
||||
= semantic_form_for :comment, url: comment_admin_conference_program_event_path(@conference.short_title, comment.commentable_id), method: :post do |f|
|
||||
= f.input :body
|
||||
= form_for :comment, url: comment_admin_conference_program_event_path(@conference.short_title, comment.commentable_id), method: :post do |f|
|
||||
.form-group
|
||||
= f.text_area :body, class: 'form-control'
|
||||
%input{ name: 'parent', type: 'hidden', value: comment.id }
|
||||
%input{ name: 'authenticity_token', type: 'hidden', value: '#{form_authenticity_token}' }
|
||||
%button.btn.btn-primary.pull-right{ name: 'button', type: 'submit' } Add Reply
|
||||
|
|
|
|||
|
|
@ -122,17 +122,19 @@
|
|||
|
||||
- cache [@conference, @event, @comments] do
|
||||
.row
|
||||
= link_to "Comments (#{@comment_count})", '#', id: 'event-comment-link'
|
||||
#comments-div
|
||||
.col-md-12
|
||||
%h4
|
||||
Comments
|
||||
= "(#{@comment_count})"
|
||||
= link_to('#comment-collapse', class: 'btn btn-link', role: 'button', data: {toggle: "collapse" }) do
|
||||
Show
|
||||
%hr
|
||||
%ul.media
|
||||
%div
|
||||
.row-fluid
|
||||
= semantic_form_for :comment, url: comment_admin_conference_program_event_path(@conference.short_title, @event.id), method: :post do |f|
|
||||
= f.input :body
|
||||
= f.submit 'Add Comment', class: 'btn btn-primary pull-right'
|
||||
%br
|
||||
%br
|
||||
- @comments.each do |comment|
|
||||
%div
|
||||
= render partial: 'nested_comments', locals: { comment: comment, padding: 0}
|
||||
.collapse#comment-collapse
|
||||
- @comments.each do |comment|
|
||||
= render partial: 'nested_comments', locals: { comment: comment, padding: 0}
|
||||
= form_for(:comment, url: comment_admin_conference_program_event_path(@conference.short_title, @event.id), method: :post) do |f|
|
||||
.form-group
|
||||
= f.text_area :body, class: 'form-control'
|
||||
.text-right
|
||||
= f.submit nil, class: 'btn btn-primary'
|
||||
|
||||
|
|
|
|||
|
|
@ -28,21 +28,21 @@
|
|||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
%h1 Add commercials to events
|
||||
.text-muted
|
||||
Upload your file with data in the following format:
|
||||
%b Event_ID:Commercial_Link
|
||||
, eg.
|
||||
%br
|
||||
%b 11:https://youtube.com/myvideo
|
||||
|
||||
%h1
|
||||
Add commercials to events
|
||||
.modal-body
|
||||
= semantic_form_for '',
|
||||
url: mass_upload_commercials_admin_conference_program_path(@conference.short_title),
|
||||
method: :post do |f|
|
||||
= f.input 'file', as: :file
|
||||
= form_for('', url: mass_upload_commercials_admin_conference_program_path(@conference.short_title), method: :post) do |f|
|
||||
.form-group
|
||||
= f.file_field 'file', as: :file
|
||||
%span.help-block
|
||||
Upload your file with data in the following format:
|
||||
%b Event_ID:Commercial_Link
|
||||
for instance:
|
||||
%pre
|
||||
11:https://youtube.com/myvideo
|
||||
23:https://vimeo.com/myvideo
|
||||
.modal-footer
|
||||
= f.submit 'Add', class: 'btn btn-primary'
|
||||
= f.submit nil, class: 'btn btn-primary'
|
||||
.row
|
||||
.col-md-4
|
||||
= render 'donut_chart', title: 'Events state',
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
- if @lodging.new_record?
|
||||
New
|
||||
Lodging
|
||||
= @lodging.name
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@lodging, url: (@lodging.new_record? ? admin_conference_lodgings_path : admin_conference_lodging_path(@conference.short_title, @lodging))) do |f|
|
||||
= f.input :name, input_html: { autofocus: true}
|
||||
= f.input :website_link, input_html: { type: :url }
|
||||
= f.input :description, input_html: { rows: 5, cols: 20, data: { provide: 'markdown' } }, hint: markdown_hint
|
||||
- if @lodging.picture?
|
||||
= image_tag @lodging.picture.thumb.url
|
||||
= f.input :picture
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
= form_for(@lodging, url: (@lodging.new_record? ? admin_conference_lodgings_path : admin_conference_lodging_path(@conference.short_title, @lodging))) do |f|
|
||||
.form-group
|
||||
= f.label :name
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :name, require: true, autofocus: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :website_link
|
||||
= f.url_field :website_link, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :description
|
||||
= f.text_area :description, rows: 5, cols: 20, data: { provide: 'markdown' }, class: 'form-control'
|
||||
%span.help-block
|
||||
= markdown_hint
|
||||
.form-group
|
||||
- if @lodging.picture?
|
||||
= image_tag @lodging.picture.thumb.url
|
||||
= f.label :picture
|
||||
= f.file_field :picture, class: 'form-control'
|
||||
%p.text-right
|
||||
= f.submit nil, { class: 'btn btn-primary' }
|
||||
|
|
|
|||
9
app/views/admin/lodgings/edit.html.haml
Normal file
9
app/views/admin/lodgings/edit.html.haml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit Lodging
|
||||
= @lodging.name
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
8
app/views/admin/lodgings/new.html.haml
Normal file
8
app/views/admin/lodgings/new.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Create Lodging
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
|
|
@ -1,20 +1,22 @@
|
|||
= semantic_form_for(@organization, url: (@organization.new_record? ? admin_organizations_path : admin_organization_path(@organization))) do |f|
|
||||
= f.inputs name: 'Organization details' do
|
||||
= f.input :name, as: :string, required: true
|
||||
= f.input :description, as: :text,
|
||||
input_html: { rows: 10, data: { provide: 'markdown' } },
|
||||
hint: markdown_hint,
|
||||
placeholder: 'Decribe about your organization...'
|
||||
= f.input :code_of_conduct, as: :text,
|
||||
input_html: { rows: 10, data: { provide: 'markdown' } },
|
||||
hint: markdown_hint,
|
||||
placeholder: 'Rules governing behavior and dispute resolution...'
|
||||
= form_for(@organization, url: (@organization.new_record? ? admin_organizations_path : admin_organization_path(@organization))) do |f|
|
||||
.form-group
|
||||
= f.label :name, "Name"
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :name, required: true, class: 'form-control', placeholder: 'Name'
|
||||
.form-group
|
||||
= f.text_area :description, rows: 10, data: { provide: 'markdown' }, class: 'form-control', placeholder: 'Decribe about your organization...'
|
||||
%span.help-block
|
||||
= markdown_hint
|
||||
.form-group
|
||||
= f.text_area :code_of_conduct, rows: 10, data: { provide: 'markdown' }, class: 'form-control', placeholder: 'Rules governing behavior and dispute resolution...'
|
||||
%span.help-block
|
||||
= markdown_hint
|
||||
.form-group
|
||||
= image_tag f.object.picture.thumb.url if f.object.picture?
|
||||
- if @organization.picture?
|
||||
= image_tag(@organization.picture.thumb.url, width: '20%')
|
||||
= f.input :picture
|
||||
= f.file_field :picture
|
||||
%p.text-right
|
||||
- if @organization.new_record?
|
||||
= f.submit 'Create Organization', class: 'btn btn-success'
|
||||
- else
|
||||
= f.submit 'Update Organization', class: 'btn btn-success'
|
||||
%button{type: 'submit', class: 'btn btn-success'}
|
||||
- if @organization.new_record?
|
||||
Create Organization
|
||||
- else
|
||||
Update Organization
|
||||
|
|
|
|||
9
app/views/admin/organizations/edit.html.haml
Normal file
9
app/views/admin/organizations/edit.html.haml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit Organization
|
||||
= @organization.name
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
8
app/views/admin/organizations/new.html.haml
Normal file
8
app/views/admin/organizations/new.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Create Organization
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
|
|
@ -8,15 +8,11 @@
|
|||
|
||||
.row.col-md-3
|
||||
- if ( can? :assign_org_admins, @organization )
|
||||
= semantic_form_for :user,
|
||||
url: assign_org_admins_admin_organization_path(@organization,
|
||||
@role.name), method: :post do |u|
|
||||
|
||||
= u.label 'Add user by email: '
|
||||
.input-group
|
||||
= u.input :email, label: false, placeholder: "User's email"
|
||||
.input-group-btn
|
||||
= u.submit 'Add', id: 'user-add', class: 'btn btn-primary'
|
||||
= form_for :user, url: assign_org_admins_admin_organization_path(@organization, @role.name), method: :post do |f|
|
||||
.form-group
|
||||
= f.label :email, 'Add user by email: '
|
||||
= f.text_field :email, placeholder: "User's email", class: 'form-control', required: true
|
||||
= f.submit 'Add', id: 'user-add', class: 'btn btn-primary'
|
||||
|
||||
.row
|
||||
.col-md-12
|
||||
|
|
|
|||
|
|
@ -1,17 +1,51 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1 Program
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@program, url: admin_conference_program_path(@conference.short_title), html: {multipart: true}) do |f|
|
||||
= f.input :schedule_public, label: 'Show Schedule on the home and splash page'
|
||||
= f.input :schedule_fluid, label: 'Allow submitters to change their event after it is scheduled'
|
||||
= f.input :rating, hint: 'Enter the number of different rating levels you want to have for voting on proposals. Enter 0 if you do not want to vote on proposals.'
|
||||
= f.input :languages, hint: "Enter the languages allowed for events as values of #{link_to('ISO 639-1', 'http://www.loc.gov/standards/iso639-2/php/code_list.php', target: "_blank")} language codes separated with commas. The first language would be the default language. Leave it blank if you do not want to specify languages.".html_safe
|
||||
= f.input :schedule_interval, input_html: { autofocus: true }, hint: "It is the minimal time interval of your schedule. The value should be 5, 6, 10, 12, 15, 20, 30 or 60. Warning! Some events could be unscheduled when changing this value."
|
||||
= f.input :blind_voting, hint: 'Enable this feature if you do not want to show voting results and voters prior to user submitting a vote. For the feature to work you need to set the voting dates below as well'
|
||||
= f.input :voting_start_date, as: :string, input_html: { id: 'datetimepicker-voting_start_date', value: (f.object.voting_start_date.to_formatted_s(:db_without_seconds) unless f.object.voting_start_date.nil?) }
|
||||
= f.input :voting_end_date, as: :string, input_html: { id: 'datetimepicker-voting_end_date', value: (f.object.voting_end_date.to_formatted_s(:db_without_seconds) unless f.object.voting_end_date.nil?) }
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, button_html: {class: 'btn btn-primary'}
|
||||
= form_for(@program, url: admin_conference_program_path(@conference.short_title), html: {multipart: true}) do |f|
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :schedule_public
|
||||
Show Schedule on the home and splash page
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :schedule_fluid
|
||||
Allow submitters to change their event after it is scheduled
|
||||
%h4
|
||||
Voting
|
||||
%hr
|
||||
.form-group
|
||||
= f.label :rating
|
||||
= f.number_field :rating, class: 'form-control'
|
||||
%span.help-block
|
||||
Enter the number of different rating levels you want to have for voting on proposals.
|
||||
Enter 0 if you do not want to vote on proposals.
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :blind_voting
|
||||
Enable blind voting
|
||||
%span.help-block
|
||||
If you do not want to show other peoples votes prior to submitting a vote.
|
||||
For the feature to work you need to set the voting dates below as well
|
||||
.form-group
|
||||
= f.label :voting_start_date
|
||||
= f.text_field :voting_start_date, id: 'datetimepicker-voting_start_date', value: (f.object.voting_start_date.to_formatted_s(:db_without_seconds) unless f.object.voting_start_date.nil?), class: 'form-control'
|
||||
= f.label :voting_end_date
|
||||
= f.text_field :voting_end_date, id: 'datetimepicker-voting_end_date', value: (f.object.voting_end_date.to_formatted_s(:db_without_seconds) unless f.object.voting_end_date.nil?), class: 'form-control'
|
||||
%h4
|
||||
Languages
|
||||
%hr
|
||||
%p
|
||||
Current Languages:
|
||||
- if f.object.languages.present?
|
||||
= f.object.languages_list.to_sentence
|
||||
- else
|
||||
Any Language
|
||||
.form-group
|
||||
= f.label :languages
|
||||
= f.select :languages, I18nData.languages.invert, { include_blank: 'Any Language', include_hidden: false }, { multiple: true, class: 'form-control' }
|
||||
%span.help-block
|
||||
The languages allowed for events.
|
||||
.form-group
|
||||
= f.number_field :schedule_interval, autofocus: true, class: 'form-control'
|
||||
%span.help-block
|
||||
It is the minimal time interval of your schedule. The value should be 5, 6, 10, 12, 15, 20, 30 or 60.
|
||||
Warning! Some events could be unscheduled when changing this value.
|
||||
%p.text-right
|
||||
= f.submit nil, class: 'btn btn-primary'
|
||||
|
|
|
|||
8
app/views/admin/programs/edit.html.haml
Normal file
8
app/views/admin/programs/edit.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit Program
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
8
app/views/admin/programs/new.html.haml
Normal file
8
app/views/admin/programs/new.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Create Program
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
|
|
@ -34,7 +34,10 @@
|
|||
%dt
|
||||
Languages:
|
||||
%dd
|
||||
= @program.languages
|
||||
- if @program.languages.present?
|
||||
= @program.languages_list.to_sentence
|
||||
- else
|
||||
Any Language
|
||||
%dt
|
||||
Public Schedule
|
||||
%dd#schedule_public
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
.nested-fields
|
||||
= f.inputs do
|
||||
= f.input :title
|
||||
= remove_association_link :answer, f
|
||||
= f.text_field :title
|
||||
= remove_association_link :answer, f
|
||||
|
|
|
|||
|
|
@ -1,10 +1,17 @@
|
|||
.row
|
||||
.col-md-6
|
||||
%legend Question
|
||||
= f.input :title, label: 'Your Question'
|
||||
= f.input :question_type
|
||||
= f.input :global, label: 'Make Global',
|
||||
hint: '(Global questions are available for selection to all conferences)'
|
||||
.form-group
|
||||
= f.label :title, 'Your Question'
|
||||
= f.text_field :title, class: 'form-control'
|
||||
.form-group
|
||||
= f.select :question_type_id, QuestionType.all.pluck(:title, :id), {}, { class: 'form-control' }
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :global
|
||||
Make Global
|
||||
%span.help-block
|
||||
Global questions are available for selection to all conferences
|
||||
.col-md-6.hidden{id: 'answers_col'}
|
||||
= dynamic_association :answers, 'Answers', f,
|
||||
hint: 'Insert your answers in the order you want them to appear'
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
Edit Question
|
||||
%h3
|
||||
"#{@question.title}"
|
||||
= semantic_form_for(@question, url: admin_conference_question_path(@conference.short_title, @question.id)) do |f|
|
||||
|
||||
= form_for(@question, url: admin_conference_question_path(@conference.short_title, @question.id)) do |f|
|
||||
= render partial: 'form', locals: {f: f}
|
||||
|
||||
= f.submit 'Save', class: 'btn btn-primary', confirm: 'Are you sure you want to make these changes?'
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
.row
|
||||
.col-md-12
|
||||
- if @questions.count > 0
|
||||
= semantic_form_for(@conference, url: update_conference_admin_conference_questions_path(@conference.short_title)) do |f|
|
||||
= form_for(@conference, url: update_conference_admin_conference_questions_path(@conference.short_title)) do |f|
|
||||
.questions{id: 'myquestions'}
|
||||
= render partial: 'questions'
|
||||
- if can? :update, Question.new(conference_id: @conference.id)
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
%h3{id: 'new-question-header'}
|
||||
Add new question
|
||||
.modal-body
|
||||
= semantic_form_for(@new_question, url: admin_conference_questions_path(@conference.short_title), method: :post) do |f|
|
||||
= form_for(@new_question, url: admin_conference_questions_path(@conference.short_title), method: :post) do |f|
|
||||
= render partial: 'form', locals: {f: f}
|
||||
%button{class: 'btn btn-primary'}
|
||||
Save
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1 Registration Period
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@registration_period, url: admin_conference_registration_period_path(@conference.short_title)) do |f|
|
||||
= f.input :start_date, as: :string, input_html: { id: 'registration-period-start-datepicker', start_date: @conference.start_date, end_date: @conference.end_date }
|
||||
= f.input :end_date, as: :string, input_html: { id: 'registration-period-end-datepicker' }
|
||||
%p.text-right
|
||||
= f.submit 'Save Registration Period', class: 'btn btn-primary'
|
||||
= form_for(@registration_period, url: admin_conference_registration_period_path(@conference.short_title)) do |f|
|
||||
.form-group
|
||||
= f.label :start_date
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :start_date, required: true, 'data-end-conference': @conference.end_date.to_s, id: 'registration-period-start-datepicker', class: 'form-control'
|
||||
.form-group
|
||||
= f.label :end_date
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :end_date, required: true, id: 'registration-period-end-datepicker', class: 'form-control'
|
||||
%p.text-right
|
||||
= f.submit 'Save Registration Period', class: 'btn btn-primary'
|
||||
|
|
|
|||
8
app/views/admin/registration_periods/edit.html.haml
Normal file
8
app/views/admin/registration_periods/edit.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit Registration Period
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
8
app/views/admin/registration_periods/new.html.haml
Normal file
8
app/views/admin/registration_periods/new.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
New Registration Period
|
||||
.row
|
||||
.col-md-8
|
||||
= render partial: 'form'
|
||||
|
|
@ -7,12 +7,20 @@
|
|||
= link_to 'Edit User', edit_admin_user_path(@user), class: 'btn btn-primary pull-right' if can? :edit, @user
|
||||
.row
|
||||
.col-md-6
|
||||
= semantic_form_for(@registration, url: admin_conference_registration_path(@conference.short_title, @registration)) do |f|
|
||||
= f.inputs 'Personal Information' do
|
||||
= semantic_fields_for :user do |u|
|
||||
= u.input :name, as: :string
|
||||
= u.input :nickname, as: :string
|
||||
= u.input :affiliation, placeholder: 'Company/User Group/nothing', as: :string
|
||||
= f.inputs 'Registration Information' do
|
||||
= form_for(@registration, url: admin_conference_registration_path(@conference.short_title, @registration)) do |f|
|
||||
%h4
|
||||
Personal Information
|
||||
%hr
|
||||
= fields_for :user do |u|
|
||||
.form-group
|
||||
= u.label :name
|
||||
= u.text_field :name, class: 'form-control'
|
||||
= u.label :nickname
|
||||
= u.text_field :nickname, class: 'form-control'
|
||||
= u.label :affiliation
|
||||
= u.text_field :affiliation, placeholder: 'Company/User Group etc.', class: 'form-control'
|
||||
%h4
|
||||
Registration Information
|
||||
%hr
|
||||
= render partial: 'conference_registrations/registration_info', locals: { f: f }
|
||||
= f.action :submit, button_html: { class: 'btn btn-primary' }
|
||||
= f.submit nil, class: 'btn btn-primary'
|
||||
|
|
|
|||
|
|
@ -1,16 +1,20 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
- if @resource.new_record?
|
||||
New
|
||||
Resource
|
||||
.row
|
||||
.col-md-8
|
||||
= semantic_form_for(@resource, :url => (@resource.new_record? ? admin_conference_resources_path : admin_conference_resource_path(@conference.short_title, @resource))) do |f|
|
||||
= f.input :name, input_html: { autofocus: true }
|
||||
= f.input :description, input_html: { rows: 5, data: { provide: 'markdown' } }
|
||||
= f.input :used
|
||||
= f.input :quantity
|
||||
%p.text-right
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
= form_for(@resource, :url => (@resource.new_record? ? admin_conference_resources_path : admin_conference_resource_path(@conference.short_title, @resource))) do |f|
|
||||
.form-group
|
||||
= f.label :name
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.text_field :name, required: true, autofocus: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :description
|
||||
= f.text_area :description, rows: 5, data: { provide: 'markdown' }, class: 'form-control'
|
||||
%span.help-block
|
||||
= markdown_hint
|
||||
.form-group
|
||||
= f.label :used
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.number_field :used, required: true, class: 'form-control'
|
||||
.form-group
|
||||
= f.label :quantity
|
||||
%abbr{title: 'This field is required'} *
|
||||
= f.number_field :quantity, required: true, class: 'form-control'
|
||||
%p.text-right
|
||||
= f.submit nil, { class: 'btn btn-primary' }
|
||||
|
|
|
|||
9
app/views/admin/resources/edit.html.haml
Normal file
9
app/views/admin/resources/edit.html.haml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Edit Resource
|
||||
= @resource.name
|
||||
.row
|
||||
.col-md-8
|
||||
= render 'form'
|
||||
|
|
@ -1 +1,8 @@
|
|||
= render 'form'
|
||||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h1
|
||||
Create Resource
|
||||
.row
|
||||
.col-md-8
|
||||
= render 'form'
|
||||
|
|
|
|||
|
|
@ -1,15 +1,5 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h2
|
||||
Role
|
||||
= @role.name.titleize
|
||||
.text-muted
|
||||
= @role.description
|
||||
|
||||
= semantic_form_for @role, url: @url do |f|
|
||||
.row
|
||||
.col-md-5
|
||||
= f.input :description, input_html: { autofocus: true }
|
||||
|
||||
= f.action :submit, as: :button, button_html: { class: 'btn btn-primary' }
|
||||
= form_for @role, url: @url do |f|
|
||||
.form-group
|
||||
= f.label :description
|
||||
= f.text_field :description, autofocus: true, class: 'form-control'
|
||||
= f.submit nil, { class: 'btn btn-primary' }
|
||||
|
|
|
|||
11
app/views/admin/roles/edit.html.haml
Normal file
11
app/views/admin/roles/edit.html.haml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
.row
|
||||
.col-md-12
|
||||
.page-header
|
||||
%h2
|
||||
Role
|
||||
= @role.name.titleize
|
||||
.text-muted
|
||||
= @role.description
|
||||
.row
|
||||
.col-md-5
|
||||
= render partial: 'form'
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue