#12692 closed (fixed)
Wrong interpretation of extra clause in ModelAdmin with new admin UI
Reported by: | Florian Apolloner | Owned by: | Jannis Leidel |
---|---|---|---|
Component: | Contrib apps | Version: | dev |
Severity: | Keywords: | admin, js, inlines | |
Cc: | Jannis Leidel, Florian Apolloner | Triage Stage: | Accepted |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
In the current admin you can specify max_num and extra for inlines. Before r12297 this meant that you would get the current data from the database + extra
as long as it stays below max_num
. If you were still below max_num
you had to save the page to get extra
new fields (this could be repeated until you reached the limit). This behaviour is currently implemented with the js too; but I think (as js is a usability enchancement) you should be able to add as many rows until you reach max_num
not TOTAL-FORMS (which is rows+extra
while <= max_num). To get this working I guess we would need to pass max_num to the js so it can decide when to stop.
An alternate description from #12704:
The new javascript-enabled admin UI appears have an unusual interpretation of the 'extra' clause on a ModelAdmin?.
The current code interprets 'extra = N' as "allow the user to add no more than N extra rows. The user must press (+ add another XXX) to add the first inline.
I would have thought the interpretation would have been "instantiate the form with with N empty extra rows". The task of constraining the number of allowed inlines is the job of the 'max_num' clause.
The admin UI should always show N blank inputs (for extra = N), as long as that wouldn't exceed the max_num. The user should be able to fill in up to N inlines before needing to press the (+ add another) button.
If I'm incorrect, then the second failing test reported by #12703 needs to be fixed by accounting for the 5 fields (and missing default date) that are no longer on the form.
Attachments (3)
Change History (10)
comment:1 by , 15 years ago
Description: | modified (diff) |
---|---|
Summary: | shortcoming in the new admin inlines → Wrong interpretation of extra clause in ModelAdmin with new admin UI |
Triage Stage: | Unreviewed → Design decision needed |
comment:2 by , 15 years ago
Triage Stage: | Design decision needed → Accepted |
---|
comment:3 by , 15 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
by , 15 years ago
Attachment: | 12692.1.diff added |
---|
Updated inline code to be more useful wrt the maximal number of items. A max_num of 0 means infinite additions.
by , 15 years ago
Attachment: | 12692.3.diff added |
---|
Patch with Closure compiled min file and modified tests.
comment:4 by , 15 years ago
I believe the last patch fixes all of what was wrong with the "extra" implementation, now showing initial and extra forms by default, allowing to add new objects till the total number of inline forms equals max_num (or indefinitely adding new). I'm passing the max_num to the javascript as a separate form field.
comment:5 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:6 by , 15 years ago
There are times when one doesn't want the users to be able to add new inlines at all - for example if they are generated on model save or at some other time, but you do want the user to be able to edit them. extra=0 used to achieve this, but it doesn't anymore.
#12704 was a duplicate. Updated ticket title to be more explicit.