From: <sin...@fi...> - 2006-08-16 14:44:16
|
Bastien, Thank you for your suggestion. I have tried my best to do as you suggested, but to no avail. I looked at http://plone.org/products/archetypes/documentation/old/quickref#validators to try and help with your advice, but I can't get it to work, nor do I fully understand it. I have thought about maybe using something like this: <snip>... if request.get('createObject(RoleProfile)', False): if target_id in parent.objectIds(): raise Exception, request #"Your form for this year already exists - please edit the existing form instead." else: return target_title where I would use a request to check whether it is a new form and then to prohibit creation; so that when the edit button is clicked, the user can edit?? I'm not sure if I am using the correct syntax or if it is an unworkable solution. Sinéad Bastien Gauthier wrote: > To avoid the object being created (or copied from portal_factory), maybe you should write a validator for the field 'Title ' in your form... As long as the form is not saved, the object is not created in your context (when using portal_factory...). I think it should not be difficult to place the code of your Title() method in a validator... > > Create your validator class in your AT file that will implement Ivalidator (__implements__ = (IValidator, )) and use validation.register(MyValidator('isMyValidator')) to register it... > > BASTIEN Gauthier > Service Informatique - Administration Communale de Sambreville > 071/260.247 > http://www.sambreville.be > > -----Message d'origine----- > De : arc...@li... [mailto:arc...@li...] De la part de Sinéad Reynolds > Envoyé : mercredi 16 août 2006 11:31 > À : arc...@li... > Objet : [Archetypes-users] Prevent duplicate filename creation > > Hi, > > I am trying to prevent duplicate form creation from an archetype. I have the following script, which works fine for this, but it also prevents the form being edited after creation, as if it is a new form being created. > > _at_rename_after_creation = True > > #rename the title field to the user's name and the date & prevent duplicates > def Title(self, check_auto_id=False): > target_title = self.Creator() + ' ' + DateTime().strftime("%Y") > + ': Role Profile' > target_id = self.plone_utils.normalizeString(target_title) > parent = self.aq_inner.aq_parent > if target_id in parent.objectIds(): > raise Exception, "Your form for this year already exists - please edit the existing form instead." > else: > return target_title > > > I have looked at > http://plone.org/documentation/tutorial/richdocument/controlling-creation > and > http://plone.org/documentation/how-to/addContentProgrammatically > > Any ideas on how I can allow the form to be edited after creation and > prevent duplicates? > > Many thanks for all assistance! > Sinéad |