Forums / Developer / forbid several drafts

forbid several drafts

Author Message

Jerome Despatis

Friday 28 January 2011 9:04:46 am

Hi,

I'd like to forbid a user to create a draft when another draft exists. I prefer that the user modify the existing draft.

Any idea how to do that ? I haven't seen any trigger before the content/edit

Any idea is welcome :)

Edi Modrić

Friday 28 January 2011 12:28:11 pm

Hi Jerome,

You can place the following two lines in your site.ini.append.php to allow the creation of only one draft.

[ContentSettings]
EditDirtyObjectAction=usecurrent

eZ Publish certified developer

http://ez.no/certification/verify/350658

Jerome Despatis

Friday 28 January 2011 12:45:17 pm

Hi Edi,

You're sure about this ?

I've tested this setting in fact already, and it avoids the user to ask him which draft he wants to modify, it seems to create all the time a new draft.

But in that way, even with 'usecurrent' selected, several drafts can exist for a single object

Edi Modrić

Friday 28 January 2011 1:16:07 pm

Yes, you're right. I kinda assumed this always uses the existing draft. Instead, it is indeed creating a new draft without showing the list. I never bothered to check what this setting does exactly, but now I see it loud and clear in the database.

The following in content.ini.append.php could be what you're after:

[VersionManagement]
DefaultVersionHistoryLimit=2

This setting should tell eZ Publish to only allow two versions of any object to exist (one published and one draft)

You can also use this per class with the following:

VersionHistoryClass[class_id]=2

eZ Publish certified developer

http://ez.no/certification/verify/350658

Jerome Despatis

Friday 28 January 2011 11:21:19 pm

Could be a solution.

But I have another process that performs automatic translation triggered on post publish (in a workflow), it creates a new version per language

So when a draft is published, 5 new versions are created and last one contains the object translated in 5 languages

so I can't use a history limited to 2, i can only use at less 5 + 1

And that way, at the right beginning, when the automatic translation has not et performed, on a new object for example that has never been published. In that case, the user could be able to create several drafts (up to 6 drafts), and I don't want that...

A hook somewhere before the draft creation would be perfect indeed, but I don't see any of this kind in kernel/edit.php

Any idea is welcome !