decidim-core 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/app/assets/config/decidim_core_manifest.js +1 -0
  4. data/app/assets/javascripts/decidim.js.es6 +3 -2
  5. data/app/assets/javascripts/decidim/append_elements.js.es6 +8 -0
  6. data/app/assets/javascripts/decidim/filters.js.es6 +22 -0
  7. data/app/assets/javascripts/decidim/form_filter.component.js.es6 +176 -0
  8. data/app/assets/javascripts/decidim/form_filter.component.test.js +151 -0
  9. data/app/assets/javascripts/decidim/inline_svg.js.es6 +12 -0
  10. data/app/assets/javascripts/decidim/user_registrations.js.es6 +22 -0
  11. data/app/assets/stylesheets/decidim/_variables.scss +1 -1
  12. data/app/assets/stylesheets/decidim/modules/_comments.scss +3 -6
  13. data/app/assets/stylesheets/decidim/modules/_cookie-bar.scss +22 -0
  14. data/app/assets/stylesheets/decidim/modules/_layout.scss +9 -1
  15. data/app/assets/stylesheets/decidim/modules/_navbar.scss +8 -5
  16. data/app/assets/stylesheets/decidim/modules/_order-by.scss +0 -1
  17. data/app/assets/stylesheets/decidim/modules/_process-phase.scss +4 -0
  18. data/app/assets/stylesheets/decidim/modules/_timeline.scss +62 -80
  19. data/app/assets/stylesheets/decidim/modules/_typography.scss +20 -31
  20. data/app/assets/stylesheets/decidim/utils/_fontface.scss +4 -16
  21. data/app/assets/stylesheets/decidim/utils/_settings.scss +29 -26
  22. data/app/assets/stylesheets/decidim/utils/_variables.scss +22 -0
  23. data/app/commands/decidim/authorize_user.rb +17 -1
  24. data/app/commands/decidim/create_omniauth_registration.rb +92 -0
  25. data/app/commands/decidim/create_registration.rb +50 -0
  26. data/app/commands/decidim/invite_user.rb +50 -0
  27. data/app/commands/decidim/invite_user_again.rb +25 -0
  28. data/app/commands/decidim/remove_user_role.rb +26 -0
  29. data/app/controllers/concerns/decidim/feature_settings.rb +27 -0
  30. data/app/controllers/concerns/decidim/filter_resource.rb +71 -0
  31. data/app/controllers/concerns/decidim/form_factory.rb +21 -18
  32. data/app/controllers/concerns/decidim/needs_participatory_process.rb +2 -3
  33. data/app/controllers/decidim/devise/confirmations_controller.rb +2 -0
  34. data/app/controllers/decidim/devise/invitations_controller.rb +4 -0
  35. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +96 -0
  36. data/app/controllers/decidim/devise/passwords_controller.rb +2 -0
  37. data/app/controllers/decidim/devise/registrations_controller.rb +34 -0
  38. data/app/controllers/decidim/devise/sessions_controller.rb +1 -0
  39. data/app/controllers/decidim/pages_controller.rb +10 -2
  40. data/app/controllers/decidim/participatory_process_steps_controller.rb +16 -0
  41. data/app/controllers/decidim/participatory_processes_controller.rb +6 -11
  42. data/app/forms/decidim/form.rb +6 -6
  43. data/app/forms/decidim/invite_admin_form.rb +37 -0
  44. data/app/forms/decidim/omniauth_registration_form.rb +24 -0
  45. data/app/forms/decidim/registration_form.rb +41 -0
  46. data/app/helpers/decidim/filters_helper.rb +21 -0
  47. data/app/helpers/decidim/layout_helper.rb +17 -1
  48. data/app/helpers/decidim/omniauth_helper.rb +23 -0
  49. data/app/helpers/decidim/paginate_helper.rb +21 -0
  50. data/app/helpers/decidim/participatory_process_helper.rb +14 -0
  51. data/app/helpers/decidim/participatory_process_steps_helper.rb +17 -0
  52. data/app/mailers/decidim/decidim_devise_mailer.rb +2 -2
  53. data/app/models/decidim/feature.rb +40 -0
  54. data/app/models/decidim/identity.rb +12 -0
  55. data/app/models/decidim/organization.rb +3 -10
  56. data/app/models/decidim/user.rb +3 -1
  57. data/app/models/decidim/user_group.rb +18 -0
  58. data/app/models/decidim/user_group_membership.rb +9 -0
  59. data/app/services/decidim/authorization_handler.rb +13 -13
  60. data/app/services/decidim/resource_search.rb +52 -0
  61. data/app/uploaders/decidim/organization_logo_uploader.rb +1 -1
  62. data/app/views/decidim/authorizations/new.html.erb +3 -1
  63. data/app/views/decidim/devise/omniauth_registrations/new.html.erb +40 -0
  64. data/app/views/decidim/devise/registrations/new.html.erb +21 -1
  65. data/app/views/decidim/devise/sessions/new.html.erb +1 -0
  66. data/app/views/decidim/devise/shared/_links.html.erb +0 -8
  67. data/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +21 -0
  68. data/app/views/decidim/participatory_process_steps/_participatory_process_step.html.erb +16 -0
  69. data/app/views/decidim/participatory_process_steps/_timeline.html.erb +7 -0
  70. data/app/views/decidim/participatory_process_steps/index.html.erb +12 -0
  71. data/app/views/decidim/participatory_processes/show.html.erb +5 -5
  72. data/app/views/decidim/shared/_login_modal.html.erb +30 -0
  73. data/app/views/devise/mailer/invite_admin.html.erb +17 -0
  74. data/app/views/devise/mailer/invite_admin.text.erb +15 -0
  75. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +1 -1
  76. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +1 -1
  77. data/app/views/layouts/decidim/_application.html.erb +1 -0
  78. data/app/views/layouts/decidim/_header.html.erb +1 -1
  79. data/app/views/layouts/decidim/_meta.html.erb +1 -0
  80. data/app/views/layouts/decidim/_process_header.html.erb +12 -1
  81. data/app/views/layouts/decidim/_process_header_steps.html.erb +1 -0
  82. data/app/views/layouts/decidim/_social_meta.html.erb +11 -0
  83. data/app/views/layouts/decidim/participatory_process.html.erb +4 -0
  84. data/app/views/pages/home.html.erb +29 -2
  85. data/config/i18n-tasks.yml +1 -0
  86. data/config/initializers/devise.rb +10 -1
  87. data/config/locales/ca.yml +45 -3
  88. data/config/locales/en.yml +45 -3
  89. data/config/locales/es.yml +45 -3
  90. data/config/routes.rb +9 -2
  91. data/config/secrets.yml +36 -0
  92. data/db/migrate/20170110133113_add_configuration_to_features.rb +7 -0
  93. data/db/migrate/20170110153807_add_handler_to_organization.rb +5 -0
  94. data/db/migrate/20170116110851_create_identities.rb +11 -0
  95. data/db/migrate/20170116135237_loosen_step_requirements.rb +6 -0
  96. data/db/migrate/20170117142904_add_uniqueness_field_to_authorizations.rb +7 -0
  97. data/db/migrate/20170119145359_create_user_groups.rb +11 -0
  98. data/db/migrate/20170119150255_create_user_group_memberships.rb +12 -0
  99. data/db/migrate/20170119150649_add_show_statistics_to_organization.rb +5 -0
  100. data/db/migrate/20170120120733_add_user_groups_verified.rb +5 -0
  101. data/db/seeds.rb +45 -79
  102. data/lib/decidim/core.rb +8 -0
  103. data/lib/decidim/core/engine.rb +8 -0
  104. data/lib/decidim/core/test/factories.rb +188 -0
  105. data/lib/decidim/core/version.rb +1 -1
  106. data/lib/decidim/devise_failure_app.rb +1 -0
  107. data/lib/decidim/feature_manifest.rb +27 -0
  108. data/lib/decidim/features/base_controller.rb +8 -3
  109. data/lib/decidim/features/settings_manifest.rb +94 -0
  110. data/lib/decidim/filter_form_builder.rb +56 -0
  111. data/lib/decidim/form_builder.rb +4 -7
  112. data/vendor/assets/javascripts/svg-injector.js +464 -0
  113. metadata +142 -26
  114. data/app/assets/stylesheets/decidim/modules/_owl-carousel.scss +0 -72
  115. data/app/assets/stylesheets/decidim/modules/_phase-nav.scss +0 -177
  116. data/app/assets/stylesheets/decidim/utils/_helpers.sass +0 -21
  117. data/app/assets/stylesheets/decidim/utils/_keyframes.sass +0 -13
  118. data/app/assets/stylesheets/decidim/utils/_mixins.sass +0 -33
@@ -27,11 +27,3 @@
27
27
  <%= link_to t("devise.shared.links.didn_t_receive_unlock_instructions"), new_unlock_path(resource_name) %>
28
28
  </p>
29
29
  <% end -%>
30
-
31
- <%- if devise_mapping.omniauthable? %>
32
- <%- resource_class.omniauth_providers.each do |provider| %>
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>
36
- <% end -%>
37
- <% end -%>
@@ -0,0 +1,21 @@
1
+ <%- if devise_mapping.omniauthable? && any_social_provider_enabled? %>
2
+ <div class="row">
3
+ <div class="columns large-4 mediumlarge-6 medium-8 medium-centered">
4
+ <span class="register__separator">
5
+ <span class="register__separator__text"><%= t('.or') %></span>
6
+ </span>
7
+ <%- resource_class.omniauth_providers.each do |provider| %>
8
+ <% if social_provider_enabled? provider %>
9
+ <div class="social-register">
10
+ <%= link_to decidim.send("user_#{provider}_omniauth_authorize_path"), class: "button button--social button--#{normalize_provider_name(provider)}" do %>
11
+ <span class="button--social__icon">
12
+ <%= icon normalize_provider_name(provider) %>
13
+ </span>
14
+ <%= t("devise.shared.links.sign_in_with_provider", provider: normalize_provider_name(provider).titleize) %>
15
+ <% end %>
16
+ </div>
17
+ <% end %>
18
+ <% end %>
19
+ </div>
20
+ </div>
21
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <li class="<%= "timeline__item #{step_status_class}" %>">
2
+ <div class="timeline__phase">
3
+ <span class="timeline__phase__number"><%= participatory_process_step.position + 1 %></span>
4
+ </div>
5
+ <div class="timeline__info">
6
+ <div class="timeline__header">
7
+ <span class="timeline__date text-small">
8
+ <%= participatory_process_step_dates(participatory_process_step) %>
9
+ </span>
10
+ <h6 class="timeline__title heading6"><%= t('.info') %></h6>
11
+ </div>
12
+ <div class="timeline__content">
13
+ <%= translated_attribute(participatory_process_step.description).html_safe %>
14
+ </div>
15
+ </div>
16
+ </li>
@@ -0,0 +1,7 @@
1
+ <ol class="timeline">
2
+ <% past_step = true %>
3
+ <% current_participatory_process.steps.each do |step| %>
4
+ <%= render step, step_status_class: step_class(step, past_step) %>
5
+ <% past_step = false if step.active? %>
6
+ <% end %>
7
+ </ol>
@@ -0,0 +1,12 @@
1
+ <main class="wrapper steps">
2
+ <div class="row column">
3
+ <div class="row">
4
+ <div class="columns mediumlarge-9 large-7">
5
+ <div class="section">
6
+ <h4 class="section-heading"><%= t('.process_steps') %></h4>
7
+ <%= render partial: 'timeline' %>
8
+ </div>
9
+ </div>
10
+ </div>
11
+ </div>
12
+ </main>
@@ -3,18 +3,18 @@
3
3
  <div class="columns medium-7 mediumlarge-8">
4
4
  <div class="section">
5
5
  <div class="lead">
6
- <%== translated_attribute(participatory_process.short_description) %>
6
+ <%== translated_attribute(current_participatory_process.short_description) %>
7
7
  </div>
8
- <%== translated_attribute(participatory_process.description) %>
8
+ <%== translated_attribute(current_participatory_process.description) %>
9
9
  </div>
10
10
  </div>
11
11
  </div>
12
12
  </div>
13
- <% if participatory_process.attachments.any? %>
13
+ <% if current_participatory_process.attachments.any? %>
14
14
  <div class="row attachments">
15
15
  <div class="columns large-8">
16
- <%= render partial: "documents", locals: { documents: participatory_process.documents } %>
17
- <%= render partial: "photos", locals: { photos: participatory_process.photos } %>
16
+ <%= render partial: "documents", locals: { documents: current_participatory_process.documents } %>
17
+ <%= render partial: "photos", locals: { photos: current_participatory_process.photos } %>
18
18
  </div>
19
19
  </div>
20
20
  <% end %>
@@ -0,0 +1,30 @@
1
+ <div class="reveal" id="loginModal" data-reveal>
2
+ <div class="reveal__header">
3
+ <h3 class="reveal__title"><%= t('.please_sign_in') %></h3>
4
+ <button class="close-button" data-close aria-label="Close modal"
5
+ type="button">
6
+ <span aria-hidden="true">&times;</span>
7
+ </button>
8
+ </div>
9
+ <div class="row">
10
+ <div class="columns medium-8 medium-centered">
11
+ <%= form_for(Decidim::User.new, as: :user, url: session_path(:user), html: { class: "register-form new_user" }) do |f| %>
12
+ <div>
13
+ <div class="field">
14
+ <%= f.email_field :email, autofocus: true %>
15
+ </div>
16
+ <div class="field">
17
+ <%= f.password_field :password, autocomplete: "off" %>
18
+ </div>
19
+ </div>
20
+ <div class="actions">
21
+ <%= f.submit t("devise.sessions.new.sign_in"), class: "button expanded" %>
22
+ </div>
23
+ <% end %>
24
+
25
+ <p class="text-center">
26
+ <%= link_to t('.sign_up'), decidim.new_user_registration_path, class: "sign-up-link" %>
27
+ </p>
28
+ </div>
29
+ </div>
30
+ </div>
@@ -0,0 +1,17 @@
1
+ <p><%= t("devise.mailer.invitation_instructions.hello", email: @resource.name) %></p>
2
+
3
+ <p>
4
+ <% if @resource.invited_by.present? %>
5
+ <%= t("devise.mailer.invitation_instructions.invited_you_as_admin", invited_by: @resource.invited_by.name, application: @resource.organization.name) %>
6
+ <% else %>
7
+ <%= t("devise.mailer.invitation_instructions.someone_invited_you", application: @resource.organization.name) %>
8
+ <% end %>
9
+ </p>
10
+
11
+ <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>
12
+
13
+ <% if @resource.invitation_due_at %>
14
+ <p><%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :long)) %></p>
15
+ <% end %>
16
+
17
+ <p><%= t("devise.mailer.invitation_instructions.ignore").html_safe %></p>
@@ -0,0 +1,15 @@
1
+ <%= t("devise.mailer.invitation_instructions.hello", email: @resource.name) %>
2
+
3
+ <% if @resource.invited_by.present? %>
4
+ <%= t("devise.mailer.invitation_instructions.invited_you_as_admin", invited_by: @resource.invited_by.name, application: @resource.organization.name) %>
5
+ <% else %>
6
+ <%= t("devise.mailer.invitation_instructions.you_are_now_admin", application: @resource.organization.name) %>
7
+ <% end %>
8
+
9
+ <%= accept_invitation_url(@resource, invitation_token: @token, invite_redirect: decidim_admin.root_path, host: @resource.organization.host) %>
10
+
11
+ <% if @resource.invitation_due_at %>
12
+ <%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :long)) %>
13
+ <% end %>
14
+
15
+ <%= t("devise.mailer.invitation_instructions.ignore").html_safe %>
@@ -1,6 +1,6 @@
1
1
  <p><%= t("devise.mailer.invitation_instructions.hello", email: @resource.email) %></p>
2
2
 
3
- <p><%= t("devise.mailer.invitation_instructions.someone_invited_you", application: Decidim.config.application_name) %></p>
3
+ <p><%= t("devise.mailer.invitation_instructions.someone_invited_you", application: @resource.organization.name) %></p>p>
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 %>
@@ -1,6 +1,6 @@
1
1
  <%= t("devise.mailer.invitation_instructions.hello", email: @resource.email) %>
2
2
 
3
- <%= t("devise.mailer.invitation_instructions.someone_invited_you", application: Decidim.config.application_name) %>
3
+ <%= t("devise.mailer.invitation_instructions.someone_invited_you", application: @resource.organization.name) %>
4
4
 
5
5
  <%= accept_invitation_url(@resource, invitation_token: @token, invite_redirect: decidim_admin.root_path, host: @resource.organization.host) %>
6
6
 
@@ -7,6 +7,7 @@
7
7
  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
8
8
  <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
9
9
  <%= render partial: 'layouts/decidim/meta' %>
10
+ <%= render partial: 'layouts/decidim/social_meta' %>
10
11
  </head>
11
12
 
12
13
  <body>
@@ -1,6 +1,6 @@
1
1
  <div class="off-canvas-wrapper">
2
2
  <div class="off-canvas-wrapper-inner" data-off-canvas-wrapper>
3
- <div class="off-canvas position-right" data-position="right"
3
+ <div class="off-canvas position-right hide-for-large" data-position="right"
4
4
  id="offCanvas" data-off-canvas>
5
5
  <!-- Close button -->
6
6
  <button class="close-button"
@@ -1,3 +1,4 @@
1
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
1
2
  <% available_locales.each do |locale| %>
2
3
  <link rel="alternate" href="<%= url_for(request.parameters.merge(locale: locale)) %>" hreflang="<%= locale %>" />
3
4
  <% end %>
@@ -21,9 +21,20 @@
21
21
  <div class="process-nav">
22
22
  <div class="row column process-nav__content">
23
23
  <ul>
24
+ <li>
25
+ <%= active_link_to decidim.participatory_process_path(current_participatory_process), active: :exact, class: "process-nav__link", class_active: "is-active" do %>
26
+ <%= icon "process" %>
27
+ <%= t ".process_menu_item" %>
28
+ <% end %>
29
+ </li>
30
+
24
31
  <% current_participatory_process.features.each do |feature| %>
25
32
  <li>
26
- <%= link_to translated_attribute(feature.name), decidim.feature_path(current_participatory_process, feature), class: "process-nav__link" %>
33
+ <%= active_link_to decidim.feature_path(current_participatory_process, feature), class: "process-nav__link", active: :inclusive, class_active: "is-active" do %>
34
+ <%= feature_icon(feature) %>
35
+
36
+ <%= translated_attribute(feature.name) %>
37
+ <% end %>
27
38
  </li>
28
39
  <% end %>
29
40
  </ul>
@@ -21,6 +21,7 @@
21
21
  <%= participatory_process_step_dates participatory_process.active_step %>
22
22
  </span>
23
23
  </div>
24
+ <%= link_to t('.view_steps'), decidim.participatory_process_participatory_process_steps_path(current_participatory_process), class: "button tiny hollow" %>
24
25
  </div>
25
26
  </div>
26
27
  <% end %>
@@ -0,0 +1,11 @@
1
+ <meta name="twitter:card" content="summary_large_image" />
2
+ <meta name="twitter:site" content="@<%= content_for(:twitter_handler) %>" />
3
+ <meta name="twitter:title" content="<%= content_for(:meta_title) %>" />
4
+ <meta name="twitter:description" content="<%= content_for(:meta_description) %>" />
5
+ <meta name="twitter:image" content="<%= content_for(:meta_image_url) %>" />
6
+
7
+ <meta property="og:url" content="<%= content_for(:meta_url) %>" />
8
+ <meta property="og:type" content="article" />
9
+ <meta property="og:title" content="<%= content_for(:meta_title) %>" />
10
+ <meta property="og:description" content="<%= content_for(:meta_description) %>" />
11
+ <meta property="og:image" content="<%= content_for(:meta_image_url) %>" />
@@ -1,3 +1,7 @@
1
+ <% content_for :meta_image_url do %>
2
+ <% current_participatory_process.banner_image.url %>
3
+ <% end %>
4
+
1
5
  <%= render "layouts/decidim/application" do %>
2
6
  <div class="wrapper">
3
7
  <%= render partial: "layouts/decidim/process_header" %>
@@ -39,7 +39,7 @@
39
39
  <div class="row collapse">
40
40
  <div class="row small-up-1 smallmedium-up-2 mediumlarge-up-3
41
41
  large-up-4 card-grid">
42
- <% participatory_processes.each do |process| %>
42
+ <% promoted_participatory_processes.each do |process| %>
43
43
  <div class="column">
44
44
  <article class="card card--process card--mini">
45
45
  <%= link_to participatory_process_path(process), class: "card__link" do %>
@@ -70,6 +70,7 @@
70
70
  </div>
71
71
  </div>
72
72
  </section>
73
+
73
74
  <section class="extended">
74
75
  <div class="wrapper-home home-section">
75
76
  <div class="row column text-center">
@@ -117,4 +118,30 @@
117
118
  </div>
118
119
  </div>
119
120
  </div>
120
- </section>
121
+ </section>
122
+
123
+ <% if current_organization.show_statistics? %>
124
+ <section class="extended" id="statistics">
125
+ <div class="wrapper-home">
126
+ <div class="row column text-center">
127
+ <h3 class="heading2"><%= t(".stats.headline", organization: current_organization.name) %></h3>
128
+ </div>
129
+ <div class="row">
130
+ <div class="columns small-centered mediumlarge-10 large-8">
131
+ <div class="home-pam">
132
+ <div class="home-pam__highlight">
133
+ <div class="home-pam__data">
134
+ <h4 class="home-pam__title"><%= t(".stats.users") %></h4>
135
+ <span class="home-pam__number users-count"><%= users.count %></span>
136
+ </div>
137
+ <div class="home-pam__data">
138
+ <h4 class="home-pam__title"><%= t(".stats.processes") %></h4>
139
+ <span class="home-pam__number processes-count"><%= participatory_processes.count %></span>
140
+ </div>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ </section>
147
+ <% end %>
@@ -92,6 +92,7 @@ ignore_unused:
92
92
  - devise.mailer.password_change.subject
93
93
  - activerecord.attributes.decidim/user.*
94
94
  - activerecord.models.decidim/user
95
+ - activemodel.attributes.user.*
95
96
  - booleans.*
96
97
  - errors.messages.file_size_is_less_than_or_equal_to
97
98
  - errors.messages.nesting_too_deep
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ # rubocop:disable Metrics/BlockLength
2
3
  # Use this hook to configure devise mailer, warden hooks and so forth.
3
4
  # Many of these configuration options can be set straight in your model.
4
5
 
@@ -299,7 +300,15 @@ Devise.setup do |config|
299
300
  # ==> OmniAuth
300
301
  # Add a new OmniAuth provider. Check the wiki for more information on setting
301
302
  # up on your models and hooks.
302
- # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
303
+ if Rails.application.secrets.dig(:omniauth, "facebook").present?
304
+ config.omniauth :facebook, Rails.application.secrets.omniauth["facebook"]["app_id"], Rails.application.secrets.omniauth["facebook"]["app_secret"], scope: :email, info_fields: "name,email,verified"
305
+ end
306
+ if Rails.application.secrets.dig(:omniauth, "twitter").present?
307
+ config.omniauth :twitter, Rails.application.secrets.omniauth["twitter"]["api_key"], Rails.application.secrets.omniauth["twitter"]["api_secret"]
308
+ end
309
+ if Rails.application.secrets.dig(:omniauth, "google_oauth2").present?
310
+ config.omniauth :google_oauth2, Rails.application.secrets.omniauth["google_oauth2"]["client_id"], Rails.application.secrets.omniauth["google_oauth2"]["client_secret"]
311
+ end
303
312
 
304
313
  # ==> Warden configuration
305
314
  # If you want to use other strategies, that are not supported by Devise, or
@@ -1,4 +1,10 @@
1
1
  ca:
2
+ activemodel:
3
+ attributes:
4
+ user:
5
+ user_group_document_number: Número de document acreditatiu
6
+ user_group_name: Nom de l'organització
7
+ user_group_phone: Telèfon de l'organització
2
8
  activerecord:
3
9
  attributes:
4
10
  decidim/user:
@@ -26,6 +32,8 @@ ca:
26
32
  title: El meu compte
27
33
  authorization_handlers:
28
34
  decidim/dummy_authorization_handler: Autorització d'exemple
35
+ errors:
36
+ duplicate_authorization: Un usuari ja està autoritzat amb les mateixes dades.
29
37
  authorizations:
30
38
  create:
31
39
  error: S'ha produït un error en crear l'autorització.
@@ -46,11 +54,22 @@ ca:
46
54
  actions:
47
55
  unauthorized: No tens permís per realitzar aquesta acció
48
56
  devise:
57
+ omniauth_registrations:
58
+ create:
59
+ email_already_exists: Un altre compte està utilitzant la mateixa adreça de correu electrònic
60
+ new:
61
+ complete_profile: Completa el perfil
62
+ sign_up: Completi el seu perfil
63
+ subtitle: Si us plau, ompli el següent formulari per tal de completar la seva inscripció
49
64
  registrations:
50
65
  new:
51
66
  already_have_an_account?: Ja tens un compte?
52
67
  sign_in: Entra
53
68
  sign_up: Registra't
69
+ sign_up_as:
70
+ legend: Inscriure's com
71
+ user: Individu
72
+ user_group: Organització/Col·lectiu
54
73
  subtitle: Crea un compte per poder participar en els debats i donar suport a les propostes.
55
74
  terms: els termes i condicions d'ús
56
75
  tos_agreement: En registrar-te acceptes %{link}.
@@ -59,30 +78,45 @@ ca:
59
78
  new:
60
79
  are_you_new?: Ets nou a la plataforma?
61
80
  register: Crea't un compte
81
+ shared:
82
+ omniauth_buttons:
83
+ or: O
62
84
  menu:
63
85
  home: Inici
64
86
  processes: Processos
87
+ participatory_process_steps:
88
+ index:
89
+ process_steps: Fases del procés
90
+ participatory_process_step:
91
+ info: Informació
65
92
  participatory_processes:
66
93
  documents:
67
94
  related_documents: Documents relacionats
68
95
  photos:
69
96
  related_photos: Fotos relacionades
97
+ shared:
98
+ login_modal:
99
+ please_sign_in: Si us plau, inicii sessió
100
+ sign_up: Donar-se d'alta
70
101
  devise:
71
102
  mailer:
72
103
  invitation_instructions:
73
104
  accept: Acceptar invitació
74
105
  accept_until: Aquesta invitació caducarà el dia %{due_date}.
75
- hello: Hola %{email}
106
+ hello: Hola %{email},
76
107
  ignore: |-
77
108
  Si no vols acceptar la invitació, ignora aquest correu.<br />
78
109
  El teu compte no es crearà fins que no accedeixis a l'enllaç de sota i triïs la teva contrasenya.
110
+ invited_you_as_admin: "%{invited_by} t'ha convidat com un administrador de %{application}, pots acceptar-ho mitjançant el següent enllaç."
79
111
  someone_invited_you: Algú t'ha convidat a %{application}, pots acceptar la invitació amb l'enllaç a continuació.
112
+ invite_admin:
113
+ subject: Has estat convidat a gestionar %{organization}
80
114
  organization_admin_invitation_instructions:
81
- subject: T'han convidat a administrar %{organization}
115
+ subject: Has estat convidat a gestionar %{organization}
82
116
  password_change:
83
117
  greeting: Hola %{recipient}!
84
118
  message: Ens posem en contacte amb tu per notificar-te que la teva contrasenya ha estat canviada correctament.
85
- subject: Contrasenya canviada
119
+ subject: Contrasenya modificada
86
120
  errors:
87
121
  messages:
88
122
  file_size_is_less_than_or_equal_to: la mida del fitxer ha de ser menor que o igual a %{count}
@@ -114,6 +148,10 @@ ca:
114
148
  active_step: 'Fase actual:'
115
149
  more_info: Més informació
116
150
  take_part: Participa
151
+ process_header:
152
+ process_menu_item: El procés
153
+ process_header_steps:
154
+ view_steps: Veure les fases
117
155
  user_menu:
118
156
  profile: El meu compte
119
157
  sign_out: Surt
@@ -142,6 +180,10 @@ ca:
142
180
  proposals_explanation: Espai obert de propostes dels ciutadans sobre quin tipus de ciutat volem viure.
143
181
  register: Registra't
144
182
  see_all_processes: Mostra tots els processos
183
+ stats:
184
+ headline: Estat actual de %{organization}
185
+ processes: Processos
186
+ users: Usuaris
145
187
  welcome: Benvingut/da a %{organization}!
146
188
  views:
147
189
  pagination: