Jonathan wrote at 2007-3-10 08:03 -0500:
... Dieter, thanks for the lead, but it is all very strange and I really don't understand what is happening...
External Method:
# threadFolder is a BTreeFolder2; viewCount is a property field on the BTreeFolder2
line 3227: threadFolder = self.unrestrictedTraverse(topFolder + forumId + '/' + threadId) line 3228: threadFolder.manage_changeProperties({'viewCount': threadFolder.viewCount+1})
OFS/PropertyManager.py
line 299: def manage_changeProperties(self, REQUEST=None, **kw): ... line 317: if REQUEST: line 318: message="Saved changes." line 319: return self.manage_propertiesForm(self,REQUEST, line 320: manage_tabs_message=message)
I see: the "DTML" object is "manage_propertiesForm" and there is no nameclash. The "manage_changeProperties" method has a somewhat awkward behaviour. In general, you should not pass it a positional argument but always keyword arguments. If you pass a positional argument, it takes it for "REQUEST" and usually does the wrong thing. If you have the arguments in a dictionary "d", use "manage_changeProperties(**d)". -- Dieter