Files
training-software/waitlist/models.py
Paperclip DevOpsSRE 4b8622d197
Some checks failed
Deploy Waitlist / Deploy to VPS (push) Failing after 2m26s
feat(TRA-306): add waitlist app + VPS deploy workflow
Adds Django waitlist app to serve the launch-gating endpoints:
- GET  /training/django-cohort/waitlist  → HTML cohort waitlist page
- POST /v1/waitlist/django-cohort        → JSON signup with attribution

Changes:
- waitlist/ app: WaitlistSignup model, views, urls, admin, template
- config/settings/waitlist.py: minimal prod settings for waitlist-only deploy
- config/urls_waitlist.py: slimmed URL conf (waitlist + healthz + admin)
- config/urls.py: registers waitlist routes on full project
- config/settings/base.py: adds waitlist to INSTALLED_APPS
- docker-compose.waitlist.yml: Traefik-labelled deploy for VPS
- requirements/waitlist.txt: minimal dependency set for waitlist build
- .gitea/workflows/deploy-waitlist.yml: CI deploy job using Docker socket
- Dockerfile: parameterise DJANGO_SETTINGS_FOR_COLLECTSTATIC

DNS action required after deploy (board):
  api.usepaperclip.app  → 76.13.129.223 (VPS)
  usepaperclip.app      → 76.13.129.223 (VPS) OR Vercel creds for Next.js fix

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-07 10:17:25 +02:00

17 lines
496 B
Python

from django.db import models
class WaitlistSignup(models.Model):
name = models.CharField(max_length=120, blank=True)
email = models.EmailField(unique=True)
source = models.CharField(max_length=80, blank=True)
attribution = models.JSONField(default=dict, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ["-created_at"]
def __str__(self):
return self.email