Ticket #5520: 01-admin-saveas.2.diff

File 01-admin-saveas.2.diff, 5.8 KB (added by Petr Marhoun <petr.marhoun@…>, 16 years ago)

new version - after autoescape merge

  • django/contrib/admin/options.py

    === modified file 'django/contrib/admin/options.py'
     
    459459        request.user.message_set.create(message=msg)
    460460        return HttpResponseRedirect(redirect_url)
    461461
    462     def render_change_form(self, model, context, add=False, change=False, form_url=''):
     462    def render_change_form(self, request, context, add=False, change=False):
     463        model = self.model
    463464        opts = model._meta
    464465        app_label = opts.app_label
    465466        ordered_objects = opts.get_ordered_objects()
     
    471472            'has_file_field': True, # FIXME - this should check if form or formsets have a FileField,
    472473            'has_absolute_url': hasattr(model, 'get_absolute_url'),
    473474            'ordered_objects': ordered_objects,
    474             'form_url': mark_safe(form_url),
    475475            'opts': opts,
    476476            'content_type_id': ContentType.objects.get_for_model(model).id,
    477477            'save_on_top': self.save_on_top,
     478            'save_as': self.save_as,
     479            'is_save_as': request.POST.has_key('_saveasnew'),
    478480        }
    479481        context.update(extra_context)
    480482        return render_to_response([
     
    482484            "admin/%s/change_form.html" % app_label,
    483485            "admin/change_form.html"], context_instance=context)
    484486
    485     def add_view(self, request, form_url=''):
     487    def add_view(self, request):
    486488        "The 'add' admin view for this model."
    487489        model = self.model
    488490        opts = model._meta
     
    527529            'media': media,
    528530            'inline_admin_formsets': inline_admin_formsets,
    529531        })
    530         return self.render_change_form(model, c, add=True)
     532        return self.render_change_form(request, c, add=True)
    531533   
    532534    def change_view(self, request, object_id):
    533535        "The 'change' admin view for this model."
     
    549551        if obj is None:
    550552            raise Http404('%s object with primary key %r does not exist.' % (opts.verbose_name, escape(object_id)))
    551553
    552         if request.POST and request.POST.has_key("_saveasnew"):
    553             return self.add_view(request, form_url='../../add/')
     554        if request.POST and request.POST.has_key('_saveasnew'):
     555            return self.add_view(request)
    554556
    555557        ModelForm = self.form_change(request, obj)
    556558        inline_formsets = []
     
    604606            'media': media,
    605607            'inline_admin_formsets': inline_admin_formsets,
    606608        })
    607         return self.render_change_form(model, c, change=True)
     609        return self.render_change_form(request, c, change=True)
    608610
    609611    def changelist_view(self, request):
    610612        "The 'change list' admin view for this model."
  • django/contrib/admin/templates/admin/change_form.html

    === modified file 'django/contrib/admin/templates/admin/change_form.html'
     
    3030  </ul>
    3131{% endif %}{% endif %}
    3232{% 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 %}
    3434<div>
    3535{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %}
    3636{% if save_on_top %}{% submit_row %}{% endif %}
  • django/contrib/admin/templatetags/admin_modify.py

    === modified file 'django/contrib/admin/templatetags/admin_modify.py'
     
    1818
    1919def submit_row(context):
    2020    opts = context['opts']
     21    add = context['add']
    2122    change = context['change']
    2223    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']
    2626    return {
    2727        'onclick_attrib': (opts.get_ordered_objects() and change
    2828                            and 'onclick="submitOrderForm();"' or ''),
    2929        'show_delete_link': (not is_popup and context['has_delete_permission']
    3030                              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,
    3535    }
    3636submit_row = register.inclusion_tag('admin/submit_line.html', takes_context=True)(submit_row)
    3737
  • django/contrib/admin/views/auth.py

    === modified file 'django/contrib/admin/views/auth.py'
     
    4040        'auto_populated_fields': (),
    4141        'opts': User._meta,
    4242        'username_help_text': User._meta.get_field('username').help_text,
     43        'save_as': False,
     44        'is_save_as': False,
    4345    }, context_instance=template.RequestContext(request))
    4446user_add_stage = staff_member_required(user_add_stage)
    4547
     
    7173        'opts': User._meta,
    7274        'original': user,
    7375        'show_save': True,
     76        'save_as': False,
     77        'is_save_as': False,
    7478    }, context_instance=template.RequestContext(request))
    7579user_change_password = staff_member_required(user_change_password)
Back to Top