SummaryView
A class-based view which handles both GET
and POST
requests.
GET
When the summary/
page is requested with GET
, the filters
supplied in the URL are checked. If no filters are supplied,
the current day is used to filter TrackerCertification
instances.
Then, only the requesting user's certifications are kept.
Using the queryset that has been created (runs
), a unique
SummaryInfo
instance is created using get_or_create
.
Then, a form
is created, which, if the specific SummaryInfo
instance
did not exist, is empty. If the instance already existed, the form is
pre-populated with the data from the SummaryInfo
instance.
Finally, the HTML template is rendered.
POST
In the generated summary, there are two fields (supplied by the
SummaryExtraInfoForm
) which are manually entered by the shifter
(links_prompt_feedback
and special_comment
). Once
the shifter submits either of those fields, a POST
request is made
by the front-end (via ajax
) which updates the two fields in the
SummaryInfo
instance.
In order to do that, the certs_list
list is passed in the context of the
template, which is included in the ajax
request, so that the post
method
of the view can identify which SummaryInfo
instance to update.
Info
This should maybe be done with an UpdateView
in the future.
As the feature was implemented hastily, I just refactored the old
code subclassing a simple View
.