60 lines
1.6 KiB
Python
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',
|
|
)
|