diff --git a/softdesk/support/admin.py b/softdesk/support/admin.py index d4b7299..15df8dc 100644 --- a/softdesk/support/admin.py +++ b/softdesk/support/admin.py @@ -1,9 +1,9 @@ from django.contrib import admin -from support.models import Project, Issue, Comment, ProjectContributor +from support.models import Project, Issue, Comment, Contributor -admin.site.register(Project, ProjectAdmin) -admin.site.register(Issue, IssueAdmin) -admin.comment.register(Comment, CommentAdmin) -admin.ProjectContributor.register(ProjectContributor, ProjectContributorAdmin) +admin.site.register(Project) +admin.site.register(Issue) +admin.site.register(Comment) +admin.site.register(Contributor) diff --git a/softdesk/support/models.py b/softdesk/support/models.py index 9a32eec..3e6e1c8 100644 --- a/softdesk/support/models.py +++ b/softdesk/support/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.conf import settings class Project(models.Model): @@ -10,14 +11,20 @@ class Project(models.Model): ANDROID = 'Android' - title = models.CharField(length=255) + title = models.CharField(max_length=255) date_created = models.DateTimeField(auto_now_add=True) type = models.CharField(choices=Type.choices, max_length=10) - description = models.CharField(length=4000) - author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING) + description = models.CharField(max_length=4000) + author = models.ForeignKey('Contributor', on_delete=models.DO_NOTHING, related_name='author') contributors = models.ManyToManyField( - settings.AUTH_USER_MODEL, through='ProjectContributor', related_name='contributor') + settings.AUTH_USER_MODEL, through='Contributor', related_name='contribution') + + +class Contributor(models.Model): + contributor = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING) + project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='project') + data = models.CharField(max_length=255, blank=True) class Issue(models.Model): @@ -40,26 +47,21 @@ class Issue(models.Model): TASK = 'Task' - title = models.CharField(max_lenght=255, verbose_name='title') + title = models.CharField(max_length=255, verbose_name='title') + date_created = models.DateTimeField(auto_now_add=True) description = models.TextField() project = models.ForeignKey(Project, null=True, on_delete=models.SET_NULL, blank=True) status = models.CharField(Status.choices, max_length=15) - priority = models.CharField(Priority.choices, max_lenght=15) + priority = models.CharField(Priority.choices, max_length=15) tag = models.CharField(Tag.choices, max_length=15) - author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING) - - contributors = models.ManyToManyField( - settings.AUTH_USER_MODEL, through='IssueContributors', related_name='contributors') + author = models.ForeignKey('Contributor', on_delete=models.DO_NOTHING) class Comment(models.Model): - author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=DO_NOTHING) + title = models.CharField(max_length=255) + date_created = models.DateTimeField(auto_now_add=True) + description = models.CharField(max_length=4000) + author = models.ForeignKey('Contributor', on_delete=models.DO_NOTHING) issue = models.ForeignKey(Issue, on_delete=models.CASCADE) - -class ProjectContributors(models.Model): - contributor = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING) - project = models.ForeignKey(Project, on_delete=models.CASCADE) - data = models.CharField(max_length=255, blank=True) -