summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-07 10:07:27 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-07 10:07:27 +0700
commit6a306691dd4f5c3ea74c1979802217d5f7091247 (patch)
tree1a6a12017c3e1cb3aa6d1fd4c13e57aa032d11c8
parent54182954f66051f102e683b3cc49cf11db71cf19 (diff)
add ip address lookup in user activity log
-rwxr-xr-xindoteknik_custom/models/user_activity_log.py13
-rwxr-xr-xindoteknik_custom/views/user_activity_log.xml15
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>