Esempio n. 1
0
def report_valid(request, report_id=0):
    if report_id:
        report = Report.objects.get(pk=str(report_id))
        report_form = ReportForm(request.POST, instance=report)
        report_contextelement_formset = ContextElementFormset(request.POST, instance=report)
    else:
        report_form = ReportForm(request.POST)
        report_contextelement_formset = ContextElementFormset(request.POST)

    if report_form.is_valid() and report_contextelement_formset.is_valid():
        report = report_form.save()
        report_contextelement_formset.instance = report
        report_contextelement_formset.save()

        # log = history.History(request.user, report)
        # log.add_form(report_form)
        # log.add_objects(created=created_testcases, deleted=deleted_testcases)
        # log.save()

        return success(message='report saved',
                       data={"parent_id": getattr(report.parent, "id", 0),
                             "current_id": report.id,
                             "link": report.link})

    else:
        errors = report_form.errors_list()
        errors.extend(report_contextelement_formset._errors_list())
        return failed(message="Validation errors",
                      data=errors)
Esempio n. 2
0
def report_valid(request, report_id=0, **kwargs):
    if report_id:
        report = Report.objects.get(pk=str(report_id))
        report_form = ReportForm(request.POST, instance=report)
        report_contextelement_formset = ContextElementFormset(request.POST, instance=report)
    else:
        report_form = ReportForm(request.POST)
        report_contextelement_formset = ContextElementFormset(request.POST)

    errors = {}

    if report_form.is_valid() and report_contextelement_formset.is_valid():
        validator = ReportValidator(report_form.cleaned_data['template'],
                                    report_contextelement_formset.context_queries())
        if validator.is_valid():
            report = report_form.save()
            report_contextelement_formset.instance = report
            report_contextelement_formset.save()
            # TODO: the history should be updated here I guess
            return success(message='report saved',
                           data={"parent_id": getattr(report.parent, "id", 0),
                                 "current_id": report.id,
                                 "link": report.link})
        else:
            errors.update(validator.errors)

    errors = report_form.errors_list(additional=errors.items())
    errors.extend(report_contextelement_formset._errors_list())
    return failed(message="Validation errors: %s" % report_form.error_message(),
                  data=errors)