def report(request): context = {} tabID = request.GET.get('tabID') try: data = serialiser.deserialise(request.session[tabID]) except KeyError: return HttpResponseRedirect( '/upload/dev/' + "?error=sessionExpired") if request.session[tabID+'_referrer'] == 'errors': data.analysis() request.session[tabID+'_analysis()'] = True request.session[tabID+'_referrer'] = 'viewReport' request.session[tabID] = serialiser.serialise( data) form = ReportButton(None) context['form'] = form context['tabID'] = tabID return render( request, 'viewReport/index.html', context = context ) elif 'makeReport' in request.POST: report = Report(data, "") report_string = report.html_report() return HttpResponse( report_string ) elif 'downloadData' in request.POST: return HttpResponseRedirect( saveData(data) ) elif 'datatypetemplate' in request.POST: return HttpResponseRedirect( saveDatatypes(data) ) elif request.session[tabID+'_referrer'] == 'viewReport': form = ReportButton(None) context['form'] = form context['tabID'] = tabID return render( request, 'viewReport/index.html', context = context )
def upload(request): #Handle file upload if request.method == 'GET' and 'error' in request.GET: print("error") form = DocumentForm() # An empty form sessionExpired = True elif request.method == 'POST' and "viewReport" in request.POST: form = DocumentForm(request.POST, request.FILES) if form.is_valid(): dataDoc = Document(docfile = request.FILES['dataFile']) dataDoc.save() data = None if 'templateFile' in request.FILES: templateDoc = Document(docfile = request.FILES['templateFile']) templateDoc.save() templateObject = Template(templateDoc.getPath()) data = Data(dataDoc.getPath(), templateObject) templateDoc.delete() else: data = Data(dataDoc.getPath()) # Load data from CSV #data = Data(dataDoc.getPath()) data.filename = dataDoc.getName() # Perform Analysis data.remove_invalid() data.create_columns() data.clean() data.pre_analysis() data.find_errors() data.analysis() # Generate Report report = Report(data, dataDoc.getPath()) report_string = report.html_report() # Delete uploaded CSV file & report from server dataDoc.delete() return HttpResponse( report_string ) elif request.method == 'POST' and "viewOptions" in request.POST: form = DocumentForm(request.POST, request.FILES) if form.is_valid(): dataDoc = Document(docfile = request.FILES['dataFile']) dataDoc.save() if 'templateFile' in request.FILES: templateDoc = Document(docfile = request.FILES['templateFile']) templateDoc.save() templateObject = Template(templateDoc.getPath()) data = Data(dataDoc.getPath(), templateObject) templateDoc.delete() else: data = Data(dataDoc.getPath()) data.filename = dataDoc.getName() dataDoc.delete() request.session.set_expiry(0) tabID = hasher.makeTabID() request.session[tabID] = serialiser.serialise( data) request.session[tabID+'_remove_invalid()'] = False request.session[tabID+'_create_columns()'] = False request.session[tabID+'_clean()'] = False request.session[tabID+'_pre_analysis()'] = False request.session[tabID+'_find_errors()'] = False request.session[tabID+'_analysis()'] = False request.session[tabID+'_referrer'] = 'upload' #Redirect to the generated report after POST return HttpResponseRedirect( '/invalid_rows' + "?tabID=" + tabID) else: form = DocumentForm() # An empty form # Contstruct template context object context = {} context['form'] = form try: context['tabID'] = tabID except NameError: context['tabID'] = None try: context['sessionExpired'] = sessionExpired except: context['sessionExpired'] = False # Render the form return render( request, 'upload/index.html', context = context, )