def report_new(request): if request.method == "POST": tagid = get_request_paramter(request, 'tag') typeid = get_request_paramter(request, 'type') rfile = get_request_paramter(request, 'file') rtags = GitTag.objects.filter(id = tagid) if len(rtags) == 0: logevent("NEW: report , ERROR: tag id %s does not exists" % tagid) return HttpResponse('NEW: report, ERROR: tag id %s does not exists' % tagid) rtypes = Type.objects.filter(id = typeid) if len(rtypes) == 0: logevent("NEW: report , ERROR: type id %s does not exists" % typeid) return HttpResponse('NEW: report, ERROR: type id %s does not exists' % typeid) report = Report(tag = rtags[0], type = rtypes[0], file = rfile, status = STATUS_NEW, diff = '') if not os.path.exists(report.sourcefile()): logevent("NEW: report , ERROR: type id %s does not exists" % typeid) return HttpResponse('NEW: report, ERROR: type id %s does not exists' % typeid) report.title = rtypes[0].ptitle report.desc = rtypes[0].pdesc report.save() for dot in report_engine_list(): test = dot(rtags[0].repo.dirname()) for i in range(test.tokens()): if test.get_type() != rtypes[0].id: test.next_token() continue test.set_filename(rfile) if test.should_report(): text = test.get_report() report.reportlog = '\n'.join(text) report.save() break rtags[0].rptotal += 1 rtags[0].save() logevent("NEW: report for %s, SUCCEED: new id %s" % (rfile, report.id), True) return HttpResponse('NEW: report for file, SUCCEED') else: repoid = int(get_request_paramter(request, 'repo', '1')) tagname = get_request_paramter(request, 'tag') context = RequestContext(request) context['form'] = ReportNewForm(repoid, tagname) return render_to_response("report/reportnew.html", context)