Changeset 5588
- Timestamp:
- 07/03/07 00:45:00 (1 year ago)
- Files:
-
- django/branches/newforms-admin/django/contrib/admin/options.py (modified) (3 diffs)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/edit_inline_stacked.html (modified) (1 diff)
- django/branches/newforms-admin/django/contrib/admin/templates/admin/edit_inline_tabular.html (modified) (2 diffs)
- django/branches/newforms-admin/django/newforms/models.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/newforms-admin/django/contrib/admin/options.py
r5574 r5588 650 650 def __iter__(self): 651 651 for form, original in zip(self.formset.change_forms, self.formset.get_inline_objects()): 652 yield BoundInlineObject( form, original, self.inline_admin)652 yield BoundInlineObject(self.formset, form, original, self.inline_admin) 653 653 for form in self.formset.add_forms: 654 yield BoundInlineObject( form, None, self.inline_admin)654 yield BoundInlineObject(self.formset, form, None, self.inline_admin) 655 655 656 656 def fields(self): 657 # HACK: each form instance has some extra fields. Getting those fields 658 # from the form class will take some rearranging. Get them from the 659 # first form instance for now. 660 return list(self.formset.forms[0]) 657 return self.formset.form_class.base_fields.values() 661 658 662 659 def verbose_name(self): … … 667 664 668 665 class BoundInlineObject(object): 669 def __init__(self, form, original, inline_admin): 666 def __init__(self, formset, form, original, inline_admin): 667 self.formset = formset 670 668 self.inline_admin = inline_admin 671 669 self.base_form = form … … 683 681 """ 684 682 if self.inline_admin.fields is None: 685 default_fields = [f for f in self.base_form. fields]683 default_fields = [f for f in self.base_form.base_fields] 686 684 yield Fieldset(fields=default_fields) 687 685 else: 688 686 for name, options in self.opts.fields: 689 687 yield Fieldset(name, options['fields'], classes=options.get('classes', '').split(' '), description=options.get('description')) 688 689 def pk_field(self): 690 return BoundField(self.base_form, self.formset._pk_field_name, False) 691 692 def deletion_field(self): 693 from django.newforms.formsets import DELETION_FIELD_NAME 694 return BoundField(self.base_form, DELETION_FIELD_NAME, False) 695 696 def ordering_field(self): 697 from django.newforms.formsets import ORDERING_FIELD_NAME 698 return BoundField(self.base_form, ORDERING_FIELD_NAME, False) django/branches/newforms-admin/django/contrib/admin/templates/admin/edit_inline_stacked.html
r5473 r5588 20 20 </div> 21 21 {% endfor %} 22 {{ bound_inline_object.pk_field.field }} 23 {% if bound_inline.formset.deletable %}<div class="form-row">{{ bound_inline_object.deletion_field.field }} {{ bound_inline_object.deletion_field.label_tag }}</div>{% endif %} 22 24 </fieldset> 23 25 {% endfor %} django/branches/newforms-admin/django/contrib/admin/templates/admin/edit_inline_tabular.html
r5473 r5588 4 4 <table> 5 5 <thead><tr> 6 {% if bound_inline.formset.deletable %}<th>Delete?</th>{% endif %} 6 7 {% for field in bound_inline.fields %} 7 8 {% if not field.is_hidden %} … … 22 23 23 24 <tr class="{% cycle row1,row2 %}"> 25 {{ bound_inline_object.pk_field.field }} 26 {% if bound_inline.formset.deletable %}<td>{{ bound_inline_object.deletion_field.field }}</td>{% endif %} 24 27 {% for bfset in bound_inline_object.form %} 25 28 {% for line in bfset %} 26 29 {% for field in line %} 27 28 {% if not field.field.is_hidden %} 29 <td>{{ field.field }}</td> 30 {% else %} 31 {{ field.field }} 32 {% endif %} 30 <td>{{ field.field }}</td> 33 31 {% endfor %} 34 32 {% endfor %} django/branches/newforms-admin/django/newforms/models.py
r5576 r5588 268 268 def add_fields(self, form, index): 269 269 """Add a hidden field for the object's primary key.""" 270 form.fields[self.model._meta.pk.attname] = IntegerField(required=False, widget=HiddenInput) 270 self._pk_field_name = self.model._meta.pk.attname 271 form.fields[self._pk_field_name] = IntegerField(required=False, widget=HiddenInput) 271 272 super(BaseModelFormSet, self).add_fields(form, index) 272 273
