Commit 69977d20 authored by Brian Rosner's avatar Brian Rosner
Browse files

Fixed #10622 -- Resolved an issue with model inheritence and list_editable....

Fixed #10622 -- Resolved an issue with model inheritence and list_editable. Thanks oyvind and Alex Gaynor.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10178 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent f0b7cc4a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -237,7 +237,7 @@ def items_for_result(cl, result, form):
                result_repr = conditional_escape(result_repr)
            yield mark_safe(u'<td%s>%s</td>' % (row_class, result_repr))
    if form:
        yield mark_safe(force_unicode(form[cl.model._meta.pk.attname]))
        yield mark_safe(force_unicode(form[cl.model._meta.pk.name]))

def results(cl):
    if cl.formset:
+15 −4
Original line number Diff line number Diff line
@@ -236,6 +236,18 @@ def redirect_to(request, selected):
class ExternalSubscriberAdmin(admin.ModelAdmin):
    actions = [external_mail, redirect_to]

class Media(models.Model):
    name = models.CharField(max_length=60)

class Podcast(Media):
    release_date = models.DateField()

class PodcastAdmin(admin.ModelAdmin):
    list_display = ('name', 'release_date')
    list_editable = ('release_date',)

    ordering = ('name',)

admin.site.register(Article, ArticleAdmin)
admin.site.register(CustomArticle, CustomArticleAdmin)
admin.site.register(Section, inlines=[ArticleInline])
@@ -246,6 +258,7 @@ admin.site.register(Person, PersonAdmin)
admin.site.register(Persona, PersonaAdmin)
admin.site.register(Subscriber, SubscriberAdmin)
admin.site.register(ExternalSubscriber, ExternalSubscriberAdmin)
admin.site.register(Podcast, PodcastAdmin)

# We intentionally register Promo and ChapterXtra1 but not Chapter nor ChapterXtra2.
# That way we cover all four cases:
@@ -259,5 +272,3 @@ admin.site.register(ExternalSubscriber, ExternalSubscriberAdmin)
admin.site.register(Book, inlines=[ChapterInline])
admin.site.register(Promo)
admin.site.register(ChapterXtra1)

+8 −1
Original line number Diff line number Diff line
# coding: utf-8

import re
import datetime

from django.test import TestCase
from django.contrib.auth.models import User, Permission
@@ -12,7 +13,7 @@ from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
from django.utils.html import escape

# local test models
from models import Article, CustomArticle, Section, ModelWithStringPrimaryKey, Person, Persona, FooAccount, BarAccount, Subscriber, ExternalSubscriber
from models import Article, CustomArticle, Section, ModelWithStringPrimaryKey, Person, Persona, FooAccount, BarAccount, Subscriber, ExternalSubscriber, Podcast

try:
    set
@@ -740,6 +741,12 @@ class AdminViewListEditable(TestCase):
    def tearDown(self):
        self.client.logout()

    def test_inheritance(self):
        Podcast.objects.create(name="This Week in Django",
            release_date=datetime.date.today())
        response = self.client.get('/test_admin/admin/admin_views/podcast/')
        self.failUnlessEqual(response.status_code, 200)

    def test_changelist_input_html(self):
        response = self.client.get('/test_admin/admin/admin_views/person/')
        # 2 inputs per object(the field and the hidden id field) = 6