Skip to content

Instantly share code, notes, and snippets.

@rixx
Last active October 9, 2025 22:06
Show Gist options
  • Save rixx/0dc12119daf467d93b7bc822f63f90e3 to your computer and use it in GitHub Desktop.
Save rixx/0dc12119daf467d93b7bc822f63f90e3 to your computer and use it in GitHub Desktop.
pretalx 2025.2.0 plugin migration notes

pretalx 2025.2.0 plugin migration notes

In pretalx 2025.2.0, a lot of static files (stylesheets and script files) have changed their name and location. The main reason for this is that our static files had grown for a long time without a lot of structure. As a result, we included a lot of styles on all pages, even when we didn't need them. This made pages larger and page loads slower than they needed to be. Once we started the cleanup, we decided to also move files to a more consistent naming and directory scheme. Sorry.

Please also note that pretalx now does not support SCSS out of the box anymore. If your plugin requires SCSS files to be processed, you will have to make sure that they are processed to CSS files. As a consequence, pretalx also does not provide the compress tag in templates anymore. Please check your templates and remove this tag.

You will notice that there are a lot of tiny stylesheets and scripts now. This is in large part because pretalx now uses Django's form.Media to annotate which form field / widget needs which static files. We advise you to do the same in your forms if any of your form fields require special widgets (and you can of course use the pretalx widgets like MarkdownWidget). In your templates, you'll have to include the {% form_media %} tag, which will combine the form media for all forms on the page, and add the base form style and scripts aswell.

Static files

Scripts

In the organiser area, we are including way fewer scripts by default now. If you need something like modals or tooltips on your page, please include the script in question.

Removed scripts

  • We have dropped moment.js entirely, finally, after only including it for our availabilities input. If you require moment.js, please include it in your Plugin's static files. The removed files are vendored/fullcalendar/moment-timezone-plugin.min.js, vendored/moment-timezone-with-data-10-year-range.js, vendored/moment-with-locales.js
  • Likewise, we have dropped the library providing jQuery. Please include jQuery in your plugin if you depend on it.

Moved scripts

  • agenda/js/{ => ui}/datetime-local.js
  • cfp/js/{animateFormset.js => forms/formsets.js}
  • cfp/js/{proposalTabTitles.js => cfp-tabtitle.js}
  • common/js/{ => forms}/availabilities.js
  • {cfp/js/profile.js => common/js/forms/avatar.js}
  • common/js/{password_strength.js => forms/password.js}
  • common/js/{user_token.js => forms/token.js}
  • common/js/{ => ui}/copy.js
  • common/js/{modalDialog.js => ui/dialog.js}
  • common/js/{ => ui}/lightbox.js
  • common/js/{ => ui}/tabs.js
  • orga/js/{sidebar.js => ui/sidebar-preload.js}
  • orga/js/{typeahead.js => base.js}
  • orga/js/{ => forms}/anonymise.js
  • orga/js/{reviewAssignment.js => forms/assignment.js}
  • orga/js/{ => forms}/cfp.js
  • orga/js/{speaker_export.js => forms/export.js}
  • orga/js/{mailSettings.js => forms/mail.js}
  • orga/js/{ => forms}/placeholder.js
  • orga/js/{questionForm.js => forms/question.js}
  • orga/js/{reviewSubmission.js => forms/review.js}
  • orga/js/{reviewSettings.js => forms/reviewsettings.js}
  • orga/js/{eventSettings.js => forms/settings.js}
  • orga/js/{submission_form.js => forms/submission.js}
  • orga/js/{submission_filter.js => forms/submissionfilter.js}
  • orga/js/{teamSettings.js => forms/team.js}
  • orga/js/{speakers.js => forms/usersearch.js}
  • orga/js/{widgetSettings.js => forms/widget.js}
  • orga/js/{event_wizard.js => forms/wizard.js}
  • {common/js => orga/js/ui}/collapse.js
  • orga/js/{ => ui}/colorpicker.js
  • orga/js/{highlightComment.js => ui/comments.js}
  • orga/js/{ => ui}/dragsort.js
  • orga/js/{main.js => ui/featured.js}
  • orga/js/{cfp_flow.js => ui/flow.js}
  • orga/js/{question_stats.js => ui/questionstats.js}
  • orga/js/{ => ui}/review.js
  • orga/js/{ => ui}/stats.js
  • vendored/{vanilla-picker => }/vanilla-picker.min.js

Stylesheets

If you inherit from the base pretalx templates, nearly nothing here should impact you, apart from possibly having to include the form_media tag in your templates.

Removed stylesheets

  • The following files have been folded into common/css/base.css: common/css/_fonts.css, common/css/_pretalx.css, common/css/_reset.css
  • orga/css/_layout.css is now split up, with the core in orga/css/base.css
  • vendored/fullcalendar/fullcalendar.min.css was dropped as the library moved to script-based styles

Moved stylesheets

  • agenda/css/_agenda.css is now split up, with the core in agenda/css/base.css, and other parts in the new agenda/css/talk.css
  • agenda/css/{_speaker.css => speaker.css}
  • agenda/css/{agenda_nojs.css => schedule_nojs.css}
  • common/css/{ => forms}/availabilities.css
  • common/css/{ => forms}/avatar.css
  • common/css/{_forms.css => forms/base.css}
  • common/css/{resource-form.css => forms/resource.css}
  • common/css/{headers-uncompressed.css => headers/*} (split up)
  • {cfp/css/_layout.css => common/css/public.css}
  • common/css/{_rtl.css => rtl.css}
  • common/css/{_dropdown.css => ui/dropdown.css}
  • common/css/{_stages.css => ui/stages.css}
  • common/css/{ => ui}/tabs.css
  • common/css/{_tooltip.css => ui/tooltip.css}
  • orga/css/{_flags.css => forms/i18n.css}
  • orga/css/{_rtl.css => rtl.css}
  • orga/css/{ => ui}/dashboard.css
  • orga/css/{ => ui}/dragsort.css
  • orga/css/{ => ui}/flow.css

Templates

  • cfp/includes/forms_header.html: This file used to be included on frontend-facing pages with forms. Instead, pretalx now uses form.Media to list the assets required for each form. We recommend you do so too, and then use the new form_media tag, which will collect the media files for all forms on the page, and include them (in addition to the base form scripts and stylesheets, automatically included).
  • common/availabilities.html: The availabilities field can now render without requiring a separate form template.
  • orga/cfp/question/create.html and similar templates were dropped because we can now manage without them for various reasons. These should have only been used by pretalx interally, but on the offchance that you were inheriting from some of them, we're listing them here. Other templates in this category are orga/cfp/track/_form.html, orga/cfp/track/create.html, orga/cfp/track/update.html, orga/event/wizard/basics.html, orga/event/wizard/initial.html, orga/event/wizard/timeline.html, orga/mails/mailtemplate/create.html, orga/mails/mailtemplate/update.html, orga/organiser/team/create.html, orga/organiser/team/list.html, orga/schedule/room/_form.html, orga/schedule/room/create.html, orga/schedule/room/update.html, orga/speaker/information_list.html, orga/speaker/speakerinformation/list.html, orga/submission/tag/_form.html, orga/submission/tag/create.html, orga/submission/tag/list.html, orga/submission/tag/update.html

pretalx did not use these templates anymore, and you probably weren't, either:

  • bootstrap4/field_help_text.html
  • bootstrap4/form_errors.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment