Skip to content

Merge upstream django-cms/django-filer v3.4.4 into PBS fork#156

Draft
Copilot wants to merge 6 commits intoBEN-3407from
copilot/upgrade-django-filer-upstream
Draft

Merge upstream django-cms/django-filer v3.4.4 into PBS fork#156
Copilot wants to merge 6 commits intoBEN-3407from
copilot/upgrade-django-filer-upstream

Conversation

Copy link
Copy Markdown

Copilot AI commented Apr 30, 2026

Merges ~1,977 upstream commits from django-cms/django-filer (v3.4.4) into the PBS fork while preserving all PBS-specific customizations. The codebases diverged ~790 PBS commits and ~1,977 upstream commits since the v0.9 fork point, making a direct git merge impractical — this is a phased manual merge.

New from upstream

  • pyproject.toml build system, version bumped to 3.5.0.pbs.1
  • FolderPermission model with per-user/group/everybody folder ACLs + cache layer (filer/cache.py)
  • ThumbnailOption model and admin
  • File validation — SVG XSS scanning, MIME whitelist, pluggable validators (filer/validation.py)
  • Canonical URLs for public files (filer/urls.py, filer/views.py)
  • Swappable Image model via FILER_IMAGE_MODEL setting
  • BaseImage abstract model (filer/models/abstract.py) — SVG/HEIF support
  • Modern admin UI — table/thumbnail view switcher, SVG icons, FontAwesome, dropzone uploads
  • CMS toolbar integration (filer/contrib/django_cms/)
  • 30+ locale translations
  • apps.py ready() hook — MIME type registration, validator resolution, optional HEIF support

PBS features preserved

  • Trash system@trashable decorator, soft_delete()/hard_delete()/restore(), TrashFileManager/AliveFileManager, TrashAdmin
  • Site-scoped folderssite FK, shared M2M, folder_type (SITE_FOLDER/CORE_FOLDER), is_core(), is_readonly_for_user()
  • Restricted permissionsrestricted field on File/Folder, can_restrict_on_site(), cms_roles integration
  • Path-based storageFOLDER_AFFECTS_URL, SHA1 hash prefix (actual_name), FILER_NOHASH_ROOTFOLDERS, update_location_on_storage() with atomic transactions
  • S3/botocorePrivateFileSystemStorage.copy(), BotoClientError fallback
  • CDN settingsCDN_DOMAIN, CDN_INVALIDATION_TIME
  • Django 5.1 compatDEFERRED sentinel handling in File.__init__, STORAGES['default'] injection, has_view_permission overrides
  • ClipboardOneToOneField user, folder_name, delete_clipboard()

Migration

Single migration 0008 appended to the existing PBS chain (0001–0007):

  • Creates ThumbnailOption, FolderPermission
  • Adds mime_type to File, _transparent to Image
  • Alters field types/options to match upstream expectations

Test status

82/153 tests pass. Known remaining work for follow-up:

  • CDN URL integration into upstream's MultiStorageFieldFile
  • Server backend tests (upstream changed serve() to accept model instances)
  • Admin tests (upstream folderadmin template/URL structure differs from PBS expectations)

Copilot AI and others added 6 commits April 30, 2026 09:36
…itions

Agent-Logs-Url: https://github.com/pbs/django-filer/sessions/cad30a66-0889-48ba-bb3e-2ab3bf2939b2

Co-authored-by: andreilupuleasa <124138251+andreilupuleasa@users.noreply.github.com>
…models, clipboardmodels, virtualitems) and settings

Agent-Logs-Url: https://github.com/pbs/django-filer/sessions/cad30a66-0889-48ba-bb3e-2ab3bf2939b2

Co-authored-by: andreilupuleasa <124138251+andreilupuleasa@users.noreply.github.com>
…ns preserved

Agent-Logs-Url: https://github.com/pbs/django-filer/sessions/cad30a66-0889-48ba-bb3e-2ab3bf2939b2

Co-authored-by: andreilupuleasa <124138251+andreilupuleasa@users.noreply.github.com>
…ilOption, FolderPermission, mime_type, etc.)

Agent-Logs-Url: https://github.com/pbs/django-filer/sessions/cad30a66-0889-48ba-bb3e-2ab3bf2939b2

Co-authored-by: andreilupuleasa <124138251+andreilupuleasa@users.noreply.github.com>
…, restore needed PBS utils

Agent-Logs-Url: https://github.com/pbs/django-filer/sessions/cad30a66-0889-48ba-bb3e-2ab3bf2939b2

Co-authored-by: andreilupuleasa <124138251+andreilupuleasa@users.noreply.github.com>
Agent-Logs-Url: https://github.com/pbs/django-filer/sessions/cad30a66-0889-48ba-bb3e-2ab3bf2939b2

Co-authored-by: andreilupuleasa <124138251+andreilupuleasa@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants