-
-
Save tejastank/3eecb59c8ff04b85829bd8d4b14b5b26 to your computer and use it in GitHub Desktop.
| # -*- coding: utf-8 -*- | |
| # tejaskumartank@proton.me | |
| # ODOO Enterprise Edition | |
| # 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): | |
| Users = self.env['res.users'] | |
| IrParamSudo = self.env['ir.config_parameter'].sudo() | |
| dbuuid = IrParamSudo.get_param('database.uuid') | |
| db_create_date = IrParamSudo.get_param('database.create_date') | |
| limit_date = datetime.datetime.now() | |
| limit_date = limit_date - datetime.timedelta(15) | |
| limit_date_str = limit_date.strftime(misc.DEFAULT_SERVER_DATETIME_FORMAT) | |
| nbr_users = Users.search_count([('active', '=', True)]) | |
| nbr_active_users = Users.search_count([("login_date", ">=", limit_date_str), ('active', '=', True)]) | |
| nbr_share_users = 0 | |
| nbr_active_share_users = 0 | |
| if "share" in Users._fields: | |
| nbr_share_users = Users.search_count([("share", "=", True), ('active', '=', True)]) | |
| nbr_active_share_users = Users.search_count([("share", "=", True), ("login_date", ">=", limit_date_str), ('active', '=', True)]) | |
| user = self.env.user | |
| domain = [('application', '=', True), ('state', 'in', ['installed', 'to upgrade', 'to remove'])] | |
| apps = self.env['ir.module.module'].sudo().search_read(domain, ['name']) | |
| enterprise_code = IrParamSudo.get_param('database.enterprise_code') | |
| web_base_url = IrParamSudo.get_param('web.base.url') | |
| msg = { | |
| "dbuuid": dbuuid, | |
| "nbr_users": nbr_users, | |
| "nbr_active_users": nbr_active_users, | |
| "nbr_share_users": nbr_share_users, | |
| "nbr_active_share_users": nbr_active_share_users, | |
| "dbname": self._cr.dbname, | |
| "db_create_date": db_create_date, | |
| "version": release.version, | |
| "language": user.lang, | |
| "web_base_url": web_base_url, | |
| "apps": [app['name'] for app in apps], | |
| "enterprise_code": enterprise_code, | |
| } | |
| if user.partner_id.company_id: | |
| company_id = user.partner_id.company_id | |
| msg.update(company_id.read(["name", "email", "phone"])[0]) | |
| return msg | |
| @api.model | |
| def _get_sys_logs(self): | |
| """ | |
| Utility method to send a publisher warranty get logs messages. | |
| """ | |
| msg = self._get_message() | |
| arguments = {'arg0': ustr(msg), "action": "update"} | |
| #url = config.get("publisher_warranty_url") | |
| #r = requests.post(url, data=arguments, timeout=30) | |
| #r.raise_for_status() | |
| return literal_eval('') | |
| def update_notification(self, cron_mode=True): | |
| # """ | |
| # Send a message to Odoo's publisher warranty server to check the | |
| # validity of the contracts, get notifications, etc... | |
| # @param cron_mode: If true, catch all exceptions (appropriate for usage in a cron). | |
| # @type cron_mode: boolean | |
| # """ | |
| # try: | |
| # try: | |
| # result = self._get_sys_logs() | |
| # except Exception: | |
| # if cron_mode: # we don't want to see any stack trace in cron | |
| # return False | |
| # _logger.debug("Exception while sending a get logs messages", exc_info=1) | |
| # raise UserError(_("Error during communication with the publisher warranty server.")) | |
| # # old behavior based on res.log; now on mail.message, that is not necessarily installed | |
| # user = self.env['res.users'].sudo().browse(SUPERUSER_ID) | |
| # poster = self.sudo().env.ref('mail.channel_all_employees') | |
| # for message in result["messages"]: | |
| # try: | |
| # poster.message_post(body=message, subtype_xmlid='mail.mt_comment', partner_ids=[user.partner_id.id]) | |
| # except Exception: | |
| # pass | |
| # if result.get('enterprise_info'): | |
| # # Update expiration date | |
| # set_param = self.env['ir.config_parameter'].sudo().set_param | |
| ## set_param('database.expiration_date', result['enterprise_info'].get('expiration_date')) | |
| ## set_param('database.expiration_reason', result['enterprise_info'].get('expiration_reason', 'trial')) | |
| ## set_param('database.enterprise_code', result['enterprise_info'].get('enterprise_code')) | |
| ## set_param('database.already_linked_subscription_url', result['enterprise_info'].get('database_already_linked_subscription_url')) | |
| ## set_param('database.already_linked_email', result['enterprise_info'].get('database_already_linked_email')) | |
| ## set_param('database.already_linked_send_mail_url', result['enterprise_info'].get('database_already_linked_send_mail_url')) | |
| # except Exception: | |
| # if cron_mode: | |
| # return False # we don't want to see any stack trace in cron | |
| # else: | |
| # raise | |
| return True |
@tejastank Good Work. I also came up with similar fix to publisher_warranty.contract on community module and did cosmetic changes to web_enterprise module of enterprise for v19.0.
Good to know few brain cells are still alive and working.@chandsharma Have you enabled all the enterprise modules based on the community edition?
Yes, but those which need Odoo API calls to function will not work. Like Whatsapp, autocomplete or IAP credit based
someone have all addons plz enterprise/addons/
publisher_warranty.contract
publisher_warranty.contract
![]()
hmm. maybe I am a contributor in that repo.
Here is a fork https://github.com/chandsharma/odoo19-enterprise-crack . I have modified it to suppress enterprise warnings
publisher_warranty.contract
![]()
hmm. maybe I am a contributor in that repo. Here is a fork https://github.com/chandsharma/odoo19-enterprise-crack . I have modified it to suppress enterprise warnings
Many thanks


Any level of paid support for ODOO development, migration, integration, rebranding, higher challenges! contact me for paid support tejaskumartank@proton.me