BO 1.23 controlling, cron: sync customers

This commit is contained in:
Tibor Bossanyi (Freelancer)
2021-07-27 07:44:37 +02:00
parent ffbfe4c877
commit 3c02685ed6
26 changed files with 464 additions and 5 deletions
@@ -0,0 +1,4 @@
from .customer import Customer
from .exercises import Exercises
from .exercise_type import ExerciseType
from .frequent_customers import FrequentCustomers
@@ -0,0 +1,38 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
class Sport(models.Model):
sport_id = models.AutoField(primary_key = True)
language_code = models.CharField(max_length=2,default="hu")
sport_name = models.CharField(max_length=100)
class Meta:
db_table = 'sport_translation'
class Customer(models.Model):
customer_id = models.BigAutoField(primary_key=True)
name = models.CharField(max_length=100, help_text='Last name', verbose_name=_("name"))
firstname = models.CharField(max_length=100, help_text='First name', verbose_name=_("firstname"))
email = models.CharField(max_length=100)
sport = models.ForeignKey(Sport, on_delete=models.CASCADE)
goal = models.CharField(max_length=20)
fitness_level = models.CharField(max_length=20)
date_add = models.DateField()
synced_date = models.DateTimeField(blank=True,null=True)
def has_add_permission(self, request):
return False
def has_delete_permission(self, request, obj=None):
return False
class Meta:
db_table = 'customer'
verbose_name = _("Customer")
verbose_name_plural = _("Customers")
app_label = 'controlling'
def __str__(self):
return self.name
@@ -0,0 +1,28 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from ..models.exercises import Exercises
class ExerciseType(models.Model):
exercise_type_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)
active = models.BooleanField()
def has_add_permission(self, request):
return False
def has_delete_permission(self, request, obj=None):
return False
@property
def exercise_count(self):
count = Exercises.objects.filter(exercise_type_id=self.exercise_type_id).count()
return count
class Meta:
db_table = 'exercise_type'
verbose_name = _("Frequent Exercise")
verbose_name_plural = _("Frequent Exercises")
@@ -0,0 +1,25 @@
from django.db import models
#from ..models.exercise_type import ExerciseType
from ..models.customer import Customer
class Exercises(models.Model):
exercise_id = models.BigAutoField(primary_key=True)
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
exercise_type_id = models.IntegerField()
#exercise_type = models.ForeignKey(ExerciseType, on_delete=models.CASCADE)
date_add = models.DateField()
quantity = models.DecimalField(decimal_places=0, max_digits=6)
unit = models.CharField(max_length=20)
unit_quantity = models.DecimalField(decimal_places=0, max_digits=6,blank=True, null=True)
def has_add_permission(self, request):
return False
def has_delete_permission(self, request, obj=None):
return False
class Meta:
db_table = 'exercises'
@@ -0,0 +1,32 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from .exercises import Exercises
class FrequentCustomers(models.Model):
customer_id = models.BigAutoField(primary_key=True)
name = models.CharField(max_length=100, help_text='Last name', verbose_name=_("name"))
firstname = models.CharField(max_length=100, help_text='First name', verbose_name=_("firstname"))
email = models.CharField(max_length=100)
date_add = models.DateField()
#exercises = models.ManyToManyField(Exercises)
#def exercises(self):
# exercises = Exercises.objects.filter(customer__customer_id=self.customer_id)
# return exercises
@property
def exercise_count(self):
count = Exercises.objects.filter(customer__customer_id=self.customer_id).count()
return count
class Meta:
db_table = 'customer'
verbose_name = _("Frequent Customer")
verbose_name_plural = _("Frequent Customers")
#ordering = ['exercise_count']
#filter(exercise_count__gt=10)
def __str__(self):
return self.name