• You MUST read the Babiato Rules before making your first post otherwise you may get permanent warning points or a permanent Ban.

    Our resources on Babiato Forum are CLEAN and SAFE. So you can use them for development and testing purposes. If your are on Windows and have an antivirus that alerts you about a possible infection: Know it's a false positive because all scripts are double checked by our experts. We advise you to add Babiato to trusted sites/sources or disable your antivirus momentarily while downloading a resource. "Enjoy your presence on Babiato"

Odoo Enterprise?

Yes, a v14 would be awesome. Thanks

Also in previous versions you can simply extend the trial to a pretty much unlimited number with some tweaking of system parameters
 
Last edited:
  • Like
Reactions: Caly
nicktarc, Thanks for sharing. this is a BIG deal.
This is very easy to null because source code is available and Python is simple.

1)
Technique->Systeme Parameters
database.expiration_date = 2051-02-20 01:38:07
If you do that, this will work for a moment and odoo cron job will override it with a 1 month trial database.

2)
You should override the cron job process to prevent odoo accessing the ‘database.expiration_date’ key.
The cron job process file is located in
odoo/addons/mail/models/update.py

3)
Additionnaly (not mandatory) you can remove the api url from the config file located :
odoo/tools/config.py


If you tell me how you deploy Odoo, I will write a patch to automatically do this.

Best.

w0.png



w1.png



w2.png
 
If you tell me how you deploy Odoo, I will write a patch to automatically do this.

There are 2 way we normally deploy it for community edition...

1. using deb/rpm for small client which all in 1 (nginx+odoo+postgresql)
2. another way is using source code, this for customer use case that require HA from multi instances (lb + odoo + postgresql cluster)
 
Version 14 is added to the shared folder.



Can share guide on how to extend the trial and where to tweak the settings?
Thank you so much for sharing! At least now we can better evaluate the differences between Enterprise & Community! 🙏
By the way, have you gone through the courses from Odoo Class and do you recommend them? TIA
 
There are 2 way we normally deploy it for community edition...

1. using deb/rpm for small client which all in 1 (nginx+odoo+postgresql)
2. another way is using source code, this for customer use case that require HA from multi instances (lb + odoo + postgresql cluster)



Based on your deployment methods you should have your config file located at:

odoo/odoo-server/addons/mail/models/update.py

You should replace the content of your update.py file with this one :


Python:
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

import datetime
import logging

import requests
import werkzeug.urls

from ast import literal_eval

from odoo import api, release, SUPERUSER_ID
from odoo.exceptions import UserError
from odoo.models import AbstractModel
from odoo.tools.translate import _
from odoo.tools import config, misc, ustr

_logger = logging.getLogger(__name__)


class PublisherWarrantyContract(AbstractModel):
    _name = "publisher_warranty.contract"
    _description = 'Publisher Warranty Contract'

    @api.model
    def _get_message(self):
        return None

    @api.model
    def _get_sys_logs(self):
        return None

    @api.multi
    def update_notification(self, cron_mode=True):
        return True


So this will prevent odoo from sending your db infos to their server.
And won't raise Python errors.

Best.
 
When I update the update.py file with your code I seem to get this error and gives me a server error:


Feb 27 01:24:31 mail systemd[1]: Started Odootwiy.


Feb 27 01:24:32 mail odootwiy[4522]: /opt/odootwiy/odootwiy-venv/lib/python3.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.


Feb 27 01:24:32 mail odootwiy[4522]: """)


Feb 27 01:24:32 mail odootwiy[4522]: /opt/odootwiy/odootwiy-venv/lib/python3.7/site-packages/pkg_resources/__init__.py:1876: UserWarning: /opt/odootwiy/odoo/._odoo.egg-info could not be properly decoded in UTF-8


Feb 27 01:24:32 mail odootwiy[4522]: warnings.warn(msg)


Feb 27 01:24:32 mail odootwiy[4522]: ERROR: couldn't create the logfile directory. Logging to the standard output.


Feb 27 01:24:32 mail odootwiy[4522]: 2021-02-27 01:24:32,267 4522 INFO ? odoo: Odoo version 14.0+e-20210131


Feb 27 01:24:32 mail odootwiy[4522]: 2021-02-27 01:24:32,267 4522 INFO ? odoo: Using configuration file at /etc/odootwiy.conf


Feb 27 01:24:32 mail odootwiy[4522]: 2021-02-27 01:24:32,267 4522 INFO ? odoo: addons paths: ['/opt/odootwiy/odoo/odoo/addons', '/opt/odootwiy/.local/share/Odoo/addons/14.0']


Feb 27 01:24:32 mail odootwiy[4522]: 2021-02-27 01:24:32,267 4522 INFO ? odoo: database: odootwiy@default:default


Feb 27 01:24:32 mail odootwiy[4522]: 2021-02-27 01:24:32,429 4522 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf


Feb 27 01:24:32 mail odootwiy[4522]: 2021-02-27 01:24:32,546 4522 INFO ? odoo.service.server: HTTP service (werkzeug) running on mail:8068


Feb 27 01:24:33 mail odootwiy[4522]: 2021-02-27 01:24:33,711 4522 INFO ? odoo.http: HTTP Configuring static files


Feb 27 01:24:33 mail odootwiy[4522]: 2021-02-27 01:24:33,720 4522 INFO ? odoo.http: Generating nondb routing


Feb 27 01:24:33 mail odootwiy[4522]: 2021-02-27 01:24:33,741 4522 INFO ? werkzeug: 64.136.130.62 - - [27/Feb/2021 01:24:33] "GET / HTTP/1.1" 303 - 1 0.002 0.025


Feb 27 01:24:33 mail odootwiy[4522]: 2021-02-27 01:24:33,776 4522 INFO ? werkzeug: 64.136.130.62 - - [27/Feb/2021 01:24:33] "GET /web HTTP/1.1" 303 - 2 0.004 0.009


Feb 27 01:24:33 mail odootwiy[4522]: 2021-02-27 01:24:33,862 4522 INFO ? werkzeug: 64.136.130.62 - - [27/Feb/2021 01:24:33] "GET /web/database/selector HTTP/1.1" 200 - 8 0.010 0.053


Feb 27 01:24:42 mail odootwiy[4522]: 2021-02-27 01:24:42,545 4522 WARNING ? odoo.http: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.


Feb 27 01:24:42 mail odootwiy[4522]: 2021-02-27 01:24:42,550 4522 INFO ? werkzeug: 64.136.130.62 - - [27/Feb/2021 01:24:42] "POST /longpolling/poll HTTP/1.1" 404 - 1 0.002 0.009


Feb 27 01:24:45 mail odootwiy[4522]: 2021-02-27 01:24:45,951 4522 INFO ? werkzeug: 64.136.130.62 - - [27/Feb/2021 01:24:45] "GET /web?db=ODOOTWIYREAL HTTP/1.1" 302 - 1 0.002 0.006


Feb 27 01:24:45 mail odootwiy[4522]: 2021-02-27 01:24:45,982 4522 INFO ODOOTWIYREAL odoo.modules.loading: loading 1 modules...


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,003 4522 INFO ODOOTWIYREAL odoo.modules.loading: 1 modules loaded in 0.02s, 0 queries (+0 extra)


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,072 4522 INFO ODOOTWIYREAL odoo.modules.loading: loading 76 modules...


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,159 4522 WARNING ODOOTWIYREAL py.warnings: /opt/odootwiy/odootwiy-venv/lib/python3.7/site-packages/jinja2/sandbox.py:82: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working


Feb 27 01:24:46 mail odootwiy[4522]: from collections import MutableSet, MutableMapping, MutableSequence


Feb 27 01:24:46 mail odootwiy[4522]:


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,177 4522 CRITICAL ODOOTWIYREAL odoo.modules.module: Couldn't load module mail


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,177 4522 CRITICAL ODOOTWIYREAL odoo.modules.module: module 'odoo.api' has no attribute 'multi'


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,182 4522 WARNING ODOOTWIYREAL odoo.modules.loading: Transient module states were reset


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,184 4522 ERROR ODOOTWIYREAL odoo.modules.registry: Failed to load registry


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,187 4522 INFO ODOOTWIYREAL werkzeug: 64.136.130.62 - - [27/Feb/2021 01:24:46] "GET /web?db=ODOOTWIYREAL HTTP/1.1" 500 - 9 0.008 0.204


Feb 27 01:24:46 mail odootwiy[4522]: 2021-02-27 01:24:46,193 4522 ERROR ODOOTWIYREAL werkzeug: Error on request:


Feb 27 01:24:46 mail odootwiy[4522]: Traceback (most recent call last):


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/registry.py", line 63, in __new__


Feb 27 01:24:46 mail odootwiy[4522]: return cls.registries[db_name]


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/tools/func.py", line 71, in wrapper


Feb 27 01:24:46 mail odootwiy[4522]: return func(self, *args, **kwargs)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/tools/lru.py", line 34, in __getitem__


Feb 27 01:24:46 mail odootwiy[4522]: a = self.d[obj]


Feb 27 01:24:46 mail odootwiy[4522]: KeyError: 'ODOOTWIYREAL'


Feb 27 01:24:46 mail odootwiy[4522]: During handling of the above exception, another exception occurred:


Feb 27 01:24:46 mail odootwiy[4522]: Traceback (most recent call last):


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odootwiy-venv/lib/python3.7/site-packages/werkzeug/serving.py", line 306, in run_wsgi


Feb 27 01:24:46 mail odootwiy[4522]: execute(self.server.app)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odootwiy-venv/lib/python3.7/site-packages/werkzeug/serving.py", line 294, in execute


Feb 27 01:24:46 mail odootwiy[4522]: application_iter = app(environ, start_response)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/service/server.py", line 440, in app


Feb 27 01:24:46 mail odootwiy[4522]: return self.app(e, s)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/service/wsgi_server.py", line 122, in application


Feb 27 01:24:46 mail odootwiy[4522]: return ProxyFix(application_unproxied)(environ, start_response)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odootwiy-venv/lib/python3.7/site-packages/werkzeug/middleware/proxy_fix.py", line 232, in __call__


Feb 27 01:24:46 mail odootwiy[4522]: return self.app(environ, start_response)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/service/wsgi_server.py", line 99, in application_unproxied


Feb 27 01:24:46 mail odootwiy[4522]: result = odoo.http.root(environ, start_response)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/http.py", line 1295, in __call__


Feb 27 01:24:46 mail odootwiy[4522]: return self.dispatch(environ, start_response)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/http.py", line 1263, in __call__


Feb 27 01:24:46 mail odootwiy[4522]: return self.app(environ, start_wrapped)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odootwiy-venv/lib/python3.7/site-packages/werkzeug/middleware/shared_data.py", line 220, in __call__


Feb 27 01:24:46 mail odootwiy[4522]: return self.app(environ, start_response)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/http.py", line 1450, in dispatch


Feb 27 01:24:46 mail odootwiy[4522]: odoo.registry(db).check_signaling()


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/__init__.py", line 104, in registry


Feb 27 01:24:46 mail odootwiy[4522]: return modules.registry.Registry(database_name)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/registry.py", line 65, in __new__


Feb 27 01:24:46 mail odootwiy[4522]: return cls.new(db_name)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/registry.py", line 89, in new


Feb 27 01:24:46 mail odootwiy[4522]: odoo.modules.load_modules(registry._db, force_demo, status, update_module)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/loading.py", line 451, in load_modules


Feb 27 01:24:46 mail odootwiy[4522]: force, status, report, loaded_modules, update_module, models_to_check)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/loading.py", line 348, in load_marked_modules


Feb 27 01:24:46 mail odootwiy[4522]: perform_checks=perform_checks, models_to_check=models_to_check


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/loading.py", line 178, in load_module_graph


Feb 27 01:24:46 mail odootwiy[4522]: load_openerp_module(package.name)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/module.py", line 358, in load_openerp_module


Feb 27 01:24:46 mail odootwiy[4522]: __import__('odoo.addons.' + module_name)


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/addons/mail/__init__.py", line 3, in <module>


Feb 27 01:24:46 mail odootwiy[4522]: from . import models


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/addons/mail/models/__init__.py", line 26, in <module>


Feb 27 01:24:46 mail odootwiy[4522]: from . import update


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/addons/mail/models/update.py", line 21, in <module>


Feb 27 01:24:46 mail odootwiy[4522]: class PublisherWarrantyContract(AbstractModel):


Feb 27 01:24:46 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/addons/mail/models/update.py", line 33, in PublisherWarrantyContract


Feb 27 01:24:46 mail odootwiy[4522]: @api.multi


Feb 27 01:24:46 mail odootwiy[4522]: AttributeError: module 'odoo.api' has no attribute 'multi' - - -


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,041 4522 INFO ODOOTWIYREAL odoo.modules.loading: loading 1 modules...


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,065 4522 INFO ODOOTWIYREAL odoo.modules.loading: 1 modules loaded in 0.02s, 0 queries (+0 extra)


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,088 4522 INFO ODOOTWIYREAL odoo.modules.loading: loading 76 modules...


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,135 4522 CRITICAL ODOOTWIYREAL odoo.modules.module: Couldn't load module mail


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,135 4522 CRITICAL ODOOTWIYREAL odoo.modules.module: module 'odoo.api' has no attribute 'multi'


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,140 4522 WARNING ODOOTWIYREAL odoo.modules.loading: Transient module states were reset


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,142 4522 ERROR ODOOTWIYREAL odoo.modules.registry: Failed to load registry


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,147 4522 INFO ODOOTWIYREAL werkzeug: 64.136.130.62 - - [27/Feb/2021 01:24:50] "GET /web?db=ODOOTWIYREAL HTTP/1.1" 500 - 9 0.007 0.105


Feb 27 01:24:50 mail odootwiy[4522]: 2021-02-27 01:24:50,157 4522 ERROR ODOOTWIYREAL werkzeug: Error on request:


Feb 27 01:24:50 mail odootwiy[4522]: Traceback (most recent call last):


Feb 27 01:24:50 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/modules/registry.py", line 63, in __new__


Feb 27 01:24:50 mail odootwiy[4522]: return cls.registries[db_name]


Feb 27 01:24:50 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/tools/func.py", line 71, in wrapper


Feb 27 01:24:50 mail odootwiy[4522]: return func(self, *args, **kwargs)


Feb 27 01:24:50 mail odootwiy[4522]: File "/opt/odootwiy/odoo/odoo/tools/lru.py", line 34, in __getitem__


Feb 27 01:24:50 mail odootwiy[4522]: a = self.d[obj]


Feb 27 01:24:50 mail odootwiy[4522]: KeyError: 'ODOOTWIYREAL'

Also the odoo bank sync doesn't seem to work :X
 
Last edited:
When I update the update.py file with your code I seem to get this error and gives me a server error:




Also the odoo bank sync doesn't seem to work :X


Hi polQnis, Sorry I gave the update.py file for odoo12.

below the good file:

Python:
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

import datetime
import logging

import requests
import werkzeug.urls

from ast import literal_eval

from odoo import api, release, SUPERUSER_ID
from odoo.exceptions import UserError
from odoo.models import AbstractModel
from odoo.tools.translate import _
from odoo.tools import config, misc, ustr

_logger = logging.getLogger(__name__)


class PublisherWarrantyContract(AbstractModel):
    _name = "publisher_warranty.contract"
    _description = 'Publisher Warranty Contract'

    @api.model
    def _get_message(self):
        return None

    @api.model
    def _get_sys_logs(self):
        return None

    def update_notification(self, cron_mode=True):
        return True

Best.
 
any1 here beside me is running the 30 days testing to see if the patch is working or not???
 
Last edited:
any1 here beside me is running the 30 days testing to see if the patch is working or not???


It works for me;

If the patch doesn't work, every time you install an application or you add user it would refresh the expiration date and disable Odoo Enterprise. No need to wait a month.

If the patch is well installed, the fetch system will juste call empty methods, so no risk.

In the log file of odoo installation you can see empty methods called.

Best.
 
AdBlock Detected

We get it, advertisements are annoying!

However in order to keep our huge array of resources free of charge we need to generate income from ads so to use the site you will need to turn off your adblocker.

If you'd like to have an ad free experience you can become a Babiato Lover by donating as little as $5 per month. Click on the Donate menu tab for more info.

I've Disabled AdBlock