Add Django site, Docker packaging, and beta/prod Gitea deploys.
Deploy Beta / unit-tests (push) Successful in 9s
Deploy Beta / docker (push) Successful in 17s
Deploy Beta / deploy-beta (push) Successful in 2m31s

Unignore site/ (was blocked by mkdocs /site rule), add compose/Docker/uv tooling, and split deploys so push to main goes to beta while prod stays manual.
This commit is contained in:
2026-08-08 07:32:55 -05:00
parent 7dca98bbf6
commit 1f7d78de64
204 changed files with 21662 additions and 70 deletions
+46
View File
@@ -0,0 +1,46 @@
from django.conf import settings
from django.db import models
from contacts.models import Contact
from core.models import TimeStampedModel, UUIDPrimaryKeyModel
class Lead(UUIDPrimaryKeyModel, TimeStampedModel):
class Status(models.TextChoices):
NEW = "new", "New"
CONTACTED = "contacted", "Contacted"
WON = "won", "Won"
LOST = "lost", "Lost"
contact = models.ForeignKey(Contact, on_delete=models.CASCADE, related_name="leads")
message = models.TextField(blank=True)
status = models.CharField(
max_length=16, choices=Status.choices, default=Status.NEW
)
owner = models.ForeignKey(
settings.AUTH_USER_MODEL,
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name="leads",
)
class Meta:
ordering = ["-created_at"]
def __str__(self) -> str:
return f"Lead {self.contact} ({self.status})"
class LeadNote(TimeStampedModel):
lead = models.ForeignKey(Lead, on_delete=models.CASCADE, related_name="notes")
author = models.ForeignKey(
settings.AUTH_USER_MODEL,
null=True,
blank=True,
on_delete=models.SET_NULL,
)
body = models.TextField()
class Meta:
ordering = ["-created_at"]