1
0
Fork 0
satnogs-network/network/base/admin.py

84 lines
2.6 KiB
Python
Raw Normal View History

from django.contrib import admin
from network.base.models import Antenna, DemodData, Observation, Satellite, \
Station, Tle, Transmitter
from network.base.utils import export_as_csv, export_station_status
@admin.register(Antenna)
class AntennaAdmin(admin.ModelAdmin):
2018-08-17 03:23:44 -06:00
list_display = ('id', '__unicode__', 'antenna_count', 'station_list', )
list_filter = ('band', 'antenna_type', )
def antenna_count(self, obj):
return obj.stations.all().count()
def station_list(self, obj):
return ",\n".join([str(s.id) for s in obj.stations.all()])
@admin.register(Station)
class StationAdmin(admin.ModelAdmin):
2018-09-24 02:20:02 -06:00
list_display = ('id', 'name', 'owner', 'get_email', 'lng', 'lat', 'qthlocator',
'client_version', 'created_date', 'state', 'target_utilization')
list_filter = ('status', 'created', 'client_version')
search_fields = ('id', 'name', 'owner__username')
2015-05-06 04:06:00 -06:00
actions = [export_as_csv, export_station_status]
2018-09-24 02:20:02 -06:00
export_as_csv.short_description = "Export selected as CSV"
export_station_status.short_description = "Export selected status"
2018-09-24 02:20:02 -06:00
2015-05-06 04:06:00 -06:00
def created_date(self, obj):
return obj.created.strftime('%d.%m.%Y, %H:%M')
2018-09-24 02:20:02 -06:00
def get_email(self, obj):
return obj.owner.email
get_email.admin_order_field = 'email'
get_email.short_description = 'Owner Email'
def get_actions(self, request):
actions = super(StationAdmin, self).get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
@admin.register(Satellite)
class SatelliteAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'norad_cat_id', 'manual_tle', 'norad_follow_id', 'status')
list_filter = ('status', 'manual_tle',)
2016-01-22 10:48:07 -07:00
readonly_fields = ('name', 'names', 'image')
2019-03-20 06:58:29 -06:00
search_fields = ('name', 'norad_cat_id', 'norad_follow_id')
2016-01-22 10:48:07 -07:00
@admin.register(Tle)
class TleAdmin(admin.ModelAdmin):
2018-12-02 09:48:39 -07:00
list_display = ('satellite_name', 'tle0', 'tle1', 'updated')
list_filter = ('satellite__name',)
2015-05-06 04:06:00 -06:00
def satellite_name(self, obj):
return obj.satellite.name
@admin.register(Transmitter)
2015-07-23 09:18:01 -06:00
class TransmitterAdmin(admin.ModelAdmin):
list_display = ('uuid', 'sync_to_db')
search_fields = ('uuid',)
list_filter = ('sync_to_db',)
readonly_fields = ('uuid',)
2015-05-06 04:06:00 -06:00
class DataDemodInline(admin.TabularInline):
model = DemodData
@admin.register(Observation)
2015-05-06 04:06:00 -06:00
class ObservationAdmin(admin.ModelAdmin):
list_display = ('id', 'author', 'satellite', 'transmitter_uuid', 'start', 'end')
2015-05-06 04:06:00 -06:00
list_filter = ('start', 'end')
search_fields = ('satellite', 'author')
inlines = [
DataDemodInline,
]
readonly_fields = ('tle',)