localist/web/models/event.py

60 lines
1.6 KiB
Python

from django.contrib import admin
from leaflet.admin import LeafletGeoAdmin
from django.contrib.gis.db import models
from web.models.base import BaseModel
class Event(BaseModel):
class Status(models.TextChoices):
SCHEDULED = 'scheduled', 'Scheduled'
COMPLETED = 'completed', 'Completed'
CANCELED = 'canceled', 'Canceled'
name = models.CharField()
description = models.TextField()
url = models.URLField()
address = models.CharField()
coordinates = models.PointField(blank=True, default=None, null=True, srid=4326, geography=True)
status = models.CharField(max_length=20, choices=Status.choices, default=Status.SCHEDULED)
price = models.DecimalField(max_digits=10, default=None, blank=True, decimal_places=2)
require_rsvp = models.BooleanField()
start_time = models.DateTimeField()
end_time = models.DateTimeField()
rain_date = models.DateTimeField()
email = models.EmailField()
phone_number = models.CharField(default=None, blank=True)
class Meta:
db_table = 'events'
class EventAdmin(LeafletGeoAdmin):
search_fields = (
'name',
'description',
'start_time',
'end_time',
'rain_date',
'url',
'address',
'coordinates',
'status',
'price',
'require_rsvp',
)
list_display = (
'name',
'description',
'start_time',
'end_time',
'rain_date',
'url',
'address',
'coordinates',
'status',
'price',
'require_rsvp',
)