51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
from django.db import models
|
|
|
|
# Create your models here.
|
|
#from django.contrib.auth.models import User
|
|
from django.db import models
|
|
from django.conf import settings
|
|
|
|
class Profile(models.Model):
|
|
ROLE_CHOICES = [
|
|
('Application Admin', 'Application Admin'),
|
|
('Application Designer', 'Application Designer'),
|
|
('Database Admin', 'Database Admin'),
|
|
('PMO Admin', 'PMO Admin'),
|
|
('Program Manager', 'Program Manager'),
|
|
('Project Manager', 'Project Manager'),
|
|
('Project Coordinator', 'Project Coordinator'),
|
|
('Project User', 'Project User'),
|
|
('Project Initiator', 'Project Initiator'),
|
|
]
|
|
|
|
# user = models.OneToOneField(User, on_delete=models.CASCADE)
|
|
role = models.CharField(max_length=50, choices=ROLE_CHOICES)
|
|
|
|
def __str__(self):
|
|
return f"{self.user.username} - {self.role}"
|
|
|
|
|
|
class Project(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
description = models.TextField()
|
|
initiator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='initiated_projects')
|
|
manager = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True, related_name='managed_projects')
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class Task(models.Model):
|
|
project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='tasks')
|
|
name = models.CharField(max_length=255)
|
|
description = models.TextField(blank=True)
|
|
status = models.CharField(max_length=50, choices=[('todo', 'To Do'), ('in_progress', 'In Progress'), ('done', 'Done')], default='todo')
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|