2020-01-26 20:47:33 +01:00
|
|
|
from django.conf import settings
|
|
|
|
from django.contrib.auth.models import User
|
|
|
|
from django.db import models
|
|
|
|
import pytz
|
|
|
|
|
|
|
|
|
|
|
|
# GENERAL Methods and Classes
|
|
|
|
#
|
|
|
|
def get_userprofile(user):
|
|
|
|
try:
|
|
|
|
profile = user.userprofile
|
|
|
|
except UserProfile.DoesNotExist:
|
|
|
|
profile = UserProfile(user=user)
|
|
|
|
profile.save()
|
|
|
|
return profile
|
|
|
|
|
|
|
|
|
2020-08-30 19:52:03 +02:00
|
|
|
def UserprofilerExist(username, data):
|
|
|
|
try:
|
|
|
|
profile = UserProfile.objects.get(user__username=username)
|
|
|
|
except UserProfile.DoesNotExist:
|
|
|
|
return False
|
|
|
|
return profile.timezone == data['timezone'] and profile.language_code == data['language_code']
|
|
|
|
|
|
|
|
|
2020-01-26 20:47:33 +01:00
|
|
|
# USERPROFILE Model
|
|
|
|
#
|
|
|
|
class UserProfile(models.Model):
|
|
|
|
user = models.OneToOneField(User, unique=True, on_delete=models.CASCADE)
|
|
|
|
timezone = models.CharField(max_length=150, default='UTC', choices=[(t, t) for t in pytz.common_timezones])
|
|
|
|
language_code = models.CharField(max_length=150, default='en', choices=settings.LANGUAGES)
|
2024-10-26 20:04:32 +02:00
|
|
|
mail_validated = models.BooleanField(default=False)
|
2024-10-27 19:04:17 +01:00
|
|
|
mail_pending = models.EmailField(null=True)
|
2020-08-30 19:52:03 +02:00
|
|
|
|
|
|
|
def export_key(self):
|
|
|
|
return self.user.username
|
|
|
|
|
|
|
|
def export_data(self):
|
|
|
|
rv = {}
|
|
|
|
rv['timezone'] = self.timezone
|
|
|
|
rv['language_code'] = self.language_code
|
|
|
|
return rv
|
|
|
|
|
|
|
|
def import_data(self, data):
|
|
|
|
self.timezone = data['timezone']
|
|
|
|
self.language_code = data['language_code']
|
|
|
|
self.save()
|