123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- from django.contrib import admin
- from .models import Item, Tag, Setting, TYPE_AUDIO, TYPE_FOLDER, TYPE_IMAGE, TYPE_VIDEO
-
-
- class ItemAdmin(admin.ModelAdmin):
- list_display = ('rel_path', 'type', )
- search_fields = ('rel_path', )
- readonly_fields = (
- 'rel_path',
- 'type',
- 'artist_c',
- 'album_c',
- 'year_c',
- 'title_c',
- 'track_c',
- 'duration_c',
- 'genre_c',
- 'bitrate_c',
- 'num_audio_c',
- 'num_folders_c',
- 'num_images_c',
- 'num_other_c',
- 'num_videos_c',
- 'sil_c',
- 'camera_c',
- 'width_c',
- 'height_c',
- 'exposure_program_c',
- 'exposure_time_c',
- 'iso_c',
- 'f_number_c',
- 'focal_length_c',
- 'flash_c',
- 'lon_c',
- 'lat_c',
- 'orientation_c',
- 'ratio_c'
- )
-
- list_filter = (
- ('type', admin.ChoicesFieldListFilter),
- ('public_access', admin.BooleanFieldListFilter),
- ('read_access', admin.RelatedFieldListFilter),
- ('modify_access', admin.RelatedFieldListFilter),
- )
-
- def get_fields(self, request, obj=None):
- if obj is not None:
- rv = ['rel_path', 'type', 'datetime_c']
- if obj.type == TYPE_FOLDER:
- rv += ['public_access', 'read_access', 'modify_access']
- else:
- rv += ['favourite_of']
- rv += ['size_c', 'uid_c', 'settings_c', 'data_version_c']
- if obj.type == TYPE_AUDIO:
- rv += [
- 'artist_c',
- 'album_c',
- 'year_c',
- 'title_c',
- 'track_c',
- 'duration_c',
- 'genre_c',
- 'bitrate_c',
- ]
- if obj.type == TYPE_FOLDER:
- rv += [
- 'num_folders_c',
- 'num_audio_c',
- 'num_images_c',
- 'num_other_c',
- 'num_videos_c',
- 'sil_c',
- ]
- if obj.type == TYPE_IMAGE:
- rv += [
- 'camera_c',
- 'width_c',
- 'height_c',
- 'lon_c',
- 'lat_c',
- 'exposure_program_c',
- 'exposure_time_c',
- 'iso_c',
- 'focal_length_c',
- 'f_number_c',
- 'flash_c',
- 'orientation_c',
- ]
- if obj.type == TYPE_VIDEO:
- rv += [
- 'duration_c',
- 'width_c',
- 'height_c',
- 'ratio_c'
- ]
- return rv
- else:
- return admin.ModelAdmin.get_fields(self, request, obj=obj)
-
-
- class TagAdmin(admin.ModelAdmin):
- list_display = ('item', 'text', )
- search_fields = ('item__rel_path', 'text', )
-
-
- admin.site.register(Item, ItemAdmin)
- admin.site.register(Tag, TagAdmin)
- admin.site.register(Setting)
|