-
-
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 |
How do I use this file odoo.enterprise.license.issue.py ? I'm using Odoo version 18.
@tejastank
How do I use this odoo.enterprise.license.issue.py file? I am using Odoo version 18. Please guide me step by step on how to use your odoo.enterprise.license.issue.py file.
me: tejaskumartank@proton.me, Sorry I am tidy busy with routines.
Yes 18 version as well can be manage.
@tqqkhang2006 if you have enterprise code i can help you
@tqqkhang2006 if you have enterprise code i can help you
Hello, i have the code and will be happy to understand how to use this code; can you help?
excellent job to the developer!
@tqqkhang2006 if you have enterprise code i can help you
i have the code, can you help?
I don't understand you well, do you want my help?
I don't understand you well, do you want my help?
yes please, can you share some instructions on how to use this on odoo18 or odoo19
is there a way to migrate the database without sending to odoo?
is there a way to migrate the database without sending to odoo?
I don't understand you well, do you want my help?
yes please, can you share some instructions on how to use this on odoo18 or odoo19
It's all in the published code, by the owner of the repo
hi, i am new to this, how do i run the code? i have trial enterprise ver 19 on windows machine
Hello, I'm using all of you in odoo 19 ee and apparently everything is super good!!
hello! How do you run? i get same error:
File "/opt/odoo/odoo/odoo.enterprise.license.issue.py", line 23, in
class PublisherWarrantyContract(AbstractModel):
File "/opt/odoo/odoo/odoo/models.py", line 209, in new
assert module.startswith('odoo.addons.'),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Invalid import of main.PublisherWarrantyContract, it should start with 'odoo.addons'.
hello, please how can i execut this script ?
hello, can anybody help me get the full code of odoo 19 enterprise? can anybody help?
hi, i am new to this, how do i run the code? i have trial enterprise ver 19 on
how do you run this code?




sorry for dispute you, can you please add steps to understand how to use it