class ImageComparisonAdmin(dpadmin.DjangoplicityModelAdmin, dpadmin.CleanHTMLAdmin, RenameAdmin, ArchiveAdmin): list_display = ('id', 'list_link_thumbnail', 'title', 'published', 'priority', 'release_date', 'embargo_date', view_link('imagecomparisons')) list_filter = ( 'published', 'last_modified', 'created', 'release_date', 'embargo_date', ) list_editable = ( 'published', 'title', 'priority', ) search_fields = ( 'id', 'title', 'description', 'credit', ) date_hierarchy = 'release_date' fieldsets = ( (None, { 'fields': ('id', 'priority') }), (_(u'Language'), { 'fields': ('lang', ) }), ('Publishing', { 'fields': ( 'published', ('release_date', 'embargo_date'), ), }), ('Content', { 'fields': ('title', 'description', 'credit', 'image_before', 'image_after'), }), ) ordering = ( '-release_date', '-id', ) raw_id_fields = ('image_before', 'image_after') richtext_fields = ( 'description', 'credit', ) actions = ['action_toggle_published', 'action_reimport'] inlines = [] def get_queryset(self, request): qs = super(ImageComparisonAdmin, self).get_queryset(request) return ArchiveAdmin.limit_access(self, request, qs)
class ScienceAnnouncementAdmin(dpadmin.DjangoplicityModelAdmin, RenameAdmin, ArchiveAdmin): list_display = ( 'id', 'title', 'published', 'featured', 'release_date', 'embargo_date', 'last_modified', view_link('scienceannouncements'), ) list_filter = ( 'published', 'featured', 'last_modified', 'release_date', 'embargo_date', ) list_editable = ('title', ) search_fields = ( 'id', 'title', 'description', ) date_hierarchy = 'release_date' ordering = ( '-release_date', '-last_modified', ) richtext_fields = ('description', 'contacts', 'links') actions = [ 'action_mutiple_item_displays', 'action_toggle_published', ] fieldsets = ( (None, { 'fields': ('id', ) }), ('Publishing', { 'fields': ('published', 'featured', 'release_date', 'embargo_date'), }), ('Archive', { 'fields': ('title', 'subtitle', 'description', 'links', 'contacts'), }), ) inlines = [ ScienceAnnouncementImageInlineAdmin, ] def get_queryset(self, request): qs = super(ScienceAnnouncementAdmin, self).get_queryset(request) return ArchiveAdmin.limit_access(self, request, qs)
class ImageProxyAdmin(dpadmin.DjangoplicityModelAdmin, dpadmin.CleanHTMLAdmin, RenameAdmin, TranslationDuplicateAdmin, SyncTranslationAdmin, ArchiveAdmin): list_display = ('id', 'title', 'published', 'translation_ready', 'lang', 'source', 'last_modified', view_link('images', translation=True)) list_filter = ( 'lang', 'published', 'last_modified', 'created', 'release_date', 'embargo_date', ) list_editable = ( 'title', 'translation_ready', ) search_fields = ImageAdmin.search_fields fieldsets = ( ('Language', { 'fields': ( 'lang', 'source', 'translation_ready', ) }), (None, { 'fields': ('id', ) }), ('Publishing', { 'fields': ('published', ), }), ('Image', { 'fields': ( 'title', 'headline', 'description', ), }), ) ordering = ImageAdmin.ordering richtext_fields = ImageAdmin.richtext_fields raw_id_fields = ('source', ) readonly_fields = ('id', ) inlines = [] actions = ['action_toggle_published'] list_select_related = ['source'] def get_queryset(self, request): qs = super(ImageProxyAdmin, self).get_queryset(request) return ImageProxyAdmin.limit_access(self, request, qs)
class VideoProxyAdmin(dpadmin.DjangoplicityModelAdmin, dpadmin.CleanHTMLAdmin, RenameAdmin, TranslationDuplicateAdmin, SyncTranslationAdmin, ArchiveAdmin): list_display = ('id', 'title', 'published', 'translation_ready', 'lang', 'source', 'last_modified', view_link('videos', translation=True)) list_filter = ( 'lang', 'published', 'last_modified', 'created', 'release_date', 'embargo_date', ) list_editable = ( 'title', 'translation_ready', ) search_fields = VideoAdmin.search_fields fieldsets = ( ('Language', { 'fields': ( 'lang', 'source', 'translation_ready', ) }), (None, { 'fields': ('id', ) }), ('Publishing', { 'fields': ('published', ), }), ('Video', { 'fields': ( 'title', 'headline', 'description', ), }), ) ordering = VideoAdmin.ordering richtext_fields = VideoAdmin.richtext_fields raw_id_fields = ('source', ) readonly_fields = ('id', ) inlines = [] actions = ['action_toggle_published'] list_select_related = ['source']
class VideoAdmin(dpadmin.DjangoplicityModelAdmin, dpadmin.CleanHTMLAdmin, RenameAdmin, ArchiveAdmin, SetCategoryMixin, ContentDeliveryAdmin): list_display = ('id', 'release_date_owner', 'release_date', 'embargo_date', 'list_link_thumbnail', 'title', 'file_duration', 'priority', 'published', 'featured', 'last_modified', view_link('videos')) list_editable = ( 'priority', 'title', ) list_filter = ('published', 'featured', 'tagging_status', 'last_modified', 'created', 'web_category', 'content_server', 'content_server_ready', 'use_youtube') filter_horizontal = ('web_category', 'subject_category', 'subject_name') search_fields = ( 'id', 'title', 'headline', 'description', 'credit', ) fieldsets = ( (None, { 'fields': ('id', 'priority', 'published', 'featured') }), (_(u'Language'), { 'fields': ('lang', ) }), (_(u'Status'), { 'fields': ('tagging_status', ), 'classes': ('collapse', ) }), (_(u'Content Metadata'), { 'fields': ( 'title', 'headline', 'description', 'credit', 'web_category', 'subject_category', 'subject_name', 'type', 'facility', ), 'classes': ('collapse', ) }), (_(u'Creator Metadata'), { 'fields': ( 'creator', 'creator_url', 'contact_address', 'contact_city', 'contact_state_province', 'contact_postal_code', 'contact_country', 'rights', ), 'classes': ('collapse', ) }), (_(u'Publisher Metadata'), { 'fields': ( 'publisher', 'publisher_id', ), 'classes': ('collapse', ) }), (_(u'File Metadata'), { 'fields': ('width', 'height', 'file_duration', 'file_aspect_ratio', 'file_size', 'frame_rate', 'magnet_uri'), 'classes': ('collapse', ) }), (_(u'Audio Metadata'), { 'fields': ('audio_surround_format', ), 'classes': ('collapse', ) }), (_(u'Content Delivery'), { 'fields': ('content_server', 'content_server_ready', 'youtube_video_id', 'use_youtube'), 'classes': ('collapse', ) }), (_(u'Publishing (advanced)'), { 'fields': (('release_date', 'embargo_date'), 'release_date_owner'), 'classes': ('collapse', ) }), ) ordering = ('-last_modified', ) richtext_fields = ( 'description', 'credit', ) readonly_fields = ('content_server_ready', ) actions = [ 'action_toggle_published', 'action_toggle_featured', 'action_update_subtitles', 'action_reimport', 'action_video_extras', 'action_resync_resources', 'action_youtube_upload' ] inlines = [VideoContactInlineAdmin] class Media: css = { 'all': (settings.MEDIA_URL + settings.SUBJECT_CATEGORY_CSS, ) } # Extra widget for subject category field def get_queryset(self, request): qs = super(VideoAdmin, self).get_queryset(request) return ArchiveAdmin.limit_access(self, request, qs) def action_update_subtitles(self, request, objects): try: from djangoplicity.media.tasks import video_embed_subtitles for obj in objects: for f in settings.VIDEOS_SUBTITLES_FORMATS: video_embed_subtitles.delay(obj.pk, f) self.message_user(request, _("Updating subtitles for selected videos.")) except Exception, e: self.message_user( request, _("Error while updating subtitles." % unicode(e)))
class ImageAdmin(dpadmin.DjangoplicityModelAdmin, dpadmin.CleanHTMLAdmin, RenameAdmin, CropAdmin, ArchiveAdmin, SetCategoryMixin, ContentDeliveryAdmin): list_display = ('id', 'release_date_owner', 'release_date', 'embargo_date', 'list_link_thumbnail', 'title', 'width', 'height', 'priority', 'published', 'featured', 'last_modified', 'created', view_link('images')) list_editable = ('priority', 'title') list_filter = ('published', 'featured', 'last_modified', 'created', 'tagging_status', 'type', 'web_category', 'spatial_quality', 'file_type', 'colors', 'content_server', 'content_server_ready') filter_horizontal = ('web_category', 'subject_category', 'subject_name', 'tagging_status') search_fields = ( 'id', 'title', 'headline', 'description', 'credit', ) fieldsets = ( (None, { 'fields': ( 'id', 'priority', 'published', ('featured', 'zoomify', 'wallpapers', 'print_layout', 'zoomable', 'keep_newsfeature'), ) }), (_(u'Language'), { 'fields': ('lang', ) }), (_(u'Status'), { 'fields': ('tagging_status', ), 'classes': ('collapse', ) }), (_(u'Content Metadata'), { 'fields': ('title', 'headline', 'description', 'credit', 'web_category', 'subject_category', 'subject_name', 'distance_ly', 'distance_ly_is_accurate', 'distance_z', 'distance_notes', 'type'), 'classes': ('collapse', ) }), (_(u'Coordinate Metadata'), { 'fields': ( 'spatial_coordinate_frame', 'spatial_equinox', 'spatial_reference_value', 'spatial_reference_dimension', 'spatial_reference_pixel', 'spatial_scale', 'spatial_rotation', 'spatial_coordsystem_projection', 'spatial_quality', 'spatial_notes', ), 'classes': ('collapse', ) }), (_(u'Creator Metadata'), { 'fields': ( 'creator', 'creator_url', 'contact_address', 'contact_city', 'contact_state_province', 'contact_postal_code', 'contact_country', 'rights', ), 'classes': ('collapse', ) }), (_(u'Publisher Metadata'), { 'fields': ( 'publisher', 'publisher_id', ), 'classes': ('collapse', ) }), (_(u'File Metadata'), { 'fields': ('file_type', 'width', 'height', ('fov_x_l', 'fov_x_r'), ('fov_y_d', 'fov_y_u'), 'file_size', 'magnet_uri'), 'classes': ('collapse', ) }), (_(u'Observation Metadata'), { 'fields': ('spectral_notes', ), 'classes': ('collapse', ) }), (_(u'External References'), { 'fields': ('long_caption_link', 'press_release_link'), 'classes': ('collapse', ) }), (_(u'Publishing (advanced)'), { 'fields': (('release_date', 'embargo_date'), 'release_date_owner'), 'classes': ('collapse', ) }), (_(u'Content Delivery'), { 'fields': ('content_server', 'content_server_ready'), 'classes': ('collapse', ) }), ) ordering = ('-last_modified', ) richtext_fields = ('description', 'credit') readonly_fields = ('id', 'content_server_ready') actions = [ 'action_toggle_published', 'action_toggle_featured', 'action_avm_content_review', 'action_avm_observation_review', 'action_avm_coordinate_review', 'action_write_avm', 'action_reimport', 'action_resync_resources' ] inlines = [ImageExposureInlineAdmin, ImageContactInlineAdmin] def get_queryset(self, request): qs = super(ImageAdmin, self).get_queryset(request) return ArchiveAdmin.limit_access(self, request, qs) def status(self, obj): """ List all statuses """ return ", ".join( [x.slug for x in obj.tagging_status.all().order_by('slug')]) def action_write_avm(self, request, queryset): try: from djangoplicity.media.tasks import write_metadata for obj in queryset: write_metadata.delay(obj.id, IMAGE_AVM_FORMATS) self.message_user(request, _("Writing AVM to selected images.")) except Exception, e: self.message_user( request, _("This djangoplicity installation does not support writing AVM to images (%s)." % unicode(e)))