Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#25903 closed Bug (fixed)

"Add another" related field buttons in list_editable don't open a popup

Reported by: Federico Curzel Owned by: Tim Graham
Component: contrib.admin Version: 1.9
Severity: Release blocker Keywords: modeladmin popup
Cc: rm_ Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

I am referring to the popups you can use to creare a new record on-the-fly while editing an other record.
After upgrade from Django 1.7 to 1.9 those popups aren't opening a popup in the web browser anymore, instead, the page will change, allowing to create a new record.
After saving, a page saying "Closing Popup" will appear, but the page won't go back to the original one.

Attachments (1)

djadmintest.zip (5.4 KB) - added by Andrey Kolomoets 4 years ago.

Download all attachments as: .zip

Change History (18)

comment:1 Changed 4 years ago by Tim Graham

Possibly you have some cached JavaScript in your browser? Could you try clearing your cache and also check the JavaScript console of your browser for any errors?

comment:2 Changed 4 years ago by Tim Graham

Summary: ModelAdmin popups wont'closeModelAdmin popups won't close
Type: UncategorizedBug

comment:3 Changed 4 years ago by Federico Curzel

Sorry for not doing this before.
In the "Popup Closing..." page there is a JS error.

Chrome :
Uncaught TypeError: Cannot read property 'dismissAddRelatedObjectPopup' of null

Firefox :
TypeError: opener is null

comment:4 Changed 4 years ago by Tim Graham

Are you using any third-party apps that might be interfering?

comment:5 Changed 4 years ago by Federico Curzel

Third Party applications are django object actions, django rest framework and django wpadmin.
http://www.django-rest-framework.org/
https://github.com/barszczmm/django-wpadmin
https://github.com/crccheck/django-object-actions

But the likely culprit is django wpadmin, which I forked long ago, and used with Django 1.7.
After upgrading to Django 1.9, Django WpAdmin had some issues, but I thought I fixed everything.
If the error is not replicable by anyone, this might be the cause.

comment:6 Changed 4 years ago by Tim Graham

Resolution: worksforme
Status: newclosed

Okay, it works for me -- so I'll close this for now. If you can reproduce without those other apps, please reopen.

comment:7 Changed 4 years ago by Andrey Kolomoets

Resolution: worksforme
Status: closednew

Same here without those apps. Function showAdminPopup is called from change_form.html template but not from change_list.html. So from change_form popup is opened correctly, but in change_list it's just a link without js events.

comment:8 Changed 4 years ago by Tim Graham

Could you please be more specific with a sample project and/or steps to reproduce?

Changed 4 years ago by Andrey Kolomoets

Attachment: djadmintest.zip added

comment:9 in reply to:  8 Changed 4 years ago by Andrey Kolomoets

Replying to timgraham:

Could you please be more specific with a sample project and/or steps to reproduce?

Sorry, forgot to mention that i'm using custom ModelAdmin with list_editable field.
In attachment you can find sample project to reproduce the bug:

  1. Create new Product. In the product creation form click on "Add another category" will popup new window as expected.
  2. Navigate to /admin/products/product/. Click on "Add another category" near the product category will not open popup.

Sample project created using python2.

Last edited 4 years ago by Andrey Kolomoets (previous) (diff)

comment:10 Changed 4 years ago by Tim Graham

Severity: NormalRelease blocker
Summary: ModelAdmin popups won't close"Add another" related field buttons in list_editable don't open a popup
Triage Stage: UnreviewedAccepted

comment:11 Changed 4 years ago by Tim Graham

Cc: rm_ added

Hi Riccardo, do you have time to help with this regression from your patch? I guess we're missing test coverage for this case.

comment:12 Changed 4 years ago by Tim Graham

Owner: changed from nobody to Tim Graham
Status: newassigned

comment:13 Changed 4 years ago by rm_

Ah missed the previous email sorry. Don't have time atm to cook a patch but from a quick look it looks like that indeed moving django/contrib/admin/static/admin/js/related-widget-wrapper.js content from a separatated file to change_form.html broke popup handling outside of that template. So the change list template needs lines 90-108 from change_form.html and django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js included to work. We can move that 18 lines to a separate js if we don't want to duplicate them i suppose.

comment:14 Changed 4 years ago by Tim Graham

Has patch: set

PR for the stable/1.9.x branch (will do a separate one for master since it's not a clean forwardport).

comment:15 Changed 4 years ago by Simon Charette

Triage Stage: AcceptedReady for checkin

Submited patch against 1.9 looks good to me.

I didn't even know this button showed up in an editable changelist and could have broken it myself when I refactored this part of the admin to add edit/delete buttons.

comment:16 Changed 4 years ago by Tim Graham <timograham@…>

Resolution: fixed
Status: assignedclosed

In f18b087:

Fixed #25903 -- Fixed the admin's list_editable add/change buttons.

comment:17 Changed 4 years ago by Tim Graham <timograham@…>

In c80d85d:

[1.9.x] Fixed #25903 -- Fixed the admin's list_editable add/change buttons.

Backport of f18b08748abaecb171fdcbcdfdcd7e4d95d931d1 from master

Note: See TracTickets for help on using tickets.
Back to Top