55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from api.core.models.trackable_model import TrackableModel
|
|
|
|
|
|
class ProspectStep(TrackableModel):
|
|
"""
|
|
Model representing the prospection steps for a prospect.
|
|
"""
|
|
|
|
source_template_step = models.ForeignKey(
|
|
"M2M_TemplateStep",
|
|
verbose_name=_("étape source"),
|
|
null=True,
|
|
on_delete=models.SET_NULL,
|
|
)
|
|
prospect = models.ForeignKey(
|
|
"Prospect",
|
|
verbose_name=_("prospect"),
|
|
on_delete=models.PROTECT,
|
|
)
|
|
contact_person = models.ForeignKey(
|
|
"ContactPerson",
|
|
verbose_name=_("contact"),
|
|
null=True,
|
|
blank=True,
|
|
on_delete=models.PROTECT,
|
|
)
|
|
contact_method = models.ForeignKey(
|
|
"ContactMethod",
|
|
null=True,
|
|
blank=True,
|
|
on_delete=models.PROTECT,
|
|
)
|
|
step_type = models.ForeignKey(
|
|
"StepType",
|
|
on_delete=models.PROTECT,
|
|
)
|
|
order = models.PositiveIntegerField()
|
|
notes = models.TextField(blank=True)
|
|
done = models.BooleanField(default=False)
|
|
done_datetime = models.DateTimeField(null=True, blank=True)
|
|
|
|
class Meta:
|
|
verbose_name = _("Étape de prospection du prospect")
|
|
verbose_name_plural = _("Étapes de prospection du prospect")
|
|
constraints = [
|
|
models.UniqueConstraint(
|
|
fields=["prospect", "order"],
|
|
name="uniq_prospect_step_order",
|
|
),
|
|
]
|
|
ordering = ["prospect_id", "order"]
|