Django

Code

Changeset 7685

Show
Ignore:
Timestamp:
06/18/08 04:00:11 (5 months ago)
Author:
simon
Message:

newforms-admin: Fixed #7483 (thanks, Daniel Roseman) - delete view now correctly links to related objects

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/newforms-admin/AUTHORS

    r7604 r7685  
    316316    Henrique Romano <onaiort@gmail.com> 
    317317    Armin Ronacher 
     318    Daniel Roseman <http://roseman.org.uk/>     
    318319    Brian Rosner <brosner@gmail.com> 
    319320    Oliver Rutherfurd <http://rutherfurd.net/> 
  • django/branches/newforms-admin/django/contrib/admin/util.py

    r7225 r7685  
    2020    opts_seen = [] 
    2121    for related in opts.get_all_related_objects(): 
    22         has_admin = related.__class__ in admin_site._registry 
     22        has_admin = related.model in admin_site._registry 
    2323        if related.opts in opts_seen: 
    2424            continue 
     
    6969                    perms_needed.add(related.opts.verbose_name) 
    7070    for related in opts.get_all_related_many_to_many_objects(): 
    71         has_admin = related.__class__ in admin_site._registry 
     71        has_admin = related.model in admin_site._registry 
    7272        if related.opts in opts_seen: 
    7373            continue 
  • django/branches/newforms-admin/tests/regressiontests/admin_views/fixtures/admin-views-users.xml

    r7589 r7685  
    7171        <field to="auth.permission" name="user_permissions" rel="ManyToManyRel"></field> 
    7272    </object> 
     73    <object pk="1" model="admin_views.section"> 
     74        <field type="CharField" name="name">Test section</field> 
     75    </object> 
    7376    <object pk="1" model="admin_views.article"> 
    7477        <field type="TextField" name="content">&lt;p&gt;test content&lt;/p&gt;</field> 
    7578        <field type="DateTimeField" name="date">2008-03-18 11:54:58</field> 
     79        <field to="admin_views.section" name="section" rel="ManyToOneRel">1</field> 
    7680    </object> 
    7781</django-objects> 
  • django/branches/newforms-admin/tests/regressiontests/admin_views/models.py

    r7630 r7685  
    22from django.contrib import admin 
    33 
     4class Section(models.Model): 
     5    """ 
     6    A simple section that links to articles, to test linking to related items  
     7    in admin views. 
     8    """ 
     9    name = models.CharField(max_length=100) 
     10 
    411class Article(models.Model): 
    512    """ 
    6     A simple article to test admin views. Test backwards compabilty. 
     13    A simple article to test admin views. Test backwards compatibility. 
    714    """ 
    815    content = models.TextField() 
    916    date = models.DateTimeField() 
     17    section = models.ForeignKey(Section) 
    1018 
    1119class ArticleAdmin(admin.ModelAdmin): 
     
    1523    def changelist_view(self, request): 
    1624        "Test that extra_context works" 
    17         return super(ArticleAdmin, self).changelist_view(request, extra_context={ 
    18             'extra_var': 'Hello!' 
    19         }) 
     25        return super(ArticleAdmin, self).changelist_view( 
     26            request, extra_context={ 
     27                'extra_var': 'Hello!' 
     28            } 
     29        ) 
    2030 
    2131class CustomArticle(models.Model): 
     
    3444    def changelist_view(self, request): 
    3545        "Test that extra_context works" 
    36         return super(CustomArticleAdmin, self).changelist_view(request, extra_context={ 
    37             'extra_var': 'Hello!' 
    38         }) 
     46        return super(CustomArticleAdmin, self).changelist_view( 
     47            request, extra_context={ 
     48                'extra_var': 'Hello!' 
     49            } 
     50        ) 
    3951         
    4052admin.site.register(Article, ArticleAdmin) 
    4153admin.site.register(CustomArticle, CustomArticleAdmin) 
     54admin.site.register(Section) 
  • django/branches/newforms-admin/tests/regressiontests/admin_views/tests.py

    r7631 r7685  
    66 
    77# local test models 
    8 from models import Article, CustomArticle 
     8from models import Article, CustomArticle, Section 
    99 
    1010def get_perm(Model, perm): 
     
    4141        delete_user.user_permissions.add(get_perm(Article, 
    4242            opts.get_delete_permission())) 
     43 
     44        delete_user.user_permissions.add(get_perm(Section, 
     45            Section._meta.get_delete_permission())) 
    4346         
    4447        # login POST dicts 
     
    117120         
    118121        add_dict = {'content': '<p>great article</p>', 
    119                     'date_0': '2008-03-18', 'date_1': '10:54:39'} 
     122                    'date_0': '2008-03-18', 'date_1': '10:54:39', 
     123                    'section': 1} 
    120124         
    121125        # Change User should not have access to add articles 
     
    159163         
    160164        change_dict = {'content': '<p>edited article</p>', 
    161                     'date_0': '2008-03-18', 'date_1': '10:54:39'} 
     165                    'date_0': '2008-03-18', 'date_1': '10:54:39', 
     166                    'section': 1} 
    162167         
    163168        # add user shoud not be able to view the list of article or change any of them 
     
    271276        self.client.get('/test_admin/admin/') 
    272277        self.client.post('/test_admin/admin/', self.deleteuser_login) 
    273         request = self.client.get('/test_admin/admin/admin_views/article/1/delete/') 
    274         self.failUnlessEqual(request.status_code, 200) 
     278        response = self.client.get('/test_admin/admin/admin_views/section/1/delete/') 
     279         # test response contains link to related Article 
     280        self.assertContains(response, "admin_views/article/1/") 
     281 
     282        response = self.client.get('/test_admin/admin/admin_views/article/1/delete/') 
     283        self.failUnlessEqual(response.status_code, 200) 
    275284        post = self.client.post('/test_admin/admin/admin_views/article/1/delete/', delete_dict) 
    276285        # TODO: http://code.djangoproject.com/ticket/6819 or the next line fails