decidim-core 0.0.1.alpha7 → 0.0.1.alpha8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +619 -0
  3. data/README.md +1 -1
  4. data/app/assets/javascripts/decidim.js.es6 +13 -0
  5. data/app/assets/stylesheets/decidim/_variables.scss +23 -0
  6. data/app/assets/stylesheets/decidim/application.sass +2 -0
  7. data/app/assets/stylesheets/decidim/extras/_turbolinks.scss +3 -0
  8. data/app/assets/stylesheets/decidim/modules/_cards.scss +0 -5
  9. data/app/assets/stylesheets/decidim/utils/_settings.scss +5 -11
  10. data/app/commands/decidim/authorize_user.rb +37 -0
  11. data/app/controllers/concerns/decidim/needs_authorization.rb +36 -0
  12. data/app/controllers/decidim/account_controller.rb +26 -0
  13. data/app/controllers/decidim/application_controller.rb +5 -0
  14. data/app/controllers/decidim/authorizations_controller.rb +76 -0
  15. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  16. data/app/controllers/decidim/devise/sessions_controller.rb +8 -0
  17. data/app/controllers/decidim/locales_controller.rb +2 -0
  18. data/app/controllers/decidim/pages_controller.rb +10 -0
  19. data/app/controllers/decidim/participatory_processes_controller.rb +32 -0
  20. data/app/helpers/decidim/authorization_form_helper.rb +25 -0
  21. data/app/helpers/decidim/humanize_booleans_helper.rb +14 -0
  22. data/app/mailers/decidim/application_mailer.rb +1 -1
  23. data/app/models/decidim/abilities/everyone.rb +16 -0
  24. data/app/models/decidim/ability.rb +32 -0
  25. data/app/models/decidim/authorization.rb +25 -0
  26. data/app/models/decidim/participatory_process.rb +25 -0
  27. data/app/models/decidim/participatory_process_step.rb +38 -0
  28. data/app/models/decidim/user.rb +19 -0
  29. data/app/services/decidim/authorization_handler.rb +94 -0
  30. data/app/uploaders/decidim/application_uploader.rb +0 -2
  31. data/app/views/decidim/account/_authorizations.html.erb +52 -0
  32. data/app/views/decidim/account/show.html.erb +32 -0
  33. data/app/views/decidim/authorizations/index.html.erb +22 -0
  34. data/app/views/decidim/authorizations/new.html.erb +29 -0
  35. data/app/views/decidim/devise/confirmations/new.html.erb +27 -11
  36. data/app/views/decidim/devise/invitations/edit.html.erb +25 -10
  37. data/app/views/decidim/devise/passwords/edit.html.erb +30 -15
  38. data/app/views/decidim/devise/passwords/new.html.erb +25 -11
  39. data/app/views/decidim/devise/registrations/new.html.erb +48 -20
  40. data/app/views/decidim/devise/sessions/new.html.erb +40 -21
  41. data/app/views/decidim/devise/shared/_links.html.erb +18 -6
  42. data/app/views/decidim/participatory_processes/_no_processes_yet.html.erb +3 -0
  43. data/app/views/decidim/participatory_processes/_order_by_processes.html.erb +3 -0
  44. data/app/views/decidim/participatory_processes/_participatory_process.html.erb +26 -0
  45. data/app/views/decidim/participatory_processes/_process_header_home.html.erb +18 -0
  46. data/app/views/decidim/participatory_processes/_promoted_process.html.erb +32 -0
  47. data/app/views/decidim/participatory_processes/index.html.erb +15 -0
  48. data/app/views/decidim/participatory_processes/show.html.erb +15 -0
  49. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +1 -1
  50. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +1 -1
  51. data/app/views/layouts/decidim/_footer.html.erb +3 -3
  52. data/app/views/layouts/decidim/_header.html.erb +5 -2
  53. data/app/views/pages/404.html.erb +13 -0
  54. data/app/views/pages/500.html.erb +10 -0
  55. data/app/views/{decidim/home/show.html.erb → pages/home.html.erb} +0 -0
  56. data/app/views/pages/terms.ca.html.erb +4 -0
  57. data/app/views/pages/terms.en.html.erb +4 -0
  58. data/app/views/pages/terms.es.html.erb +4 -0
  59. data/config/i18n-tasks.yml +3 -0
  60. data/config/initializers/devise.rb +1 -1
  61. data/config/locales/ca.yml +84 -10
  62. data/config/locales/en.yml +84 -10
  63. data/config/locales/es.yml +84 -10
  64. data/config/routes.rb +14 -1
  65. data/db/migrate/20161013134732_add_promoted_flag_to_processes.rb +5 -0
  66. data/db/migrate/20161017085822_add_participatory_process_steps.rb +16 -0
  67. data/db/migrate/20161018091013_create_decidim_authorizations.rb +13 -0
  68. data/db/migrate/20161019072016_add_active_flag_to_step.rb +7 -0
  69. data/db/migrate/20161020080756_add_position_to_steps.rb +7 -0
  70. data/db/migrate/20161025125300_add_published_at_to_processes.rb +5 -0
  71. data/db/seeds.rb +81 -27
  72. data/lib/decidim/authorization_form_builder.rb +70 -0
  73. data/lib/decidim/core.rb +23 -5
  74. data/lib/decidim/core/engine.rb +21 -0
  75. data/lib/decidim/core/version.rb +1 -1
  76. data/lib/decidim/faker/localized.rb +162 -0
  77. data/lib/decidim/form_builder.rb +1 -1
  78. data/lib/tasks/decidim_tasks.rake +1 -1
  79. metadata +121 -15
  80. data/MIT-LICENSE +0 -20
  81. data/app/assets/javascripts/decidim.js +0 -23
  82. data/app/assets/stylesheets/decidim.scss +0 -16
  83. data/app/assets/stylesheets/decidim/utils/_variables.scss +0 -25
  84. data/app/controllers/decidim/home_controller.rb +0 -7
@@ -1,14 +1,29 @@
1
- <h2><%= t "devise.invitations.edit.header" %></h2>
1
+ <main class="wrapper">
2
+ <div class="row collapse">
3
+ <div class="row collapse">
4
+ <div class="columns large-8 large-centered text-center page-title">
5
+ <h1><%= t "devise.invitations.edit.header" %></h1>
6
+ </div>
7
+ </div>
2
8
 
3
- <%= form_for resource, as: resource_name, url: invitation_path(resource_name, invite_redirect: params[:invite_redirect]), html: { method: :put } do |f| %>
4
- <%= devise_error_messages! %>
5
- <%= f.hidden_field :invitation_token %>
9
+ <div class="row">
10
+ <div class="columns medium-7 large-5 medium-centered">
11
+ <div class="card">
12
+ <div class="card__content">
13
+ <%= form_for resource, as: resource_name, url: invitation_path(resource_name, invite_redirect: params[:invite_redirect]), html: { method: :put, class: "register-form new_user" } do |f| %>
14
+ <%= f.hidden_field :invitation_token %>
6
15
 
7
- <% if f.object.class.require_password_on_accepting %>
8
- <%= f.password_field :password %></p>
16
+ <% if f.object.class.require_password_on_accepting %>
17
+ <%= f.password_field :password %></p>
9
18
 
10
- <%= f.password_field :password_confirmation %></p>
11
- <% end %>
19
+ <%= f.password_field :password_confirmation %></p>
20
+ <% end %>
12
21
 
13
- <p><%= f.submit t("devise.invitations.edit.submit_button") %></p>
14
- <% end %>
22
+ <p><%= f.submit t("devise.invitations.edit.submit_button", class: "button expanded") %></p>
23
+ <% end %>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </main>
@@ -1,20 +1,35 @@
1
- <h2><%= t("devise.passwords.edit.change_your_password") %></h2>
1
+ <main class="wrapper">
2
+ <div class="row collapse">
3
+ <div class="row collapse">
4
+ <div class="columns large-8 large-centered text-center page-title">
5
+ <h1><%= t("devise.passwords.edit.change_your_password") %></h1>
6
+ </div>
7
+ </div>
2
8
 
3
- <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
4
- <%= devise_error_messages! %>
5
- <%= f.hidden_field :reset_password_token %>
9
+ <div class="row">
10
+ <div class="columns medium-7 large-5 medium-centered">
11
+ <div class="card">
12
+ <div class="card__content">
13
+ <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put, class: "register-form new_user" }) do |f| %>
14
+ <%= f.hidden_field :reset_password_token %>
6
15
 
7
- <div class="field">
8
- <%= f.password_field :password, autocomplete: "off" %>
9
- </div>
16
+ <div class="field">
17
+ <%= f.password_field :password, autocomplete: "off" %>
18
+ </div>
10
19
 
11
- <div class="field">
12
- <%= f.password_field :password_confirmation, autocomplete: "off" %>
13
- </div>
20
+ <div class="field">
21
+ <%= f.password_field :password_confirmation, autocomplete: "off" %>
22
+ </div>
14
23
 
15
- <div class="actions">
16
- <%= f.submit t("devise.passwords.edit.change_my_password") %>
17
- </div>
18
- <% end %>
24
+ <div class="actions">
25
+ <%= f.submit t("devise.passwords.edit.change_my_password", class: "button expanded") %>
26
+ </div>
27
+ <% end %>
19
28
 
20
- <%= render "decidim/devise/shared/links" %>
29
+ <%= render "decidim/devise/shared/links" %>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </main>
@@ -1,15 +1,29 @@
1
- <h2><%= t("devise.passwords.new.forgot_your_password") %></h2>
1
+ <main class="wrapper">
2
+ <div class="row collapse">
3
+ <div class="row collapse">
4
+ <div class="columns large-8 large-centered text-center page-title">
5
+ <h1><%= t("devise.passwords.new.forgot_your_password") %></h1>
6
+ </div>
7
+ </div>
2
8
 
3
- <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
4
- <%= devise_error_messages! %>
9
+ <div class="row">
10
+ <div class="columns medium-7 large-5 medium-centered">
11
+ <div class="card">
12
+ <div class="card__content">
13
+ <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post, class: "register-form new_user" }) do |f| %>
14
+ <div class="field">
15
+ <%= f.email_field :email, autofocus: true %>
16
+ </div>
5
17
 
6
- <div class="field">
7
- <%= f.email_field :email, autofocus: true %>
8
- </div>
18
+ <div class="actions">
19
+ <%= f.submit t("devise.passwords.new.send_me_reset_password_instructions"), class: "button expanded" %>
20
+ </div>
21
+ <% end %>
9
22
 
10
- <div class="actions">
11
- <%= f.submit t("devise.passwords.new.send_me_reset_password_instructions") %>
23
+ <%= render "decidim/devise/shared/links" %>
24
+ </div>
25
+ </div>
26
+ </div>
12
27
  </div>
13
- <% end %>
14
-
15
- <%= render "decidim/devise/shared/links" %>
28
+ </div>
29
+ </main>
@@ -1,27 +1,55 @@
1
- <h2><%= t("devise.registrations.new.sign_up") %></h2>
1
+ <main class="wrapper">
2
+ <div class="row collapse">
3
+ <div class="row collapse">
4
+ <div class="columns large-8 large-centered text-center page-title">
5
+ <h1><%= t(".sign_up") %></h1>
6
+ <p>
7
+ <%= t(".subtitle") %>
8
+ </p>
9
+ <p>
10
+ <%= t(".already_have_an_account?") %>
11
+ <%= link_to t(".sign_in"), new_user_session_path %>
12
+ </p>
13
+ </div>
14
+ </div>
2
15
 
3
- <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
4
- <%= devise_error_messages! %>
16
+ <div class="row">
17
+ <div class="columns large-6 medium-10 medium-centered">
18
+ <div class="card">
19
+ <div class="card__content">
20
+ <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { class: "register-form new_user" }) do |f| %>
21
+ <div class="user-person">
22
+ <div class="field">
23
+ <%= f.text_field :name, help_text: t(".username_help") %>
24
+ </div>
25
+ </div>
5
26
 
6
- <div class="field">
7
- <%= f.email_field :email, autofocus: true %>
8
- </div>
27
+ <div class="field">
28
+ <%= f.email_field :email %>
29
+ </div>
9
30
 
10
- <div class="field">
11
- <%= f.password_field :password, autocomplete: "off" %>
12
- </div>
31
+ <div class="field">
32
+ <%= f.password_field :password, autocomplete: "off" %>
33
+ </div>
13
34
 
14
- <div class="field">
15
- <%= f.password_field :password_confirmation, autocomplete: "off" %>
16
- </div>
35
+ <div class="field">
36
+ <%= f.password_field :password_confirmation, autocomplete: "off" %>
37
+ </div>
17
38
 
18
- <div class="field">
19
- <%= f.text_field :name %>
20
- </div>
39
+ <fieldset>
40
+ <div class="field">
41
+ <%= f.check_box :tos_agreement, label: t(".tos_agreement", link: link_to(t(".terms"), page_path(:terms))) %>
42
+ </div>
43
+ </fieldset>
21
44
 
22
- <div class="actions">
23
- <%= f.submit t("devise.registrations.new.sign_up") %>
45
+ <div class="actions">
46
+ <%= f.submit t("devise.registrations.new.sign_up"), class: "button expanded" %>
47
+ </div>
48
+ <% end %>
49
+ <%= render "decidim/devise/shared/links" %>
50
+ </div>
51
+ </div>
52
+ </div>
24
53
  </div>
25
- <% end %>
26
-
27
- <%= render "decidim/devise/shared/links" %>
54
+ </div>
55
+ </main>
@@ -1,23 +1,42 @@
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 %>
1
+ <main class="wrapper">
2
+ <div class="row collapse">
3
+ <div class="row collapse">
4
+ <div class="columns large-8 large-centered text-center page-title">
5
+ <h1 class="heading1"><%= t("devise.sessions.new.sign_in") %></h1>
6
+ <p>
7
+ <%= t('.are_you_new?') %>
8
+ <%= link_to t(".register"), new_user_registration_path %>
9
+ </p>
10
+ </div>
11
+ </div>
12
+ <div class="row">
13
+ <div class="columns large-6 medium-centered">
14
+ <div class="card">
15
+ <div class="card__content">
16
+ <%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { class: "register-form new_user" }) do |f| %>
17
+ <div>
18
+ <div class="field">
19
+ <%= f.email_field :email, autofocus: true %>
20
+ </div>
21
+ <div class="field">
22
+ <%= f.password_field :password, autocomplete: "off" %>
23
+ </div>
24
+ </div>
25
+ <fieldset>
26
+ <% if devise_mapping.rememberable? %>
27
+ <div class="field">
28
+ <%= f.check_box :remember_me %>
29
+ </div>
30
+ <% end %>
31
+ </fieldset>
32
+ <div class="actions">
33
+ <%= f.submit t("devise.sessions.new.sign_in"), class: "button expanded" %>
34
+ </div>
35
+ <% end %>
36
+ <%= render "decidim/devise/shared/links" %>
37
+ </div>
38
+ </div>
39
+ </div>
15
40
  </div>
16
- <% end %>
17
-
18
- <div class="actions">
19
- <%= f.submit t("devise.sessions.new.sign_in") %>
20
41
  </div>
21
- <% end %>
22
-
23
- <%= render "decidim/devise/shared/links" %>
42
+ </main>
@@ -1,25 +1,37 @@
1
1
  <%- if controller_name != "sessions" %>
2
- <%= link_to t("devise.shared.links.sign_in"), new_session_path(resource_name) %><br />
2
+ <p class="text-center">
3
+ <%= link_to t("devise.shared.links.sign_in"), new_session_path(resource_name) %>
4
+ </p>
3
5
  <% end -%>
4
6
 
5
7
  <%- if devise_mapping.registerable? && controller_name != "registrations" %>
6
- <%= link_to t("devise.shared.links.sign_up"), new_registration_path(resource_name) %><br />
8
+ <p class="text-center">
9
+ <%= link_to t("devise.shared.links.sign_up"), new_registration_path(resource_name) %>
10
+ </p>
7
11
  <% end -%>
8
12
 
9
13
  <%- if devise_mapping.recoverable? && controller_name != "passwords" %>
10
- <%= link_to t("devise.shared.links.forgot_your_password"), new_password_path(resource_name) %><br />
14
+ <p class="text-center">
15
+ <%= link_to t("devise.shared.links.forgot_your_password"), new_password_path(resource_name) %>
16
+ </p>
11
17
  <% end -%>
12
18
 
13
19
  <%- 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 />
20
+ <p class="text-center">
21
+ <%= link_to t("devise.shared.links.didn_t_receive_confirmation_instructions"), new_confirmation_path(resource_name) %>
22
+ </p>
15
23
  <% end -%>
16
24
 
17
25
  <%- 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 />
26
+ <p class="text-center">
27
+ <%= link_to t("devise.shared.links.didn_t_receive_unlock_instructions"), new_unlock_path(resource_name) %>
28
+ </p>
19
29
  <% end -%>
20
30
 
21
31
  <%- if devise_mapping.omniauthable? %>
22
32
  <%- 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 />
33
+ <p class="text-center">
34
+ <%= link_to t("devise.shared.links.sign_in_with_provider", provider: provider.to_s.titleize), omniauth_authorize_path(resource_name, provider) %>
35
+ </p>
24
36
  <% end -%>
25
37
  <% end -%>
@@ -0,0 +1,3 @@
1
+ <div class="column">
2
+ <p><%= t(".no_processes_yet", scope: "layouts") %></p>
3
+ </div>
@@ -0,0 +1,3 @@
1
+ <div class="row collapse order-by">
2
+ <h2 class="order-by__text section-heading"><%= t(".processes", scope: "layouts", count: participatory_processes.count) %></h2>
3
+ </div>
@@ -0,0 +1,26 @@
1
+ <div class="column">
2
+ <article class="card card--process">
3
+ <div class="card__image-top"
4
+ style="background-image:url(<%= participatory_process.banner_image.url %>)"></div>
5
+ <div class="card__content">
6
+ <%= link_to participatory_process_path(participatory_process), class: "card__link" do %>
7
+ <h4 class="card__title"><%= translated_attribute participatory_process.title %></h4>
8
+ <% end %>
9
+ <p class="card__desc"><%== translated_attribute(participatory_process.short_description) %></p>
10
+ </div>
11
+ <div class="card__footer">
12
+ <div class="card__support">
13
+ <% if participatory_process.active_step %>
14
+ <span class="card--process__small">
15
+ <%= t(".active_step", scope: "layouts") %>
16
+ <strong><%= translated_attribute participatory_process.active_step.title %></strong>
17
+ </span>
18
+ <% end %>
19
+ <span class="card--process__small"></span>
20
+ <%= link_to participatory_process_path(participatory_process), class: "card__button button small" do %>
21
+ <%= t(".take_part", scope: "layouts") %>
22
+ <% end %>
23
+ </div>
24
+ </div>
25
+ </article>
26
+ </div>
@@ -0,0 +1,18 @@
1
+ <div class="process-header process-header--home row column">
2
+ <div class="row column process-header__main"
3
+ style="background-image:url(<%= participatory_process.banner_image.url %>);">
4
+ <div class="process-header__container row">
5
+ <div class="columns mediumlarge-9 process-header__info">
6
+ <h1 class="text-highlight heading1">
7
+ <%= translated_attribute(participatory_process.title) %>
8
+ </h1>
9
+ <h2 class="text-highlight heading4">
10
+ <span class="process-header__hashtag">
11
+ <%= participatory_process.hashtag %>
12
+ </span>
13
+ <%= translated_attribute(participatory_process.subtitle) %>
14
+ </h2>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ </div>
@@ -0,0 +1,32 @@
1
+ <article class="card card--full card--process">
2
+ <div class="row collapse card--process__row">
3
+ <div class="columns mediumlarge-8 large-6 card--process__column">
4
+ <div class="card__content">
5
+ <%= link_to participatory_process_path(promoted_process), class: "card__link" do %>
6
+ <h2 class="card__title"><%= translated_attribute promoted_process.title %></h2>
7
+ <% end %>
8
+ <%= truncate(translated_attribute(promoted_process.description).html_safe, length: 630, separator: ' ') %>
9
+ <%= link_to participatory_process_path(promoted_process), class: "button secondary small hollow card__button" do %>
10
+ <%= t(".more_info", scope: "layouts") %>
11
+ <% end %>
12
+ </div>
13
+ </div>
14
+ <div class="columns mediumlarge-8 large-6 card--process__column">
15
+ <div class="card--full__image"
16
+ style="background-image:url(<%= promoted_process.hero_image.url %>">
17
+ <div class="card__content row collapse">
18
+ <div class="large-6 large-offset-6 columns">
19
+ <%= link_to participatory_process_path(promoted_process), class: "button expanded button--sc" do %>
20
+ <%= t(".take_part", scope: "layouts") %>
21
+ <% if promoted_process.active_step %>
22
+ <span class="button__info">
23
+ <%= t(".active_step", scope: "layouts") %> <%= translated_attribute promoted_process.active_step.title %>
24
+ </span>
25
+ <% end %>
26
+ <% end %>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </article>
@@ -0,0 +1,15 @@
1
+ <main class="wrapper">
2
+ <% if promoted_processes.any? %>
3
+ <section id ="highlighted-processes" class="row section">
4
+ <h1 class="section-heading"><%= t(".promoted_processes", scope: "layouts") %></h1>
5
+ <%= render partial: "promoted_process", collection: promoted_processes, as: :promoted_process %>
6
+ </section>
7
+ <% end %>
8
+
9
+ <section id="processes-grid" class="section row collapse">
10
+ <%= render partial: "order_by_processes" %>
11
+ <div class="row small-up-1 medium-up-2 large-up-3 card-grid">
12
+ <%= render(participatory_processes) || render(partial: "no_processes_yet") %>
13
+ </div>
14
+ </section>
15
+ </main>
@@ -0,0 +1,15 @@
1
+ <main class="wrapper">
2
+ <%= render partial: "process_header_home" %>
3
+ <div class="row column">
4
+ <div class="row">
5
+ <div class="columns medium-7 mediumlarge-8">
6
+ <div class="section">
7
+ <div class="lead">
8
+ <%== translated_attribute(participatory_process.short_description) %>
9
+ </div>
10
+ <%== translated_attribute(participatory_process.description) %>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ </div>
15
+ </main>
@@ -4,7 +4,7 @@
4
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
5
 
6
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>
7
+ <p><%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :long)) %></p>
8
8
  <% end %>
9
9
 
10
10
  <p><%= t("devise.mailer.invitation_instructions.ignore").html_safe %></p>