-
Notifications
You must be signed in to change notification settings - Fork 11
ICEKit's Publishing status filters are not compatible with the Fluent Pages admin #32
Comments
- add non-required FK to User on PublishingModel - update user on save (if user / called from admin) - add MyRecentModifications filter, not certain that it filters correctly because of this issue: #32
Hi @mrmachine can you talk more about what you need to achieve here? ICEKit's Publishing implementation does not monkey-patch the To filter generic Or better yet, you may be able to use one of ICEKit's existing publishing status filter implementations like |
The problem of filtering However the original issue that triggered this ticket (Assembla ICEKit #151) needs deeper consideration which may make this particular issue irrelevant. |
This came up when attempting to implement assembla/icekit#151, but the problem exists on the |
This is going to be a tricky problem to solve. The root problem is that we have two kinds of publishing systems in effect, Fluent's simple I see two possible approaches: Reconcile the divergent publishing approaches in the admin, or separate them.
This would involve modifying at least the publishing filters, and probably lower-level queryset logic, to allow us to filter on both This would allow the existing Fluent Page admin grouping at /admin/fluent_pages/page/ to work for both ICEKit publishing enabled models like This is all possible since we have already done a lot of this kind of work to render published items on sites, but would likely be tricky work. We would need to further extend our publishing hacks to work in the admin context, in particular we would need to either resort to querying more directly on polymorphic child types instead of just Fluent
This would route around the problem by showing ICEKit publishable items in a separate admin section from general Fluent pages, so our publishing-specific logic and queries will work without any hackery at the expense of having more endpoints in the admin for Fluent-derived models. For this we would need to look into separating ICEKit publishing items from others in the admin, so instead showing all Fluent page derivatives at /admin/fluent_pages/page/ we might have two distinct admins for ICEKit Publishing items at /admin/fluent_pages/publishable_pages/ and non-publishing items at /admin/fluent_pages/unpublishable_pages/ -- or something like that. I don't have a good sense for how feasible or difficult this might be, but in the simplest possible case (which might not work) we might be able to get away with a Fluent |
UrlNode
queryset is not monkey patched properly for publishing.
For option 2, there's still only one page tree. And icekit-publishable pages can be children to fluent pages. I don't see how we could effectively separate them into two pages in the admin. Perhaps instead, we could display everything in the one page tree, but clearly indicate which things are icekit-publishable and which are not, and implement two distinct sets of filters for diverging fields? This would expose some ugly and potentially confusing implementation details to users, e.g. that there are two types of publishing features. Alternatively, we could insist that all enabled page plugins come from ICEkit and have ICEkit publishing features enabled. I think the only non-ICEkit page plugins we use are fairly trivial (e.g. redirectnode), and we would have to rewrite ICEkit versions of them. But we might want to do that anyway (at least for redirectnode). |
I should note that my earlier suggestion to just filter by |
Make the `PublishingPublishedFilter` and `PublishingStatusFilter` publishing status admin filters compatible with models that do not provide the standard ICEKit publishing features (and DB fields) from `PublishingModel`. This change is necessary to make these filters usable on parent admin pages that can include non-`PublishingModel` class, in particular the Fluent Pages default parent page admin listing /admin/fluent_pages/page/ This change is a hack and requires iterating over the actual instances of all models so it will be slow in cases where we cannot rely on `PublishingModel` fields being present, but works around the problem for now of filtering by two different publishing notions in the one polymorphic parent admin page.
…s-urlnode-compatible Make publishing filters work with generic Fluent models, re #32
This manifests as a 500 error when attempting to filter the page change list.
Oddly, it appears that
UrlNode
itself is patched, but its default queryset is using an unpatched version or something.The text was updated successfully, but these errors were encountered: