Skip to content

Commit 160ff50

Browse files
authored
Release 3.10.2
Release 3.10.2
2 parents f002d79 + d8eabbd commit 160ff50

28 files changed

Lines changed: 1199 additions & 4 deletions

.env-example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,6 @@ GEOCODER_UNITS=km # Units for geocoder results (e.g., km or m
5959
# DECIDIM_AI_BASIC_AUTH="<USER>:<PASSWORD>" Required for the AI Request Handler
6060
# DECIDIM_AI_REPORTING_USER_EMAIL="<EMAIL>"
6161
# DECIDIM_AI_SECRET="<SECRET_KEY>" # Not required for the AI Request Handler
62+
63+
#= Enforce EUF completion after login
64+
DECIDIM_FORCE_EUF_COMPLETION=true
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# frozen_string_literal: true
22

33
class ApplicationController < ActionController::Base
4+
before_action :check_euf_completion, if: :current_user
45
end
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!-- replace "erb[loud]:contains('filter_text_for(leaf.label')" --><%= filter_text_for(CGI.unescapeHTML(leaf.label), id: "dropdown-title-#{data_checkboxes_tree_id}") %>
1+
<!-- replace "erb[loud]:contains('filter_text_for(leaf.label')" --><%= filter_text_for(CGI.unescapeHTML(leaf.label.to_s), id: "dropdown-title-#{data_checkboxes_tree_id}") %>

app/packs/src/decidim/global_adjustments.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,21 @@ document.addEventListener("DOMContentLoaded", function () {
7171
document.addEventListener("DOMContentLoaded", function () {
7272
const signIn = document.querySelector('.main-bar a[href^="/users/sign_in"]')
7373
const menuBarMobile = document.querySelector('header .main-bar__menu-mobile');
74-
const menuBarMobileLink = document.querySelector('header .main-bar__links-mobile__login')
74+
const menuBarMobileLink = document.querySelector('header .main-bar__links-mobile__login');
75+
const button = document.querySelector('#main-dropdown-summary-mobile');
7576

7677
if (window.innerWidth <= 600 && signIn && screen.orientation.type === "portrait-primary"){
7778
menuBarMobile.style.flexDirection = "column-reverse";
7879
if (menuBarMobileLink) menuBarMobileLink.style.marginBottom = "1rem";
80+
81+
// hide or show signin when the dropdown-menu is clicked
82+
button.addEventListener('click', () => {
83+
if (menuBarMobile.style.flexDirection == "column-reverse") {
84+
menuBarMobile.style.flexDirection = "row-reverse";
85+
} else {
86+
menuBarMobile.style.flexDirection = "column-reverse";
87+
}
88+
})
7989
}
8090
screen.orientation.addEventListener("change", () => {
8191
if (screen.orientation.type === "landscape-primary"){

config/application.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class Application < Rails::Application
2222
require "extends/commands/decidim/participatory_processes/admin/copy_participatory_process_extends"
2323
require "extends/commands/decidim/create_omniauth_registration_extends"
2424
require "extends/commands/decidim/forms/admin/update_questionnaire_extends"
25+
require "extends/commands/decidim/admin/content_blocks/update_content_block_extends"
2526
# forms
2627
require "extends/forms/decidim/assemblies/admin/assembly_copy_form_extends"
2728
require "extends/forms/decidim/participatory_processes/admin/participatory_process_copy_form_extends"
@@ -31,7 +32,10 @@ class Application < Rails::Application
3132
require "extends/forms/decidim/omniauth_registration_form_extends"
3233
require "extends/forms/decidim/account_form_extends"
3334
require "extends/forms/decidim/editor_image_form_extends"
35+
require "extends/forms/decidim/admin/content_block_form_extends"
3436
# controllers
37+
require "extends/controllers/application_controller_extends"
38+
require "extends/controllers/decidim/devise/invitations_controller_extends"
3539
require "extends/controllers/decidim/admin/scopes_controller_extends"
3640
require "extends/controllers/decidim/scopes_controller_extends"
3741
require "extends/controllers/decidim/comments/comments_controller_extends"
@@ -43,6 +47,8 @@ class Application < Rails::Application
4347
require "extends/controllers/decidim/budgets/projects_controller_extends"
4448
require "extends/controllers/decidim/proposals/admin/proposal_states_controller_extends"
4549
require "extends/controllers/decidim/proposals/proposals_controller_extends"
50+
require "extends/controllers/decidim/assemblies/admin/assembly_landing_page_content_blocks_controller_extends"
51+
require "extends/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_content_blocks_controller_extends"
4652
# helpers
4753
require "extends/helpers/decidim/check_boxes_tree_helper_extends"
4854
require "extends/helpers/decidim/omniauth_helper_extends"
@@ -57,6 +63,7 @@ class Application < Rails::Application
5763
require "extends/models/decidim/accountability/result_extends"
5864
require "extends/models/decidim/proposals/proposal_state_extends"
5965
require "extends/models/decidim/searchable_author_extends"
66+
require "extends/models/decidim/content_block_attachment_extends"
6067
# permissions
6168
require "extends/permissions/initiatives/permissions_extends"
6269
# presenters

config/locales/en.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ en:
2323
<p>
2424
You can't edit this information here.
2525
</p>
26+
update:
27+
error: There was a problem updating your account.
28+
success: Your account was successfully updated.
29+
success_with_email_confirmation: Your account was successfully updated. You will receive an email to confirm your new email address.
2630
admin:
2731
actions:
2832
add: Add
@@ -34,6 +38,9 @@ en:
3438
attachments:
3539
form:
3640
send_notification_to_followers: Send a notification to all the people following the consultation who have agreed to receive email notifications
41+
content_blocks:
42+
update:
43+
error: There was an error updating the content block
3744
models:
3845
assembly:
3946
fields:
@@ -117,6 +124,9 @@ en:
117124
email_outro: You received this notification because you are the author of the proposal. You can unfollow it by visiting the proposal page (" %{resource_title} ") and clicking on " Unfollow ".
118125
email_subject: Your proposal has been published!
119126
notification_title: Your proposal <a href="%{resource_path}">%{resource_title}</a> is now live.
127+
extra_user_fields:
128+
force_euf_completion:
129+
alert: Please complete your profile before continuing. Required fields must be filled in.
120130
forms:
121131
questionnaire_answer_presenter:
122132
download_attachment: Download attachment

config/locales/fr.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ fr:
3131
<p>
3232
Vous ne pouvez pas modifier ces informations ici.
3333
</p>
34+
update:
35+
error: Une erreur s'est produite lors de la mise à jour de votre compte.
36+
success: Votre compte a été mis à jour avec succès.
37+
success_with_email_confirmation: Votre compte a été mis à jour avec succès. Vous recevrez un email pour confirmer votre nouvelle adresse.
3438
admin:
3539
actions:
3640
add: Ajouter
@@ -42,6 +46,9 @@ fr:
4246
attachments:
4347
form:
4448
send_notification_to_followers: Envoyer une notification à toutes les personnes qui suivent la concertation ayant accepté de recevoir des notifications par mail
49+
content_blocks:
50+
update:
51+
error: Une erreur est survenue lors de la mise à jour du bloc de contenu.
4552
models:
4653
assembly:
4754
fields:
@@ -125,6 +132,9 @@ fr:
125132
email_outro: Vous recevez cette notification car vous êtes l’auteur de la proposition. Vous pouvez vous désabonner en visitant la page de la proposition (« %{resource_title} ») et en cliquant sur « Ne plus suivre ».
126133
email_subject: Votre proposition a été publiée !
127134
notification_title: Votre proposition <a href="%{resource_path}">%{resource_title}</a> est maintenant en ligne.
135+
extra_user_fields:
136+
force_euf_completion:
137+
alert: Veuillez compléter votre profil avant de continuer. Les champs obligatoires doivent être renseignés.
128138
forms:
129139
questionnaire_answer_presenter:
130140
download_attachment: Télécharger la pièce jointe

config/secrets.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ default: &default
133133
<<: *decidim_default
134134
participatory_processes:
135135
sort_by_date: <%= ENV.fetch("SORT_PROCESSES_BY_DATE", "false") == "true" %>
136+
extra_user_fields:
137+
force_euf_completion: <%= ENV["DECIDIM_FORCE_EUF_COMPLETION"] == "true" %>
136138
sidekiq:
137139
concurrency: <%= Decidim::Env.new('SIDEKIQ_CONCURRENCY', '5').to_i %>
138140
max_retries: <%= Decidim::Env.new('SIDEKIQ_MAX_RETRIES', '5').to_i %>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# frozen_string_literal: true
2+
3+
require "active_support/concern"
4+
5+
module UpdateContentBlockExtends
6+
extend ActiveSupport::Concern
7+
8+
included do
9+
private
10+
11+
def update_content_block_images
12+
params = form.respond_to?(:image_params) ? form.image_params : (form.attributes["images"] || {})
13+
content_block.manifest.images.each do |image_config|
14+
image_name = image_config[:name]
15+
val = params[image_name] || params[image_name.to_s]
16+
if val
17+
content_block.images_container.send("#{image_name}=", val)
18+
elsif params[:"remove_#{image_name}"] == "1" || params["remove_#{image_name}"] == "1"
19+
content_block.images_container.send("#{image_name}=", nil)
20+
end
21+
end
22+
end
23+
end
24+
end
25+
26+
Decidim::Admin::ContentBlocks::UpdateContentBlock.include(UpdateContentBlockExtends)

lib/extends/commands/decidim/create_omniauth_registration_extends.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ def call
1313

1414
return broadcast(:ok, @user)
1515
end
16+
17+
prefill_euf_fields_from_existing_user
18+
1619
return broadcast(:invalid) if form.invalid?
1720

1821
transaction do
@@ -33,6 +36,24 @@ def manage_user_confirmation
3336
# send welcome notification and email
3437
@user.after_confirmation if verified_email
3538
end
39+
40+
private
41+
42+
def prefill_euf_fields_from_existing_user
43+
existing_user = Decidim::User.find_by(
44+
email: form.email,
45+
organization: form.current_organization
46+
)
47+
return unless existing_user
48+
49+
existing_data = existing_user.extended_data.presence || {}
50+
%w(phone_number country postal_code date_of_birth gender location underage).each do |field|
51+
next unless form.respond_to?(:"#{field}=")
52+
next if existing_data[field].blank?
53+
54+
form.public_send(:"#{field}=", existing_data[field])
55+
end
56+
end
3657
end
3758

3859
Decidim::CreateOmniauthRegistration.class_eval do

0 commit comments

Comments
 (0)