Fixed the polymorphic inline script code.
Got broken in 0c7b1aa657 when removing
Djagno 1.8 compatibility
fix_request_path_info
parent
9f6e0716f6
commit
8caac2e57b
|
|
@ -3,7 +3,12 @@ Rendering utils for admin forms;
|
||||||
|
|
||||||
This makes sure that admin fieldsets/layout settings are exported to the template.
|
This makes sure that admin fieldsets/layout settings are exported to the template.
|
||||||
"""
|
"""
|
||||||
|
import json
|
||||||
|
|
||||||
from django.contrib.admin.helpers import InlineAdminFormSet, InlineAdminForm, AdminField
|
from django.contrib.admin.helpers import InlineAdminFormSet, InlineAdminForm, AdminField
|
||||||
|
from django.utils.encoding import force_text
|
||||||
|
from django.utils.text import capfirst
|
||||||
|
from django.utils.translation import ugettext
|
||||||
|
|
||||||
from polymorphic.formsets import BasePolymorphicModelFormSet
|
from polymorphic.formsets import BasePolymorphicModelFormSet
|
||||||
|
|
||||||
|
|
@ -77,6 +82,29 @@ class PolymorphicInlineAdminFormSet(InlineAdminFormSet):
|
||||||
fields.update(child_inline.get_prepopulated_fields(self.request, self.obj))
|
fields.update(child_inline.get_prepopulated_fields(self.request, self.obj))
|
||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
def inline_formset_data(self):
|
||||||
|
"""
|
||||||
|
A JavaScript data structure for the JavaScript code
|
||||||
|
This overrides the default Django version to add the ``childTypes`` data.
|
||||||
|
"""
|
||||||
|
verbose_name = self.opts.verbose_name
|
||||||
|
return json.dumps({
|
||||||
|
'name': '#%s' % self.formset.prefix,
|
||||||
|
'options': {
|
||||||
|
'prefix': self.formset.prefix,
|
||||||
|
'addText': ugettext('Add another %(verbose_name)s') % {
|
||||||
|
'verbose_name': capfirst(verbose_name),
|
||||||
|
},
|
||||||
|
'childTypes': [
|
||||||
|
{
|
||||||
|
'type': model._meta.model_name,
|
||||||
|
'name': force_text(model._meta.verbose_name)
|
||||||
|
} for model in self.formset.child_forms.keys()
|
||||||
|
],
|
||||||
|
'deleteText': ugettext('Remove'),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
class PolymorphicInlineSupportMixin(object):
|
class PolymorphicInlineSupportMixin(object):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,10 @@
|
||||||
var menuButton;
|
var menuButton;
|
||||||
var addButtons;
|
var addButtons;
|
||||||
|
|
||||||
|
if(options.childTypes == null) {
|
||||||
|
throw Error("The polymorphic fieldset options.childTypes is not defined!");
|
||||||
|
}
|
||||||
|
|
||||||
// For Polymorphic inlines, the add button opens a menu.
|
// For Polymorphic inlines, the add button opens a menu.
|
||||||
var menu = '<div class="polymorphic-type-menu" style="display: none;"><ul>';
|
var menu = '<div class="polymorphic-type-menu" style="display: none;"><ul>';
|
||||||
for (var i = 0; i < options.childTypes.length; i++) {
|
for (var i = 0; i < options.childTypes.length; i++) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue