Пример #1
0
    def __init__(self, tally_id):
        super(IntakenProgressReport, self).__init__(tally_id)

        pks = ResultForm.distinct_form_pks(self.tally_id)

        self.filtered_queryset = ResultForm.objects.filter(id__in=pks).exclude(
            form_state=FormState.UNSUBMITTED)
Пример #2
0
    def __init__(self, tally_id):
        super(IntakenProgressReport, self).__init__(tally_id)

        pks = ResultForm.distinct_form_pks(self.tally_id)

        self.filtered_queryset = ResultForm.objects.filter(
            id__in=pks).exclude(form_state=FormState.UNSUBMITTED)
Пример #3
0
    def get(self, *args, **kwargs):
        format_ = kwargs.get('format')
        if format_ == 'csv':
            form_list = ResultForm.forms_in_state(FormState.UNSUBMITTED).\
                values('id',
                       'created_date',
                       'modified_date',
                       'ballot_id__number',
                       'center_id__code',
                       'user_id__username',
                       'created_user_id__username',
                       'audited_count',
                       'barcode',
                       'date_seen',
                       'form_stamped',
                       'form_state',
                       'gender',
                       'name',
                       'office_id__number',
                       'rejected_count',
                       'serial_number',
                       'skip_quarantine_checks',
                       'station_number',
                       'is_replacement',
                       'intake_printed',
                       'clearance_printed')
            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Forms Not Received'),
                                  custom=True,
                                  remote_url='form-not-received-data'))
Пример #4
0
def distinct_forms(ballot):
    """Return the distinct forms for a ballot based on its type.

    If there are no forms for a ballot assume that it is a component ballot and
    return forms for the associated general ballots.

    :param ballot: The ballot to return distinct forms for.

    :returns: The list of result forms.
    """
    forms = ResultForm.distinct_filter(ballot.resultform_set)

    if not forms:
        forms = ResultForm.distinct_for_component(ballot)

    return forms
Пример #5
0
    def get(self, *args, **kwargs):
        tally_id = kwargs.get('tally_id')
        self.initial = {
            'tally_id': tally_id,
        }
        del self.request.session['result_form']
        pk = self.request.session.get('result_form')

        if pk:
            result_form = ResultForm.objects.get(pk=pk, tally__id=tally_id)
        else:
            tally = Tally.objects.get(id=tally_id)
            barcode = ResultForm.generate_barcode(tally_id)
            result_form = ResultForm.objects.create(
                barcode=barcode,
                form_state=FormState.CLEARANCE,
                tally=tally)
            self.request.session['result_form'] = result_form.pk

        form = NewResultForm(instance=result_form)
        form_class = self.get_form_class()
        form = self.get_form(form_class)

        return self.render_to_response(self.get_context_data(
            form=form, result_form=result_form, tally_id=tally_id))
Пример #6
0
def distinct_forms(ballot):
    """Return the distinct forms for a ballot based on its type.

    If there are no forms for a ballot assume that it is a component ballot and
    return forms for the associated general ballots.

    :param ballot: The ballot to return distinct forms for.

    :returns: The list of result forms.
    """
    forms = ResultForm.distinct_filter(ballot.resultform_set)

    if not forms:
        forms = ResultForm.distinct_for_component(ballot)

    return forms
Пример #7
0
    def get(self, *args, **kwargs):
        format_ = kwargs.get('format')
        if format_ == 'csv':
            form_list = ResultForm.forms_in_state(FormState.UNSUBMITTED).\
                values('id',
                       'created_date',
                       'modified_date',
                       'ballot_id__number',
                       'center_id__code',
                       'user_id__username',
                       'created_user_id__username',
                       'audited_count',
                       'barcode',
                       'date_seen',
                       'form_stamped',
                       'form_state',
                       'gender',
                       'name',
                       'office_id__number',
                       'rejected_count',
                       'serial_number',
                       'skip_quarantine_checks',
                       'station_number',
                       'is_replacement',
                       'intake_printed',
                       'clearance_printed')
            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Forms Not Received'),
                                  custom=True,
                                  remote_url='form-not-received-data'))
Пример #8
0
    def get(self, *args, **kwargs):
        form_state = kwargs.get('state')
        tally_id = kwargs.get('tally_id')

        if form_state:
            if form_state == ALL:
                form_list = ResultForm.objects.filter(tally__id=tally_id)
            else:
                form_state = FormState[form_state.upper()]
                form_list = ResultForm.forms_in_state(form_state.value,
                                                      tally_id=tally_id)

            form_list = form_list.values(
                'barcode', 'form_state', 'gender', 'station_number',
                'center__sub_constituency__code', 'center__code',
                'ballot__race_type').order_by('barcode')

            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Form List'),
                                  remote_url=reverse(
                                      'form-list-data',
                                      kwargs={'tally_id': tally_id}),
                                  tally_id=tally_id,
                                  show_create_form_button=True))
Пример #9
0
    def get(self, *args, **kwargs):
        form_state = kwargs.get('state')
        tally_id = kwargs.get('tally_id')

        if form_state:
            if form_state == ALL:
                form_list = ResultForm.objects.filter(tally__id=tally_id)
            else:
                form_state = FormState[form_state.upper()]
                form_list = ResultForm.forms_in_state(form_state.value,
                                                      tally_id=tally_id)

            form_list = form_list.values(
                'barcode', 'form_state', 'gender', 'station_number',
                'center__sub_constituency__code',
                'center__code',
                'ballot__race_type').order_by('barcode')

            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Form List'),
                                  remote_url=reverse(
                                      'form-list-data',
                                      kwargs={'tally_id': tally_id}),
                                  tally_id=tally_id,
                                  show_create_form_button=True))
Пример #10
0
    def get(self, *args, **kwargs):
        tally_id = kwargs.get('tally_id')
        self.initial = {
            'tally_id': tally_id,
        }
        del self.request.session['result_form']
        pk = self.request.session.get('result_form')

        if pk:
            result_form = ResultForm.objects.get(pk=pk, tally__id=tally_id)
        else:
            tally = Tally.objects.get(id=tally_id)
            barcode = ResultForm.generate_barcode(tally_id)
            result_form = ResultForm.objects.create(
                barcode=barcode, form_state=FormState.CLEARANCE, tally=tally)
            self.request.session['result_form'] = result_form.pk

        form = NewResultForm(instance=result_form)
        form_class = self.get_form_class()
        form = self.get_form(form_class)

        return self.render_to_response(
            self.get_context_data(form=form,
                                  result_form=result_form,
                                  tally_id=tally_id))
Пример #11
0
    def get(self, *args, **kwargs):
        format_ = kwargs.get('format')
        if format_ == 'csv':
            form_list = ResultForm.forms_in_state(FormState.UNSUBMITTED)
            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Forms Not Received'),
                                  custom=True,
                                  remote_url='form-not-received-data'))
Пример #12
0
    def get_queryset(self):
        qs = super(FormListDataView, self).get_queryset()
        ballot_number = self.kwargs.get('ballot')

        if ballot_number:
            ballot = Ballot.objects.get(number=ballot_number)
            qs = ResultForm.distinct_forms().filter(
                ballot__number__in=ballot.form_ballot_numbers)

        return qs
Пример #13
0
    def get_queryset(self):
        qs = super(FormListDataView, self).get_queryset()
        ballot_number = self.kwargs.get('ballot')

        if ballot_number:
            ballot = Ballot.objects.get(number=ballot_number)
            qs = ResultForm.distinct_forms().filter(
                ballot__number__in=ballot.form_ballot_numbers)

        return qs
Пример #14
0
    def get(self, *args, **kwargs):
        format_ = kwargs.get('format')
        if format_ == 'csv':
            form_list = ResultForm.forms_in_state(FormState.UNSUBMITTED)
            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Forms Not Received'),
                                  custom=True,
                                  remote_url='form-not-received-data'))
Пример #15
0
class ProgressReport(object):
    queryset = ResultForm.distinct_forms()

    def get_queryset(self):
        if self.queryset is None or not isinstance(self.queryset, QuerySet):
            raise ImproperlyConfigured(
                u"queryset needs to be of instance QuerySet")

        return self.queryset

    def get_filtered_queryset(self):
        if not isinstance(self.filtered_queryset, QuerySet):
            raise ImproperlyConfigured(
                u"queryset needs to be of instance QuerySet")

        return self.filtered_queryset

    def numerator(self):
        return self.get_filtered_queryset().count()

    number = property(numerator)

    def denominator(self):
        return self.queryset.count()

    total = property(denominator)

    def percentage_value(self):
        if self.denominator() <= 0:
            return _(u"No results")

        return rounded_percent(self.numerator(), self.denominator())

    percentage = property(percentage_value)

    def for_ballot(self, ballot):
        obj = self.__class__()

        obj.filtered_queryset = self.get_filtered_queryset().filter(
            ballot__number__in=ballot.form_ballot_numbers)
        obj.queryset = self.get_queryset().filter(
            ballot__number__in=ballot.form_ballot_numbers)

        return obj

    def for_center_office(self, office):
        obj = self.__class__()
        obj.filtered_queryset = \
            self.get_filtered_queryset().filter(center__office=office)
        obj.queryset = self.get_queryset().filter(center__office=office)

        return obj
Пример #16
0
def get_results_duplicates(tally_id):
    complete_barcodes = []

    for ballot in valid_ballots(tally_id):
        forms = distinct_forms(ballot, tally_id)
        final_forms = ResultForm.forms_in_state(
            FormState.ARCHIVED, pks=[r.pk for r in forms], tally_id=tally_id)

        if not SPECIAL_BALLOTS or ballot.number in SPECIAL_BALLOTS:
            complete_barcodes.extend([r.barcode for r in final_forms])

    result_forms = ResultForm.objects\
        .select_related().filter(barcode__in=complete_barcodes,
                                 tally__id=tally_id)

    center_to_votes = defaultdict(list)
    center_to_forms = defaultdict(list)

    result_forms_founds = []

    for result_form in result_forms:
        # build list of votes for this barcode
        vote_list = ()

        for candidate in result_form.candidates:
            votes = candidate.num_votes(result_form)
            vote_list += (votes,)

        # store votes for this forms center
        center = result_form.center
        center_to_votes[center.code].append(vote_list)
        center_to_forms[center.code].append(result_form)

    for code, vote_lists in center_to_votes.items():
        votes_cast = sum([sum(l) for l in vote_lists]) > 0
        num_vote_lists = len(vote_lists)
        num_distinct_vote_lists = len(set(vote_lists))

        if votes_cast and num_distinct_vote_lists < num_vote_lists:

            for i, form in enumerate(center_to_forms[code]):
                vote_list = vote_lists[i]
                votes_cast = sum(vote_list) > 0
                other_vote_lists = vote_lists[:i] + vote_lists[i + 1:]

                if votes_cast and vote_list in other_vote_lists:
                    form.results_duplicated = vote_list
                    result_forms_founds.append(form)

    return result_forms_founds
Пример #17
0
def get_results_duplicates(tally_id):
    complete_barcodes = []

    for ballot in valid_ballots(tally_id):
        forms = distinct_forms(ballot, tally_id)
        final_forms = ResultForm.forms_in_state(
            FormState.ARCHIVED, pks=[r.pk for r in forms], tally_id=tally_id)

        if not SPECIAL_BALLOTS or ballot.number in SPECIAL_BALLOTS:
            complete_barcodes.extend([r.barcode for r in final_forms])

    result_forms = ResultForm.objects\
        .select_related().filter(barcode__in=complete_barcodes,
                                 tally__id=tally_id)

    center_to_votes = defaultdict(list)
    center_to_forms = defaultdict(list)

    result_forms_founds = []

    for result_form in result_forms:
        # build list of votes for this barcode
        vote_list = ()

        for candidate in result_form.candidates:
            votes = candidate.num_votes(result_form)
            vote_list += (votes,)

        # store votes for this forms center
        center = result_form.center
        center_to_votes[center.code].append(vote_list)
        center_to_forms[center.code].append(result_form)

    for code, vote_lists in center_to_votes.items():
        votes_cast = sum([sum(l) for l in vote_lists]) > 0
        num_vote_lists = len(vote_lists)
        num_distinct_vote_lists = len(set(vote_lists))

        if votes_cast and num_distinct_vote_lists < num_vote_lists:

            for i, form in enumerate(center_to_forms[code]):
                vote_list = vote_lists[i]
                votes_cast = sum(vote_list) > 0
                other_vote_lists = vote_lists[:i] + vote_lists[i + 1:]

                if votes_cast and vote_list in other_vote_lists:
                    form.results_duplicated = vote_list
                    result_forms_founds.append(form)

    return result_forms_founds
Пример #18
0
    def get(self, *args, **kwargs):
        pk = self.request.session.get('result_form')

        if pk:
            result_form = ResultForm.objects.get(pk=pk)
        else:
            barcode = ResultForm.generate_barcode()
            result_form = ResultForm.objects.create(
                barcode=barcode, form_state=FormState.CLEARANCE)
            self.request.session['result_form'] = result_form.pk

        form = NewResultForm(instance=result_form)
        form_class = self.get_form_class()
        form = self.get_form(form_class)

        return self.render_to_response(
            self.get_context_data(form=form, result_form=result_form))
Пример #19
0
    def get(self, *args, **kwargs):
        pk = self.request.session.get('result_form')

        if pk:
            result_form = ResultForm.objects.get(pk=pk)
        else:
            barcode = ResultForm.generate_barcode()
            result_form = ResultForm.objects.create(
                barcode=barcode,
                form_state=FormState.CLEARANCE)
            self.request.session['result_form'] = result_form.pk

        form = NewResultForm(instance=result_form)
        form_class = self.get_form_class()
        form = self.get_form(form_class)

        return self.render_to_response(self.get_context_data(
            form=form, result_form=result_form))
Пример #20
0
    def get(self, *args, **kwargs):
        form_state = kwargs.get('state')

        if form_state:
            if form_state == ALL:
                form_list = ResultForm.objects.all()
            else:
                form_state = FormState.get(form_state)
                form_list = ResultForm.forms_in_state(form_state.value)

            form_list = form_list.values(
                'barcode', 'form_state', 'gender', 'station_number',
                'center__sub_constituency__code', 'center__code',
                'ballot__race_type').order_by('barcode')

            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Form List'),
                                  remote_url='form-list-data'))
Пример #21
0
    def get(self, *args, **kwargs):
        form_state = kwargs.get('state')

        if form_state:
            if form_state == ALL:
                form_list = ResultForm.objects.all()
            else:
                form_state = FormState.get(form_state)
                form_list = ResultForm.forms_in_state(form_state.value)

            form_list = form_list.values(
                'barcode', 'form_state', 'gender', 'station_number',
                'center__sub_constituency__code',
                'center__code',
                'ballot__race_type').order_by('barcode')

            return render_to_csv_response(form_list)

        return self.render_to_response(
            self.get_context_data(header_text=_('Form List'),
                                  remote_url='form-list-data'))
Пример #22
0
class ClearanceProgressReport(ProgressReport):
    filtered_queryset = ResultForm.forms_in_state(FormState.CLEARANCE)
    label = _(u"Clearance")
Пример #23
0
    def __init__(self, tally_id):
        super(ClearanceProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.CLEARANCE, tally_id=self.tally_id)
Пример #24
0
    def __init__(self, tally_id):
        super(IntakeProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.INTAKE, tally_id=self.tally_id)
Пример #25
0
    def __init__(self, tally_id):
        super(QualityControlProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.QUALITY_CONTROL, tally_id=self.tally_id)
Пример #26
0
    def __init__(self, tally_id):
        super(DataEntry2ProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.DATA_ENTRY_2, tally_id=self.tally_id)
Пример #27
0
class ArchivedProgressReport(ProgressReport):
    filtered_queryset = ResultForm.forms_in_state(FormState.ARCHIVED)
    label = _(u"Archived")
Пример #28
0
class IntakenProgressReport(ProgressReport):
    pks = ResultForm.distinct_form_pks()

    filtered_queryset = ResultForm.objects.filter(id__in=pks).exclude(
        form_state=FormState.UNSUBMITTED)
    label = _(u"Intaken")
Пример #29
0
class FormNotReceivedDataView(FormListDataView):
    queryset = ResultForm.forms_in_state(FormState.UNSUBMITTED)
Пример #30
0
    def __init__(self, tally_id):
        super(ExpectedProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.distinct_forms(self.tally_id)
Пример #31
0
    def __init__(self, tally_id):
        super(ExpectedProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.distinct_forms(self.tally_id)
Пример #32
0
    def __init__(self, tally_id):
        super(NotRecievedProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.UNSUBMITTED, tally_id=self.tally_id)
Пример #33
0
    def __init__(self, tally_id):
        super(AuditProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.AUDIT, tally_id=self.tally_id)
Пример #34
0
    def __init__(self, tally_id):
        super(ArchivingProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.ARCHIVING, tally_id=self.tally_id)
Пример #35
0
def export_candidate_votes(save_barcodes=False, output_duplicates=True,
                           output_to_file=True, show_disabled_candidates=True):
    """Export a spreadsheet of the candidates their votes for each race.

    :param save_barcodes: Generate barcode result file, default False.
    :param output_duplicates: Generate duplicates file, default True.
    :param output_to_file: Output to file, default True.

    :returns: The name of the temporary file that results have been output to.
    """
    header = ['ballot number',
              'stations',
              'stations completed',
              'stations percent completed']

    max_candidates = 0

    for ballot in Ballot.objects.all():
        if not show_disabled_candidates:
            ballot_number = ballot.candidates.filter(active=True).count()
        else:
            ballot_number = ballot.candidates.count()

        if ballot_number > max_candidates:
            max_candidates = ballot_number

    for i in xrange(1, max_candidates + 1):
        header.append('candidate %s name' % i)
        header.append('candidate %s votes' % i)
        header.append('candidate %s votes included quarantine' % i)

    complete_barcodes = []

    csv_file = NamedTemporaryFile(delete=False, suffix='.csv')

    with csv_file as f:
        w = csv.DictWriter(f, header)
        w.writeheader()

        for ballot in valid_ballots():
            general_ballot = ballot
            forms = distinct_forms(ballot)
            final_forms = ResultForm.forms_in_state(
                FormState.ARCHIVED, pks=[r.pk for r in forms])

            if not SPECIAL_BALLOTS or ballot.number in SPECIAL_BALLOTS:
                complete_barcodes.extend([r.barcode for r in final_forms])

            num_stations = forms.count()
            num_stations_completed = final_forms.count()

            percent_complete = round(
                100 * num_stations_completed / num_stations, 3) if num_stations\
                else 0

            output = OrderedDict({
                'ballot number': ballot.number,
                'stations': num_stations,
                'stations completed': num_stations_completed,
                'stations percent completed': percent_complete})

            candidates_to_votes = {}
            num_results_ary = []

            candidates = ballot.candidates.all()
            if not show_disabled_candidates:
                candidates = candidates.filter(active=True)

            for candidate in candidates:
                num_results, votes = candidate.num_votes()
                all_votes = candidate.num_all_votes
                candidates_to_votes[candidate.full_name] = [votes, all_votes]
                num_results_ary.append(num_results)

            assert len(set(num_results_ary)) <= 1

            for num_results in num_results_ary:
                if num_stations_completed != num_results:
                    print ('[WARNING] Number stations complete (%s) not '
                           'equal to num_results (%s) for ballot %s (general'
                           ' ballot %s)' % (
                               num_stations_completed, num_results,
                               ballot.number, general_ballot.number))
                    output['stations completed'] = num_results

            candidates_to_votes = OrderedDict((sorted(
                candidates_to_votes.items(), key=lambda t: t[1][0],
                reverse=True)))

            #Checks changes in candidates positions
            check_position_changes(candidates_to_votes)

            for i, item in enumerate(candidates_to_votes.items()):
                candidate, votes = item

                output['candidate %s name' % (i + 1)] = candidate
                output['candidate %s votes' % (i + 1)] = votes[0]
                output['candidate %s votes included quarantine' % (i + 1)] = votes[1]

            write_utf8(w, output)

    if output_to_file:
        if show_disabled_candidates:
            save_csv_file_and_symlink(csv_file, OUTPUT_PATH)
        else:
            save_csv_file_and_symlink(csv_file, ACTIVE_OUTPUT_PATH)

    if save_barcodes:
        return save_barcode_results(complete_barcodes,
                                    output_duplicates=output_duplicates,
                                    output_to_file=output_to_file)
    return csv_file.name
Пример #36
0
def export_candidate_votes(save_barcodes=False,
                           output_duplicates=True,
                           output_to_file=True):
    """Export a spreadsheet of the candidates their votes for each race.

    :param save_barcodes: Generate barcode result file, default False.
    :param output_duplicates: Generate duplicates file, default True.
    :param output_to_file: Output to file, default True.

    :returns: The name of the temporary file that results have been output to.
    """
    header = [
        'ballot number', 'stations', 'stations completed',
        'stations percent completed'
    ]

    max_candidates = 0
    for ballot in Ballot.objects.all():
        if ballot.candidates.count() > max_candidates:
            max_candidates = ballot.candidates.count()

    for i in xrange(1, max_candidates + 1):
        header.append('candidate %s name' % i)
        header.append('candidate %s votes' % i)

    complete_barcodes = []

    csv_file = NamedTemporaryFile(delete=False, suffix='.csv')

    with csv_file as f:
        w = csv.DictWriter(f, header)
        w.writeheader()

        for ballot in valid_ballots():
            general_ballot = ballot
            forms = distinct_forms(ballot)
            final_forms = ResultForm.forms_in_state(FormState.ARCHIVED,
                                                    pks=[r.pk for r in forms])

            if not SPECIAL_BALLOTS or ballot.number in SPECIAL_BALLOTS:
                complete_barcodes.extend([r.barcode for r in final_forms])

            num_stations = forms.count()
            num_stations_completed = final_forms.count()

            percent_complete = round(
                100 * num_stations_completed / num_stations, 3)

            output = OrderedDict({
                'ballot number': ballot.number,
                'stations': num_stations,
                'stations completed': num_stations_completed,
                'stations percent completed': percent_complete
            })

            candidates_to_votes = {}
            num_results_ary = []

            for candidate in ballot.candidates.all():
                num_results, votes = candidate.num_votes()
                candidates_to_votes[candidate.full_name] = votes
                num_results_ary.append(num_results)

            assert len(set(num_results_ary)) <= 1

            for num_results in num_results_ary:
                if num_stations_completed != num_results:
                    print(
                        '[WARNING] Number stations complete (%s) not '
                        'equal to num_results (%s) for ballot %s (general'
                        ' ballot %s)' % (num_stations_completed, num_results,
                                         ballot.number, general_ballot.number))
                    output['stations completed'] = num_results

            candidates_to_votes = OrderedDict(
                (sorted(candidates_to_votes.items(),
                        key=lambda t: t[1],
                        reverse=True)))

            for i, item in enumerate(candidates_to_votes.items()):
                candidate, votes = item

                output['candidate %s name' % (i + 1)] = candidate
                output['candidate %s votes' % (i + 1)] = votes

            write_utf8(w, output)

    if output_to_file:
        save_csv_file_and_symlink(csv_file, OUTPUT_PATH)

    if save_barcodes:
        return save_barcode_results(complete_barcodes,
                                    output_duplicates=output_duplicates,
                                    output_to_file=output_to_file)
    return csv_file.name
Пример #37
0
class IntakeProgressReport(ProgressReport):
    filtered_queryset = ResultForm.forms_in_state(FormState.INTAKE)
    label = _(u"Intake")
Пример #38
0
 def __init__(self, tally_id):
     self.tally_id = tally_id
     self.filtered_queryset = self.queryset = \
         ResultForm.distinct_forms(tally_id)
Пример #39
0
 def filter_queryset(self, qs):
     return ResultForm.forms_in_state(FormState.UNSUBMITTED)
Пример #40
0
    def __init__(self, tally_id):
        super(CorrectionProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.CORRECTION, tally_id=self.tally_id)
Пример #41
0
    def __init__(self, tally_id):
        super(ArchivedProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.ARCHIVED, tally_id=self.tally_id)
Пример #42
0
    def __init__(self, tally_id):
        super(AuditProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.AUDIT, tally_id=self.tally_id)
Пример #43
0
    def __init__(self, tally_id):
        super(ClearanceProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.CLEARANCE, tally_id=self.tally_id)
Пример #44
0
    def __init__(self, tally_id):
        super(CorrectionProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.CORRECTION, tally_id=self.tally_id)
Пример #45
0
    def __init__(self, tally_id):
        super(DataEntry2ProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.DATA_ENTRY_2, tally_id=self.tally_id)
Пример #46
0
    def __init__(self, tally_id):
        super(IntakeProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.INTAKE, tally_id=self.tally_id)
Пример #47
0
    def __init__(self, tally_id):
        super(QualityControlProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.QUALITY_CONTROL, tally_id=self.tally_id)
Пример #48
0
class DataEntry2ProgressReport(ProgressReport):
    filtered_queryset = ResultForm.forms_in_state(FormState.DATA_ENTRY_2)
    label = _(u"Data Entry 2")
Пример #49
0
    def __init__(self, tally_id):
        super(NotRecievedProgressReport, self).__init__(tally_id)

        self.filtered_queryset = ResultForm.forms_in_state(
            FormState.UNSUBMITTED, tally_id=self.tally_id)
Пример #50
0
 def __init__(self, tally_id):
     self.tally_id = tally_id
     self.filtered_queryset = self.queryset = ResultForm.distinct_forms(
         tally_id)
Пример #51
0
 def filter_queryset(self, qs):
     return ResultForm.forms_in_state(FormState.UNSUBMITTED)
Пример #52
0
class ExpectedProgressReport(ProgressReport):
    filtered_queryset = ResultForm.distinct_forms()
    label = _(u"Expected")