User locale & city reading
This commit is contained in:
parent
7910c98c8a
commit
a2395b807e
|
|
@ -107,6 +107,10 @@ class User(AbstractUser):
|
||||||
email_confirmed = models.BooleanField(_('email status'), default=False)
|
email_confirmed = models.BooleanField(_('email status'), default=False)
|
||||||
newsletter = models.NullBooleanField(default=True)
|
newsletter = models.NullBooleanField(default=True)
|
||||||
old_id = models.IntegerField(null=True, blank=True, default=None)
|
old_id = models.IntegerField(null=True, blank=True, default=None)
|
||||||
|
locale = models.CharField(max_length=10, blank=True, default=None, null=True,
|
||||||
|
verbose_name=_('User last used locale'))
|
||||||
|
city = models.TextField(default=None, blank=True, null=True,
|
||||||
|
verbose_name=_('User last visited from city'))
|
||||||
|
|
||||||
EMAIL_FIELD = 'email'
|
EMAIL_FIELD = 'email'
|
||||||
USERNAME_FIELD = 'username'
|
USERNAME_FIELD = 'username'
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,14 @@ class BackUserSerializer(serializers.ModelSerializer):
|
||||||
'email_confirmed',
|
'email_confirmed',
|
||||||
'newsletter',
|
'newsletter',
|
||||||
'roles',
|
'roles',
|
||||||
'password'
|
'password',
|
||||||
|
'city',
|
||||||
|
'locale',
|
||||||
)
|
)
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'password': {'write_only': True}
|
'password': {'write_only': True},
|
||||||
}
|
}
|
||||||
read_only_fields = ('old_password', 'last_login', 'date_joined')
|
read_only_fields = ('old_password', 'last_login', 'date_joined', 'city', 'locale')
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
user = super().create(validated_data)
|
user = super().create(validated_data)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
"""Custom middleware."""
|
"""Custom middlewares."""
|
||||||
from django.utils import translation, timezone
|
from django.utils import translation, timezone
|
||||||
from account.models import User
|
|
||||||
|
|
||||||
|
from account.models import User
|
||||||
from configuration.models import TranslationSettings
|
from configuration.models import TranslationSettings
|
||||||
|
from main.methods import determine_user_city
|
||||||
from translation.models import Language
|
from translation.models import Language
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -18,7 +19,11 @@ def user_last_visit(get_response):
|
||||||
def middleware(request):
|
def middleware(request):
|
||||||
response = get_response(request)
|
response = get_response(request)
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
User.objects.filter(pk=request.user.pk).update(last_login=timezone.now())
|
User.objects.filter(pk=request.user.pk).update(**{
|
||||||
|
'last_login': timezone.now(),
|
||||||
|
'locale': request.locale,
|
||||||
|
'city': determine_user_city(request),
|
||||||
|
})
|
||||||
return response
|
return response
|
||||||
return middleware
|
return middleware
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user