Exemplo n.º 1
0
def create_or_get_audit(post_data, user, result_form, form):
    """Get or save an audit for the result form.

    :param post_data: The form data to use in the audit form.
    :param user: The user to assign to the audit as user or supervisor
        depending on the user's group.
    :param result_form: The result form to associate the audit with.
    :param form: The form to create an audit from if one does not exist.

    :returns: A retrived of created audit for the result form.
    """
    audit = result_form.audit

    if audit:
        audit = AuditForm(
            post_data, instance=audit).save(commit=False)

        if groups.AUDIT_CLERK in user.groups.values_list(
                'name', flat=True):
            audit.user = user
        else:
            audit.supervisor = user
    else:
        result_form.audited_count += 1
        result_form.save()

        audit = form.save(commit=False)
        audit.result_form = result_form
        audit.user = user

    return audit
Exemplo n.º 2
0
    def get(self, *args, **kwargs):
        tally_id = kwargs.get('tally_id')
        pk = self.request.session['result_form']
        result_form = get_object_or_404(ResultForm, pk=pk, tally__id=tally_id)

        form_class = self.get_form_class()
        audit = result_form.audit
        form = AuditForm(
            instance=audit) if audit else self.get_form(form_class)
        self.request.session[
            'encoded_result_form_audit_start_time'] =\
            json.loads(json.dumps(timezone.now(), cls=DjangoJSONEncoder))

        return self.render_to_response(
            self.get_context_data(form=form,
                                  result_form=result_form,
                                  is_clerk=is_clerk(self.request.user),
                                  tally_id=tally_id))