OCA / server-backend

GNU Affero General Public License v3.0
94 stars 256 forks source link

base_dav dead? #254

Open chief-nerd opened 6 months ago

chief-nerd commented 6 months ago

Is your feature request related to a problem? If so, please provide clear and concise description of what the problem is.

Is base_dav discontinued since 11.0? https://github.com/OCA/server-backend/tree/11.0/base_dav

Describe the solution you'd like A clear and concise description of what you want to happen.

WebDav sync of Calendars :)

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

not possible - switch away from odoo

Additional context Add any other context about the feature request here.

AquaMCU commented 6 months ago

I am interested in this as well. I think a good cause for the OCA is to provide an alternative to google calender. That is what is missing. So instead of complaining, how can we help? I can do testing as well as some basic development.

josselex commented 6 months ago

I am interested as well. Can one sponsor an update?

AquaMCU commented 6 months ago

Yes. I suggest OCA does like a bug bounty program for the development. I would chip in

AquaMCU commented 6 months ago

base_dav.zip

I can not create a pull request, but here is the update fro 17.0 ;) Please code review this and check it into the main repo ....

So far it is working locally on my box

josselex commented 6 months ago

Wow, amazing! What a Christmas present! Will check it out.

AquaMCU @.***> schrieb am Mo., 25. Dez. 2023, 11:42:

base_dav.zip https://github.com/OCA/server-backend/files/13765629/base_dav.zip

I can not create a pull request, but here is the update fro 17.0 ;) Please code review this and check it into the main repo ....

So far it is working locally on my box

— Reply to this email directly, view it on GitHub https://github.com/OCA/server-backend/issues/254#issuecomment-1868921427, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACASWKSARWQKNS4IPHLGAE3YLFKCZAVCNFSM6AAAAABAVPHMV6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRYHEZDCNBSG4 . You are receiving this because you are subscribed to this thread.Message ID: @.***>

AquaMCU commented 6 months ago

Hmm. When I open the URL, I get an error. I will investigate. Do you have any ideas?

democenter_1 | 2023-12-25 13:23:06,812 1 ERROR 01 odoo.http: Exception during request handling. democenter_1 | Traceback (most recent call last): democenter_1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2157, in call democenter_1 | response = request._serve_db() democenter_1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1732, in servedb democenter_1 | return service_model.retrying(self._serve_ir_http, self.env) democenter_1 | File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying democenter_1 | result = func() democenter_1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1759, in serveir_http democenter_1 | response = self.dispatcher.dispatch(rule.endpoint, args) democenter_1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1873, in dispatch democenter_1 | return self.request.registry['ir.http']._dispatch(endpoint) democenter_1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 207, in _dispatch democenter_1 | result = endpoint(*request.params) democenter_1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 722, in route_wrapper democenter_1 | result = endpoint(self, args, params_ok) democenter_1 | File "/mnt/extra-addons/base_dav/controllers/main.py", line 33, in handle_dav_request democenter_1 | for section, values in radicale.config.INITIAL_CONFIG.items(): democenter_1 | AttributeError: module 'radicale' has no attribute 'config'

AquaMCU commented 5 months ago

Fixed it ... Can you please check and create a pull request?

base_dav(1).zip

chief-nerd commented 5 months ago

Finally got around to check the file ... base_dav(1).zip ... Python library not installed: radicale

... not sure what is wrong since there is a radicale folder in the addon.

Logs & Stack Trace (click me) ``` odoo-1 | 2024-02-12 08:04:52,536 1 WARNING odoo py.warnings: /usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: -VERSION- is an invalid version and will not be supported in a future release odoo-1 | File "/usr/lib/python3.10/threading.py", line 973, in _bootstrap odoo-1 | self._bootstrap_inner() odoo-1 | File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner odoo-1 | self.run() odoo-1 | File "/usr/lib/python3.10/threading.py", line 953, in run odoo-1 | self._target(*self._args, **self._kwargs) odoo-1 | File "/usr/lib/python3.10/socketserver.py", line 683, in process_request_thread odoo-1 | self.finish_request(request, client_address) odoo-1 | File "/usr/lib/python3.10/socketserver.py", line 360, in finish_request odoo-1 | self.RequestHandlerClass(request, client_address, self) odoo-1 | File "/usr/lib/python3.10/socketserver.py", line 747, in __init__ odoo-1 | self.handle() odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 342, in handle odoo-1 | BaseHTTPRequestHandler.handle(self) odoo-1 | File "/usr/lib/python3.10/http/server.py", line 433, in handle odoo-1 | self.handle_one_request() odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 374, in handle_one_request odoo-1 | self.run_wsgi() odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 319, in run_wsgi odoo-1 | execute(self.server.app) odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 308, in execute odoo-1 | application_iter = app(environ, start_response) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2150, in __call__ odoo-1 | response = request._serve_db() odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1722, in _serve_db odoo-1 | return service_model.retrying(self._serve_ir_http, self.env) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying odoo-1 | result = func() odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1749, in _serve_ir_http odoo-1 | response = self.dispatcher.dispatch(rule.endpoint, args) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1953, in dispatch odoo-1 | result = self.request.registry['ir.http']._dispatch(endpoint) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 222, in _dispatch odoo-1 | result = endpoint(**request.params) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 722, in route_wrapper odoo-1 | result = endpoint(self, *args, **params_ok) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 28, in call_button odoo-1 | action = self._call_kw(model, method, args, kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 20, in _call_kw odoo-1 | return call_kw(request.env[model], method, args, kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/api.py", line 468, in call_kw odoo-1 | result = _call_kw_multi(method, model, args, kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/api.py", line 453, in _call_kw_multi odoo-1 | result = method(recs, *args, **kwargs) odoo-1 | File "", line 2, in button_immediate_install odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 75, in check_and_log odoo-1 | return method(self, *args, **kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 466, in button_immediate_install odoo-1 | return self._button_immediate_function(self.env.registry[self._name].button_install) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 587, in _button_immediate_function odoo-1 | function(self) odoo-1 | File "", line 2, in button_install odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 75, in check_and_log odoo-1 | return method(self, *args, **kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 408, in button_install odoo-1 | modules._state_update('to install', ['uninstalled']) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 387, in _state_update odoo-1 | self.check_external_dependencies(module.name, newstate) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 348, in check_external_dependencies odoo-1 | modules.check_manifest_dependencies(terp) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 488, in check_manifest_dependencies odoo-1 | check_python_external_dependency(pydep) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 466, in check_python_external_dependency odoo-1 | pkg_resources.get_distribution(pydep) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 471, in get_distribution odoo-1 | dist = get_provider(dist) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 347, in get_provider odoo-1 | return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0] odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 891, in require odoo-1 | needed = self.resolve(parse_requirements(requirements)) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 764, in resolve odoo-1 | env = Environment(self.entries) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 975, in __init__ odoo-1 | self.scan(search_path) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1008, in scan odoo-1 | self.add(dist) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1028, in add odoo-1 | dists.sort(key=operator.attrgetter('hashcmp'), reverse=True) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2614, in hashcmp odoo-1 | self.parsed_version, odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2661, in parsed_version odoo-1 | self._parsed_version = parse_version(self.version) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 116, in parse_version odoo-1 | warnings.warn( odoo-1 | odoo-1 | 2024-02-12 08:04:52,537 1 WARNING odoo py.warnings: /usr/lib/python3/dist-packages/pkg_resources/_vendor/packaging/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release odoo-1 | File "/usr/lib/python3.10/threading.py", line 973, in _bootstrap odoo-1 | self._bootstrap_inner() odoo-1 | File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner odoo-1 | self.run() odoo-1 | File "/usr/lib/python3.10/threading.py", line 953, in run odoo-1 | self._target(*self._args, **self._kwargs) odoo-1 | File "/usr/lib/python3.10/socketserver.py", line 683, in process_request_thread odoo-1 | self.finish_request(request, client_address) odoo-1 | File "/usr/lib/python3.10/socketserver.py", line 360, in finish_request odoo-1 | self.RequestHandlerClass(request, client_address, self) odoo-1 | File "/usr/lib/python3.10/socketserver.py", line 747, in __init__ odoo-1 | self.handle() odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 342, in handle odoo-1 | BaseHTTPRequestHandler.handle(self) odoo-1 | File "/usr/lib/python3.10/http/server.py", line 433, in handle odoo-1 | self.handle_one_request() odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 374, in handle_one_request odoo-1 | self.run_wsgi() odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 319, in run_wsgi odoo-1 | execute(self.server.app) odoo-1 | File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 308, in execute odoo-1 | application_iter = app(environ, start_response) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2150, in __call__ odoo-1 | response = request._serve_db() odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1722, in _serve_db odoo-1 | return service_model.retrying(self._serve_ir_http, self.env) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying odoo-1 | result = func() odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1749, in _serve_ir_http odoo-1 | response = self.dispatcher.dispatch(rule.endpoint, args) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1953, in dispatch odoo-1 | result = self.request.registry['ir.http']._dispatch(endpoint) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 222, in _dispatch odoo-1 | result = endpoint(**request.params) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 722, in route_wrapper odoo-1 | result = endpoint(self, *args, **params_ok) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 28, in call_button odoo-1 | action = self._call_kw(model, method, args, kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 20, in _call_kw odoo-1 | return call_kw(request.env[model], method, args, kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/api.py", line 468, in call_kw odoo-1 | result = _call_kw_multi(method, model, args, kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/api.py", line 453, in _call_kw_multi odoo-1 | result = method(recs, *args, **kwargs) odoo-1 | File "", line 2, in button_immediate_install odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 75, in check_and_log odoo-1 | return method(self, *args, **kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 466, in button_immediate_install odoo-1 | return self._button_immediate_function(self.env.registry[self._name].button_install) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 587, in _button_immediate_function odoo-1 | function(self) odoo-1 | File "", line 2, in button_install odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 75, in check_and_log odoo-1 | return method(self, *args, **kwargs) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 408, in button_install odoo-1 | modules._state_update('to install', ['uninstalled']) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 387, in _state_update odoo-1 | self.check_external_dependencies(module.name, newstate) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 348, in check_external_dependencies odoo-1 | modules.check_manifest_dependencies(terp) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 488, in check_manifest_dependencies odoo-1 | check_python_external_dependency(pydep) odoo-1 | File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 466, in check_python_external_dependency odoo-1 | pkg_resources.get_distribution(pydep) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 471, in get_distribution odoo-1 | dist = get_provider(dist) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 347, in get_provider odoo-1 | return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0] odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 891, in require odoo-1 | needed = self.resolve(parse_requirements(requirements)) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 764, in resolve odoo-1 | env = Environment(self.entries) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 975, in __init__ odoo-1 | self.scan(search_path) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1008, in scan odoo-1 | self.add(dist) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1028, in add odoo-1 | dists.sort(key=operator.attrgetter('hashcmp'), reverse=True) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2614, in hashcmp odoo-1 | self.parsed_version, odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2661, in parsed_version odoo-1 | self._parsed_version = parse_version(self.version) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 121, in parse_version odoo-1 | return packaging.version.LegacyVersion(v) odoo-1 | File "/usr/lib/python3/dist-packages/pkg_resources/_vendor/packaging/version.py", line 111, in __init__ odoo-1 | warnings.warn( odoo-1 | odoo-1 | 2024-02-12 08:04:52,538 1 WARNING odoo odoo.modules.module: DistributionNotFound: The 'radicale' distribution was not found and is required by the application odoo-1 | 2024-02-12 08:04:52,541 1 WARNING odoo odoo.http: It's not possible to install module „base_dav“ because dependencies are not met: Python library not installed: radicale ```
AquaMCU commented 5 months ago

Hi. You need to install the python radicale module. That does not belong to ODOO:

python3 -m pip install --upgrade radicale

https://radicale.org/v3.html

chief-nerd commented 5 months ago

@AquaMCU -- ah understand! Great ... so we got 1 step further! For the protocol: I ran docker compose exec -it odoo python3 -m pip install --upgrade radicale

Now I get a new error: TypeError: NoneType takes no arguments

``` RPC_ERROR Odoo Server Error Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/http.py", line 1722, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying result = func() File "/usr/lib/python3/dist-packages/odoo/http.py", line 1749, in _serve_ir_http response = self.dispatcher.dispatch(rule.endpoint, args) File "/usr/lib/python3/dist-packages/odoo/http.py", line 1953, in dispatch result = self.request.registry['ir.http']._dispatch(endpoint) File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 222, in _dispatch result = endpoint(**request.params) File "/usr/lib/python3/dist-packages/odoo/http.py", line 722, in route_wrapper result = endpoint(self, *args, **params_ok) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 28, in call_button action = self._call_kw(model, method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 20, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 468, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 453, in _call_kw_multi result = method(recs, *args, **kwargs) File "", line 2, in button_immediate_install File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 75, in check_and_log return method(self, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 466, in button_immediate_install return self._button_immediate_function(self.env.registry[self._name].button_install) File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 590, in _button_immediate_function registry = modules.registry.Registry.new(self._cr.dbname, update_module=True) File "", line 2, in new File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 87, in locked return func(inst, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 113, in new odoo.modules.load_modules(registry, force_demo, status, update_module) File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 480, in load_modules processed_modules += load_marked_modules(env, graph, File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 364, in load_marked_modules loaded, processed = load_module_graph( File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 185, in load_module_graph load_openerp_module(package.name) File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 394, in load_openerp_module __import__(qualname) File "/mnt/extra-addons/base_dav/__init__.py", line 3, in from . import models File "/mnt/extra-addons/base_dav/models/__init__.py", line 3, in from . import dav_collection File "/mnt/extra-addons/base_dav/models/dav_collection.py", line 16, in from odoo.addons.base_dav.radicale.collection import Collection, FileItem, Item File "/mnt/extra-addons/base_dav/radicale/__init__.py", line 4, in from . import collection File "/mnt/extra-addons/base_dav/radicale/collection.py", line 26, in class FileItem(Item): TypeError: NoneType takes no arguments The above server error caused the following client error: RPC_ERROR: Odoo Server Error at makeErrorFromResponse (https://odoo/web/assets/7264e52/web.assets_web.min.js:2872:163) at XMLHttpRequest. (https://odoo/web/assets/7264e52/web.assets_web.min.js:2876:13) ```
AquaMCU commented 5 months ago

When do you get the error? During install?

chief-nerd commented 4 months ago

Yes during install.

AquaMCU commented 4 months ago

Just a stupid question. Did you install the calender app? ;)

chief-nerd commented 4 months ago

It's a good question. But yes I did.

mcassuto commented 4 months ago

@AquaMCU thanks a lot. I will get the PR done !

AquaMCU commented 4 months ago

Con gusto! The error of chief-nerd exists. I had the same but unfortunately I do not remember how I fixed this and right now I dont have the time to redo it. Perhaps on the weekend I will have a chance to see what you need to do. I think it was only a configuration issue .. . I keep you updated ( P.s. on one of my servers it works perfect. )

chief-nerd commented 2 months ago

@AquaMCU this is still open ... didn't figure out how to fix yet ...

neoneddy commented 1 month ago

Any love for a version 16? I'd gladly pay a bounty for this modified for odoo 16.

neoneddy commented 2 weeks ago

Any interest in doing a version of odoo 16? Take my money.