Stops relying on a form

This commit is contained in:
Christopher Neugebauer 2016-10-14 16:26:36 -07:00
parent ed2327bedd
commit 6a37134172
3 changed files with 10 additions and 24 deletions

View file

@ -81,16 +81,3 @@ def model_fields_form_factory(model):
) )
return ModelFieldsForm return ModelFieldsForm
class SectionContentTypeForm(forms.Form):
section = forms.IntegerField(
required=False,
min_value=0,
widget=forms.HiddenInput(),
)
content_type = forms.CharField(
required=False,
widget=forms.HiddenInput(),
)

View file

@ -216,10 +216,6 @@ class ReportView(object):
def __init__(self, inner_view, title, form_type): def __init__(self, inner_view, title, form_type):
# Consolidate form_type so it has content type and section # Consolidate form_type so it has content type and section
bases = [forms.SectionContentTypeForm, form_type]
bases = [base for base in bases if base is not None]
form_type = forms.mix_form(*bases)
self.inner_view = inner_view self.inner_view = inner_view
self.title = title self.title = title
self.form_type = form_type self.form_type = form_type
@ -254,7 +250,7 @@ class ReportView(object):
renderers = { renderers = {
"text/csv": self._render_as_csv, "text/csv": self._render_as_csv,
"text/html": self._render_as_html, "text/html": self._render_as_html,
"": self._render_as_html, None: self._render_as_html,
} }
render = renderers[data.content_type] render = renderers[data.content_type]
return render(data) return render(data)
@ -292,9 +288,10 @@ class ReportViewRequestData(object):
# Calculate other data # Calculate other data
self.form = report_view.get_form(request) self.form = report_view.get_form(request)
# Content type and section come from the form # Content type and section come from request.GET
self.content_type = self.form.cleaned_data["content_type"] self.content_type = request.GET.get("content_type")
self.section = self.form.cleaned_data["section"] self.section = request.GET.get("section")
self.section = int(self.section) if self.section else None
# Reports come from calling the inner view # Reports come from calling the inner view
reports = report_view.inner_view(request, self.form, *a, **k) reports = report_view.inner_view(request, self.form, *a, **k)

View file

@ -80,9 +80,11 @@ def items_purchased(context, category=None):
@register.assignment_tag(takes_context=True) @register.assignment_tag(takes_context=True)
def report_as_csv(context, section): def report_as_csv(context, section):
query = dict(context.request.GET) old_query = context.request.META["QUERY_STRING"]
query["section"] = section query = dict([("section", section), ("content_type", "text/csv")])
query["content_type"] = "text/csv"
querystring = urlencode(query) querystring = urlencode(query)
if old_query:
querystring = old_query + "&" + querystring
return context.request.path + "?" + querystring return context.request.path + "?" + querystring