def get_context_data(self, **kwargs): kwargs['candidate'] = self.candidate context = super(CandidatePortalView, self).get_context_data(**kwargs) requirements = CandidateRequirement.objects.filter( term=self.current_term).select_related( 'eventcandidaterequirement', 'eventcandidaterequirement__event_type', 'challengecandidaterequirement', 'challengecandidaterequirement__challenge_type', 'examfilecandidaterequirement') # Initialize req_types to contain lists for every requirement type req_types = {} for req in CandidateRequirement.REQUIREMENT_TYPE_CHOICES: req_types[req[0]] = [] electives_required = Candidate.are_electives_required(self.candidate) for req in requirements: req_progress = req.get_progress(self.candidate) completed = req_progress['completed'] credits_needed = req_progress['required'] if electives_required and completed > credits_needed: completed = credits_needed entry = { 'completed': completed, 'credits_needed': credits_needed, 'requirement': req } req_type = req.requirement_type req_types[req_type].append(entry) context['req_types'] = req_types return context
def get_context_data(self, **kwargs): kwargs['candidate'] = self.candidate context = super(CandidateEditView, self).get_context_data(**kwargs) formset = self.get_form(self.form_class) # Initialize req_types to contain lists for every requirement type req_types = {} for req in CandidateRequirement.REQUIREMENT_TYPE_CHOICES: req_types[req[0]] = [] electives_required = Candidate.are_electives_required(self.candidate) for i, req in enumerate(self.requirements): progress = self.progress_dict.get(req.pk) form = formset[i] req_progress = req.get_progress(self.candidate) completed = req_progress['completed'] credits_needed = req_progress['required'] # this is here so on the candidate portal, it will only show # something like 3/3 events completed instead of 5/3 if # they have more than needed, since 2 of those 5 would be in # the electives section (unless electives arent required) if electives_required and completed > credits_needed: completed = credits_needed entry = { 'completed': completed, 'credits_needed': credits_needed, 'requirement': req, 'form': form } form.initial['alternate_credits_needed'] = credits_needed form.initial['manually_recorded_credits'] = 0 if progress: form.instance = progress form.initial['comments'] = progress.comments form.initial['manually_recorded_credits'] = completed req_type = req.requirement_type req_types[req_type].append(entry) context['req_types'] = req_types return context