Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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