Przeglądaj źródła

Model corrections and updated fields

master
kj1352 3 lat temu
rodzic
commit
6901aa86d5
6 zmienionych plików z 74 dodań i 13 usunięć
  1. +37
    -0
      client/models.py
  2. +6
    -5
      employee/models.py
  3. +13
    -2
      invoice/models.py
  4. +5
    -2
      project/models.py
  5. +12
    -4
      representative/models.py
  6. +1
    -0
      workx_backend/settings/base.py

+ 37
- 0
client/models.py Wyświetl plik

@@ -1,8 +1,45 @@
from django.db import models from django.db import models




class TaxType(models.Model):
name = models.CharField(max_length=15)
percentage = models.DecimalField()

def __str__(self):
return self.name


class Country(models.Model):
name = models.CharField(max_length=30)

def __str__(self):
return self.name


class State(models.Model):
name = models.CharField(max_length=30)
country = models.OneToOneField(Country, on_delete=models.CASCADE)

def __str__(self):
return self.name


class City(models.Model):
name = models.CharField(max_length=30)
state = models.OneToOneField(State, on_delete=models.CASCADE)

def __str__(self):
return self.name


class Client(models.Model): class Client(models.Model):
name = models.CharField(max_length=30) name = models.CharField(max_length=30)
profile_picture = models.ImageField(upload_to='client_images', null=True, blank=True)
city = models.ForeignKey(City, on_delete=models.CASCADE)
address_line1 = models.CharField(max_length=50)
address_line2 = models.CharField(max_length=50)
postal_code = models.CharField(max_length=15)
tax_type = models.ForeignKey(TaxType, on_delete=models.CASCADE)
tax_id = models.CharField(max_length=30) tax_id = models.CharField(max_length=30)


def __str__(self): def __str__(self):


+ 6
- 5
employee/models.py Wyświetl plik

@@ -1,16 +1,17 @@
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.db import models from django.db import models
from phonenumber_field.modelfields import PhoneNumberField
from project.models import Project from project.models import Project




class Employee(models.Model): class Employee(models.Model):
user = models.ForeignKey(User)
phone = models.CharField(max_length=15)
salary = models.FloatField()
emp_id = models.CharField(max_length=15)
user = models.OneToOneField(User, on_delete=models.CASCADE)
employee_id = models.CharField(max_length=15)
phone = PhoneNumberField()
salary = models.DecimalField()
start_date = models.DateField() start_date = models.DateField()
end_date = models.DateField(null=True, blank=True) end_date = models.DateField(null=True, blank=True)
projects = models.ManyToManyField(Project) projects = models.ManyToManyField(Project)


def __str__(self): def __str__(self):
return self.name
return self.user.name

+ 13
- 2
invoice/models.py Wyświetl plik

@@ -3,11 +3,22 @@ from project.models import Project




class Invoice(models.Model): class Invoice(models.Model):
project = models.ForeignKey(Project)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
invoice_id = models.CharField(max_length=15) invoice_id = models.CharField(max_length=15)
raised_date = models.DateField() raised_date = models.DateField()
due_date = models.DateField() due_date = models.DateField()
is_paid = models.BooleanField()
paid_date = models.DateField(null=True, blank=True)
is_archived = models.BooleanField()


def __str__(self): def __str__(self):
return self.invoice_id return self.invoice_id


class Item(models.Model):
name = models.TextField(blank=False, null=False)
amount = models.DecimalField()
quantity = models.IntegerField()
invoice = models.OneToOneField(Invoice, on_delete=models.CASCADE)

def __str__(self):
return self.name

+ 5
- 2
project/models.py Wyświetl plik

@@ -4,8 +4,11 @@ from client.models import Client


class Project(models.Model): class Project(models.Model):
name = models.CharField(max_length=30) name = models.CharField(max_length=30)
price = models.FloatField()
client = models.ForeignKey(Client)
project_image = models.ImageField(upload_to='project_images', null=True, blank=True)
client = models.ForeignKey(Client, on_delete=models.CASCADE)
total_cost = models.DecimalField()
start_date = models.DateField()
end_date = models.DateField()


def __str__(self): def __str__(self):
return self.name return self.name

+ 12
- 4
representative/models.py Wyświetl plik

@@ -1,15 +1,23 @@
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.db import models from django.db import models
from phonenumber_field.modelfields import PhoneNumberField
from project.models import Project from project.models import Project
from client.models import Client from client.models import Client




class Role(models.Model):
name = models.CharField(max_length=30)

def __str__(self):
return self.name


class Representative(models.Model): class Representative(models.Model):
user = models.ForeignKey(User)
phone = models.CharField(max_length=15)
role = models.CharField(max_length=15)
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone = PhoneNumberField()
role = models.ForeignKey(Role, on_delete=models.CASCADE)
projects = models.ManyToManyField(Project) projects = models.ManyToManyField(Project)
clients = models.ManyToManyField(Client)
clients = models.ForeignKey(Client, on_delete=models.CASCADE)


def __str__(self): def __str__(self):
return self.user.name return self.user.name

+ 1
- 0
workx_backend/settings/base.py Wyświetl plik

@@ -24,6 +24,7 @@ INSTALLED_APPS = [
'rest_framework.authtoken', 'rest_framework.authtoken',
'drfpasswordless', 'drfpasswordless',
'drf_yasg', 'drf_yasg',
'phonenumber_field',
'client', 'client',
'employee', 'employee',
'invoice', 'invoice',