django-cms / django-filer

File and Image Management Application for django
https://django-filer.readthedocs.io/
Other
1.78k stars 581 forks source link

fix: incompatibility with djangocms-versioning-filer 1.3 was fixed #1509

Open fscherf opened 4 days ago

fscherf commented 4 days ago

When used with djangocms-versioning-filer, the FileAdminChangeForm might not have a file field due to missing permissions. Since djangocms-versioning-filer 1.3 the constructor of FileAdminChangeForm crashes when opening the change URL of a published image.

This patch fixes this issue by adding a check whether the file field is present before overriding it.

Description

Checklist

Summary by Sourcery

Fix compatibility issue with djangocms-versioning-filer 1.3 by ensuring the FileAdminChangeForm does not crash when the file field is missing due to permissions.

Bug Fixes:

Tests:

sourcery-ai[bot] commented 4 days ago

Reviewer's Guide by Sourcery

This PR fixes a compatibility issue with djangocms-versioning-filer 1.3 by adding a conditional check before modifying the file field widget in the FileAdminChangeForm. The change prevents the form from crashing when the file field is not present due to missing permissions.

Class diagram for FileAdminChangeForm modification

classDiagram
    class FileAdminChangeForm {
        +__init__(*args, **kwargs)
        +clean()
    }
    note for FileAdminChangeForm "Added conditional check for 'file' field presence before setting widget"

File-Level Changes

Change Details Files
Added a defensive check before modifying the file field widget
  • Added a conditional check to verify if 'file' exists in form fields
  • Only set the FileInput widget when the file field is present
filer/admin/fileadmin.py

Tips and commands #### Interacting with Sourcery - **Trigger a new review:** Comment `@sourcery-ai review` on the pull request. - **Continue discussions:** Reply directly to Sourcery's review comments. - **Generate a GitHub issue from a review comment:** Ask Sourcery to create an issue from a review comment by replying to it. - **Generate a pull request title:** Write `@sourcery-ai` anywhere in the pull request title to generate a title at any time. - **Generate a pull request summary:** Write `@sourcery-ai summary` anywhere in the pull request body to generate a PR summary at any time. You can also use this command to specify where the summary should be inserted. #### Customizing Your Experience Access your [dashboard](https://app.sourcery.ai) to: - Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others. - Change the review language. - Add, remove or edit custom review instructions. - Adjust other review settings. #### Getting Help - [Contact our support team](mailto:support@sourcery.ai) for questions or feedback. - Visit our [documentation](https://docs.sourcery.ai) for detailed guides and information. - Keep in touch with the Sourcery team by following us on [X/Twitter](https://x.com/SourceryAI), [LinkedIn](https://www.linkedin.com/company/sourcery-ai/) or [GitHub](https://github.com/sourcery-ai).