decidim-core 0.0.1.alpha2 → 0.0.1.alpha3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -6
  3. data/app/assets/config/decidim_core_manifest.js +1 -0
  4. data/app/assets/images/decidim/badge-ajuntament-footer.png +0 -0
  5. data/app/assets/images/decidim/badge-ajuntament-header.svg +60 -0
  6. data/app/assets/images/decidim/cc-badge.png +0 -0
  7. data/app/assets/images/decidim/hero-home.jpg +0 -0
  8. data/app/assets/images/decidim/icons.svg +1 -0
  9. data/app/assets/javascripts/decidim.js +12 -1
  10. data/app/assets/stylesheets/{decidim.css → decidim.scss} +2 -1
  11. data/app/assets/stylesheets/decidim/application.sass +7 -0
  12. data/app/assets/stylesheets/decidim/layouts/_home.scss +244 -0
  13. data/app/assets/stylesheets/decidim/layouts/_user.scss +24 -0
  14. data/app/assets/stylesheets/decidim/layouts/_view.scss +22 -0
  15. data/app/assets/stylesheets/decidim/modules/_address.scss +26 -0
  16. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +119 -0
  17. data/app/assets/stylesheets/decidim/modules/_buttons.scss +120 -0
  18. data/app/assets/stylesheets/decidim/modules/_callout.scss +25 -0
  19. data/app/assets/stylesheets/decidim/modules/_card-grid.scss +22 -0
  20. data/app/assets/stylesheets/decidim/modules/_cards.scss +520 -0
  21. data/app/assets/stylesheets/decidim/modules/_comments.scss +119 -0
  22. data/app/assets/stylesheets/decidim/modules/_defintion-data.scss +54 -0
  23. data/app/assets/stylesheets/decidim/modules/_extra.scss +43 -0
  24. data/app/assets/stylesheets/decidim/modules/_filters.scss +96 -0
  25. data/app/assets/stylesheets/decidim/modules/_flag.scss +9 -0
  26. data/app/assets/stylesheets/decidim/modules/_footer.scss +90 -0
  27. data/app/assets/stylesheets/decidim/modules/_forms.scss +30 -0
  28. data/app/assets/stylesheets/decidim/modules/_help.scss +14 -0
  29. data/app/assets/stylesheets/decidim/modules/_icons.scss +32 -0
  30. data/app/assets/stylesheets/decidim/modules/_layout.scss +58 -0
  31. data/app/assets/stylesheets/decidim/modules/_list-docs.scss +30 -0
  32. data/app/assets/stylesheets/decidim/modules/_main-container.scss +70 -0
  33. data/app/assets/stylesheets/decidim/modules/_map.scss +72 -0
  34. data/app/assets/stylesheets/decidim/modules/_navbar.scss +258 -0
  35. data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +30 -0
  36. data/app/assets/stylesheets/decidim/modules/_order-by.scss +66 -0
  37. data/app/assets/stylesheets/decidim/modules/_owl-carousel.scss +72 -0
  38. data/app/assets/stylesheets/decidim/modules/_phase-nav.scss +177 -0
  39. data/app/assets/stylesheets/decidim/modules/_popularity.scss +74 -0
  40. data/app/assets/stylesheets/decidim/modules/_process-header.scss +125 -0
  41. data/app/assets/stylesheets/decidim/modules/_process-info.scss +44 -0
  42. data/app/assets/stylesheets/decidim/modules/_process-nav.scss +99 -0
  43. data/app/assets/stylesheets/decidim/modules/_reference.scss +6 -0
  44. data/app/assets/stylesheets/decidim/modules/_reveal.scss +20 -0
  45. data/app/assets/stylesheets/decidim/modules/_share.scss +28 -0
  46. data/app/assets/stylesheets/decidim/modules/_signup.scss +39 -0
  47. data/app/assets/stylesheets/decidim/modules/_static-pages.scss +46 -0
  48. data/app/assets/stylesheets/decidim/modules/_status-labels.scss +14 -0
  49. data/app/assets/stylesheets/decidim/modules/_tags.scss +29 -0
  50. data/app/assets/stylesheets/decidim/modules/_timeline.scss +189 -0
  51. data/app/assets/stylesheets/decidim/modules/_title-action.scss +28 -0
  52. data/app/assets/stylesheets/decidim/modules/_typography.scss +116 -0
  53. data/app/assets/stylesheets/decidim/modules/_user-form.scss +14 -0
  54. data/app/assets/stylesheets/decidim/modules/_video.scss +18 -0
  55. data/app/assets/stylesheets/decidim/utils/_fontface.scss +1 -0
  56. data/app/assets/stylesheets/decidim/utils/_helpers.sass +21 -0
  57. data/app/assets/stylesheets/decidim/utils/_keyframes.sass +13 -0
  58. data/app/assets/stylesheets/decidim/utils/_mixins.sass +33 -0
  59. data/app/assets/stylesheets/decidim/utils/_settings.scss +570 -0
  60. data/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +8 -0
  61. data/app/assets/stylesheets/decidim/utils/_variables.scss +25 -0
  62. data/app/controllers/concerns/decidim/needs_organization.rb +31 -0
  63. data/app/controllers/decidim/application_controller.rb +1 -0
  64. data/app/controllers/decidim/devise/confirmations_controller.rb +10 -0
  65. data/app/controllers/decidim/devise/invitations_controller.rb +20 -0
  66. data/app/controllers/decidim/devise/passwords_controller.rb +10 -0
  67. data/app/controllers/decidim/devise/registrations_controller.rb +19 -0
  68. data/app/controllers/decidim/devise/sessions_controller.rb +10 -0
  69. data/app/helpers/decidim/application_helper.rb +3 -0
  70. data/app/helpers/decidim/layout_helper.rb +27 -0
  71. data/app/helpers/decidim/translations_helper.rb +16 -0
  72. data/app/mailers/decidim/decidim_devise_mailer.rb +11 -0
  73. data/app/middleware/decidim/current_organization.rb +28 -0
  74. data/app/models/decidim/organization.rb +9 -0
  75. data/app/models/decidim/participatory_process.rb +14 -0
  76. data/app/models/decidim/user.rb +28 -4
  77. data/app/views/decidim/devise/confirmations/new.html.erb +15 -0
  78. data/app/views/decidim/devise/invitations/edit.html.erb +14 -0
  79. data/app/views/decidim/devise/passwords/edit.html.erb +20 -0
  80. data/app/views/decidim/devise/passwords/new.html.erb +15 -0
  81. data/app/views/decidim/devise/registrations/edit.html.erb +35 -0
  82. data/app/views/decidim/devise/registrations/new.html.erb +23 -0
  83. data/app/views/decidim/devise/sessions/new.html.erb +23 -0
  84. data/app/views/decidim/devise/shared/_links.html.erb +25 -0
  85. data/app/views/decidim/home/show.html.erb +16 -4
  86. data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -0
  87. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +10 -0
  88. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +11 -0
  89. data/app/views/devise/mailer/password_change.html.erb +3 -0
  90. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  91. data/app/views/layouts/decidim/_footer.html.erb +28 -2
  92. data/app/views/layouts/decidim/_header.html.erb +59 -2
  93. data/config/i18n-tasks.yml +120 -0
  94. data/config/initializers/devise.rb +58 -8
  95. data/config/locales/en.yml +35 -0
  96. data/config/routes.rb +12 -1
  97. data/db/migrate/20160919104837_create_decidim_organizations.rb +13 -0
  98. data/db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb +23 -0
  99. data/db/migrate/20160920141039_user_belongs_to_organization.rb +5 -0
  100. data/db/migrate/20160920141151_user_has_roles.rb +5 -0
  101. data/db/migrate/20161005130108_add_participatory_processes.rb +17 -0
  102. data/db/migrate/20161005153007_add_description_to_organizations.rb +9 -0
  103. data/db/migrate/20161006085629_add_confirmable_to_devise.rb +14 -0
  104. data/db/seeds.rb +35 -0
  105. data/lib/decidim/core.rb +0 -1
  106. data/lib/decidim/core/engine.rb +30 -0
  107. data/lib/decidim/core/version.rb +1 -1
  108. data/lib/decidim/devise_failure_app.rb +36 -0
  109. data/lib/decidim/form_builder.rb +38 -0
  110. data/lib/decidim/translatable_attributes.rb +86 -0
  111. data/lib/devise/models/decidim_validatable.rb +67 -0
  112. data/lib/tasks/factory_girl.rake +16 -0
  113. metadata +254 -9
  114. data/config/locales/devise.en.yml +0 -62
  115. data/lib/decidim/testing_support/common_rake.rb +0 -13
  116. data/lib/generators/decidim/dummy_generator.rb +0 -58
  117. data/lib/generators/decidim/install_generator.rb +0 -76
  118. data/lib/generators/decidim/templates/initializer.rb +0 -4
@@ -0,0 +1,23 @@
1
+ <h2><%= t("devise.sessions.new.sign_in") %></h2>
2
+
3
+ <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
4
+ <div class="field">
5
+ <%= f.email_field :email, autofocus: true %>
6
+ </div>
7
+
8
+ <div class="field">
9
+ <%= f.password_field :password, autocomplete: "off" %>
10
+ </div>
11
+
12
+ <% if devise_mapping.rememberable? %>
13
+ <div class="field">
14
+ <%= f.check_box :remember_me %>
15
+ </div>
16
+ <% end %>
17
+
18
+ <div class="actions">
19
+ <%= f.submit t("devise.sessions.new.sign_in") %>
20
+ </div>
21
+ <% end %>
22
+
23
+ <%= render "decidim/devise/shared/links" %>
@@ -0,0 +1,25 @@
1
+ <%- if controller_name != "sessions" %>
2
+ <%= link_to t("devise.shared.links.sign_in"), new_session_path(resource_name) %><br />
3
+ <% end -%>
4
+
5
+ <%- if devise_mapping.registerable? && controller_name != "registrations" %>
6
+ <%= link_to t("devise.shared.links.sign_up"), new_registration_path(resource_name) %><br />
7
+ <% end -%>
8
+
9
+ <%- if devise_mapping.recoverable? && controller_name != "passwords" %>
10
+ <%= link_to t("devise.shared.links.forgot_your_password"), new_password_path(resource_name) %><br />
11
+ <% end -%>
12
+
13
+ <%- if devise_mapping.confirmable? && controller_name != "confirmations" %>
14
+ <%= link_to t("devise.shared.links.didn_t_receive_confirmation_instructions"), new_confirmation_path(resource_name) %><br />
15
+ <% end -%>
16
+
17
+ <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != "unlocks" %>
18
+ <%= link_to t("devise.shared.links.didn_t_receive_unlock_instructions"), new_unlock_path(resource_name) %><br />
19
+ <% end -%>
20
+
21
+ <%- if devise_mapping.omniauthable? %>
22
+ <%- resource_class.omniauth_providers.each do |provider| %>
23
+ <%= link_to t("devise.shared.links.sign_in_with_provider", provider: provider.to_s.titleize), omniauth_authorize_path(resource_name, provider) %><br />
24
+ <% end -%>
25
+ <% end -%>
@@ -1,4 +1,16 @@
1
- <h2>Welcome to Decidim!</h2>
2
- <ul>
3
- <li><%= link_to "Create user", new_user_registration_path %></li>
4
- </ul>
1
+ <section class="extended hero" style="background-image:url(<%= asset_url("decidim/hero-home.jpg") %>);">
2
+ <div class="hero__container">
3
+ <div class="row">
4
+ <div class="columns small-centered large-10">
5
+ <h1 class="text-highlight heading1 hero-heading">
6
+ <%= t('.welcome', organization: current_organization.name) %>
7
+ </h1>
8
+ </div>
9
+ </div>
10
+ <div class="row">
11
+ <div class="columns small-centered small-6 medium-4 mediumlarge-3">
12
+ <%= link_to t('.register'), new_user_registration_path, class: "hero-cta button expanded large button--sc" %>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </section>
@@ -0,0 +1,4 @@
1
+ <p><%= t('.greeting', recipient: @resource.email) %></p>
2
+
3
+ <p><%= t('.instruction') %></p>
4
+ <p><%= link_to t('.action'), confirmation_url(@resource, confirmation_token: @token, host: @resource.organization.host) %></p>
@@ -0,0 +1,10 @@
1
+ <p><%= t("devise.mailer.invitation_instructions.hello", email: @resource.email) %></p>
2
+
3
+ <p><%= t("devise.mailer.invitation_instructions.someone_invited_you", application: Decidim.config.application_name) %></p>
4
+ <p><%= link_to t("devise.mailer.invitation_instructions.accept"), accept_invitation_url(@resource, invitation_token: @token, invite_redirect: decidim_admin.root_path, host: @resource.organization.host) %></p>
5
+
6
+ <% if @resource.invitation_due_at %>
7
+ <p><%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :'devise.mailer.invitation_instructions.accept_until_format')) %></p>
8
+ <% end %>
9
+
10
+ <p><%= t("devise.mailer.invitation_instructions.ignore").html_safe %></p>
@@ -0,0 +1,11 @@
1
+ <%= t("devise.mailer.invitation_instructions.hello", email: @resource.email) %>
2
+
3
+ <%= t("devise.mailer.invitation_instructions.someone_invited_you", application: Decidim.config.application_name) %>
4
+
5
+ <%= accept_invitation_url(@resource, invitation_token: @token, invite_redirect: decidim_admin.root_path, host: @resource.organization.host) %>
6
+
7
+ <% if @resource.invitation_due_at %>
8
+ <%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :'devise.mailer.invitation_instructions.accept_until_format')) %>
9
+ <% end %>
10
+
11
+ <%= strip_tags t("devise.mailer.invitation_instructions.ignore") %>
@@ -0,0 +1,3 @@
1
+ <p><%= t('.greeting', recipient: @resource.email) %></p>
2
+
3
+ <p><%= t('.message') %></p>
@@ -0,0 +1,8 @@
1
+ <p><%= t('.greeting', recipient: @resource.email) %></p>
2
+
3
+ <p><%= t('.instruction') %></p>
4
+
5
+ <p><%= link_to t('.action'), edit_password_url(@resource, reset_password_token: @token, host: @resource.organization.host) %></p>
6
+
7
+ <p><%= t('.instruction_2') %></p>
8
+ <p><%= t('.instruction_3') %></p>
@@ -1,2 +1,28 @@
1
- <hr />
2
- <em>Footer</em>
1
+ </main>
2
+ </div><!-- /.footer-separator -->
3
+ <div class="main-footer">
4
+ <div class="row">
5
+ <div class="medium-8 large-6 large-offset-3 column main__footer__nav">
6
+ <ul class="footer-nav">
7
+ <li><a href="#"><%= t('.about') %></a></li>
8
+ <li><a href="#"><%= t('.terms_of_use') %></a></li>
9
+ <li><a href="#"><%= t('.accessibility') %></a></li>
10
+ </ul>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ <div class="mini-footer">
15
+ <div class="row">
16
+ <div class="columns">
17
+ <a rel="license" class="cc-badge"
18
+ href="http://creativecommons.org/licenses/by-sa/4.0/"
19
+ target="_blank">
20
+ <%= image_tag("decidim/cc-badge.png", alt: "Creative Commons License" ) %>
21
+ </a>
22
+ <%= t('.made_with_open_source').html_safe %>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div><!--/.off-canvas-content-->
27
+ </div><!--/.off-canvas-wrapper-inner-->
28
+ </div><!--/.off-canvas-wrapper-->
@@ -1,2 +1,59 @@
1
- <h1>Decidim</h1>
2
- <hr />
1
+ <div class="off-canvas-wrapper">
2
+ <div class="off-canvas-wrapper-inner" data-off-canvas-wrapper>
3
+ <div class="off-canvas position-right" data-position="right"
4
+ id="offCanvas" data-off-canvas>
5
+ <!-- Close button -->
6
+ <button class="close-button"
7
+ aria-label="<%= t(".close_menu") %>" type="button"
8
+ data-close>
9
+ <span aria-hidden="true">&times;</span>
10
+ </button>
11
+ <!-- Menu -->
12
+ <div class="hide-for-medium" data-set="nav-holder"></div>
13
+ <div class="hide-for-medium usermenu-off-canvas-holder"
14
+ data-set="nav-login-holder"></div>
15
+ </div>
16
+ <div class="off-canvas-content" data-off-canvas-content>
17
+ <div class="footer-separator">
18
+ <!--separates the footer from the rest of the page,
19
+ creates a sticky footer-->
20
+ <!-- Topbar -->
21
+ <div class="title-bar">
22
+ <div class="row topbar">
23
+ <div class="logo-wrapper">
24
+ <a href="/">
25
+ <!-- Remove this, use the final SVG logo -->
26
+ <span><%= current_organization.name %></span>
27
+ <style>
28
+ .logo-wrapper span{ color: white; font-weight: 600;
29
+ display: inline-block; text-align: left;
30
+ padding-left: 8px; line-height: 1;
31
+ position: relative; }
32
+ .logo-wrapper span:before{ content: ""; display: block;
33
+ position: absolute; border-left: 4px solid white; height: 88%;
34
+ top: 6%; left: 0; }
35
+ </style>
36
+ <!-- /Remove-->
37
+ </a>
38
+ </div>
39
+ <div class="hide-for-medium topbar__menu">
40
+ <button type="button" data-toggle="offCanvas">
41
+ <%= icon "menu", aria_label: t('.navigation'), role: "img" %>
42
+ </button>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ <div class="show-for-medium" data-set="nav-holder">
47
+ <nav class="navbar js-append">
48
+ <div class="row">
49
+ <ul class="main-nav">
50
+ <li>
51
+ <%= active_link_to t("menu.home", scope: "decidim"), root_path, active: :exact, class: "main-nav__link", active_class: "main-nav__link-active" %>
52
+ </li>
53
+ </ul>
54
+ </div>
55
+ </nav>
56
+ </div>
57
+
58
+ <main>
59
+ <%= display_flash_messages %>
@@ -0,0 +1,120 @@
1
+ # i18n-tasks finds and manages missing and unused translations: https://github.com/glebm/i18n-tasks
2
+
3
+ # The "main" locale.
4
+ base_locale: en
5
+ ## All available locales are inferred from the data by default. Alternatively, specify them explicitly:
6
+ # locales: [es, fr]
7
+ ## Reporting locale, default: en. Available: en, ru.
8
+ # internal_locale: en
9
+
10
+ # Read and write translations.
11
+ data:
12
+ ## Translations are read from the file system. Supported format: YAML, JSON.
13
+ ## Provide a custom adapter:
14
+ # adapter: I18n::Tasks::Data::FileSystem
15
+
16
+ # Locale files or `File.find` patterns where translations are read from:
17
+ read:
18
+ ## Default:
19
+ # - config/locales/%{locale}.yml
20
+ ## More files:
21
+ # - config/locales/**/*.%{locale}.yml
22
+ ## Another gem (replace %#= with %=):
23
+ # - "<%#= %x[bundle show vagrant].chomp %>/templates/locales/%{locale}.yml"
24
+
25
+ # Locale files to write new keys to, based on a list of key pattern => file rules. Matched from top to bottom:
26
+ # `i18n-tasks normalize -p` will force move the keys according to these rules
27
+ write:
28
+ ## For example, write devise and simple form keys to their respective files:
29
+ # - ['{devise, simple_form}.*', 'config/locales/\1.%{locale}.yml']
30
+ ## Catch-all default:
31
+ # - config/locales/%{locale}.yml
32
+
33
+ ## Specify the router (see Readme for details). Valid values: conservative_router, pattern_router, or a custom class.
34
+ # router: convervative_router
35
+
36
+ yaml:
37
+ write:
38
+ # do not wrap lines at 80 characters
39
+ line_width: -1
40
+
41
+ ## Pretty-print JSON:
42
+ # json:
43
+ # write:
44
+ # indent: ' '
45
+ # space: ' '
46
+ # object_nl: "\n"
47
+ # array_nl: "\n"
48
+
49
+ # Find translate calls
50
+ search:
51
+ ## Paths or `File.find` patterns to search in:
52
+ # paths:
53
+ # - app/
54
+
55
+ ## Root directories for relative keys resolution.
56
+ # relative_roots:
57
+ # - app/controllers
58
+ # - app/helpers
59
+ # - app/mailers
60
+ # - app/presenters
61
+ # - app/views
62
+
63
+ ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting:
64
+ ## %w(*.jpg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less *.yml *.json)
65
+ exclude:
66
+ - app/assets/images
67
+ - app/assets/fonts
68
+
69
+ ## Alternatively, the only files or `File.fnmatch patterns` to search in `paths`:
70
+ ## If specified, this settings takes priority over `exclude`, but `exclude` still applies.
71
+ # only: ["*.rb", "*.html.slim"]
72
+
73
+ ## If `strict` is `false`, guess usages such as t("categories.#{category}.title"). The default is `true`.
74
+ # strict: true
75
+
76
+ ## Multiple scanners can be used. Their results are merged.
77
+ ## The options specified above are passed down to each scanner. Per-scanner options can be specified as well.
78
+ ## See this example of a custom scanner: https://github.com/glebm/i18n-tasks/wiki/A-custom-scanner-example
79
+
80
+ ## Google Translate
81
+ # translation:
82
+ # # Get an API key and set billing info at https://code.google.com/apis/console to use Google Translate
83
+ # api_key: "AbC-dEf5"
84
+
85
+ ## Do not consider these keys missing:
86
+ ignore_missing:
87
+ - '{devise,simple_form}.*'
88
+
89
+ ## Consider these keys used:
90
+ ignore_unused:
91
+ - '{time.formats}.*'
92
+ # - 'activerecord.attributes.*'
93
+ # - '{devise,kaminari,will_paginate}.*'
94
+ # - 'simple_form.{yes,no}'
95
+ # - 'simple_form.{placeholders,hints,labels}.*'
96
+ # - 'simple_form.{error_notification,required}.:'
97
+
98
+ ## Exclude these keys from the `i18n-tasks eq-base' report:
99
+ # ignore_eq_base:
100
+ # all:
101
+ # - common.ok
102
+ # fr,es:
103
+ # - common.brand
104
+
105
+ ## Ignore these keys completely:
106
+ # ignore:
107
+ # - kaminari.*
108
+
109
+ ## Sometimes, it isn't possible for i18n-tasks to match the key correctly,
110
+ ## e.g. in case of a relative key defined in a helper method.
111
+ ## In these cases you can use the built-in PatternMapper to map patterns to keys, e.g.:
112
+ #
113
+ # <%#= I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
114
+ # only: %w(*.html.haml *.html.slim),
115
+ # patterns: [['= title\b', '.page_title']] %>
116
+ #
117
+ # The PatternMapper can also match key literals via a special %{key} interpolation, e.g.:
118
+ #
119
+ # <%#= I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
120
+ # patterns: [['\bSpree\.t[( ]\s*%{key}', 'spree.%{key}']] %>
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
  # Use this hook to configure devise mailer, warden hooks and so forth.
3
3
  # Many of these configuration options can be set straight in your model.
4
+
5
+ require "decidim/devise_failure_app"
6
+
4
7
  Devise.setup do |config|
5
8
  # The secret key used by Devise. Devise uses this key to generate
6
9
  # random tokens. Changing this key will render invalid all existing
@@ -16,12 +19,12 @@ Devise.setup do |config|
16
19
  config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com"
17
20
 
18
21
  # Configure the class responsible to send e-mails.
19
- # config.mailer = 'Devise::Mailer'
22
+ config.mailer = "Decidim::DecidimDeviseMailer"
20
23
 
21
24
  # Configure the parent class responsible to send e-mails.
22
25
  config.parent_mailer = "Decidim::ApplicationMailer"
23
26
 
24
- config.parent_controller = "Decidim::ApplicationController"
27
+ config.parent_controller = "ActionController::Base"
25
28
 
26
29
  # ==> ORM configuration
27
30
  # Load and configure the ORM. Supports :active_record (default) and
@@ -116,6 +119,54 @@ Devise.setup do |config|
116
119
  # Send a notification email when the user's password is changed
117
120
  # config.send_password_change_notification = false
118
121
 
122
+ # ==> Configuration for :invitable
123
+ # The period the generated invitation token is valid, after
124
+ # this period, the invited resource won't be able to accept the invitation.
125
+ # When invite_for is 0 (the default), the invitation won't expire.
126
+ config.invite_for = 2.weeks
127
+
128
+ # Number of invitations users can send.
129
+ # - If invitation_limit is nil, there is no limit for invitations, users can
130
+ # send unlimited invitations, invitation_limit column is not used.
131
+ # - If invitation_limit is 0, users can't send invitations by default.
132
+ # - If invitation_limit n > 0, users can send n invitations.
133
+ # You can change invitation_limit column for some users so they can send more
134
+ # or less invitations, even with global invitation_limit = 0
135
+ # Default: nil
136
+ # config.invitation_limit = 5
137
+
138
+ # The key to be used to check existing users when sending an invitation
139
+ # and the regexp used to test it when validate_on_invite is not set.
140
+ # config.invite_key = {:email => /\A[^@]+@[^@]+\z/}
141
+ # config.invite_key = {:email => /\A[^@]+@[^@]+\z/, :username => nil}
142
+
143
+ # Flag that force a record to be valid before being actually invited
144
+ # Default: false
145
+ # config.validate_on_invite = true
146
+
147
+ # Resend invitation if user with invited status is invited again
148
+ # Default: true
149
+ # config.resend_invitation = false
150
+
151
+ # The class name of the inviting model. If this is nil,
152
+ # the #invited_by association is declared to be polymorphic.
153
+ # Default: nil
154
+ # config.invited_by_class_name = 'User'
155
+
156
+ # The foreign key to the inviting model (if invited_by_class_name is set)
157
+ # Default: :invited_by_id
158
+ # config.invited_by_foreign_key = :invited_by_id
159
+
160
+ # The column name used for counter_cache column. If this is nil,
161
+ # the #invited_by association is declared without counter_cache.
162
+ # Default: nil
163
+ # config.invited_by_counter_cache = :invitations_count
164
+
165
+ # Auto-login after the user accepts the invite. If this is false,
166
+ # the user will need to manually log in after accepting the invite.
167
+ # Default: true
168
+ config.allow_insecure_sign_in_after_accept = true
169
+
119
170
  # ==> Configuration for :confirmable
120
171
  # A period that the user is allowed to access the website even without
121
172
  # confirming their account. For instance, if set to 2.days, the user will be
@@ -223,7 +274,7 @@ Devise.setup do |config|
223
274
  # Turn scoped views on. Before rendering "sessions/new", it will first check for
224
275
  # "users/sessions/new". It's turned off by default because it's slower if you
225
276
  # are using only default views.
226
- # config.scoped_views = false
277
+ config.scoped_views = true
227
278
 
228
279
  # Configure the default scope given to Warden. By default it's the first
229
280
  # devise role declared in your routes (usually :user).
@@ -256,10 +307,9 @@ Devise.setup do |config|
256
307
  # If you want to use other strategies, that are not supported by Devise, or
257
308
  # change the failure app, you can configure them inside the config.warden block.
258
309
  #
259
- # config.warden do |manager|
260
- # manager.intercept_401 = false
261
- # manager.default_strategies(scope: :user).unshift :some_external_strategy
262
- # end
310
+ config.warden do |manager|
311
+ manager.failure_app = Decidim::DeviseFailureApp
312
+ end
263
313
 
264
314
  # ==> Mountable engine configurations
265
315
  # When using Devise inside an engine, let's call it `MyEngine`, and this engine
@@ -269,7 +319,7 @@ Devise.setup do |config|
269
319
  # mount MyEngine, at: '/my_engine'
270
320
  #
271
321
  # The router that invoked `devise_for`, in the example above, would be:
272
- config.router_name = :decidim
322
+ # config.router_name = :decidim
273
323
  #
274
324
  # When using OmniAuth, Devise cannot automatically set OmniAuth path,
275
325
  # so you need to do it manually. For the users scope, it would be:
@@ -0,0 +1,35 @@
1
+ ---
2
+ en:
3
+ decidim:
4
+ home:
5
+ show:
6
+ register: Register
7
+ welcome: Welcome to %{organization}!
8
+ menu:
9
+ home: Home
10
+ devise:
11
+ mailer:
12
+ invitation_instructions:
13
+ accept: Accept invitation
14
+ accept_until: This invitation will be due in %{due_date}.
15
+ hello: Hello %{email}
16
+ ignore: |-
17
+ If you don't want to accept the invitation, please ignore this email.<br />
18
+ Your account won't be created until you access the link above and set your password.
19
+ someone_invited_you: Someone has invited you to %{application}, you can accept it through the link below.
20
+ layouts:
21
+ decidim:
22
+ footer:
23
+ about: About Decidim
24
+ accessibility: Accessibility
25
+ made_with_open_source: Website made with <a target="_blank" href="https://github.com/codegram/decidim">open-source software</a>.
26
+ terms_of_use: Terms Of Use
27
+ header:
28
+ close_menu: Close menu
29
+ navigation: Navigation
30
+ time:
31
+ formats:
32
+ devise:
33
+ mailer:
34
+ invitation_instructions:
35
+ accept_until_format: "%B %d, %Y %I:%M %p"