class QuestionAdmin(admin.ModelAdmin): question_image_thumbnail = AdminThumbnail(image_field="question_image") answer_image_thumbnail = AdminThumbnail(image_field="answer_image") list_display = [ "id", "text", "has_question_image", "has_answer_image", "question_image_url", "answer_image_url", "category", ] readonly_fields = ("id", "question_image_thumbnail", "answer_image_thumbnail") # fields = [ # "text", # "category", # "author", # "question_image", # "answer_image", # "question_image_thumbnail", # "answer_image_thumbnail", # "explanation", # "randomise_answer_order", # ] list_filter = ("category", ) search_fields = ("text", "explanation") # filter_horizontal = ("quiz",) # Must be many-to-many inlines = [AnswerInline]
class ProductAdmin(admin.ModelAdmin): list_display = ['name', 'price', 'number_in_stocks', 'image_display_main'] image_display_main = AdminThumbnail(image_field='main_image') image_display_main.short_description = 'main_image' image_display_second = AdminThumbnail(image_field='second_image') image_display_second.short_description = 'second_image' image_display_third = AdminThumbnail(image_field='third_image') image_display_third.short_description = 'third_image' readonly_fields = [ 'image_display_main', 'image_display_second', 'image_display_third' ] # this is for the change form
class ProductAdmin(admin.ModelAdmin): form = PageForm search_fields = ['name'] product_thumbnail = AdminThumbnail(image_field='thumbnail') list_display = [ 'name', 'product_thumbnail', 'price', 'active', 'available', 'ordering' ] image_display = AdminThumbnail(image_field='image') image_display.short_description = _('Image') readonly_fields = ['image_display', 'created', 'modified'] fields = ('ordering', 'active', 'available', 'name', 'price', 'short_description', 'long_description', 'image', 'image_display', 'created', 'modified')
class PhotoAdmin(AutoUserMixin, admin.ModelAdmin): fieldsets = [ (None, { 'fields': [ 'added', 'user', 'image_orig', 'admin_thumb_span6', 'aspect_ratio', 'scene_category', 'scene_category_correct', 'whitebalanced', 'description', 'exif', 'flickr_user', 'flickr_id' ] }), ] # fields readonly_fields = ['added', 'admin_thumb_span6'] list_display = [ 'user', 'admin_thumb_span1', 'scene_category', 'scene_category_correct', 'whitebalanced', 'added' ] # field display list_filter = ['added', 'scene_category_correct', 'whitebalanced'] search_fields = ['user', 'description'] date_hierarchy = 'added' admin_thumb_span6 = AdminThumbnail(image_field='image_span6') admin_thumb_span1 = AdminThumbnail(image_field='thumb_span1') # inlines class PhotoLabelInlineBase(AutoUserMixin, admin.TabularInline): fk_name = 'photo' extra = 1 class PhotoWhitebalanceLabelInline(PhotoLabelInlineBase): model = PhotoWhitebalanceLabel class PhotoSceneQualityLabelInline(PhotoLabelInlineBase): model = PhotoSceneQualityLabel class SubmittedShapeInline(PhotoLabelInlineBase): model = SubmittedShape class MaterialShapeInline(PhotoLabelInlineBase): model = MaterialShape inlines = [ SubmittedShapeInline, MaterialShapeInline, PhotoWhitebalanceLabelInline, PhotoSceneQualityLabelInline, ]
class BildAdmin(admin.ModelAdmin): list_display = ( 'id', 'admin_thumbnail', 'tour', 'date', 'tagebucheintrag', 'bild', ) # for list view search_fields = ['tour__name', 'bild'] admin_thumbnail = AdminThumbnail(image_field='bild_thumb') admin_thumbnail.short_description = 'Thumb' big_thumbnail = AdminThumbnail(image_field='bild_web') readonly_fields = ['big_thumbnail'] # for detail view
class PicturesAdmin(admin.ModelAdmin): list_display = ('id', 'author', 'is_hotdog', 'computed_status') inlines = (ScoresInline, ) readonly_fields = ('is_hotdog', 'image_display', 'watermark_image_display', 'watermark_image', 'computed_status') search_fields = ('tags__name', ) actions = [run_compute] image_display = AdminThumbnail(image_field='image') image_display.short_description = 'Image' watermark_image_display = AdminThumbnail(image_field='watermark_image') watermark_image_display.short_description = 'Image watermark' run_compute.short_description = 'Force run compute on selected pictures'
class ShapeAdmin(AutoUserMixin, admin.ModelAdmin): fieldsets = [ (None, { 'fields': ['added', 'photo', 'user', 'vertices', 'num_vertices'] }), ] readonly_fields = ['added', 'admin_thumb_span6'] list_display = ['user', 'admin_thumb_span1', 'added', 'num_vertices'] list_filter = ['added', 'correct', 'planar'] search_fields = ['user', 'photo'] date_hierarchy = 'added' admin_thumb_span6 = AdminThumbnail(image_field='image_span6') admin_thumb_span1 = AdminThumbnail(image_field='thumb_span1')
class AnalizeBannerAdmin(admin.ModelAdmin): list_display = ( '__str__', 'admin_thumbnail', ) admin_thumbnail = AdminThumbnail(image_field='avatarimage') tabular = [AnalizeBannerInline]
class VideoAdmin(admin.ModelAdmin): list_display = ( '__str__', 'admin_thumbnail', ) admin_thumbnail = AdminThumbnail(image_field='thumbnail')
class ProfessionalPhotoAdmin(VersionAdmin): """The photo admin class.""" model: Type = ProfessionalPhoto photo_thumbnail = AdminThumbnail(image_field="photo_thumbnail") list_display = ("id", "photo_thumbnail", "name", "order", "professional", "created", "created_by") list_display_links = ("id", "name") list_filter = (ProfessionalFilter, ) search_fields = ("=id", "professional__name", "professional__user__email", "name", "description") readonly_fields = ("created", "modified", "created_by", "modified_by") autocomplete_fields = ("professional", ) fieldsets: Tuple = ( ("General", { "fields": ("name", "description") }), ("Photo", { "fields": ("photo", ) }), ("Options", { "fields": ("professional", "order", "created", "modified", "created_by", "modified_by") }), ) list_select_related = ("professional", "professional__user", "created_by") class Media: """Required for the AutocompleteFilter."""
class PhotoAdmin(admin.ModelAdmin): list_display = ('id', 'name', 'description', 'org_filename', 'exif_time_taken', 'exif_lat', 'exif_lon', 'place', 'track', 'image', 'image_fullhd', 'image_thumb', 'private') admin_thumbnail = AdminThumbnail(image_field='image') search_fields = ('id', 'name', 'description', 'place__name') readonly_fields = ('image', )
class EpisodeAdmin(TranslationAdmin): form = AdminEpisodeForm list_display = ("title", "show", "slug", "episode_site", "published_flag", "admin_thumbnail") list_filter = ("show", "published") admin_thumbnail = AdminThumbnail(image_field="admin_thumb_sm") formfield_overrides = { models.TextField: { 'widget': TinyMCE }, } if can_tweet(): readonly_fields = ("tweet_text", ) def published_flag(self, obj): return bool(obj.published) published_flag.short_description = _("Published") published_flag.boolean = True def episode_site(self, obj): return obj.show.site.name episode_site.short_description = "Site" def save_form(self, request, form, change): # this is done for explicitness that we want form.save to commit # form.save doesn't take a commit kwarg for this reason return form.save()
class ItemAdmin(TranslationAdmin): search_fields = ('name', 'description') date_hierarchy = 'lost' fields = ('name', ('lost', 'found'), 'image', 'description') list_display = ('name', 'lost', 'found', 'has_been_returned', 'admin_thumbnail') list_filter = (ReturnedItemFilter,) inlines = [NotificationInline] actions = ['mark_returned', 'mark_not_returned'] admin_thumbnail = AdminThumbnail(image_field='scaled_image') def has_been_returned(self, obj): return obj.has_been_returned has_been_returned.boolean = True has_been_returned.short_description = _('has been returned') def mark_returned(self, request, queryset): queryset.update(found=date.today()) mark_returned.short_description = _('Mark as returned') def mark_not_returned(self, request, queryset): queryset.update(found=None) mark_not_returned.short_description = _('Mark as not returned') def formfield_for_dbfield(self, db_field, **kwargs): if db_field.name == 'description': kwargs['widget'] = AdminMarkItUpWidget() return super(ItemAdmin, self).formfield_for_dbfield(db_field, **kwargs)
class ProductosAdmin(admin.ModelAdmin): list_display = ('image_display', 'idproducto', 'nombreproducto', 'preciounidad') image_display = AdminThumbnail(image_field='thumbnail') image_display.short_description = 'Image' readonly_fields = ['image_display']
class HistoryAdmin(admin.ModelAdmin): list_display = ['game', 'date', 'img_thumbnail', 'achievement'] list_filter = ['game', 'date'] img_thumbnail = AdminThumbnail(image_field='img_thumbnail') ordering = ('create_time',) search_fields = ('game', 'date',) filter_horizontal = ()
class ImageAdmin(admin.ModelAdmin): list_display = ('Product', 'Image', 'IsPrimary', 'admin_thumbnail') list_filter = ['Product'] ordering = ['Product__SKU', 'Image'] admin_thumbnail = AdminThumbnail(image_field='ImageAdminThumbnail') admin_thumbnail.short_description = 'Image'
class TextureAdmin(admin.ModelAdmin): list_display = ['__unicode__', 'needs_shadow', 'thumbnail'] search_fields = ('texture', ) thumbnail = AdminThumbnail(image_field='sample', template='processing/sample.html') thumbnail.short_description = _(u'Лоскут')
class BannerAdmin(admin.ModelAdmin): list_display = ( '__str__', 'admin_thumbnail', ) admin_thumbnail = AdminThumbnail(image_field='image')
class CelebrityAdmin(BaseAdmin, ImportExportModelAdmin): resource_class = CelebrityResource form = CelebrityForm save_on_top = True list_filter = ('duties', ) search_fields = ('first_name', 'last_name', 'duties__name') ordering = ('last_name', 'first_name') list_display = ('admin_thumbnail', 'first_name', 'last_name', 'is_featured', 'slug', 'age', 'updated_at') list_display_links = ('first_name', 'last_name') list_editable = ('is_featured', ) admin_thumbnail = AdminThumbnail(image_field=cached_list_thumb) readonly_fields = ('name', 'slug', 'extra_chars_count', 'admin_thumbnail', 'added_by', 'added_at', 'updated_by', 'updated_at') fieldsets = ((_('Info'), { 'fields': (('name', 'slug'), ('first_name', 'last_name'), ('nick_name', 'is_featured'), ('birthdate', 'birth_place'), ('deathdate', 'death_place'), 'content', 'content_source', 'trailer', 'trailer_info', ('admin_thumbnail', 'image'), 'image_credit', 'duties', 'imdb_id') }), (_('Meta info'), { 'classes': ('collapse', ), 'fields': ( 'extra_chars_count', ('added_by', 'added_at'), ('updated_by', 'updated_at'), ) }))
class RecipeAdmin(admin.ModelAdmin): def export_MealMaster(self, request, queryset): response = render_to_response('recipe/mealmaster_export.txt', {'queryset': queryset}, mimetype='text/plain') response['Content-Disposition'] = 'attachment; filename=recipe.txt' return response export_MealMaster.short_description = "Export Meal Master" actions = [export_MealMaster] inlines = [RecipeInline] list_display = ['title', 'admin_thumbnail', 'author', 'pub_date', 'shared'] admin_thumbnail = AdminThumbnail(image_field='photo') list_filter = ['shared', 'author', 'course', 'cuisine'] search_fields = [ 'author__username', 'title', ] radio_fields = {"shared": admin.HORIZONTAL} class Media: js = [ settings.STATIC_URL + 'grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js', settings.STATIC_URL + 'js/tinymce_setup.js', ]
class FooterPhotoAdmin(admin.ModelAdmin): list_display = ( '__str__', 'admin_thumbnail', ) admin_thumbnail = AdminThumbnail(image_field='adminphoto') tabular = [FooterPhotoInline]
class ObjectGalleryImageInline(admin.TabularInline): model = ObjectGalleryImage extra = 0 image_thumb = AdminThumbnail(image_field='image_thumb') fields = ('gallery', 'image', 'image_thumb') readonly_fields = ('image_thumb', )
class ShowAdmin(TranslationAdmin): form = AdminShowForm list_display = ("title", "slug", "show_site", "published_flag", "admin_thumbnail") list_filter = ("title", "published", "site") admin_thumbnail = AdminThumbnail(image_field="admin_thumb_sm") formfield_overrides = { models.TextField: { 'widget': TinyMCE }, } if can_tweet(): fields.append("tweet_text") def published_flag(self, obj): return bool(obj.published) published_flag.short_description = _("Published") published_flag.boolean = True def show_site(self, obj): return obj.site.name show_site.short_description = "Site"
class PostAdmin(NonSortableParentAdmin, LeafletGeoAdmin): model = models.Post ordering = ('name',) thumb = AdminThumbnail(image_field=generic_cached_admin_thumb) list_display = ('thumb', 'linked_name', 'date', 'published', ) list_filter = ('published',) inlines = [ ImageInline, LinkInline ] actions = [publish, unpublish, unfeature, feature] filter_horizontal = ('tags',) fieldsets = ( (None, { 'fields': (('name', 'published', 'date'), 'summary', 'body', 'tags'), }), ('Traducción al inglés', { 'classes' : ('collapse',), 'fields' : ('name_en', 'summary_en', 'body_en'), }), ('Traducción al catalán', { 'classes' : ('collapse',), 'fields' : ('name_ca', 'summary_ca', 'body_ca'), }) ) class Media: js = ['/static/straddle3/js/featured-image.js',] def linked_name(self, obj): url = reverse("admin:%s_%s_change" % (obj._meta.app_label, obj._meta.model_name), args=(obj.id,)) return format_html("<a href='" + url + "'>" + obj.name + "</a>")
class DoctorAdmin(admin.ModelAdmin): image_display = AdminThumbnail(image_field='Image') image_display.short_description = 'Image' readonly_fields = ['image_display'] list_display = ['Email', 'specialization', 'Active'] ordering = ['Active', 'Email'] list_editable = ['Active'] search_fields = ['Email', 'specialization'] list_filter = ['Active'] save_on_top = True fieldsets = (('Personal Data', { 'fields': ( ('FirstName', 'LastName', 'image_display'), ('specialization'), ('Password'), ('Email'), ('Phone'), ('Location'), ('cv'), ('Active'), ('Image'), ) }), )
class LieuAdmin(OSMGeoAdmin): list_display = ('name', 'refCategory', 'street', 'zipCode', 'city', 'country', 'photo_thumbnail', 'location', 'valide') list_filter = ( 'country', 'valide', ) search_fields = ('name', 'city') date_hierarchy = 'updatedAt' ordering = ['valide', 'updatedAt'] raw_id_fields = ('refCategory', ) inlines = [PhotoLieuInline] fieldsets = ( # Fieldset 1 : meta-info ('Infos', { 'fields': ('name', 'refCategory', 'mainPhoto', 'valide') }), # Fieldset 2 : adresse ('Adresse', { 'classes': [ 'collapse', ], 'description': 'Vous pouvez utiliser la carte pour geolocaliser le lieu', 'fields': ( 'street', 'zipCode', 'city', 'country', 'location', ) }), ) photo_thumbnail = AdminThumbnail(image_field='mainPhoto') photo_thumbnail.short_description = 'Photo principale'
class ImageAdmin(admin.ModelAdmin): list_display = ('id', 'group_list', 'user', 'name', 'mime', 'admin_image', 'created_at', 'updated_at') list_filter = ('user', 'groups', 'created_at', 'updated_at') list_display_links = ( 'id', 'name', ) search_fields = ( 'id', 'name', ) ordering = ['-id'] admin_image = AdminThumbnail(image_field='small') def image_thumbnail(self, obj): if obj.image: return '<img src="%s" />' % obj.image.url return "" image_thumbnail.allow_tags = True image_thumbnail.short_description = "Thumbnail" def group_list(self, obj): return u", ".join(o.name for o in obj.groups.all()) group_list.short_description = "groups"
class PhotoAdmin(admin.ModelAdmin): list_display = ( 'admin_thumbnail', 'valide', ) admin_thumbnail = AdminThumbnail(image_field='picture') admin_thumbnail.short_description = 'La photo'
class WorkAdmin(ModerationAdmin, LargeImagePreviewInChangeForm, TranslationAdmin): admin_thumbnail = AdminThumbnail(image_field='processed_image') admin_thumbnail.short_description = u'תצוגה מקדימה' list_display = ('get_raw_image_filename', 'name', 'designer', 'category', 'discipline', 'admin_thumbnail') ordering = ('-id',) list_filter = ('discipline', 'category', 'designer', 'of_collections') filter_horizontal = ['subjects', 'of_collections'] readonly_fields = ['get_raw_image_filename', ] # fields = ['raw_image', 'designer', 'name', 'get_raw_image_filename', 'category', 'tags', # 'discipline', 'publish_date_as_text', 'publish_year', # 'size_as_text', 'height', # 'width', 'depth', 'country', 'client', 'technique', # 'of_collections', 'is_self_collected', 'subjects', 'description', # ] def get_raw_image_filename(self, instance): import os if instance.raw_image: return os.path.basename(instance.raw_image.name) return None get_raw_image_filename.short_description = u'שם קובץ' get_raw_image_filename.admin_order_field = 'raw_image' def queryset(self, request): qs = super(WorkAdmin, self).queryset(request) if request.user.is_superuser: return qs return qs.filter( designer=request.user.get_profile().in_charge_of_designers.all() )
class ImageAdmin(admin.ModelAdmin): list_display = ( '__str__', 'original_filename', 'admin_thumbnail', 'size', 'width', 'heigth', 'checksum', ) admin_thumbnail = AdminThumbnail(image_field='thumbnail') actions = ('turn_potato', ) def turn_potato(self, request, queryset): count = 0 placeholder = str(settings.BASE_DIR / 'static' / 'img' / 'anders_bateva.png') with open(placeholder, 'rb') as file: for image in queryset: image.file = File(file, name=image.original_filename) image.save() count += 1 self.message_user(request, '{} image(s) was potato\'d'.format(count)) turn_potato.short_description = 'Turn into a potato'