Skip to content

undefined method wicked_pdf_stylesheet_pack_tag when exporting questionnaire/survey answers as PDF #12135

@sdelcroix

Description

@sdelcroix

Describe the bug

As a admin, when I export questionnaire/survey answers as PDF, nothing happens.

Error log says (see stacktrace below) : undefined method wicked_pdf_stylesheet_pack_tag […]

wicked_pdf 2.7.0 gem is installed and I'm using delayed_job

To Reproduce

  1. Have a questionnaire/survey with answer
  2. Go to a questionnaire/survey management of a process
  3. Export answers as PDF

Expected behavior

When I export questionnaire/survey answers to PDF, I must receive an email with an attached PDF

Screenshots

No response

Stacktrace

E, [2023-12-07T08:31:34.445647 #2627987] ERROR -- : [ActiveJob] [Decidim::ExportJob] [b53f0262-eee5-4c9e-98cb-bf609bb56b87] Error performing Decidim::ExportJob (Job ID: b53f0262-eee5-4c9e-98cb-bf609bb56b87) from DelayedJob(exports) in 2059.44ms: ActionView::Template::Error (undefined method `wicked_pdf_stylesheet_pack_tag' for #<#<Class:0x000056528d724f08>:0x000056528d7064e0>):

E, [2023-12-07T08:31:34.447019 #2627987] ERROR -- : 2023-12-07T08:31:34+0100: [Worker(delayed_job host:ruby1 pid:2627987)] Job Decidim::ExportJob [b53f0262-eee5-4c9e-98cb-bf609bb56b87] from DelayedJob(exports) with arguments: [{"_aj_globalid"=>"gid://decidim-app/Decidim::User/810"}, {"_aj_globalid"=>"gid://decidim-app/Decidim::Component/80"}, "survey_user_answers", "FormPDF", "39"] (id=95067) (queue=exports) FAILED (11 prior attempts) with ActionView::Template::Error: undefined method `wicked_pdf_stylesheet_pack_tag' for #<#<Class:0x000056528d724f08>:0x000056528d7064e0>

D, [2023-12-07T08:31:34.456816 #2627987] DEBUG -- :   Delayed::Backend::ActiveRecord::Job Update (2.6ms)  UPDATE "delayed_jobs" SET "last_error" = $1, "attempts" = $2, "run_at" = $3, "locked_at" = $4, "locked_by" = $5, "updated_at" = $6 WHERE "delayed_jobs"."id" = $7  [["last_error", "undefined method `wicked_pdf_stylesheet_pack_tag' for #<#<Class:0x000056528d724f08>:0x000056528d7064e0>
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-forms-0.26.8/app/views/layouts/decidim/forms/admin/questionnaires/questionnaire_answers.html.erb:6:in `__home_decidim__rbenv_versions_______lib_ruby_gems_______gems_decidim_forms________app_views_layouts_decidim_forms_admin_questionnaires_questionnaire_answers_html_erb__287005828577097880_239180'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/base.rb:274:in `_run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/template.rb:185:in `block in render'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/notifications.rb:182:in `instrument'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/template.rb:385:in `instrument_render_template'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/template.rb:183:in `render'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/renderer/template_renderer.rb:69:in `render_with_layout'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/renderer/template_renderer.rb:56:in `render_template'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/renderer/template_renderer.rb:13:in `render'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/renderer/renderer.rb:29:in `render_to_object'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/rendering.rb:117:in `block in _render_template'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/base.rb:304:in `in_rendering_context'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/rendering.rb:116:in `_render_template'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionpack-6.0.6.1/lib/action_controller/metal/streaming.rb:218:in `_render_template'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionview-6.0.6.1/lib/action_view/rendering.rb:103:in `render_to_body'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionpack-6.0.6.1/lib/action_controller/metal/rendering.rb:52:in `render_to_body'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionpack-6.0.6.1/lib/action_controller/metal/renderers.rb:142:in `render_to_body'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionpack-6.0.6.1/lib/abstract_controller/rendering.rb:46:in `render_to_string'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/actionpack-6.0.6.1/lib/action_controller/metal/rendering.rb:41:in `render_to_string'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-core-0.26.8/lib/decidim/exporters/pdf.rb:18:in `export'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-core-0.26.8/app/jobs/decidim/export_job.rb:15:in `perform'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/execution.rb:40:in `block in perform_now'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/i18n-1.14.1/lib/i18n.rb:322:in `with_locale'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/core_ext/time/zones.rb:66:in `use_zone'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/timezones.rb:9:in `block (2 levels) in <module:Timezones>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/logging.rb:25:in `block (4 levels) in <module:Logging>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/notifications.rb:180:in `block in instrument'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/notifications.rb:180:in `instrument'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/logging.rb:24:in `block (3 levels) in <module:Logging>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/logging.rb:45:in `block in tag_logger'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/tagged_logging.rb:80:in `block in tagged'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/tagged_logging.rb:28:in `tagged'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/tagged_logging.rb:80:in `tagged'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/logging.rb:45:in `tag_logger'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/logging.rb:21:in `block (2 levels) in <module:Logging>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:139:in `run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/execution.rb:39:in `perform_now'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/execution.rb:25:in `block in execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/railtie.rb:43:in `block (4 levels) in <class:Railtie>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/reloader.rb:72:in `block in wrap'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/reloader.rb:71:in `wrap'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/railtie.rb:42:in `block (3 levels) in <class:Railtie>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `instance_exec'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activesupport-6.0.6.1/lib/active_support/callbacks.rb:139:in `run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/execution.rb:23:in `execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/activejob-6.0.6.1/lib/active_job/queue_adapters/delayed_job_adapter.rb:42:in `perform'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/backend/base.rb:81:in `block in invoke_job'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:66:in `execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/backend/base.rb:78:in `invoke_job'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:231:in `block (2 levels) in run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/timeout-0.4.0/lib/timeout.rb:186:in `block in timeout'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/timeout-0.4.0/lib/timeout.rb:193:in `timeout'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:231:in `block in run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:230:in `run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:313:in `block in reserve_and_run_one_job'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:66:in `execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:313:in `reserve_and_run_one_job'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:214:in `block in work_off'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:213:in `times'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:213:in `work_off'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:176:in `block (4 levels) in start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:175:in `block (3 levels) in start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:66:in `execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:174:in `block (2 levels) in start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:173:in `loop'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:173:in `block in start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:79:in `block in add'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:66:in `execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/worker.rb:172:in `start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/command.rb:137:in `run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/command.rb:125:in `block in run_process'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons/application.rb:277:in `block in start_proc'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons/daemonize.rb:84:in `call_as_daemon'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons/application.rb:281:in `start_proc'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons/application.rb:307:in `start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons/controller.rb:56:in `run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons.rb:199:in `block in run_proc'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons/cmdline.rb:124:in `catch_exceptions'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/daemons-1.4.1/lib/daemons.rb:198:in `run_proc'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/command.rb:123:in `run_process'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/command.rb:104:in `block in daemonize'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/command.rb:102:in `times'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/delayed_job-4.1.11/lib/delayed/command.rb:102:in `daemonize'
/data/decidim-apps/decidim-app_26/bin/delayed_job:5:in `<main>'"], ["attempts", 12], ["run_at", "2023-12-07 13:17:15.447190"], ["locked_at", nil], ["locked_by", nil], ["updated_at", "2023-12-07 07:31:34.449952"], ["id", 95067]]

Extra data

  • Device:
  • Device OS:
  • Browser:
  • Decidim Version: 0.26.8
  • Decidim installation: Manual (Platoniq guide in 2020, started with Decidim 0.22 upgraded over the years to 0.26)

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions