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)
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)