ensure valid excel worksheet names

This commit is contained in:
clemkeirua 2020-09-29 15:56:38 +02:00 committed by Keirua (Rebase PR Action)
parent 045501ae50
commit 9714b607aa
2 changed files with 6 additions and 4 deletions

View file

@ -73,10 +73,12 @@ class ProcedureExportService
{ instances: table.last, sheet_name: table.first } { instances: table.last, sheet_name: table.first }
end.merge(DEFAULT_STYLES) end.merge(DEFAULT_STYLES)
# transliterate: convert to ASCII characteres # transliterate: convert to ASCII characters
# to ensure truncate respects 30 bytes # to ensure truncate respects 30 bytes
options[:sheet_name] = I18n.transliterate(options[:sheet_name], '') # /\*?[] are invalid Excel worksheet characters
.truncate(30, omission: '') options[:sheet_name] = I18n.transliterate(
ActiveStorage::Filename.new(options[:sheet_name].delete('[]*?')).sanitized, '', locale: :en
).truncate(30, omission: '')
options options
end end

View file

@ -359,7 +359,7 @@ describe ProcedureExportService do
context 'with long libelle composed of utf8 characteres' do context 'with long libelle composed of utf8 characteres' do
before do before do
procedure.types_de_champ.each do |c| procedure.types_de_champ.each do |c|
c.update!(libelle: "#{c.id} - éééé ééé ééé ééééééé ééééééé ééééééé éééééééé. ééé éé éééééééé éé ééé. ééééé éééééééé ééé ééé.") c.update!(libelle: "#{c.id} - éééé ééé ééé ééééééé ???? ééééééé éééééééé. ééé éé éééééééé éé ééé. ééééé éééééééé ééé ééé.")
end end
champ_repetition.champs.each do |c| champ_repetition.champs.each do |c|
c.type_de_champ.update!(libelle: "#{c.id} - Quam rem nam maiores numquam dolorem nesciunt. Cum et possimus et aut. Fugit voluptas qui qui.") c.type_de_champ.update!(libelle: "#{c.id} - Quam rem nam maiores numquam dolorem nesciunt. Cum et possimus et aut. Fugit voluptas qui qui.")