django-blog-zinnia / cmsplugin-zinnia

Bridge between django-blog-zinnia and django-cms
BSD 3-Clause "New" or "Revised" License
53 stars 46 forks source link

Tighter integration with django CMS 3 for front-end editing with EntryPlaceholder #48

Closed bittner closed 7 years ago

bittner commented 9 years ago

Since django-CMS 3.0 it is not possible anymore to edit django-CMS placeholders in the Admin. Editing blog entries is now a mixture of backend and frontend editing when the EntryPlaceholder is used (see #39 for details on editing).

Proposed Solution

When cmsplugin_zinnia is used with the EntryPlaceholder adding and editing blog posts should be fully possible from the frontend. User interaction should mimic django CMS 3's frontend editing closely.

  1. Zinnia > New Entry ... (from the django CMS toolbar), which opens the Admin in the sidebar, may offer the Excerpt plain text box in addition to Title, Status and Image.
  2. When the new blog entry is saved a django-CMS Text plugin should be created as the first, default placeholder automatically. This placeholder should be pre-filled with the text entered in the Excerpt text box.
  3. The newly created blog entry should be show on the website and suggest to continue editing. Alternatively, a list of all entries (the blog index) could be shown, and we scroll to the newly created entry.
  4. The Status may correspond to statuses of django CMS as follows:
    1. blog entries with "draft" status are visible and editable only when django CMS 3's edit slider is set to "draft".
    2. blog entries with "hidden" status are visible and editable only when django CMS 3's edit slider is set to "draft".
    3. only blog entries with "published" status are visible when django CMS 3's edit slider is set to "live".
  5. All other data (Publication, Discussion, Privacy, etc.) should possibly be editable through double-clicking somewhere on a blog entry on the frontend. A modal popup window (layer) should be shown to edit the related data (similar to editing placeholders).

    Align draft/publish with django CMS

An additional enhancement would be to have a real "draft" version of blog posts, which can be edited and saved without immediately propagating to the published website. As a result, the Zinnia blog and django CMS would both follow the same draft/publish paradigma from a user experience point of view.

jdejoode commented 8 years ago

I agree that this would be a valuable addition.

jdejoode commented 8 years ago

@bittner Did you do any work on this? At present, I think django cms + zinnia (and EntryPlaceholder) is really weird.

bittner commented 8 years ago

@jdejoode I'll be certainly working on this in the next few weeks, could be getting November though. I need this to work seamlessly from a user perspective (100% from the frontend), but I have other tasks in my queue before that, unfortunately (for this bug).

bittner commented 8 years ago

I've started an Open Source kickstarter campain, issue #755 at freedomsponsors.org. I hope that's fine for everyone.

Anyone interested in this feature is welcome to offer some incentives for anyone willing to implement what we ask for. That may make it more probable that an implementation happens in near future.

bittner commented 8 years ago

If it's just about adding a blog entry from the front-end, this is relatively easy to do with django CMS 3.2's content creation wizards (screenshot below is fake, don't worry, click on the image for the video).

Everything Is AWESOME

The details of the implementation are demoed starting at minute 11 in the video, adding a placeholder and a (text) plugin is explained at minute 16, the alternative case in bullet 3 is done as explained at minute 27. The first 3 bullets from my specification above should be feasible to implement this way. Not no work but a feasible effort.

Anyone willing to try this out? -- If not, I may give this a shot in a few weeks time.