def draw_chart(request): def validate_and_get_date(request): date_from = request.GET.get('date_from') date_to = request.GET.get('date_to') date_from = datetime.datetime.strptime(date_from, '%Y-%m-%d').date() date_to = datetime.datetime.strptime(date_to, '%Y-%m-%d').date() if date_to < date_from: messages.error(request, _('Invalid period entered')) return HttpResponseRedirect(request.META['HTTP_REFERER']), date_to, date_from return None, date_to, date_from group = None if request.GET.get('group'): group = request.GET.get('group') response, date_to, date_from = validate_and_get_date(request) if response: return response quality = Orderfailure.calculate_service_level(date_from, date_to, group) tooltip_date = "%d %b %Y %H:%M:%S %p" extra_series = {"tooltip": {"y_start": "", "y_end": " calls"}, "date_format": tooltip_date} chartdata = { 'x': quality.keys(), 'name1': _('Quality cofficient'), 'y1': quality.values(), 'extra1': extra_series } charttype = "cumulativeLineChart" data = { 'charttype': charttype, 'chartdata': chartdata, } rc = RequestContext(request, {}) rc.autoescape = False res = render_to_response('graph.html', data, rc) return res
def File_form(request): if request.method == 'GET': form = FileForm() data_for_templete = {'form' : form} rc = RequestContext(request, {}) rc.autoescape = False return render_to_response('stock_info/fileimport.html', data_for_templete, rc) else: form = FileForm(request.POST, request.FILES) if form.is_valid(): data = form.cleaned_data['file_name'] try: results = Data_import(data) err_msg = [] if results['not_found']: err_msg.append(unicode(ugettext_lazy('Not found operations: %d' % results['not_found']))) if results['failed']: err_msg.append(unicode(ugettext_lazy('Failed rows: %d' % results['failed']))) if len(err_msg) > 0: messages.error(request, '; '.join(err_msg)) else: messages.info(request, unicode(ugettext_lazy('Success: %s rows' % results['success']))) except: messages.error(request, ugettext_lazy('Import failed')) return HttpResponseRedirect('/admin/stock_info/orderfailure')
def handle(request): if request.method in ['GET','HEAD']: role = dataplus.dictGetSafeVal(request.REQUEST, 'role', '') if role and role.find('_') > 0: role_parts = role.split('_') role_list = findSubFromList(industries, role_parts[0]) if role_list: industries['default'] = role_parts[0] if findSubFromList(role_list, role_parts[1]): role_list['default'] = role_parts[1] context=RequestContext(request) context.autoescape = False return codejar.actions.render(request, 'gallery/index.htm', {'categorization': simplejson.dumps(industries)}, context)
def render_quality(request): if request.method == 'POST': try: date_from = request.POST.get('date_from') date_from = datetime.datetime.strptime(date_from, '%Y-%m-%d').date() date_to = request.POST.get('date_to') date_to = datetime.datetime.strptime(date_to, '%Y-%m-%d').date() except: messages.error(request, ugettext_lazy('Enter a correct date')) return HttpResponseRedirect(request.META['HTTP_REFERER']) group = request.POST.getlist('group') chart_type = request.POST.get('type') rc = RequestContext(request, {}) rc.autoescape = False url = '/admin/stock_info/quality_form?group=%(group)s&date_from=%(date_from)s&date_to=%(date_to)s&type=%(type)s' url = url % {'date_from' : date_from, 'date_to' : date_to, 'group' : ', '.join([g for g in group]), 'type' : chart_type} return HttpResponseRedirect(url) date_from = request.GET.get('date_from') try: date_from = datetime.datetime.strptime(date_from, '%Y-%m-%d').date() date_to = request.GET.get('date_to') date_to = datetime.datetime.strptime(date_to, '%Y-%m-%d').date() if date_to < date_from: raise except: messages.error(request, ugettext_lazy('Enter a correct date')) return HttpResponseRedirect(request.META['HTTP_REFERER']) group = request.GET.get('group').split(', ') chart_type = request.GET.get('type') form = QualityForm(initial=request.GET.copy()) form.initial['group'] = group ydata = [] counter = 1 for g in group: if chart_type == QualityForm.SKU_AMOUNT: x_data, y_data = Orderfailure.calculate_service_level(date_from, date_to, g) elif chart_type == QualityForm.ORDER_AMOUNT: x_data, y_data = Orderfailure.calculate_service_level_by_orders(date_from, date_to, g) ydata.append(['y%s' % counter, y_data, g, 'name%s' % counter]) counter += 1 if 'print' in request.GET.keys(): name_file = "service_level%s.csv" % datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S") mimetype = 'text/csv' export_file = get_data_file(x_data, ydata) response = HttpResponse(content=export_file.getvalue(), mimetype=mimetype) response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(name_file) return response charttype = 'lineChart' chart_data = {'x' : x_data} for d in ydata: chart_data[d[0]] = d[1] chart_data[d[3]] = d[2] data = {'form' : form, 'charttype' : charttype, 'chartdata' : chart_data, 'extra' : {'x_is_date' : True}} rc = RequestContext(request, {}) rc.autoescape = False return render_to_response('stock_info/quality_service.html', data, rc)