Initial commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
from django import forms
|
||||
from core.forms.base import BaseForm
|
||||
from invoices.models import CustomerContact, CustomerLocation
|
||||
from .models import ProjectContact, ProjectLocation, Project, ProjectMembership
|
||||
from django.contrib.auth import get_user_model
|
||||
User = get_user_model()
|
||||
|
||||
class ProjectAddForm(BaseForm):
|
||||
class Meta:
|
||||
model = Project
|
||||
fields = [
|
||||
"name",
|
||||
"customer",
|
||||
"logo",
|
||||
"color",
|
||||
"icon",
|
||||
"hourly_rate",
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.apply_style()
|
||||
|
||||
class ProjectForm(BaseForm):
|
||||
class Meta:
|
||||
model = Project
|
||||
fields = [
|
||||
"name",
|
||||
"logo",
|
||||
"color",
|
||||
"icon",
|
||||
"hourly_rate",
|
||||
"active"
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.apply_style()
|
||||
|
||||
class ProjectAddContactForm(BaseForm):
|
||||
class Meta:
|
||||
model = ProjectContact
|
||||
fields = ["contact"]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
project = kwargs.pop("project", None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
qs = CustomerContact.objects.none()
|
||||
|
||||
if project and project.customer:
|
||||
qs = CustomerContact.objects.filter(
|
||||
customer=project.customer
|
||||
).exclude(
|
||||
project_links__project=project
|
||||
)
|
||||
|
||||
self.fields["contact"].queryset = qs
|
||||
self.apply_style()
|
||||
|
||||
class ProjectAddLocationForm(BaseForm):
|
||||
class Meta:
|
||||
model = ProjectLocation
|
||||
fields = ["location"]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
project = kwargs.pop("project", None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
qs = CustomerLocation.objects.none()
|
||||
|
||||
if project and project.customer:
|
||||
qs = CustomerLocation.objects.filter(
|
||||
customer=project.customer
|
||||
).exclude(
|
||||
project_links__project=project
|
||||
)
|
||||
|
||||
self.fields["location"].queryset = qs
|
||||
self.apply_style()
|
||||
|
||||
|
||||
class ProjectAddWorkerForm(BaseForm):
|
||||
|
||||
class Meta:
|
||||
model = ProjectMembership
|
||||
|
||||
fields = [
|
||||
"user",
|
||||
"role",
|
||||
]
|
||||
|
||||
def __init__(self, *args, project=None, **kwargs):
|
||||
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
self.apply_style()
|
||||
|
||||
if project:
|
||||
self.fields["user"].queryset = User.objects.exclude(
|
||||
project_memberships__project=project
|
||||
)
|
||||
Reference in New Issue
Block a user