示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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']
示例#5
0
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)))
示例#6
0
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)))