Django

Code

Changeset 6457

Show
Ignore:
Timestamp:
10/06/07 17:21:49 (1 year ago)
Author:
xian
Message:

newforms-admin: Added link to current file for file-based widgets in the admin

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/newforms-admin/django/contrib/admin/options.py

    r6327 r6457  
    163163        if isinstance(db_field, models.TimeField): 
    164164            kwargs['widget'] = widgets.AdminTimeWidget 
     165            return db_field.formfield(**kwargs) 
     166 
     167        # For FileFields and ImageFields add a link to the current file. 
     168        if isinstance(db_field, models.ImageField) or isinstance(db_field, models.FileField): 
     169            kwargs['widget'] = widgets.AdminFileWidget 
    165170            return db_field.formfield(**kwargs) 
    166171 
  • django/branches/newforms-admin/django/contrib/admin/widgets.py

    r6424 r6457  
    6060        return u'<p class="datetime">%s %s<br />%s %s</p>' % \ 
    6161            (_('Date:'), rendered_widgets[0], _('Time:'), rendered_widgets[1]) 
     62 
     63class AdminFileWidget(forms.FileInput): 
     64    """ 
     65    A FileField Widget that shows it's current value if it has one 
     66    """ 
     67    def __init__(self, attrs={}): 
     68        super(AdminFileWidget, self).__init__(attrs) 
     69         
     70    def render(self, name, value, attrs=None): 
     71        from django.conf import settings 
     72        output = [] 
     73        if value: 
     74            output.append('Currently: <a target="_blank" href="%s%s">%s</a> <br>Change: ' % (settings.MEDIA_URL, value, value)) 
     75        output.append(super(AdminFileWidget, self).render(name, value, attrs)) 
     76        return u''.join(output) 
    6277 
    6378class ForeignKeyRawIdWidget(forms.TextInput): 
  • django/branches/newforms-admin/django/http/__init__.py

    r6342 r6457  
    4949        # We try three options, in order of decreasing preference. 
    5050        host = self.META.get('HTTP_X_FORWARDED_HOST', '') 
     51        if host:  
     52            return host 
    5153        if 'HTTP_HOST' in self.META: 
    5254            host = self.META['HTTP_HOST']