You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by "Laurent Mignon (JIRA)" <ji...@apache.org> on 2016/03/25 16:43:25 UTC
[jira] [Updated] (CMIS-972) Implement contentStream and properties
update in BrowserDocument.checkin method
[ https://issues.apache.org/jira/browse/CMIS-972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Laurent Mignon updated CMIS-972:
--------------------------------
Summary: Implement contentStream and properties update in BrowserDocument.checkin method (was: Implement contentSream and properties update in BrowserDocument.checkin method)
> Implement contentStream and properties update in BrowserDocument.checkin method
> -------------------------------------------------------------------------------
>
> Key: CMIS-972
> URL: https://issues.apache.org/jira/browse/CMIS-972
> Project: Chemistry
> Issue Type: Improvement
> Components: python-cmislib
> Environment: Linux, python 2.7.x, Alfresco 5.0.x
> Reporter: Laurent Mignon
> Assignee: Jeff Potts
>
> I've improved the checkin method to allow to update the content stream and the properties
> {code}
> diff --git a/src/cmislib/browser/binding.py b/src/cmislib/browser/binding.py
> index c9cc8a3..b340eda 100644
> --- a/src/cmislib/browser/binding.py
> +++ b/src/cmislib/browser/binding.py
> @@ -1743,7 +1743,8 @@ class BrowserDocument(BrowserCmisObject):
> self.reload()
> return self.getProperties()['cmis:versionSeriesCheckedOutBy']
>
> - def checkin(self, checkinComment=None, **kwargs):
> + def checkin(self, checkinComment=None, contentFile=None, contentType=None,ntStream
> - policies
> - addACEs
> - removeACEs
> """
> - # TODO implement optional arguments
> - # major = true is supposed to be the default but inmemory 0.9 is throwing an error 500 without it
> if not kwargs.has_key('major'):
> kwargs['major'] = 'true'
> + else:
> + kwargs['major'] = 'false'
> + props = {
> + 'checkinComment': checkinComment,
> + }
> + props.update(kwargs)
> + propCount = 0
> + properties = properties or {}
> + for key, value in properties.iteritems():
> + props["propertyId[%s]" % propCount] = key
> + props["propertyValue[%s]" % propCount] = value
> + propCount += 1
>
> - kwargs['checkinComment'] = checkinComment
> -
> - ciUrl = self._repository.getRootFolderUrl()
> + ciUrl = self._repository.getRootFolderUrl() + "?objectId=" + self.id + "&cmisaction=checkin"
>
> - # TODO don't hardcode major flag
> - props = {"objectId": self.id,
> - "cmisaction": "checkIn"}
> + contentType, body = encode_multipart_formdata(props, contentFile, contentType)
>
> # invoke the URL
> result = self._cmisClient.binding.post(ciUrl.encode('utf-8'),
> - urlencode(props),
> - 'application/x-www-form-urlencoded',
> + body,
> + contentType,
> self._cmisClient.username,
> - self._cmisClient.password,
> - **kwargs)
> + self._cmisClient.password)
>
> return getSpecializedObject(BrowserCmisObject(self._cmisClient, self._repository, data=result))
> {code}
> https://github.com/lmignon/python-cmislib/commit/c1ff31b82c6768148e18e766a9cbc5d62bfb5b23?diff=unified
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)