david / semanticdjango (http://semanticdjango.org/)

fork of django-trunk

The right time for a semantic contrib, that's my pony.

Clone this repository (size: 23.1 MB): HTTPS / SSH
$ hg clone http://code.welldev.org/semanticdjango
commit 6475: 97848c412391
parent 6474: 68ed098c52a6
branch: default
Changed "date" column to "start_date"--Oracle won't name columns with reserved keywords.
mboersma
19 months ago

Changed (Δ159 bytes):

Up to file-list tests/regressiontests/admin_widgets/models.py:

@@ -29,24 +29,24 @@ class Album(models.Model):
29
29
30
30
class HiddenInventoryManager(models.Manager):
31
31
    def get_query_set(self):
32
        return super(HiddenInventoryManager, self).get_query_set().filter(hidden=False) 
32
        return super(HiddenInventoryManager, self).get_query_set().filter(hidden=False)
33
33
34
34
class Inventory(models.Model):
35
35
   barcode = models.PositiveIntegerField(unique=True)
36
36
   parent = models.ForeignKey('self', to_field='barcode', blank=True, null=True)
37
37
   name = models.CharField(blank=False, max_length=20)
38
38
   hidden = models.BooleanField(default=False)
39
   
39
40
40
   # see #9258
41
41
   default_manager = models.Manager()
42
42
   objects = HiddenInventoryManager()
43
43
44
44
   def __unicode__(self):
45
45
      return self.name
46
      
46
47
47
class Event(models.Model):
48
48
    band = models.ForeignKey(Band)
49
    date = models.DateField(blank=True, null=True)
49
    start_date = models.DateField(blank=True, null=True)
50
50
    start_time = models.TimeField(blank=True, null=True)
51
51
    description = models.TextField(blank=True)
52
52
    link = models.URLField(blank=True)
@@ -56,7 +56,7 @@ class Car(models.Model):
56
56
    owner = models.ForeignKey(User)
57
57
    make = models.CharField(max_length=30)
58
58
    model = models.CharField(max_length=30)
59
    
59
60
60
    def __unicode__(self):
61
61
        return u"%s %s" % (self.make, self.model)
62
62
@@ -137,9 +137,9 @@ True
137
137
<input type="text" name="test" value="86" class="vForeignKeyRawIdAdminField" /><a href="../../../admin_widgets/inventory/?t=barcode" class="related-lookup" id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);"> <img src="%(ADMIN_MEDIA_PREFIX)simg/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a> <strong>Apple</strong>
138
138
139
139
# see #9258
140
>>> hidden = Inventory.objects.create(barcode=93, name='Hidden', hidden=True) 
140
>>> hidden = Inventory.objects.create(barcode=93, name='Hidden', hidden=True)
141
141
>>> child_of_hidden = Inventory.objects.create(barcode=94, name='Child of hidden', parent=hidden)
142
>>> print w.render('test', child_of_hidden.parent_id, attrs={}) 
142
>>> print w.render('test', child_of_hidden.parent_id, attrs={})
143
143
<input type="text" name="test" value="93" class="vForeignKeyRawIdAdminField" /><a href="../../../admin_widgets/inventory/?t=barcode" class="related-lookup" id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);"> <img src="%(ADMIN_MEDIA_PREFIX)simg/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a> <strong>Hidden</strong>
144
144
""" % {
145
145
    'ADMIN_MEDIA_PREFIX': settings.ADMIN_MEDIA_PREFIX,

Up to file-list tests/regressiontests/admin_widgets/tests.py:

@@ -19,89 +19,89 @@ class AdminFormfieldForDBFieldTests(Test
19
19
        class MyModelAdmin(admin.ModelAdmin): pass
20
20
        for k in admin_overrides:
21
21
            setattr(MyModelAdmin, k, admin_overrides[k])
22
        
22
23
23
        # Construct the admin, and ask it for a formfield
24
24
        ma = MyModelAdmin(model, admin.site)
25
25
        ff = ma.formfield_for_dbfield(model._meta.get_field(fieldname), request=None)
26
        
26
27
27
        # "unwrap" the widget wrapper, if needed
28
28
        if isinstance(ff.widget, widgets.RelatedFieldWidgetWrapper):
29
29
            widget = ff.widget.widget
30
30
        else:
31
31
            widget = ff.widget
32
        
32
33
33
        # Check that we got a field of the right type
34
34
        self.assert_(
35
            isinstance(widget, widgetclass), 
35
            isinstance(widget, widgetclass),
36
36
            "Wrong widget for %s.%s: expected %s, got %s" % \
37
37
                (model.__class__.__name__, fieldname, widgetclass, type(widget))
38
38
        )
39
            
39
40
40
        # Return the formfield so that other tests can continue
41
41
        return ff
42
    
42
43
43
    def testDateField(self):
44
        self.assertFormfield(models.Event, 'date', widgets.AdminDateWidget)
45
        
44
        self.assertFormfield(models.Event, 'start_date', widgets.AdminDateWidget)
45
46
46
    def testDateTimeField(self):
47
47
        self.assertFormfield(models.Member, 'birthdate', widgets.AdminSplitDateTime)
48
        
48
49
49
    def testTimeField(self):
50
50
        self.assertFormfield(models.Event, 'start_time', widgets.AdminTimeWidget)
51
51
52
52
    def testTextField(self):
53
53
        self.assertFormfield(models.Event, 'description', widgets.AdminTextareaWidget)
54
    
54
55
55
    def testURLField(self):
56
56
        self.assertFormfield(models.Event, 'link', widgets.AdminURLFieldWidget)
57
57
58
58
    def testIntegerField(self):
59
59
        self.assertFormfield(models.Event, 'min_age', widgets.AdminIntegerFieldWidget)
60
        
60
61
61
    def testCharField(self):
62
62
        self.assertFormfield(models.Member, 'name', widgets.AdminTextInputWidget)
63
        
63
64
64
    def testFileField(self):
65
65
        self.assertFormfield(models.Album, 'cover_art', widgets.AdminFileWidget)
66
        
66
67
67
    def testForeignKey(self):
68
68
        self.assertFormfield(models.Event, 'band', forms.Select)
69
        
69
70
70
    def testRawIDForeignKey(self):
71
71
        self.assertFormfield(models.Event, 'band', widgets.ForeignKeyRawIdWidget,
72
72
                             raw_id_fields=['band'])
73
    
73
74
74
    def testRadioFieldsForeignKey(self):
75
        ff = self.assertFormfield(models.Event, 'band', widgets.AdminRadioSelect, 
75
        ff = self.assertFormfield(models.Event, 'band', widgets.AdminRadioSelect,
76
76
                                  radio_fields={'band':admin.VERTICAL})
77
77
        self.assertEqual(ff.empty_label, None)
78
        
78
79
79
    def testManyToMany(self):
80
80
        self.assertFormfield(models.Band, 'members', forms.SelectMultiple)
81
    
81
82
82
    def testRawIDManyTOMany(self):
83
83
        self.assertFormfield(models.Band, 'members', widgets.ManyToManyRawIdWidget,
84
84
                             raw_id_fields=['members'])
85
    
85
86
86
    def testFilteredManyToMany(self):
87
87
        self.assertFormfield(models.Band, 'members', widgets.FilteredSelectMultiple,
88
88
                             filter_vertical=['members'])
89
    
89
90
90
    def testFormfieldOverrides(self):
91
        self.assertFormfield(models.Event, 'date', forms.TextInput, 
91
        self.assertFormfield(models.Event, 'start_date', forms.TextInput,
92
92
                             formfield_overrides={'widget': forms.TextInput})
93
                             
93
94
94
    def testFieldWithChoices(self):
95
95
        self.assertFormfield(models.Member, 'gender', forms.Select)
96
        
96
97
97
    def testChoicesWithRadioFields(self):
98
        self.assertFormfield(models.Member, 'gender', widgets.AdminRadioSelect, 
98
        self.assertFormfield(models.Member, 'gender', widgets.AdminRadioSelect,
99
99
                             radio_fields={'gender':admin.VERTICAL})
100
100
101
101
102
102
class AdminFormfieldForDBFieldWithRequestTests(DjangoTestCase):
103
103
    fixtures = ["admin-widgets-users.xml"]
104
    
104
105
105
    def testFilterChoicesByRequestUser(self):
106
106
        """
107
107
        Ensure the user can only see their own cars in the foreign key dropdown.