from django.contrib import admin
from django.contrib.gis.admin import OSMGeoAdmin
from .models import Hospital, Patient, Bed, PatientLog, Driver, Ambulance, AmbulanceTicket, Place, Points, ImportFile
from django_google_maps import widgets as map_widgets
from django_google_maps import fields as map_fields
from django_json_widget.widgets import JSONEditorWidget
from django.db import models
from django.utils.html import format_html
from django.conf import settings
#@admin.register(Bed)
@admin.register(ImportFile)
class ImportFileAdmin(admin.ModelAdmin):
pass
@admin.register(AmbulanceTicket)
class AmbulanceTicketAdmin(admin.ModelAdmin):
list_display = ('driver', 'ambulance', 'checkin_at', 'checkout_at', 'status')
@admin.register(Points)
class PointAdmin(admin.ModelAdmin):
readonly_fields = ('distance', 'duration', 'get_map')
formfield_overrides = {
map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
models.JSONField: {'widget': JSONEditorWidget},
}
def get_map(self, obj):
return format_html( f'''
''')
fields = ('dest', 'address', 'geolocation', 'distance', 'duration', 'directions','get_map' )
#pass
@admin.register(Place)
class PlaceAdmin(admin.ModelAdmin):
formfield_overrides = {
map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
models.JSONField: {'widget': JSONEditorWidget},
}
#pass
#list_display = ('driver', 'ambulance', 'checkin_at', 'checkout_at', 'status')
@admin.register(Ambulance)
class AmbulanceAdmin(admin.ModelAdmin):
list_display = ('code', 'license_plate', 'brand', 'status')
@admin.register(Driver)
class DriverAdmin(admin.ModelAdmin):
pass
class BedAdmin(admin.TabularInline):
model = Bed
class PatientLogAdmin(admin.StackedInline):
model = PatientLog
#fields = ('hospital', 'notes', 'condition_level', 'status')
@admin.register(Hospital)
class HospitalAdmin(OSMGeoAdmin):
list_display = ('title', 'address', 'geolocation')
inlines = [BedAdmin,]
fields = ('title', 'address_text', 'address', 'geolocation',)
formfield_overrides = {
map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
}
@admin.register(Patient)
class PatientAdmin(admin.ModelAdmin):
readonly_fields = ('nearby_places', )
formfield_overrides = {
map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
}
inlines = [PatientLogAdmin,]
def nearby_places(self, obj):
r = obj.nearby()
return format_html(r)