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 }
end.merge(DEFAULT_STYLES)
# transliterate: convert to ASCII characteres
# transliterate: convert to ASCII characters
# to ensure truncate respects 30 bytes
options[:sheet_name] = I18n.transliterate(options[:sheet_name], '')
.truncate(30, omission: '')
# /\*?[] are invalid Excel worksheet characters
options[:sheet_name] = I18n.transliterate(
ActiveStorage::Filename.new(options[:sheet_name].delete('[]*?')).sanitized, '', locale: :en
).truncate(30, omission: '')
options
end

View file

@ -359,7 +359,7 @@ describe ProcedureExportService do
context 'with long libelle composed of utf8 characteres' do
before do
procedure.types_de_champ.each do |c|
c.update!(libelle: "#{c.id} - éééé ééé ééé ééééééé ééééééé ééééééé éééééééé. ééé éé éééééééé éé ééé. ééééé éééééééé ééé ééé.")
c.update!(libelle: "#{c.id} - éééé ééé ééé ééééééé ???? ééééééé éééééééé. ééé éé éééééééé éé ééé. ééééé éééééééé ééé ééé.")
end
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.")