diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-02-07 10:07:27 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-02-07 10:07:27 +0700 |
| commit | 6a306691dd4f5c3ea74c1979802217d5f7091247 (patch) | |
| tree | 1a6a12017c3e1cb3aa6d1fd4c13e57aa032d11c8 | |
| parent | 54182954f66051f102e683b3cc49cf11db71cf19 (diff) | |
add ip address lookup in user activity log
| -rwxr-xr-x | indoteknik_custom/models/user_activity_log.py | 13 | ||||
| -rwxr-xr-x | indoteknik_custom/views/user_activity_log.xml | 15 |
2 files changed, 21 insertions, 7 deletions
diff --git a/indoteknik_custom/models/user_activity_log.py b/indoteknik_custom/models/user_activity_log.py index 1a1a84fa..90d18068 100755 --- a/indoteknik_custom/models/user_activity_log.py +++ b/indoteknik_custom/models/user_activity_log.py @@ -1,6 +1,8 @@ from odoo import models, fields from datetime import datetime, timedelta import logging, re +import requests +import json _logger = logging.getLogger(__name__) @@ -12,11 +14,22 @@ class UserActivityLog(models.Model): page_title = fields.Char(string="Judul Halaman") url = fields.Char(string="URL") ip_address = fields.Char('IP Address') + ip_address_lookup = fields.Text('IP Address Lookup', compute="_compute_ip_address_lookup") res_user_id = fields.Many2one("res.users", string="User") email = fields.Char(string="Email") update_product = fields.Boolean(string="Update Product") product_id = fields.Many2one('product.template', string='Product') + def _compute_ip_address_lookup(self): + for log in self: + if log.ip_address: + try: + ipinfo = requests.get('https://ipinfo.io/%s/json' % log.ip_address).json() + del ipinfo['readme'] + log.ip_address_lookup = json.dumps(ipinfo, indent=4, sort_keys=True) + except: + log.ip_address_lookup = '' + def compile_product(self): logs = self.env['user.activity.log'].search([ ('email', '!=', False), diff --git a/indoteknik_custom/views/user_activity_log.xml b/indoteknik_custom/views/user_activity_log.xml index 70a8f0dd..f3112e27 100755 --- a/indoteknik_custom/views/user_activity_log.xml +++ b/indoteknik_custom/views/user_activity_log.xml @@ -19,16 +19,17 @@ <field name="name">user.activity.log.form</field> <field name="model">user.activity.log</field> <field name="arch" type="xml"> - <form> + <form create="0" edit="1"> <sheet> <group> <group> - <field name="create_date" readonly="1"/> - <field name="page_title" readonly="1"/> - <field name="url" widget="url" readonly="1"/> - <field name="res_user_id" readonly="1"/> - <field name="ip_address" readonly="1"/> - <field name="email" readonly="1"/> + <field name="create_date"/> + <field name="page_title"/> + <field name="url" widget="url"/> + <field name="res_user_id"/> + <field name="ip_address"/> + <field name="ip_address_lookup"/> + <field name="email"/> </group> </group> </sheet> |
