id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux
620 [patch] make limit_choices_to work with raw_id_admin davidschein@… Adrian Holovaty "With raw_id_admin=True, the admin UI does not limit choices as per limit_choices_to. The following patch fixes it.
{{{
Index: django/conf/admin_media/js/admin/RelatedObjectLookups.js
===================================================================
--- django/conf/admin_media/js/admin/RelatedObjectLookups.js (revision 851)
+++ django/conf/admin_media/js/admin/RelatedObjectLookups.js (working copy)
@@ -3,7 +3,13 @@
function showRelatedObjectLookupPopup(triggeringLink) {
var name = triggeringLink.id.replace(/^lookup_/, '');
- var win = PrivoxyWindowOpen(triggeringLink.href + '?pop=1', name, 'height=500,width=740,resizable=yes,scrollbars=yes');
+ var href
+ if (triggeringLink.href.search(/\?/) >= 0) {
+ href = triggeringLink.href + '&pop=1';
+ } else {
+ href = triggeringLink.href + '?pop=1'
+ }
+ var win = PrivoxyWindowOpen(href, name, 'height=500,width=740,resizable=yes,scrollbars=yes');
win.focus();
return false;
}
Index: django/views/admin/main.py
===================================================================
--- django/views/admin/main.py (revision 851)
+++ django/views/admin/main.py (working copy)
@@ -746,8 +746,12 @@
field_id = 'id_%s%s' % ((rel and ""%s{{ forloop.counter0 }}."" % name_prefix or """"), field.get_manipulator_field_names('')[0])
# raw_id_admin fields get the little lookup link next to them
if use_raw_id_admin(field):
- t.append(' ' % \
- (field.rel.to.app_label, field.rel.to.module_name, field_id))
+ if field.rel.limit_choices_to:
+ limit_choices_to = '?%s' % '&'.join(['%s=%s' % (k,v) for k,v in field.rel.limit_choices_to.items()])
+ else:
+ limit_choices_to = ''
+ t.append(' ' % \
+ (field.rel.to.app_label, field.rel.to.module_name, limit_choices_to, field_id))
t.append('' % ADMIN_MEDIA_PREFIX)
# fields with relationships to editable objects get an ""add another"" link,
# but only if the field doesn't have raw_admin ('cause in that case they get
}}}" defect closed contrib.admin normal fixed Unreviewed 1 0 0 0 0 0