#4417 closed (duplicate)
Add media descriptions to newforms widgets
Reported by: | Russell Keith-Magee | Owned by: | Adrian Holovaty |
---|---|---|---|
Component: | Forms | Version: | dev |
Severity: | Keywords: | media css javascript | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
A newforms widget currently defines the way to render a user interface input element. However, in order to make interesting input elements, you also need other media - i.e., Javascript and CSS. These requirements can be defined on a per-widget basis (a Date field requires a Calendar widget; the calendar widget requires media/calendar.js and media/calendar.css).
At present, there is no easy way to:
- identify what media is required to display a form
- identify and eliminate any duplicate media requirements, e.g., a base css file required by two different widgets on a form.
newforms-admin has some hand rolled functionality to determine Javascript requirements for a page. This ticket describes a more general solution that could be applied to any widget, and therefore to any form.
It involves adding a meta-class to Widget that processes a 'Media' inner class; this inner class is turned into a 'Media' object. Media objects can be printed (yielding <link> and <script> statements). Media objects can also be added, so media from one widget can be added to another widget, yielding the union of required media.
Forms are also modified; you can interrogate form.media to find out the union of all CSS and JavaScript required by a given form.
Discussed in detail here:
http://groups.google.com/group/django-developers/browse_thread/thread/58fc9cab819c08b9/af54bb9c638fede7#af54bb9c638fede7
Change History (2)
comment:1 by , 17 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
comment:2 by , 17 years ago
I believe Russell meant to say #4418 the ticket and not the changeset ;)
Something went wonky during submission. This was duplicated as [4418].