Replace NavContext and render_to_response with render_pgweb

render_to_response does not work on newer django, so it needs to be
replaced. And using a speicfic context actually overcomplicates things,
it's easier to just use a wrapper function. For those cases where we
don't need NavContext, just use render() (the new shortcut function from
django), which also removes the need to use RequestContext.
This commit is contained in:
Magnus Hagander
2018-03-10 10:34:50 -05:00
parent 6ffc1d4811
commit fd37389a3b
20 changed files with 153 additions and 168 deletions

View File

@ -1,5 +1,5 @@
from django.shortcuts import render_to_response, get_object_or_404
from pgweb.util.contexts import NavContext
from django.shortcuts import render, get_object_or_404
from pgweb.util.contexts import render_pgweb
from django.http import HttpResponseRedirect, Http404
from django.template import Context
from django.template.loader import get_template
@ -63,7 +63,7 @@ def simple_form(instancetype, itemid, request, formclass, formtemplate='base/for
else:
described_checkboxes = None
return render_to_response(formtemplate, {
return render_pgweb(request, navsection, formtemplate, {
'form': form,
'formitemtype': instance._meta.verbose_name,
'markdownfields': markdownfields,
@ -73,13 +73,13 @@ def simple_form(instancetype, itemid, request, formclass, formtemplate='base/for
'jquery': hasattr(form, 'jquery') and form.jquery or None,
'savebutton': (itemid == "new") and "New" or "Save",
'operation': (itemid == "new") and "New" or "Edit",
}, NavContext(request, navsection))
})
def template_to_string(templatename, attrs = {}):
return get_template(templatename).render(Context(attrs))
def HttpServerError(msg):
r = render_to_response('errors/500.html', {
r = render(request, 'errors/500.html', {
'message': msg,
})
r.status_code = 500