=== modified file 'django/contrib/admin/options.py'
|
|
|
|
| 457 | 457 | request.user.message_set.create(message=msg) |
| 458 | 458 | return HttpResponseRedirect(redirect_url) |
| 459 | 459 | |
| 460 | | def render_change_form(self, model, context, add=False, change=False, form_url=''): |
| | 460 | def render_change_form(self, request, context, add=False, change=False): |
| | 461 | model = self.model |
| 461 | 462 | opts = model._meta |
| 462 | 463 | app_label = opts.app_label |
| 463 | 464 | ordered_objects = opts.get_ordered_objects() |
| … |
… |
|
| 469 | 470 | 'has_file_field': True, # FIXME - this should check if form or formsets have a FileField, |
| 470 | 471 | 'has_absolute_url': hasattr(model, 'get_absolute_url'), |
| 471 | 472 | 'ordered_objects': ordered_objects, |
| 472 | | 'form_url': form_url, |
| 473 | 473 | 'opts': opts, |
| 474 | 474 | 'content_type_id': ContentType.objects.get_for_model(model).id, |
| 475 | 475 | 'save_on_top': self.save_on_top, |
| | 476 | 'save_as': self.save_as, |
| | 477 | 'is_save_as': request.POST.has_key('_saveasnew'), |
| 476 | 478 | } |
| 477 | 479 | context.update(extra_context) |
| 478 | 480 | return render_to_response([ |
| … |
… |
|
| 480 | 482 | "admin/%s/change_form.html" % app_label, |
| 481 | 483 | "admin/change_form.html"], context_instance=context) |
| 482 | 484 | |
| 483 | | def add_view(self, request, form_url=''): |
| | 485 | def add_view(self, request): |
| 484 | 486 | "The 'add' admin view for this model." |
| 485 | 487 | model = self.model |
| 486 | 488 | opts = model._meta |
| … |
… |
|
| 525 | 527 | 'media': media, |
| 526 | 528 | 'inline_admin_formsets': inline_admin_formsets, |
| 527 | 529 | }) |
| 528 | | return self.render_change_form(model, c, add=True) |
| | 530 | return self.render_change_form(request, c, add=True) |
| 529 | 531 | |
| 530 | 532 | def change_view(self, request, object_id): |
| 531 | 533 | "The 'change' admin view for this model." |
| … |
… |
|
| 547 | 549 | if obj is None: |
| 548 | 550 | raise Http404('%s object with primary key %r does not exist.' % (opts.verbose_name, escape(object_id))) |
| 549 | 551 | |
| 550 | | if request.POST and request.POST.has_key("_saveasnew"): |
| 551 | | return self.add_view(request, form_url='../../add/') |
| | 552 | if request.POST and request.POST.has_key('_saveasnew'): |
| | 553 | return self.add_view(request) |
| 552 | 554 | |
| 553 | 555 | ModelForm = self.form_change(request, obj) |
| 554 | 556 | inline_formsets = [] |
| … |
… |
|
| 602 | 604 | 'media': media, |
| 603 | 605 | 'inline_admin_formsets': inline_admin_formsets, |
| 604 | 606 | }) |
| 605 | | return self.render_change_form(model, c, change=True) |
| | 607 | return self.render_change_form(request, c, change=True) |
| 606 | 608 | |
| 607 | 609 | def changelist_view(self, request): |
| 608 | 610 | "The 'change list' admin view for this model." |
=== modified file 'django/contrib/admin/templates/admin/change_form.html'
|
|
|
|
| 30 | 30 | </ul> |
| 31 | 31 | {% endif %}{% endif %} |
| 32 | 32 | {% endblock %} |
| 33 | | <form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.module_name }}_form">{% block form_top %}{% endblock %} |
| | 33 | <form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="." method="post" id="{{ opts.module_name }}_form">{% block form_top %}{% endblock %} |
| 34 | 34 | <div> |
| 35 | 35 | {% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %} |
| 36 | 36 | {% if save_on_top %}{% submit_row %}{% endif %} |
=== modified file 'django/contrib/admin/templatetags/admin_modify.py'
|
|
|
|
| 18 | 18 | |
| 19 | 19 | def submit_row(context): |
| 20 | 20 | opts = context['opts'] |
| | 21 | add = context['add'] |
| 21 | 22 | change = context['change'] |
| 22 | 23 | is_popup = context['is_popup'] |
| 23 | | # TODO: Fix this hack. |
| 24 | | # save_as = opts.admin.save_as |
| 25 | | save_as = False |
| | 24 | save_as = context['save_as'] |
| | 25 | is_save_as = context['is_save_as'] |
| 26 | 26 | return { |
| 27 | 27 | 'onclick_attrib': (opts.get_ordered_objects() and change |
| 28 | 28 | and 'onclick="submitOrderForm();"' or ''), |
| 29 | 29 | 'show_delete_link': (not is_popup and context['has_delete_permission'] |
| 30 | 30 | and (change or context['show_delete'])), |
| 31 | | 'show_save_as_new': not is_popup and change and save_as, |
| 32 | | 'show_save_and_add_another': not is_popup and (not save_as or context['add']), |
| 33 | | 'show_save_and_continue': not is_popup and context['has_change_permission'], |
| 34 | | 'show_save': True |
| | 31 | 'show_save_as_new': not is_popup and save_as and (is_save_as or change), |
| | 32 | 'show_save_and_add_another': not is_popup and not is_save_as and (add or not save_as), |
| | 33 | 'show_save_and_continue': not is_popup and not is_save_as and context['has_change_permission'], |
| | 34 | 'show_save': not is_save_as, |
| 35 | 35 | } |
| 36 | 36 | submit_row = register.inclusion_tag('admin/submit_line.html', takes_context=True)(submit_row) |
| 37 | 37 | |
=== modified file 'django/contrib/admin/views/auth.py'
|
|
|
|
| 40 | 40 | 'auto_populated_fields': (), |
| 41 | 41 | 'opts': User._meta, |
| 42 | 42 | 'username_help_text': User._meta.get_field('username').help_text, |
| | 43 | 'save_as': False, |
| | 44 | 'is_save_as': False, |
| 43 | 45 | }, context_instance=template.RequestContext(request)) |
| 44 | 46 | user_add_stage = staff_member_required(user_add_stage) |
| 45 | 47 | |
| … |
… |
|
| 71 | 73 | 'opts': User._meta, |
| 72 | 74 | 'original': user, |
| 73 | 75 | 'show_save': True, |
| | 76 | 'save_as': False, |
| | 77 | 'is_save_as': False, |
| 74 | 78 | }, context_instance=template.RequestContext(request)) |
| 75 | 79 | user_change_password = staff_member_required(user_change_password) |