User locale & city reading

This commit is contained in:
Kuroshini 2019-12-09 20:42:47 +03:00
parent 7910c98c8a
commit a2395b807e
3 changed files with 17 additions and 6 deletions

View File

@ -107,6 +107,10 @@ class User(AbstractUser):
email_confirmed = models.BooleanField(_('email status'), default=False)
newsletter = models.NullBooleanField(default=True)
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'
USERNAME_FIELD = 'username'

View File

@ -33,12 +33,14 @@ class BackUserSerializer(serializers.ModelSerializer):
'email_confirmed',
'newsletter',
'roles',
'password'
'password',
'city',
'locale',
)
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):
user = super().create(validated_data)

View File

@ -1,8 +1,9 @@
"""Custom middleware."""
"""Custom middlewares."""
from django.utils import translation, timezone
from account.models import User
from account.models import User
from configuration.models import TranslationSettings
from main.methods import determine_user_city
from translation.models import Language
@ -18,7 +19,11 @@ def user_last_visit(get_response):
def middleware(request):
response = get_response(request)
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 middleware