From 661b178715fdb83813d61fc215bc47d915252bc1 Mon Sep 17 00:00:00 2001 From: sosokker Date: Mon, 6 Nov 2023 13:02:25 +0700 Subject: [PATCH] Add Level in UserStats --- backend/tasks/models.py | 11 +++++++++++ backend/users/models.py | 10 +++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/backend/tasks/models.py b/backend/tasks/models.py index 7677acb..06be2f1 100644 --- a/backend/tasks/models.py +++ b/backend/tasks/models.py @@ -110,6 +110,17 @@ class Task(models.Model): else: return 4 + def get_exp(self): + return self.user.level * (0.2*self.difficulty) * (0.3*self.user.userstats.luck) + + def get_reward(self): + pass + + def get_penalty(self): + pass + + + def save(self, *args, **kwargs): self.priority = self.calculate_eisenhower_matrix_category() super(Task, self).save(*args, **kwargs) diff --git a/backend/users/models.py b/backend/users/models.py index ce906f9..56d6432 100644 --- a/backend/users/models.py +++ b/backend/users/models.py @@ -1,4 +1,5 @@ import random +import math from django.db import models from django.utils import timezone @@ -30,6 +31,10 @@ class CustomUser(AbstractBaseUser, PermissionsMixin): USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username', 'first_name'] + def save(self, *args, **kwargs): + UserStats.objects.get_or_create(user=self) + super(CustomUser, self).save(*args, **kwargs) + def __str__(self): # String representation of the user return self.username @@ -61,4 +66,7 @@ class UserStats(models.Model): MaxValueValidator(100)]) luck = models.IntegerField(default=random_luck, validators=[MinValueValidator(1), MaxValueValidator(50)],) - \ No newline at end of file + + @property + def level(self): + return (math.pow(self.experience, 2) // 225) + 1 \ No newline at end of file