simple refactor ObjectAbstract & User class -> models.py (generalApp)

master/v0.1.0
TBS093A 2020-08-28 15:21:27 +02:00
parent c4d4a1c0e7
commit 7ddfa6deb2
1 changed files with 32 additions and 0 deletions

View File

@ -4,6 +4,7 @@ from django.db.models import Avg
from datetime import datetime
from .utilities import *
class ObjectAbstract(models.Model):
@classmethod
@ -37,6 +38,7 @@ class ObjectAbstract(models.Model):
return False
return True
@classmethod
def allObjectsDict(model):
objectAll = model.objects.all()
list = []
@ -136,6 +138,7 @@ class ObjectAbstract(models.Model):
class Meta:
abstract = True
class Users(ObjectAbstract):
login = models.CharField(max_length=30)
password = models.CharField(max_length=200)
@ -156,6 +159,29 @@ class Users(ObjectAbstract):
"email": self.email,
"privilige": self.privilige}
def addObject(self, request, parentID, privilige):
newUser = jsonLoad(request)
newUser['privilige'] = 1
newUser['password'] = createPassHash(object['password'])
if self.validateUnique(self, parentID, newUser):
return self.saveObject(self, parentID, newUser)
else:
return HttpResponse("User Is Already Exist")
def __validateUnique(self, parentID, userDict):
usersAll = self.allObjectsDict(User)
for user in usersAll:
if user['login'].upper() == userDict['login'].upper():
return False
return True
def __saveObject(model, parentID, objectDict):
newUser = User()
newUser.fromDict(objectDict)
newUser.save()
return HttpResponse(f"Add new User: {newUser.toDict()}")
class Threads(ObjectAbstract):
name = models.CharField(max_length=30)
user = models.ForeignKey(Users, on_delete = models.CASCADE)
@ -174,6 +200,7 @@ class Threads(ObjectAbstract):
"moderator_avatar": self.user.avatar,
"moderator_privilige": self.user.privilige}
class Subjects(ObjectAbstract):
name = models.CharField(max_length=30)
user = models.ForeignKey(Users, on_delete = models.CASCADE)
@ -203,6 +230,7 @@ class Subjects(ObjectAbstract):
"thread_id": self.thread.id,
"thread_name": self.thread.name}
class Comments(ObjectAbstract):
text = models.CharField(max_length=1000)
user = models.ForeignKey(Users, on_delete = models.CASCADE)
@ -236,6 +264,7 @@ class Comments(ObjectAbstract):
"subject_id": self.subject.id,
"subject_name": self.subject.name}
class Ratings(ObjectAbstract):
value = models.IntegerField()
user = models.ForeignKey(Users, on_delete = models.CASCADE)
@ -264,6 +293,7 @@ class Ratings(ObjectAbstract):
"comment_id": self.comment.id,
"subject": self.comment.subject.name}
class Transactions(ObjectAbstract):
price = models.FloatField(default=255)
price_forecast = models.FloatField(default=255)
@ -296,6 +326,7 @@ class Transactions(ObjectAbstract):
"author": self.user.login,
"exchange_id": self.exchange.id}
class Triggers(ObjectAbstract):
course_values_for_trigger = models.FloatField(default=255)
date_of_trigger = models.CharField(max_length=255)
@ -327,6 +358,7 @@ class Triggers(ObjectAbstract):
def setActualTime(self):
self.date_of_trigger = str(datetime.now().strftime("%Y-%d-%m %H:%M"))
class Notifications(ObjectAbstract):
message = models.CharField(max_length=255)
user = models.ForeignKey(Users, on_delete = models.CASCADE)