I’m trying to import contacts but I’m unable to create a sub-folder of type contacts. I can create a folder just fine like this:
store = kopano.user(username).store
contacts = store.contacts
But it is created without a PR_CONTAINER_CLASS_W Property, so Webapp displays it as a mail folder. I tried various ways to set that property, but it all fails.
For example, this was my most promising idea:
Traceback (most recent call last):
File "kopano-create-folder.py", line 31, in <module>
folder.prop(PR_CONTAINER_CLASS_W, True, "IPF.Contact")
File "/usr/lib/python2.7/dist-packages/kopano/properties.py", line 42, in prop
File "/usr/lib/python2.7/dist-packages/kopano/property_.py", line 204, in prop
return create_prop(self, mapiobj, proptag, value=value, proptype=proptype)
File "/usr/lib/python2.7/dist-packages/kopano/property_.py", line 169, in create_prop
elif proptype2 & MV_FLAG:
TypeError: unsupported operand type(s) for &: 'str' and 'int'
How can i create a contacts folder or change an existing folder to contain contacts?
PYTHON3 was definitely the problem. I was able to successfully build! Having a weird issue with it not taking PYTHON_PATH/PYTHON_EXEC_PATH variables to send the python packages to somewhere other than site-packages (I’m looking for dist-packages), but I have a rather embearassing hack in place to move them manually after install. Thanks for your assistance.
Yes, that was it.
I installed the nightly builds from today and ran into the same error you referenced. The workaround did not work. I simply installed an older nightly build of the grapi packages and it works for now.
Access token expiration is now 3540s.
You are the man :-)
Since you are located in Germany as myself perhaps we see each other at an event (if my company is willing to pay for me to visit :-)) and I’ll buy you a beer.
Thanks, @jengelh, that’s what I gathered from reading the GetSetting() code itself. In that case, why are there so many non-NULL-checks in LDAPUserPlugin.cpp for configuration variables? I’d gather they make no sense, because all options have defaults (the empty string); that’s where my initial confusion came from.