modoboa / modoboa-contacts Goto Github PK
View Code? Open in Web Editor NEWAddress book for Modoboa
License: MIT License
Address book for Modoboa
License: MIT License
When i try to add a contact via the webmail, nothing seem happen when i click on save button.
The POST resquest to /api/v1/contacts/ return this 500 error (in debug mode):
500 Server Error: Internal Server Error for url: https://mail.virtit.fr/radicale/user1@XXXXXXXXXXX/contacts/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.vcf
And radicale return :
ERROR: An exception occurred during PUT request on 'user1@XXXXXXXXXXX/contacts/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.vcf': local variable 'vobj' referenced before assignment
Paradoxically, the contact is create in the radicale and appears in the webmail after about 60sec (my synchronization frequency).
It happen only on my account.
I tried to delete the values from the address book in the database and delete the radical contact files, and the problem persists.
Modoboa 1.12.1
Amavis frontend 1.2.3
Contacts 0.7.3
DMARC tools 1.1.0
PDF credentials 1.3.1
Postfix autoreply 1.5.1
Radicale management 1.3.6
Sieve filters 1.4.1
Statistics 1.4.1
Webmail 1.5.0
OS : Debian stretch
DB : Mysql
After a fresh installation of modoboa-contacts, the contacts page crashes with expected string or bytes-like object
in webpack_loader
.
django-webpack-loader
broke its output file format in 1.0.0 making any up to date dependency installation broken. A quick solution would be to lock the requirement to 0.7.0.
In case anybody hits this bug, django-webpack-loader can be downgraded as a workaround :
pip uninstall django-webpack-loader
pip install -I django-webpack-loader==0.7.0
Modoboa: 1.13.0
Contacts: 0.7.3
Radicale management: 1.3.6
Installer used: Yes
Webserver: Nginx
When I access https://mail.mydomain.de/contacts/ with DEBUG=True
in settings.py
I get an error.
Because it's only in debug mode, it's not that bad but annoying.
Webpack details
Setting | Value |
---|---|
WEBPACK_LOADER | {'CALENDAR': {'BUNDLE_DIR_NAME': 'modoboa_radicale/', 'CACHE': False, 'IGNORE': ['.+\.hot-update.js', '.+\.map'], 'STATS_FILE': '/srv/modoboa/env/lib/python2.7/site-packages/modoboa_radicale/../frontend/webpack-stats.json'}, 'CONTACTS': {'BUNDLE_DIR_NAME': 'modoboa_radicale/', 'CACHE': False, 'IGNORE': ['.+\.hot-update.js', '.+\.map'], 'STATS_FILE': '/srv/modoboa/env/lib/python2.7/site-packages/modoboa_contacts/../frontend/webpack-stats.json'}} |
I anonymized the log file a bit, replacing the real domain with mail.mydomain.de
IOError at /contacts/
Error reading /srv/modoboa/env/lib/python2.7/site-packages/modoboa_contacts/../frontend/webpack-stats.json. Are you sure webpack has generated the file and the path is correct?
Request Method: GET
Request URL: https://mail.mydomain.de/contacts/
Django Version: 1.11.18
Exception Type: IOError
Exception Value:
Error reading /srv/modoboa/env/lib/python2.7/site-packages/modoboa_contacts/../frontend/webpack-stats.json. Are you sure webpack has generated the file and the path is correct?
Exception Location: /srv/modoboa/env/lib/python2.7/site-packages/webpack_loader/loader.py in _load_assets, line 32
Python Executable: /usr/sbin/uwsgi
Python Version: 2.7.5
Python Path:
['.',
'',
'/srv/modoboa/env/lib64/python27.zip',
'/srv/modoboa/env/lib64/python2.7',
'/srv/modoboa/env/lib64/python2.7/plat-linux2',
'/srv/modoboa/env/lib64/python2.7/lib-tk',
'/srv/modoboa/env/lib64/python2.7/lib-old',
'/srv/modoboa/env/lib64/python2.7/lib-dynload',
'/usr/lib64/python2.7',
'/usr/lib/python2.7',
'/srv/modoboa/env/lib/python2.7/site-packages']
Server time: Fri, 18 Jan 2019 09:03:47 +0100
Environment:
Request Method: GET
Request URL: https://mail.mydomain.de/contacts/
Django Version: 1.11.18
Python Version: 2.7.5
Installed Applications:
(u'django.contrib.auth',
u'django.contrib.contenttypes',
u'django.contrib.sessions',
u'django.contrib.messages',
u'django.contrib.sites',
u'django.contrib.staticfiles',
u'reversion',
u'ckeditor',
u'ckeditor_uploader',
u'rest_framework',
u'rest_framework.authtoken',
u'modoboa',
u'modoboa.core',
u'modoboa.lib',
u'modoboa.admin',
u'modoboa.transport',
u'modoboa.relaydomains',
u'modoboa.limits',
u'modoboa.parameters',
u'modoboa.dnstools',
u'modoboa_pdfcredentials',
u'modoboa_postfix_autoreply',
u'modoboa_sievefilters',
u'modoboa_stats',
u'modoboa_webmail',
u'modoboa_contacts',
u'modoboa_radicale',
'webpack_loader')
Installed Middleware:
(u'x_forwarded_for.middleware.XForwardedForMiddleware',
u'django.contrib.sessions.middleware.SessionMiddleware',
u'django.middleware.common.CommonMiddleware',
u'django.middleware.csrf.CsrfViewMiddleware',
u'django.contrib.auth.middleware.AuthenticationMiddleware',
u'django.contrib.messages.middleware.MessageMiddleware',
u'django.middleware.locale.LocaleMiddleware',
u'django.middleware.clickjacking.XFrameOptionsMiddleware',
u'modoboa.core.middleware.LocalConfigMiddleware',
u'modoboa.lib.middleware.AjaxLoginRedirect',
u'modoboa.lib.middleware.CommonExceptionCatcher',
u'modoboa.lib.middleware.RequestCatcherMiddleware')
Traceback:
File "/srv/modoboa/env/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
217. response = self.process_exception_by_middleware(e, request)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
215. response = response.render()
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/response.py" in render
107. self.content = self.rendered_content
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/response.py" in rendered_content
84. content = template.render(context, self._request)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/backends/django.py" in render
66. return self.template.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render
207. return self._render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render
990. bit = node.render_annotated(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
957. return self.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
177. return compiled_parent._render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render
990. bit = node.render_annotated(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
957. return self.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
177. return compiled_parent._render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render
990. bit = node.render_annotated(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
957. return self.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
72. result = block.nodelist.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render
990. bit = node.render_annotated(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
957. return self.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/defaulttags.py" in render
322. return nodelist.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render
990. bit = node.render_annotated(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
957. return self.render(context)
File "/srv/modoboa/env/lib/python2.7/site-packages/django/template/library.py" in render
203. output = self.func(*resolved_args, **resolved_kwargs)
File "/srv/modoboa/env/lib/python2.7/site-packages/webpack_loader/templatetags/webpack_loader.py" in render_bundle
12. tags = utils.get_as_tags(bundle_name, extension=extension, config=config, attrs=attrs)
File "/srv/modoboa/env/lib/python2.7/site-packages/webpack_loader/utils.py" in get_as_tags
45. bundle = _get_bundle(bundle_name, extension, config)
File "/srv/modoboa/env/lib/python2.7/site-packages/webpack_loader/utils.py" in _get_bundle
23. bundle = get_loader(config).get_bundle(bundle_name)
File "/srv/modoboa/env/lib/python2.7/site-packages/webpack_loader/loader.py" in get_bundle
60. assets = self.get_assets()
File "/srv/modoboa/env/lib/python2.7/site-packages/webpack_loader/loader.py" in get_assets
39. return self._load_assets()
File "/srv/modoboa/env/lib/python2.7/site-packages/webpack_loader/loader.py" in _load_assets
32. self.config['STATS_FILE']))
Exception Type: IOError at /contacts/
Exception Value: Error reading /srv/modoboa/env/lib/python2.7/site-packages/modoboa_contacts/../frontend/webpack-stats.json. Are you sure webpack has generated the file and the path is correct?
Additional log files:
When you compose an email, the to/cc-field searches in the address book. But it looks like it's only looking in the emailaddress, not the 'name' fields.
During pip install we get warning message:
modoboa-contacts 0.5.0 has requirement django-filter==1.0.4, but you'll have django-filter 1.1.0 which is incompatible.
But another modoboa part needs django-filter 1.1.0
Hello,
how can i delete Contact Categories?
I can only find a 'add category' - Button.
Thanks for help
Currently, the message is always displayed.
The filter does not work as expected.
I already enabled DEBUG. I will first give my server info and then the error that I receive.
and here is the error from the copy & paste field:
Environment:
Request Method: GET
Request URL: https://example.com/contacts/
Django Version: 1.10.8
Python Version: 2.7.13
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
'reversion',
'ckeditor',
'ckeditor_uploader',
'rest_framework',
'rest_framework.authtoken',
'modoboa',
'modoboa.core',
'modoboa.lib',
'modoboa.admin',
'modoboa.relaydomains',
'modoboa.limits',
'modoboa.parameters',
'modoboa_pdfcredentials',
'modoboa_postfix_autoreply',
'modoboa_sievefilters',
'modoboa_stats',
'modoboa_webmail',
'modoboa_contacts',
'webpack_loader')
Installed Middleware:
('x_forwarded_for.middleware.XForwardedForMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'modoboa.core.middleware.LocalConfigMiddleware',
'modoboa.lib.middleware.AjaxLoginRedirect',
'modoboa.lib.middleware.CommonExceptionCatcher',
'modoboa.lib.middleware.RequestCatcherMiddleware')
Traceback:
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
42. response = get_response(request)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
217. response = self.process_exception_by_middleware(e, request)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
215. response = response.render()
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/response.py" in render
109. self.content = self.rendered_content
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/response.py" in rendered_content
86. content = template.render(context, self._request)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/backends/django.py" in render
66. return self.template.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render
208. return self._render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
174. return compiled_parent._render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
174. return compiled_parent._render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
70. result = block.nodelist.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
315. return nodelist.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/template/library.py" in render
203. output = self.func(*resolved_args, **resolved_kwargs)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/webpack_loader/templatetags/webpack_loader.py" in render_bundle
12. tags = utils.get_as_tags(bundle_name, extension=extension, config=config, attrs=attrs)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/webpack_loader/utils.py" in get_as_tags
45. bundle = _get_bundle(bundle_name, extension, config)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/webpack_loader/utils.py" in _get_bundle
23. bundle = get_loader(config).get_bundle(bundle_name)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/webpack_loader/loader.py" in get_bundle
59. assets = self.get_assets()
File "/srv/modoboa/env/local/lib/python2.7/site-packages/webpack_loader/loader.py" in get_assets
38. return self._load_assets()
File "/srv/modoboa/env/local/lib/python2.7/site-packages/webpack_loader/loader.py" in _load_assets
31. self.config['STATS_FILE']))
Exception Type: IOError at /contacts/
Exception Value: Error reading /srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_contacts/../frontend/webpack-stats.json. Are you sure webpack has generated the file and the path is correct?
Is this something known already? I couldn't find any info on it though. I appreciate your help.
Hi,
setting up the database tables and installing the contacts application for modoboa went fine but an error rises when modifying the setting.py file with
from modoboa_contacts import settings as modoboa_contacts_settings modoboa_contacts_settings.apply(globals())
Here is the output log:
SyntaxError: invalid syntax
Wed Nov 8 15:40:59 2017 - unable to load app 0 (mountpoint='mail.domain.tld|') (callable not found or import error)
Wed Nov 8 15:40:59 2017 - --- no python application found, check your startup logs for errors ---
mail.domin.tld [pid: 22513|app: -1|req: -1/5] 165.225.76.124 () {52 vars in 990 bytes} [Wed Nov 8 15:40:59 2017] GET / => generated 21 bytes in 2 msecs (HTTP/2.0 500) 2 headers in 83 bytes (0 switches on core 0)
Traceback (most recent call last):
File "./instance/wsgi.py", line 16, in <module>
application = get_wsgi_application()
File "/home/modoboa/env/local/lib/python2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
django.setup(set_prefix=False)
File "/home/modoboa/env/local/lib/python2.7/site-packages/django/__init__.py", line 22, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/home/modoboa/env/local/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
self._setup(name)
File "/home/modoboa/env/local/lib/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "/home/modoboa/env/local/lib/python2.7/site-packages/django/conf/__init__.py", line 97, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "./instance/settings.py", line 14
from modoboa_contacts import settings as modoboa_contacts_settings modoboa_contacts_settings.apply(globals())
Of course removing from modoboa_contacts import settings as modoboa_contacts_settings modoboa_contacts_settings.apply(globals()) make modobo working except contact application.
The import settings were added in top of the file as indicated (which seems very logic for python).
I am running modoboa 1.9.1 and modoboa-contacts 0.4.0, am I missing a dependency ?
I know this is still WIP, but it would be great if there was an option to use an existing CardDAV server as the backend (specifically: ownCloud/Nextcloud).
Hello,
i think i have some trouble with the contacts module.
I have over 300 conntacts on my Phone and my Thunderbird Contacts Plugin.
This work good and the devices are synced.
Problem is the Webinterface. I see only 4 contacts but no longer exist and the other 300 should be there I do not see.
what can I do?
Debug mode is enable and shows no problems and errors.
In the config i have enable the modoboa_app
...
'modoboa_contacts',
...
and on the end of file:
try:
from modoboa_contacts import settings as modoboa_contacts_settings
modoboa_contacts_settings.apply(globals())
except AttributeError:
from modoboa_contacts.settings import * # noqa
thanks for any help
Hi there,
My first and only user tried to used contacts and got this! What's up?
regards,
JBR
Request Method: | GET
-- | --
https://mail.nerderlands.net/contacts/
1.11.15
IOError
Error reading /srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_contacts/../frontend/webpack-stats.json. Are you sure webpack has generated the file and the path is correct?
/srv/modoboa/env/local/lib/python2.7/site-packages/webpack_loader/loader.py in _load_assets, line 32
/usr/bin/uwsgi-core
2.7.13
['.', '', '/srv/modoboa/env/lib/python2.7', '/srv/modoboa/env/lib/python2.7/plat-x86_64-linux-gnu', '/srv/modoboa/env/lib/python2.7/lib-tk', '/srv/modoboa/env/lib/python2.7/lib-old', '/srv/modoboa/env/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/srv/modoboa/env/local/lib/python2.7/site-packages', '/srv/modoboa/env/lib/python2.7/site-packages']
Tue, 7 Aug 2018 16:20:35 +0200
Traceback:
File "/srv/modoboa/env3/lib/python3.5/site-packages/vobject/base.py" in __getattr__
376. return self.params[toVName(name, 6, True)][0]
During handling of the above exception ('TYPE'), another exception occurred:
File "/srv/modoboa/env3/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/srv/modoboa/env3/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/srv/modoboa/env3/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.5/contextlib.py" in inner
30. return func(*args, **kwds)
File "/usr/lib/python3.5/contextlib.py" in inner
30. return func(*args, **kwds)
File "/srv/modoboa/env3/lib/python3.5/site-packages/django/views/decorators/csrf.py" in wrapped_view
58. return view_func(*args, **kwargs)
File "/srv/modoboa/env3/lib/python3.5/site-packages/rest_framework/viewsets.py" in view
90. return self.dispatch(request, *args, **kwargs)
File "/srv/modoboa/env3/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
489. response = self.handle_exception(exc)
File "/srv/modoboa/env3/lib/python3.5/site-packages/rest_framework/views.py" in handle_exception
449. self.raise_uncaught_exception(exc)
File "/srv/modoboa/env3/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
486. response = handler(request, *args, **kwargs)
File "/srv/modoboa/env3/lib/python3.5/site-packages/modoboa_contacts/viewsets.py" in sync_from_cdav
41. tasks.sync_addressbook_from_cdav(request, abook)
File "/srv/modoboa/env3/lib/python3.5/site-packages/modoboa_contacts/tasks.py" in sync_addressbook_from_cdav
63. contact.update_from_vcard(content)
File "/srv/modoboa/env3/lib/python3.5/site-packages/modoboa_contacts/models.py" in update_from_vcard
142. type=email.type_param.lower()
File "/srv/modoboa/env3/lib/python3.5/site-packages/vobject/base.py" in __getattr__
382. raise AttributeError(name)
Exception Type: AttributeError at /api/v1/address-books/sync_from_cdav/
Exception Value: type_param
Add the possibility to synchronize contacts with a remote CardDAV address book (using Radicale).
I imported contacts from my Google Account. A lot of them don't have an e-mail address but only a phone number.
When I open a contact it shows with an empty e-mail address.
I cannot delete this e-mail address (not available) nor can I leave it empty (error message in the form), forcing me to use weird placeholder addresses to denote that it is not the actual address even if I just want to edit another property.
Is there a reason why the e-mail address can't be deleted or left empty?
See modoboa/modoboa#1109.
It will allow the installation of this plugin by the installer!
Create a new contact using the web interface and put this character somewhere in the name "é" , when the page with pull data from the rest API using https://<server_address>/api/v1/address-books/sync_from_cdav/
it will reply with 500 server error
.
I enabled debug, browsed to sync_from_cdav
and this is what I could see: pastebin
It seems like radicale is doing just fine, I can sync the contact with the special character to my phone and to my other webmail.
Let me know if you need additional info !
Thanks!
Hi,
A company may have multiple departments and teams with email aliases for all sorts of purposes. I'd like to have a company based address book with all member emails and aliases that can be shared to each user(in Modoboa contacts). Not sure how to create a centralized address book yet, but Modoboa contacts seems not able to load contacts from file or query from external source. Just checking in to see if this is even doable? Thx
Cheers,
YiMin
When you add a new contact, compose the default 'Name' from 'First name' and 'Last name'.
There is a loading error which prevents plugin use.
[Vue warn]: Error in data(): "TypeError: window.userProfile is undefined"
found in
---> <Anonymous>
<Anonymous>
<Root>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.