summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-07 13:55:39 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-07 13:55:39 +0700
commite62b025b68dcba1b079d6e028458d99116f66946 (patch)
tree32a6d9e9b821a5fa9a1530671b3c99b20633c006 /indoteknik_custom/models
parent5408b3a7214704742f350b483f48c34e1c84a525 (diff)
ip lookup and record request
Diffstat (limited to 'indoteknik_custom/models')
-rwxr-xr-xindoteknik_custom/models/user_activity_log.py36
1 files changed, 26 insertions, 10 deletions
diff --git a/indoteknik_custom/models/user_activity_log.py b/indoteknik_custom/models/user_activity_log.py
index 1bb067ab..ad226b74 100755
--- a/indoteknik_custom/models/user_activity_log.py
+++ b/indoteknik_custom/models/user_activity_log.py
@@ -1,4 +1,5 @@
from odoo import models, fields, api
+from odoo.http import request
from datetime import datetime, timedelta
import logging, re
import requests
@@ -14,21 +15,36 @@ 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")
+ ip_address_lookup = fields.Text('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 and not log.ip_address_lookup:
- 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 _load_ip_address_lookup(self):
+ domain = [
+ ('ip_address', '!=', False),
+ ('ip_address_lookup', '=', False),
+ ]
+ logs = self.search(domain, limit=45, order='create_date asc')
+ for log in logs:
+ try:
+ ipinfo = requests.get('http://ip-api.com/json/%s' % log.ip_address).json()
+ log.ip_address_lookup = json.dumps(ipinfo, indent=4, sort_keys=True)
+ except:
+ log.ip_address_lookup = ''
+
+ def record_activity(self):
+ try:
+ httprequest = request.httprequest
+ self.env['user.activity.log'].sudo().create([{
+ 'page_title': request.env['ir.config_parameter'].get_param('web.base.url'),
+ 'url': httprequest.base_url,
+ 'ip_address': httprequest.remote_addr
+ }])
+ return True
+ except:
+ return False
def compile_product(self):
logs = self.env['user.activity.log'].search([