#7129 closed (fixed)
Prepend of admin_media is not working on JS
Reported by: | Anderson Santos | Owned by: | nobody |
---|---|---|---|
Component: | contrib.admin | Version: | newforms-admin |
Severity: | Keywords: | nfa-blocker | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When declaring an admin class when I declare in the inner class Media the js list of scripts with relative url, it should prepend the admin_media url but it is not working for me:
eg:
class MyClass(admin.ModelAdmin): list_filter = ('created','published_date','section','journalist') search_fields = ('headline','story') class Media: js = ['/mymedia/js/MyScript.js', 'js/getElementsBySelector.js'] #it should be relative to media, but it has default media instead
This is what documentation says about JS section
"If you use relative URLs — URLs that don’t start with http:// or / — then the admin site will automatically prefix these links with settings.ADMIN_MEDIA_PREFIX"
Change History (10)
comment:1 by , 17 years ago
comment:2 by , 16 years ago
ok, so I have the following configuration
MEDIA_URL = '/local_media/'
ADMIN_MEDIA_PREFIX = '/media/admin/'
and the following model representation for admin:
class MyClass(admin.ModelAdmin):
list_filter = ('field',)
search_fields = ('field',)
class Media:
js = ['/mymedia/js/i_am_in_any_media.js',
'js/i_am_in_admin.js']
Usign trunk, the first js will keep untouched which is fine on both but the second one on trunk will become "/media/admin/js/i_am_in_admin.js", but usign newsforms-admin it returns the same "js/i_amin_in_admin.js" with nothing prefixed. Since the django docs says that the ADMIN_MEDIA_PREFIX will prepend relative urls, I consider this should be the same for newforms-admin
comment:3 by , 16 years ago
Keywords: | nfa-blocker added |
---|
Adding the ADMIN_MEDIA_PREFIX used to be done by the include_admin_script templatetag. This seems to be gone in nfa and it doesn't seem the code has been added anywhere to check for relative/absolute user-specified js and add ADMIN_MEDIA_PREFIX if necessary. Marking nfa-blocker since it's a regression from trunk.
comment:4 by , 16 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Ok, I looked into this. It appears the reporter was reading the wrong documentation. The old js
inner
Admin
class used to do this. The correct way to use
ADMIN_MEDIA_PREFIX
is to add it explicitly similar to how it is done here http://code.djangoproject.com/browser/django/branches/newforms-admin/django/contrib/admin/options.py#L272. It is a good thing it defaults to
MEDIA_URL
since that is the only place you should be adding your own CSS/JS. If you are needing to include something from
ADMIN_MEDIA_PREFIX
then there is another bug.
comment:5 by , 16 years ago
I'm confused. This is the doc referenced by the original submitter:
http://www.djangoproject.com/documentation/model-api/#js
Sure, that's for old admin but I don't see any reference either here:
http://code.djangoproject.com/wiki/NewformsHOWTO#Q:HowdoIaddcustomJavaScriptCSS
or here:
http://code.djangoproject.com/wiki/NewformsAdminBranch
to the "new" way requiring that the specified js be fully-qualified.
That text has been pulled from the newforms-admin version of that doc file (the entire description of specifying js, not just the bit about what happens if it's not fully-qualified), and I can't find anyplace it's been moved to, so it's a little hard to figure out how one is supposed to migrate this bit.
Are you saying it is bad practice to add your own js in amongst the Django-supplied files and therefore this implicit support for this has been dropped in newforms-admin? If so it seems at a minimum some doc is needed somewhere to clarify that, since a straightforward migration of some old working configs apparently won't work.
comment:6 by , 16 years ago
Resolution: | invalid |
---|---|
Status: | closed → reopened |
Ok, I see where you are coming from. I will bring this up on django-dev mailing list to find out the original intensions and see if anything needs to be changed. I will reopen for now since it does seem like it will need to be addressed somehow.
comment:7 by , 16 years ago
comment:8 by , 16 years ago
milestone: | → 1.0 alpha |
---|
comment:9 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Ugh, Trac's post-commit hook failed again apparently. This was fixed in [7873]. I have also added a note to the http://code.djangoproject.com/wiki/NewformsAdminBranch page indicating the backward incompatibility with settings.ADMIN_MEDIA_PREFIX
.
Can you provide a bit more information? What is the value of both
MEDIA_URL
and
ADMIN_MEDIA_PREFIX
? Also what is the exact output of the URL?