decidim-core 0.32.0.rc3 → 0.32.1
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.
- checksums.yaml +4 -4
- data/app/cells/decidim/author_cell.rb +0 -4
- data/app/cells/decidim/comments_button_cell.rb +9 -1
- data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb +1 -1
- data/app/cells/decidim/data_consent/category.erb +20 -33
- data/app/cells/decidim/footer_topics/show.erb +5 -8
- data/app/cells/decidim/share_widget/qr_code_modal.erb +1 -1
- data/app/commands/decidim/destroy_account.rb +12 -1
- data/app/commands/decidim/multiple_attachments_methods.rb +28 -27
- data/app/helpers/decidim/menu_helper.rb +0 -2
- data/app/jobs/decidim/process_inactive_participant_job.rb +0 -7
- data/app/mailers/decidim/delete_user_mailer.rb +14 -0
- data/app/mailers/decidim/participants_account_mailer.rb +0 -16
- data/app/models/decidim/user.rb +2 -2
- data/app/packs/src/decidim/controllers/accordion/accordion.test.js +196 -42
- data/app/packs/src/decidim/controllers/accordion/controller.js +93 -17
- data/app/packs/src/decidim/controllers/dropdown/controller.js +6 -0
- data/app/packs/src/decidim/controllers/dropdown/dropdown.test.js +28 -0
- data/app/packs/src/decidim/controllers/main_menu/controller.js +37 -0
- data/app/packs/src/decidim/controllers/main_menu/main_menu.test.js +100 -0
- data/app/packs/src/decidim/controllers/mention/controller.js +296 -140
- data/app/packs/src/decidim/controllers/mention/input_mentions.test.js +120 -457
- data/app/packs/src/decidim/controllers/multiple_mentions/controller.js +68 -32
- data/app/packs/src/decidim/controllers/multiple_mentions/input_multiple_mentions.test.js +30 -23
- data/app/packs/src/decidim/controllers/password_toggler/controller.js +22 -1
- data/app/packs/src/decidim/controllers/password_toggler/password_toggler.test.js +11 -20
- data/app/packs/src/decidim/direct_uploads/upload_modal.js +2 -1
- data/app/packs/src/decidim/editor/common/suggestion.js +3 -1
- data/app/packs/src/decidim/editor/extensions/indent/index.js +9 -0
- data/app/packs/src/decidim/geocoding/reverse_geocoding.js +15 -5
- data/app/packs/src/decidim/geocoding/reverse_geocoding.test.js +197 -0
- data/app/packs/src/decidim/index.js +2 -2
- data/app/packs/src/decidim/map/controller.js +10 -1
- data/app/packs/src/decidim/refactor/moved/focus_guard.js +12 -12
- data/app/packs/src/decidim/refactor/moved/focus_guard.test.js +136 -0
- data/app/packs/stylesheets/decidim/_cards.scss +1 -1
- data/app/packs/stylesheets/decidim/_conversations.scss +14 -0
- data/app/packs/stylesheets/decidim/_cookies.scss +13 -5
- data/app/packs/stylesheets/decidim/_documents.scss +1 -1
- data/app/packs/stylesheets/decidim/_dropdown.scss +1 -1
- data/app/packs/stylesheets/decidim/_editor_suggestions.scss +49 -0
- data/app/packs/stylesheets/decidim/_footer.scss +33 -1
- data/app/packs/stylesheets/decidim/_header.scss +12 -8
- data/app/packs/stylesheets/decidim/_participatory_spaces.scss +1 -1
- data/app/packs/stylesheets/decidim/_tom_select.scss +23 -0
- data/app/packs/stylesheets/decidim/application.scss +2 -0
- data/app/packs/stylesheets/decidim/editor.scss +2 -33
- data/app/packs/stylesheets/decidim/geocoding_addons.scss +10 -2
- data/app/presenters/decidim/footer_menu_presenter.rb +2 -4
- data/app/resolvers/decidim/meta_image_url_resolver.rb +7 -0
- data/app/uploaders/decidim/image_uploader.rb +1 -1
- data/app/views/decidim/delete_user_mailer/delete.html.erb +6 -0
- data/app/views/decidim/messaging/conversations/_error_modal.html.erb +11 -19
- data/app/views/decidim/messaging/conversations/error.js.erb +12 -7
- data/app/views/decidim/searches/_filters.html.erb +1 -1
- data/app/views/layouts/decidim/footer/_main.html.erb +1 -1
- data/app/views/layouts/decidim/footer/_main_links.html.erb +56 -28
- data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile.html.erb +2 -1
- data/config/locales/ar.yml +0 -2
- data/config/locales/bg.yml +0 -2
- data/config/locales/ca-IT.yml +27 -10
- data/config/locales/ca.yml +27 -10
- data/config/locales/cs.yml +26 -9
- data/config/locales/de.yml +4 -13
- data/config/locales/el.yml +0 -1
- data/config/locales/en.yml +26 -9
- data/config/locales/es-MX.yml +26 -9
- data/config/locales/es-PY.yml +26 -9
- data/config/locales/es.yml +26 -9
- data/config/locales/eu.yml +41 -10
- data/config/locales/fi-plain.yml +25 -8
- data/config/locales/fi.yml +25 -8
- data/config/locales/fr-CA.yml +30 -9
- data/config/locales/fr.yml +30 -9
- data/config/locales/hu.yml +0 -2
- data/config/locales/it.yml +0 -2
- data/config/locales/ja.yml +84 -19
- data/config/locales/lb.yml +0 -2
- data/config/locales/lt.yml +0 -2
- data/config/locales/nl.yml +0 -2
- data/config/locales/no.yml +0 -2
- data/config/locales/pl.yml +4 -4
- data/config/locales/pt-BR.yml +2 -11
- data/config/locales/pt.yml +0 -2
- data/config/locales/ro-RO.yml +1 -10
- data/config/locales/sk.yml +1 -10
- data/config/locales/sv.yml +0 -9
- data/config/locales/tr-TR.yml +0 -2
- data/config/locales/zh-CN.yml +0 -2
- data/config/locales/zh-TW.yml +0 -2
- data/db/migrate/20250217192438_convert_user_groups_into_users.rb +3 -2
- data/decidim-core.gemspec +4 -1
- data/lib/decidim/attachment_attributes.rb +58 -9
- data/lib/decidim/command.rb +1 -1
- data/lib/decidim/core/content_blocks/registry_manager.rb +4 -4
- data/lib/decidim/core/engine.rb +8 -0
- data/lib/decidim/core/test/factories.rb +3 -0
- data/lib/decidim/core/test/shared_examples/access_mode_restricted_participatory_spaces.rb +8 -5
- data/lib/decidim/core/test/shared_examples/access_mode_transparent_participatory_spaces.rb +14 -11
- data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +10 -10
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +32 -6
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/core.rb +1 -1
- data/lib/decidim/map/autocomplete.rb +4 -3
- data/lib/decidim/map/dynamic_map.rb +3 -1
- data/lib/decidim/searchable.rb +5 -0
- data/lib/decidim/view_model.rb +1 -1
- data/lib/tasks/decidim_mailers_tasks.rake +31 -9
- metadata +31 -9
- data/app/commands/decidim/gallery_methods.rb +0 -107
- data/app/packs/src/decidim/vendor/tribute.js +0 -1890
- data/app/packs/stylesheets/decidim/_tribute.scss +0 -36
- data/app/views/decidim/participants_account_mailer/removal_notification.html.erb +0 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2c6e0e725b51232026afe0dfeb5bdf73eeaf07f88d346202d4854ef47c093908
|
|
4
|
+
data.tar.gz: ee494f4ab056b6f6debfe4590b885178eb39351e516efb9d98f174eab52b4a1e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d01d66392ab3be5f859ac9791375a83f9d810abd6ee909af6b1e8cf5d833da3a20806e8eed83c05142013d7c9166a12c31fa2ec128b6b4c9a61d8a5e34e7caba
|
|
7
|
+
data.tar.gz: '09c6891b8ab26cde54ead3bb2f0876c4cd04c88d3309c1855c3afce7c11297bfb95cf3d07e8dbabafa67a390882503f7b0595f4574f01c90050847392b217d31'
|
|
@@ -23,7 +23,9 @@ module Decidim
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def path
|
|
26
|
-
"#add-comment-anchor"
|
|
26
|
+
return "#add-comment-anchor" if current_user
|
|
27
|
+
|
|
28
|
+
nil
|
|
27
29
|
end
|
|
28
30
|
|
|
29
31
|
def text
|
|
@@ -37,5 +39,11 @@ module Decidim
|
|
|
37
39
|
def button_classes
|
|
38
40
|
"button button__sm button__transparent-secondary add-comment-mobile"
|
|
39
41
|
end
|
|
42
|
+
|
|
43
|
+
def html_options
|
|
44
|
+
return {} if current_user
|
|
45
|
+
|
|
46
|
+
{ data: { "dialog-open": "loginModal" } }
|
|
47
|
+
end
|
|
40
48
|
end
|
|
41
49
|
end
|
|
@@ -32,7 +32,7 @@ module Decidim
|
|
|
32
32
|
private
|
|
33
33
|
|
|
34
34
|
def render?
|
|
35
|
-
required_keys = [:title, :
|
|
35
|
+
required_keys = [:title, :action_button_title, :action_button_subtitle, :action_button_url]
|
|
36
36
|
required_keys.all? { |key| model.settings.public_send(key).present? }
|
|
37
37
|
end
|
|
38
38
|
end
|
|
@@ -28,7 +28,7 @@ module Decidim
|
|
|
28
28
|
private
|
|
29
29
|
|
|
30
30
|
def cache_hash
|
|
31
|
-
[I18n.locale, highlighted_spaces.map(&:cache_key_with_version)].join(Decidim.cache_key_separator)
|
|
31
|
+
[I18n.locale, model.cache_key_with_version, highlighted_spaces.map(&:cache_key_with_version)].join(Decidim.cache_key_separator)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def section_class
|
|
@@ -30,39 +30,26 @@
|
|
|
30
30
|
<p><%= category[:description] %></p>
|
|
31
31
|
|
|
32
32
|
<% if category[:items].present? %>
|
|
33
|
-
<
|
|
34
|
-
<
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
</
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<div class="cookies__category-panel__td">
|
|
55
|
-
<%= item[:name] %>
|
|
56
|
-
</div>
|
|
57
|
-
<div class="cookies__category-panel__td">
|
|
58
|
-
<%= t("layouts.decidim.data_consent.details.items.#{item[:name]}.service") %>
|
|
59
|
-
</div>
|
|
60
|
-
<div class="cookies__category-panel__td">
|
|
61
|
-
<%= t("layouts.decidim.data_consent.details.items.#{item[:name]}.description") %>
|
|
62
|
-
</div>
|
|
63
|
-
</div>
|
|
64
|
-
<% end %>
|
|
65
|
-
</div>
|
|
33
|
+
<table>
|
|
34
|
+
<thead>
|
|
35
|
+
<tr>
|
|
36
|
+
<th><%= t("layouts.decidim.data_consent.details.columns.type") %></th>
|
|
37
|
+
<th><%= t("layouts.decidim.data_consent.details.columns.name") %></th>
|
|
38
|
+
<th><%= t("layouts.decidim.data_consent.details.columns.service") %></th>
|
|
39
|
+
<th><%= t("layouts.decidim.data_consent.details.columns.description") %></th>
|
|
40
|
+
</tr>
|
|
41
|
+
</thead>
|
|
42
|
+
<tbody>
|
|
43
|
+
<% category[:items].each do |item| %>
|
|
44
|
+
<tr>
|
|
45
|
+
<td><%= t("layouts.decidim.data_consent.details.types.#{item[:type]}") %></td>
|
|
46
|
+
<td><%= item[:name] %></td>
|
|
47
|
+
<td><%= t("layouts.decidim.data_consent.details.items.#{item[:name]}.service") %></td>
|
|
48
|
+
<td><%= t("layouts.decidim.data_consent.details.items.#{item[:name]}.description") %></td>
|
|
49
|
+
</tr>
|
|
50
|
+
<% end %>
|
|
51
|
+
</tbody>
|
|
52
|
+
</table>
|
|
66
53
|
<% end %>
|
|
67
54
|
</div>
|
|
68
55
|
</div>
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<% end %>
|
|
7
|
-
</ul>
|
|
8
|
-
</nav>
|
|
1
|
+
<ul>
|
|
2
|
+
<% topics.each do |topic| %>
|
|
3
|
+
<%= topic_item(topic, class: "font-semibold underline") %>
|
|
4
|
+
<% end %>
|
|
5
|
+
</ul>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div data-dialog-container>
|
|
3
3
|
<div data-dialog-title>
|
|
4
4
|
<%= icon "qr-code-line" %>
|
|
5
|
-
<h2 tabindex="-1"><%= t("decidim.share_widget.qr_code") %></h2>
|
|
5
|
+
<h2 id="dialog-title-qr-code-dialog" tabindex="-1"><%= t("decidim.share_widget.qr_code") %></h2>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="content">
|
|
8
8
|
<div>
|
|
@@ -15,7 +15,7 @@ module Decidim
|
|
|
15
15
|
def call
|
|
16
16
|
return broadcast(:invalid) unless @form.valid?
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
with_events(with_transaction: true) do
|
|
19
19
|
destroy_user_account!
|
|
20
20
|
destroy_user_identities
|
|
21
21
|
destroy_follows
|
|
@@ -110,5 +110,16 @@ module Decidim
|
|
|
110
110
|
space_manifest.invoke_on_destroy_account(current_user)
|
|
111
111
|
end
|
|
112
112
|
end
|
|
113
|
+
|
|
114
|
+
# We use memoization in this particular email, as we want to have the data available before the actual anonymization
|
|
115
|
+
def event_arguments
|
|
116
|
+
@event_arguments ||= {
|
|
117
|
+
user_id: current_user.id,
|
|
118
|
+
user_email: current_user.email,
|
|
119
|
+
user_name: current_user.name,
|
|
120
|
+
locale: current_user.locale,
|
|
121
|
+
organization: current_user.organization
|
|
122
|
+
}
|
|
123
|
+
end
|
|
113
124
|
end
|
|
114
125
|
end
|
|
@@ -5,16 +5,16 @@ module Decidim
|
|
|
5
5
|
private
|
|
6
6
|
|
|
7
7
|
def build_attachments
|
|
8
|
-
@
|
|
9
|
-
@form.
|
|
8
|
+
@attachments = []
|
|
9
|
+
@form.add_attachments.compact_blank.each do |attachment|
|
|
10
10
|
if attachment.is_a?(Hash) && attachment.has_key?(:id)
|
|
11
11
|
update_attachment_title_for(attachment)
|
|
12
12
|
next
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
@
|
|
15
|
+
@attachments << Attachment.new(
|
|
16
16
|
title: title_for(attachment),
|
|
17
|
-
attached_to: @attached_to ||
|
|
17
|
+
attached_to: @attached_to || attachments_attached_to,
|
|
18
18
|
file: signed_id_for(attachment),
|
|
19
19
|
content_type: content_type_for(attachment)
|
|
20
20
|
)
|
|
@@ -26,11 +26,11 @@ module Decidim
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def attachments_invalid?
|
|
29
|
-
@
|
|
30
|
-
next if
|
|
29
|
+
@attachments.each do |attachment|
|
|
30
|
+
next if attachment.valid? || !attachment.errors.has_key?(:file)
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
@form.errors.add(:
|
|
32
|
+
attachment.errors[:file].each do |error|
|
|
33
|
+
@form.errors.add(:add_attachments, error)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
return true
|
|
@@ -41,37 +41,38 @@ module Decidim
|
|
|
41
41
|
|
|
42
42
|
def create_attachments(first_weight: 0)
|
|
43
43
|
weight = first_weight
|
|
44
|
-
# Add the weights first to the old
|
|
45
|
-
|
|
46
|
-
Decidim::Attachment.where(id:
|
|
47
|
-
|
|
44
|
+
# Add the weights first to the old attachments
|
|
45
|
+
attachment_ids = keep_ids
|
|
46
|
+
Decidim::Attachment.where(id: attachment_ids).each do |attachment|
|
|
47
|
+
attachment.update!(weight:)
|
|
48
48
|
weight += 1
|
|
49
49
|
end
|
|
50
|
-
@
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
@attachments.map! do |attachment|
|
|
51
|
+
attachment.weight = weight
|
|
52
|
+
attachment.attached_to = attachments_attached_to
|
|
53
|
+
attachment.save!
|
|
54
54
|
weight += 1
|
|
55
|
-
@form.
|
|
55
|
+
@form.attachments << attachment
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
def
|
|
60
|
-
|
|
59
|
+
def attachment_cleanup!(include_all_attachments: false)
|
|
60
|
+
attachments = include_all_attachments ? attachments_attached_to.attachments.with_attached_file : attachments_attached_to.attachments
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
attachments.each do |attachment|
|
|
63
|
+
attachment.destroy! unless keep_ids.include?(attachment.id)
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
attachments_attached_to.reload
|
|
67
|
+
attachments_attached_to.instance_variable_set(:@attachments, nil)
|
|
68
|
+
attachments_attached_to.instance_variable_set(:@photos, nil)
|
|
68
69
|
end
|
|
69
70
|
|
|
70
71
|
def process_attachments?
|
|
71
|
-
@form.
|
|
72
|
+
@form.add_attachments.any?
|
|
72
73
|
end
|
|
73
74
|
|
|
74
|
-
def
|
|
75
|
+
def attachments_attached_to
|
|
75
76
|
return @attached_to if @attached_to.present?
|
|
76
77
|
return form.current_organization if form.respond_to?(:current_organization)
|
|
77
78
|
|
|
@@ -101,8 +102,8 @@ module Decidim
|
|
|
101
102
|
end
|
|
102
103
|
|
|
103
104
|
def keep_ids
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
attachments_array = Array(@form.attachments)
|
|
106
|
+
attachments_array.map do |doc|
|
|
106
107
|
case doc
|
|
107
108
|
when Decidim::Attachment
|
|
108
109
|
doc.id
|
|
@@ -55,10 +55,8 @@ module Decidim
|
|
|
55
55
|
@footer_menu ||= ::Decidim::FooterMenuPresenter.new(
|
|
56
56
|
:menu,
|
|
57
57
|
self,
|
|
58
|
-
element_class: "font-semibold underline",
|
|
59
58
|
active_class: "is-active",
|
|
60
59
|
role: false,
|
|
61
|
-
container_options: { class: "space-y-4 break-inside-avoid" },
|
|
62
60
|
label: t("layouts.decidim.footer.decidim_title")
|
|
63
61
|
)
|
|
64
62
|
end
|
|
@@ -31,13 +31,6 @@ module Decidim
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def process_remove_user(user)
|
|
34
|
-
email = user.email
|
|
35
|
-
name = user.name
|
|
36
|
-
locale = user.locale
|
|
37
|
-
organization = user.organization
|
|
38
|
-
|
|
39
|
-
ParticipantsAccountMailer.removal_notification(email, name, locale, organization).deliver_later
|
|
40
|
-
|
|
41
34
|
Decidim::DestroyAccount.call(
|
|
42
35
|
Decidim::DeleteAccountForm.from_params(
|
|
43
36
|
delete_reason: I18n.t("decidim.account.destroy.inactive_account_removal_reason", inactivity_period: Decidim.delete_inactive_users_after_days)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
class DeleteUserMailer < ApplicationMailer
|
|
5
|
+
# This email is being sent when a user deletes his own account, or when the user was inactive for too long.
|
|
6
|
+
def delete(user_email:, user_name:, locale:, organization:)
|
|
7
|
+
I18n.with_locale(locale) do
|
|
8
|
+
@user_name = user_name
|
|
9
|
+
@organization = organization
|
|
10
|
+
mail(to: user_email, subject: I18n.t("decidim.delete_user_mailer.subject"))
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -18,21 +18,5 @@ module Decidim
|
|
|
18
18
|
mail(to: user.email, subject:)
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
|
-
|
|
22
|
-
# Notify user about account removal due to inactivity
|
|
23
|
-
def removal_notification(email, name, locale, organization)
|
|
24
|
-
@email = email
|
|
25
|
-
@user_name = name
|
|
26
|
-
@organization = organization
|
|
27
|
-
|
|
28
|
-
I18n.with_locale(locale) do
|
|
29
|
-
subject = I18n.t(
|
|
30
|
-
"decidim.participants_account_mailer.removal_notification.subject",
|
|
31
|
-
organization_name: organization_name(@organization)
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
mail(to: email, subject:)
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
21
|
end
|
|
38
22
|
end
|
data/app/models/decidim/user.rb
CHANGED
|
@@ -21,8 +21,8 @@ module Decidim
|
|
|
21
21
|
|
|
22
22
|
devise :invitable, :database_authenticatable, :registerable, :confirmable, :timeoutable,
|
|
23
23
|
:recoverable, :trackable, :lockable,
|
|
24
|
-
:decidim_validatable, :decidim_newsletterable,
|
|
25
|
-
:omniauthable, omniauth_providers: Decidim::OmniauthProvider.available.keys,
|
|
24
|
+
:decidim_validatable, :decidim_newsletterable,
|
|
25
|
+
:omniauthable, omniauth_providers: Decidim::OmniauthProvider.available.keys,
|
|
26
26
|
request_keys: [:env], reset_password_keys: [:decidim_organization_id, :email],
|
|
27
27
|
confirmation_keys: [:decidim_organization_id, :email]
|
|
28
28
|
devise :rememberable if Decidim.enable_remember_me
|