chore: update to cater for recent dev changes and class inheritance

!31 !40 !42
This commit is contained in:
2024-07-16 15:47:24 +09:30
parent 3c206f5aef
commit 58a9532c70
9 changed files with 55 additions and 101 deletions

View File

@ -2,9 +2,14 @@ from django import forms
from django.db.models import Q
from app import settings
from core.forms.common import CommonModelForm
from project_management.models.projects import Project
class ProjectForm(forms.ModelForm):
class ProjectForm(CommonModelForm):
prefix = 'project'

View File

@ -1,9 +1,10 @@
# Generated by Django 5.0.6 on 2024-06-17 18:45
# Generated by Django 5.0.7 on 2024-07-16 05:57
import access.fields
import access.models
import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations, models
@ -12,7 +13,8 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('access', '0005_organization_manager_organization_model_notes'),
('access', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
@ -31,7 +33,10 @@ class Migration(migrations.Migration):
('planned_finish_date', models.DateTimeField(blank=True, help_text='When the project is planned to be finished by.', null=True, verbose_name='Planned Finish Date')),
('real_start_date', models.DateTimeField(blank=True, help_text='When work commenced on the project.', null=True, verbose_name='Real Start Date')),
('real_finish_date', models.DateTimeField(blank=True, help_text='When work was completed for the project', null=True, verbose_name='Real Finish Date')),
('manager_team', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='access.team')),
('manager_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='manager_user', to=settings.AUTH_USER_MODEL)),
('organization', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='access.organization', validators=[access.models.TenancyObject.validatate_organization_exists])),
('team_members', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL)),
],
options={
'verbose_name': 'Project',
@ -39,4 +44,32 @@ class Migration(migrations.Migration):
'ordering': ['code', 'name'],
},
),
migrations.CreateModel(
name='ProjectTask',
fields=[
('is_global', models.BooleanField(default=False)),
('id', models.AutoField(primary_key=True, serialize=False, unique=True)),
('created', access.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False)),
('modified', access.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False)),
('name', models.CharField(max_length=50, unique=True)),
('slug', access.fields.AutoSlugField()),
('description', models.TextField(blank=True, default=None, null=True)),
('code', models.CharField(help_text='Project Code', max_length=25, unique=True)),
('planned_start_date', models.DateTimeField(blank=True, help_text='When the task is planned to have been started by.', null=True, verbose_name='Planned Start Date')),
('planned_finish_date', models.DateTimeField(blank=True, help_text='When the task is planned to be finished by.', null=True, verbose_name='Planned Finish Date')),
('real_start_date', models.DateTimeField(blank=True, help_text='When work commenced on the task.', null=True, verbose_name='Real Start Date')),
('real_finish_date', models.DateTimeField(blank=True, help_text='When work was completed for the task', null=True, verbose_name='Real Finish Date')),
('milestone', models.BooleanField(default=False, help_text='Is this task a milestone?')),
('organization', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='access.organization', validators=[access.models.TenancyObject.validatate_organization_exists])),
('parent_task', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='project_management.projecttask')),
('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project_management.project')),
('task_members', models.ManyToManyField(help_text='User whom is responsible for completing the task.', related_name='task_members', to=settings.AUTH_USER_MODEL, verbose_name='Team Members')),
('task_owner', models.ForeignKey(blank=True, help_text='User whom is considered the task owner.', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Task Owner')),
],
options={
'verbose_name': 'Project Task',
'verbose_name_plural': 'Project Tasks',
'ordering': ['code', 'name'],
},
),
]

View File

@ -1,44 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-17 20:29
import access.fields
import access.models
import django.db.models.deletion
import django.utils.timezone
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('access', '0005_organization_manager_organization_model_notes'),
('project_management', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='ProjectTask',
fields=[
('is_global', models.BooleanField(default=False)),
('id', models.AutoField(primary_key=True, serialize=False, unique=True)),
('created', access.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False)),
('modified', access.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False)),
('name', models.CharField(max_length=50, unique=True)),
('slug', access.fields.AutoSlugField()),
('description', models.TextField(blank=True, default=None, null=True)),
('code', models.CharField(help_text='Project Code', max_length=25, unique=True)),
('planned_start_date', models.DateTimeField(blank=True, help_text='When the task is planned to have been started by.', null=True, verbose_name='Planned Start Date')),
('planned_finish_date', models.DateTimeField(blank=True, help_text='When the task is planned to be finished by.', null=True, verbose_name='Planned Finish Date')),
('real_start_date', models.DateTimeField(blank=True, help_text='When work commenced on the task.', null=True, verbose_name='Real Start Date')),
('real_finish_date', models.DateTimeField(blank=True, help_text='When work was completed for the task', null=True, verbose_name='Real Finish Date')),
('milestone', models.BooleanField(default=False, help_text='Is this task a milestone?')),
('organization', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='access.organization', validators=[access.models.TenancyObject.validatate_organization_exists])),
('parent_task', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='project_management.projecttask')),
('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='project_management.project')),
],
options={
'verbose_name': 'Project Task',
'verbose_name_plural': 'Project Tasks',
'ordering': ['code', 'name'],
},
),
]

View File

@ -1,42 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-17 23:06
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('access', '0005_organization_manager_organization_model_notes'),
('project_management', '0002_projecttask'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AddField(
model_name='project',
name='manager_team',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='access.team'),
),
migrations.AddField(
model_name='project',
name='manager_user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='manager_user', to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='project',
name='team_members',
field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='projecttask',
name='task_members',
field=models.ManyToManyField(help_text='User whom is responsible for completing the task.', related_name='task_members', to=settings.AUTH_USER_MODEL, verbose_name='Team Members'),
),
migrations.AddField(
model_name='projecttask',
name='task_owner',
field=models.ForeignKey(blank=True, help_text='User whom is considered the task owner.', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Task Owner'),
),
]

View File

@ -4,7 +4,7 @@ from access.fields import *
from access.models import TenancyObject
class ProjectCommonFields(TenancyObject, models.Model):
class ProjectCommonFields(TenancyObject):
class Meta:
abstract = True

View File

@ -10,7 +10,7 @@ from core.mixin.history_save import SaveHistory
class ProjectTask(ProjectCommonFieldsName, SaveHistory):
class ProjectTask(ProjectCommonFieldsName):
class Meta:

View File

@ -8,7 +8,7 @@ from core.mixin.history_save import SaveHistory
from .project_common import ProjectCommonFieldsName
class Project(ProjectCommonFieldsName, SaveHistory):
class Project(ProjectCommonFieldsName):
class Meta:

View File

@ -11,6 +11,7 @@ from access.mixin import OrganizationPermission
from core.forms.comment import AddNoteForm
from core.models.notes import Notes
from core.views.common import AddView, ChangeView, DeleteView, DisplayView, IndexView
from project_management.forms.project import ProjectForm
from project_management.models.projects import Project
@ -19,7 +20,7 @@ from settings.models.user_settings import UserSettings
class ProjectIndex(OrganizationPermission, generic.ListView):
class ProjectIndex(IndexView):
model = Project
@ -52,7 +53,7 @@ class ProjectIndex(OrganizationPermission, generic.ListView):
class ProjectView(OrganizationPermission, generic.UpdateView):
class ProjectView(ChangeView):
model = Project
@ -108,7 +109,7 @@ class ProjectView(OrganizationPermission, generic.UpdateView):
class ProjectAdd(generic.CreateView):
class ProjectAdd(AddView):
form_class = ProjectForm
@ -145,7 +146,7 @@ class ProjectAdd(generic.CreateView):
class ProjectChange(generic.UpdateView):
class ProjectChange(ChangeView):
form_class = ProjectForm
@ -177,7 +178,7 @@ class ProjectChange(generic.UpdateView):
class ProjectDelete(OrganizationPermission, generic.DeleteView):
class ProjectDelete(DeleteView):
model = Project
permission_required = [

View File

@ -11,6 +11,7 @@ from access.mixin import OrganizationPermission
from core.forms.comment import AddNoteForm
from core.models.notes import Notes
from core.views.common import AddView, ChangeView, DeleteView, DisplayView, IndexView
from project_management.models.project_tasks import ProjectTask
@ -18,7 +19,7 @@ from settings.models.user_settings import UserSettings
class ProjectTaskAdd(generic.CreateView):
class ProjectTaskAdd(AddView):
# form_class = form_class = ProjectTaskForm
@ -55,7 +56,7 @@ class ProjectTaskAdd(generic.CreateView):
class ProjectTaskChange(OrganizationPermission, generic.UpdateView):
class ProjectTaskChange(ChangeView):
# form_class = ProjectTaskForm
@ -87,7 +88,7 @@ class ProjectTaskChange(OrganizationPermission, generic.UpdateView):
class ProjectTaskView(OrganizationPermission, generic.UpdateView):
class ProjectTaskView(ChangeView):
model = ProjectTask
@ -152,7 +153,7 @@ class ProjectTaskView(OrganizationPermission, generic.UpdateView):
class ProjectTaskDelete(OrganizationPermission, generic.DeleteView):
class ProjectTaskDelete(DeleteView):
model = ProjectTask
permission_required = [