Ejemplo n.º 1
0
    def post(self, *args, **kwargs):
        post_data = self.request.POST
        pk = session_matches_post_result_form(post_data, self.request)
        result_form = get_object_or_404(ResultForm, pk=pk)
        form_in_data_entry_state(result_form)
        formset, forms_and_candidates = get_formset_and_candidates(
            result_form, post_data)
        recon_form = ReconForm(post_data)
        data_entry_number = get_data_entry_number(result_form.form_state)
        candidates = result_form.candidates
        CandidateFormSet = formset_factory(CandidateForm,
                                           extra=len(candidates),
                                           formset=BaseCandidateFormSet)
        formset = CandidateFormSet(post_data)

        if (not result_form.has_recon
                or recon_form.is_valid()) and formset.is_valid():
            check_form = check_state_and_group(result_form, self.request.user,
                                               recon_form)

            if check_form:
                return self.form_invalid(check_form)

            entry_version = None
            new_state = None

            if result_form.form_state == FormState.DATA_ENTRY_1:
                entry_version = EntryVersion.DATA_ENTRY_1
                new_state = FormState.DATA_ENTRY_2
            else:
                entry_version = EntryVersion.DATA_ENTRY_2
                new_state = FormState.CORRECTION

            for i, form in enumerate(formset.forms):
                votes = form.cleaned_data['votes']
                Result.objects.create(candidate=candidates[i],
                                      result_form=result_form,
                                      entry_version=entry_version,
                                      votes=votes,
                                      user=self.request.user)

            if result_form.has_recon:
                re_form = recon_form.save(commit=False)
                re_form.entry_version = entry_version
                re_form.result_form = result_form
                re_form.user = self.request.user
                re_form.save()

            result_form.form_state = new_state
            result_form.save()

            return redirect(self.success_url)
        else:
            return self.render_to_response(
                self.get_context_data(
                    formset=formset,
                    forms_and_candidates=forms_and_candidates,
                    reconciliation_form=recon_form,
                    result_form=result_form,
                    data_entry_number=data_entry_number))
Ejemplo n.º 2
0
    def get(self, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        pk = self.request.session.get('result_form')
        result_form = get_object_or_404(ResultForm, pk=pk)
        form_in_data_entry_state(result_form)

        return self.render_to_response(
            self.get_context_data(form=form,
                                  result_form=result_form,
                                  header_text=get_header_text(result_form)))
Ejemplo n.º 3
0
    def get(self, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        pk = self.request.session.get('result_form')
        result_form = get_object_or_404(ResultForm, pk=pk)
        form_in_data_entry_state(result_form)

        return self.render_to_response(
            self.get_context_data(form=form,
                                  result_form=result_form,
                                  header_text=get_header_text(result_form)))
Ejemplo n.º 4
0
    def get(self, *args, **kwargs):
        pk = self.request.session.get('result_form')
        result_form = get_object_or_404(ResultForm, pk=pk)
        form_in_data_entry_state(result_form)
        formset, forms_and_candidates = get_formset_and_candidates(result_form)
        reconciliation_form = ReconForm()
        data_entry_number = get_data_entry_number(result_form.form_state)

        return self.render_to_response(
            self.get_context_data(formset=formset,
                                  forms_and_candidates=forms_and_candidates,
                                  reconciliation_form=reconciliation_form,
                                  result_form=result_form,
                                  data_entry_number=data_entry_number))
Ejemplo n.º 5
0
    def get(self, *args, **kwargs):
        pk = self.request.session.get('result_form')
        result_form = get_object_or_404(ResultForm, pk=pk)
        form_in_data_entry_state(result_form)
        formset, forms_and_candidates = get_formset_and_candidates(result_form)
        reconciliation_form = ReconForm()
        data_entry_number = get_data_entry_number(result_form.form_state)

        return self.render_to_response(
            self.get_context_data(formset=formset,
                                  forms_and_candidates=forms_and_candidates,
                                  reconciliation_form=reconciliation_form,
                                  result_form=result_form,
                                  data_entry_number=data_entry_number))
Ejemplo n.º 6
0
    def get(self, *args, **kwargs):
        tally_id = kwargs.get('tally_id')
        self.initial = {
            'tally_id': tally_id,
        }
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        pk = self.request.session.get('result_form')
        result_form = get_object_or_404(ResultForm, pk=pk, tally__id=tally_id)
        form_in_data_entry_state(result_form)

        return self.render_to_response(
            self.get_context_data(form=form,
                                  result_form=result_form,
                                  header_text=get_header_text(result_form),
                                  tally_id=tally_id))
Ejemplo n.º 7
0
    def post(self, *args, **kwargs):
        post_data = self.request.POST
        pk = session_matches_post_result_form(post_data, self.request)
        result_form = get_object_or_404(ResultForm, pk=pk)
        form_in_data_entry_state(result_form)
        formset, forms_and_candidates = get_formset_and_candidates(result_form,
                                                                   post_data)
        recon_form = ReconForm(post_data)
        data_entry_number = get_data_entry_number(result_form.form_state)
        candidates = result_form.candidates
        CandidateFormSet = formset_factory(CandidateForm,
                                           extra=len(candidates),
                                           formset=BaseCandidateFormSet)
        formset = CandidateFormSet(post_data)

        if (not result_form.has_recon or
                recon_form.is_valid()) and formset.is_valid():
            check_form = check_state_and_group(
                result_form, self.request.user, recon_form)

            if check_form:
                return self.form_invalid(check_form)

            entry_version = None
            new_state = None

            if result_form.form_state == FormState.DATA_ENTRY_1:
                entry_version = EntryVersion.DATA_ENTRY_1
                new_state = FormState.DATA_ENTRY_2
            else:
                entry_version = EntryVersion.DATA_ENTRY_2
                new_state = FormState.CORRECTION

            for i, form in enumerate(formset.forms):
                votes = form.cleaned_data['votes']
                Result.objects.create(
                    candidate=candidates[i],
                    result_form=result_form,
                    entry_version=entry_version,
                    votes=votes,
                    user=self.request.user
                )

            if result_form.has_recon:
                re_form = recon_form.save(commit=False)
                re_form.entry_version = entry_version
                re_form.result_form = result_form
                re_form.user = self.request.user
                re_form.save()

            result_form.form_state = new_state
            result_form.save()

            return redirect(self.success_url)
        else:
            return self.render_to_response(self.get_context_data(
                formset=formset,
                forms_and_candidates=forms_and_candidates,
                reconciliation_form=recon_form,
                result_form=result_form,
                data_entry_number=data_entry_number))