territories-dashboard-lib 0.1.13__py3-none-any.whl → 0.1.14__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of territories-dashboard-lib might be problematic. Click here for more details.

@@ -4,7 +4,7 @@ from functools import lru_cache
4
4
  import geoip2.database
5
5
 
6
6
 
7
- def _get_client_ip(request):
7
+ def get_client_ip(request):
8
8
  x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR")
9
9
  if x_forwarded_for:
10
10
  ip = x_forwarded_for.split(",")[0]
@@ -14,7 +14,7 @@ def _get_client_ip(request):
14
14
 
15
15
 
16
16
  @lru_cache(maxsize=100_000)
17
- def _get_country_from_geolite(ip_address):
17
+ def get_country_from_geolite(ip_address):
18
18
  database_name = "GeoLite2-Country.mmdb"
19
19
  database_path = os.path.join(os.path.dirname(__file__), database_name)
20
20
  reader = geoip2.database.Reader(database_path)
@@ -25,11 +25,3 @@ def _get_country_from_geolite(ip_address):
25
25
  country = "UNKNOWN"
26
26
  reader.close()
27
27
  return country
28
-
29
-
30
- def get_country_of_ip(request):
31
- """
32
- Guess the country of an ip thanks to the geoip2 library and the Geolite mmdb database file.
33
- """
34
- ip_address = _get_client_ip(request)
35
- return _get_country_from_geolite(ip_address)
@@ -7,7 +7,8 @@ from django.urls import resolve
7
7
 
8
8
  from territories_dashboard_lib.tracking_lib.enums import TRACKING_COOKIE_NAME, EventType
9
9
  from territories_dashboard_lib.tracking_lib.geolocalisation.logic import (
10
- get_country_of_ip,
10
+ get_client_ip,
11
+ get_country_from_geolite,
11
12
  )
12
13
  from territories_dashboard_lib.tracking_lib.models import CookieInfo, Event, Page
13
14
 
@@ -27,8 +28,11 @@ def get_or_set_tracking_cookie(request: HttpRequest, response: HttpResponse) ->
27
28
  try:
28
29
  CookieInfo.objects.get(id=tracking_cookie)
29
30
  except CookieInfo.DoesNotExist:
30
- country = get_country_of_ip(request)
31
- CookieInfo.objects.create(id=tracking_cookie, country=country)
31
+ ip_address = get_client_ip(request)
32
+ country = get_country_from_geolite(ip_address)
33
+ CookieInfo.objects.create(
34
+ id=tracking_cookie, country=country, ip_address=ip_address
35
+ )
32
36
  return tracking_cookie
33
37
 
34
38
 
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.2.3 on 2025-06-30 16:55
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ('tracking_lib', '0003_cookieinfo'),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name='cookieinfo',
15
+ name='ip_address',
16
+ field=models.TextField(blank=True, null=True),
17
+ ),
18
+ ]
@@ -83,3 +83,4 @@ class Event(models.Model):
83
83
  class CookieInfo(models.Model):
84
84
  id = models.TextField(primary_key=True)
85
85
  country = models.TextField(null=True, blank=True)
86
+ ip_address = models.TextField(null=True, blank=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: territories-dashboard-lib
3
- Version: 0.1.13
3
+ Version: 0.1.14
4
4
  Summary: Librairie pour la visualisation d'indicateurs territoriaux.
5
5
  Author-email: Bastien <bastien@prune.sh>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -44,17 +44,18 @@ territories_dashboard_lib/superset_lib/migrations/0001_initial.py,sha256=Y6iY33E
44
44
  territories_dashboard_lib/superset_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  territories_dashboard_lib/tracking_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  territories_dashboard_lib/tracking_lib/enums.py,sha256=-w2ndwXfY8PqElJvO7i_MVMAP_95QYoQ8NZGjoGgHAM,443
47
- territories_dashboard_lib/tracking_lib/logic.py,sha256=GXqQoE1e3P-QtMEwQIgL16F3fhDZ-5I0nwDFhW2fOjg,2831
48
- territories_dashboard_lib/tracking_lib/models.py,sha256=pFW45xqhraQ49B9EX-ADHXKkk5HEZygYRwDnEmX1CCg,3282
47
+ territories_dashboard_lib/tracking_lib/logic.py,sha256=mJtIPz65Q_V0-YtNhQlPu-EV-lGQNdB5TMN_2hI-bgQ,2956
48
+ territories_dashboard_lib/tracking_lib/models.py,sha256=vD10Cj5G-WdA7wTmHDSQulMRBsqLciZtv7kh_TUPp1s,3339
49
49
  territories_dashboard_lib/tracking_lib/payloads.py,sha256=iX0uUxAKEOmYe8nKJATu52zqFTdCzzxxgE5FuTOBpj8,201
50
50
  territories_dashboard_lib/tracking_lib/urls.py,sha256=-Wd2EYQRLimUQHswTu8x_23movgzYH2ZPG5dbOAaCNI,202
51
51
  territories_dashboard_lib/tracking_lib/views.py,sha256=8K1q9LfpU1ygO3CFQSPN5_gLIMWkVe9kN0kuIdiKEjQ,1298
52
52
  territories_dashboard_lib/tracking_lib/geolocalisation/GeoLite2-Country.mmdb,sha256=_1qrIUv_a4F9XGXxL1J867_dw5ELPtH-IxsWipyiEWQ,9718941
53
53
  territories_dashboard_lib/tracking_lib/geolocalisation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
- territories_dashboard_lib/tracking_lib/geolocalisation/logic.py,sha256=BbwGMXtnJAPzAJ9RrsfTuMqc3jHR072uD70b1si0e0M,987
54
+ territories_dashboard_lib/tracking_lib/geolocalisation/logic.py,sha256=HTyKh1m7oDUdPY2RmD23Txti31AQWQoGPL3-nLak-50,749
55
55
  territories_dashboard_lib/tracking_lib/migrations/0001_initial.py,sha256=eH6eegaxN6LuSerZ80_N8iXixF6-YKw79nqmIPimXPY,3494
56
56
  territories_dashboard_lib/tracking_lib/migrations/0002_alter_event_created_at_alter_page_created_at.py,sha256=rC0_09acozzUXkujPG0fs3wcenjAmqy4rS5SK17Anjo,615
57
57
  territories_dashboard_lib/tracking_lib/migrations/0003_cookieinfo.py,sha256=To1I_see_Aw66P6I67a0PQQntZ2Iw7a3G0P9O236L0A,521
58
+ territories_dashboard_lib/tracking_lib/migrations/0004_cookieinfo_ip_address.py,sha256=IPCO8I0xFPWYRb8n1iHNrPNzX7hFUM5SV7qSuEZtXnY,397
58
59
  territories_dashboard_lib/tracking_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
60
  territories_dashboard_lib/website_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
61
  territories_dashboard_lib/website_lib/admin.py,sha256=jq0KgN8CPVqJQ1IMq8kaoWqqxzpPDyW0z7cTatmrmi0,952
@@ -153,8 +154,8 @@ territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/websit
153
154
  territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/svg/delete-back.svg,sha256=fJPjkZT2jdTcW2nmwr7YtBayOmQKOxiGNyO8bM8jP2U,618
154
155
  territories_dashboard_lib/website_lib/templatetags/htmlparams.py,sha256=jWXlmT-nFh7YefVP_zJSXEA1YgT37wnWqelPhmj7UoM,2092
155
156
  territories_dashboard_lib/website_lib/templatetags/other_filters.py,sha256=EEczSQi8lJZ_rfceuXQz3iF1SIxh5d-3-liTY8lkKtU,944
156
- territories_dashboard_lib-0.1.13.dist-info/licenses/licence.md,sha256=9Tat8mM_Yyww-wmWps8avlOhzumqEUGYy8853tKy7aE,7804
157
- territories_dashboard_lib-0.1.13.dist-info/METADATA,sha256=k0H8xZJhACk0h9I5VEnDRR6XP90I9YcjIac8xtFV6fc,6191
158
- territories_dashboard_lib-0.1.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
159
- territories_dashboard_lib-0.1.13.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
160
- territories_dashboard_lib-0.1.13.dist-info/RECORD,,
157
+ territories_dashboard_lib-0.1.14.dist-info/licenses/licence.md,sha256=9Tat8mM_Yyww-wmWps8avlOhzumqEUGYy8853tKy7aE,7804
158
+ territories_dashboard_lib-0.1.14.dist-info/METADATA,sha256=35N62TKRRKroNWcPTU4QbYGRJ7AjYLWw4kij3p8ggyU,6191
159
+ territories_dashboard_lib-0.1.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
160
+ territories_dashboard_lib-0.1.14.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
161
+ territories_dashboard_lib-0.1.14.dist-info/RECORD,,