def menage(request): compo = request.session.get('compo', default=None) if compo == None: compo = Compo() if compo.scenario.nbIndiv() == 0: compo = Compo() if request.method == 'POST': if 'reset' in request.POST: if 'compo' in request.session: del request.session['compo'] compo = Compo() formset = compo.gen_formset() request.session['compo'] = compo else: ScenarioFormSet = formset_factory(IndividualForm, formset = BaseScenarioFormSet) formset = ScenarioFormSet(request.POST) if formset.is_valid(): compo.scenario = formset.get_scenario() if 'add' in request.POST: compo.addPerson() elif 'remove' in request.POST: compo.scenario.rmvIndiv(compo.scenario.nbIndiv()-1) elif 'validate' in request.POST: print compo.scenario formset = compo.gen_formset() request.session['compo'] = compo if 'submit' in request.POST: compo.scenario.genNbEnf() simu = Simu(compo.scenario) simu.build() # for child in simu.data_courant.children: # for child2 in child.children: # print child2.code # print child2._vals # request.session['data'] = simu.data_courant return render(request, 'mahdi/output.html') else: print 'fromset is not vali in menage' else: formset = compo.gen_formset() request.session['compo'] = compo units = {'foy': range(1,len(compo.scenario.declar)+1), 'fam': range(1,len(compo.scenario.famille)+1), 'ind': range(1,compo.scenario.nbIndiv()+1)} c = {'formset': formset, 'units' : units} c.update(csrf(request)) return render(request, 'mahdi/menage.html', c)
def graphBR(request): #data = request.session['data'] scenario = Scenario() nmen = 11 simu = Simu(scenario=scenario, nmen = nmen) simu.build() data = simu.data_courant if True: # if self.mode == 'bareme': data['salsuperbrut'].setHidden() data['salbrut'].setHidden() data['chobrut'].setHidden() data['rstbrut'].setHidden() codes = [] data.setLeavesVisible() def set_visible_level(node, level): if level == 0: node.visible = True else: node.visible = False for child in node.children: set_visible_level(child, level-1) set_visible_level(data,5) Barem.objects.all().delete() def create_BaremForm(node): ''' Creates waterfall node Forms ''' for child in node.children: create_BaremForm(child) index = 0 if (node.code != 'root') and node.visible: for val in node.vals: index += 1 # r,g,b = node.color form = BaremForm(data = {'code': node.code, 'val': val, 'desc': node.desc, 'x': index }) form.save() codes.append(node.code) create_BaremForm(data) print codes # openfisca_data = DataPool( # series= # [{'options': { # 'source': Barem.objects.all(), # 'categories': ['x']}, # 'terms': [ # 'val', # 'code', # 'desc','x']} # ]) # cht = Chart( # datasource = openfisca_data, # series_options = # [{'options':{ # 'type': 'area', # 'stacking': 'normal', # }, # # 'terms':{ # 'x': [ {'val': {}, # } # ] # }}], # chart_options = # {'title' : { # 'text': 'Openfisca'}, # 'xAxis' : {'categories': codes} # } # ) def sortx(x): y = x[0][0] print y return int(round(float(y)*1e6)) openfisca_data = PivotDataPool( series= [{'options': { 'source': Barem.objects.all(), 'categories': ['x'], 'legend_by': 'code'}, 'terms': { 'val': Sum('val')}, } ], sortf_mapf_mts = (sortx , lambda x: x,True)) #Step 2: Create the Chart object print openfisca_data.series cht = PivotChart( datasource = openfisca_data, series_options = [{'options':{ 'type': 'area', 'stacking': 'normal', }, 'terms':[{'val': {}}, ] }], chart_options = {'title' : { 'text': 'Openfisca'}, 'xAxis' : {'categories': codes} } ) #Step 3: Send the chart object to the template. return render_to_response('mahdi/chartit_graph.html', {'chart': cht})
def graph(request): ## TODO use low as in http://stackoverflow.com/questions/7969300/highcharts-column-chart ## http://fiddle.jshell.net/delfino4747/M8npu/10/ #data = request.session['data'] scenario = Scenario() simu = Simu(scenario=scenario, nmen=1) simu.build() data = simu.data_courant codes = [] data.setLeavesVisible() Node.objects.all().delete() def create_waterfall_NodeForm(node, prv): ''' Creates waterfall node Forms ''' if node.code == 'nivvie': return prev = prv + 0 val = node.vals[0] bot = prev for child in node.children: create_waterfall_NodeForm(child, prev) prev += child.vals[0] if (val != 0) and (node.visible) and (node.code != 'root'): # r,g,b = node.color print node.code form = NodeForm(data = {'code': node.code, 'val': val, 'desc': node.desc, 'low': bot }) form.save() codes.append(node.code) prv = 0 create_waterfall_NodeForm(data, prv) print codes openfisca_data = DataPool( series= [{'options': { 'source': Node.objects.all()}, 'terms': [ 'low', 'val', 'code','desc' ]} ]) #Step 2: Create the Chart object cht = Chart( datasource = openfisca_data, series_options = [{'options':{ 'type': 'column', 'allowPointSelect': 'true' }, 'terms': { 'code' : ['low' , 'val'] } # {}} , # {'start': {'showInLegend': False, # 'color' : 'transparent', # 'shadow' : False, # 'borderColor' : 'transparent', # 'borderWidth' : 0, # #'visible' : False, # }} }], chart_options = {'title' : { 'text': 'Openfisca'}, } ) #Step 3: Send the chart object to the template. return render_to_response('mahdi/chartit_graph.html', {'chart': cht})
def graphBR(request): #data = request.session['data'] scenario = Scenario() nmen = 11 simu = Simu(scenario=scenario, nmen=nmen) simu.build() data = simu.data_courant if True: # if self.mode == 'bareme': data['salsuperbrut'].setHidden() data['salbrut'].setHidden() data['chobrut'].setHidden() data['rstbrut'].setHidden() codes = [] data.setLeavesVisible() def set_visible_level(node, level): if level == 0: node.visible = True else: node.visible = False for child in node.children: set_visible_level(child, level - 1) set_visible_level(data, 5) Barem.objects.all().delete() def create_BaremForm(node): ''' Creates waterfall node Forms ''' for child in node.children: create_BaremForm(child) index = 0 if (node.code != 'root') and node.visible: for val in node.vals: index += 1 # r,g,b = node.color form = BaremForm(data={ 'code': node.code, 'val': val, 'desc': node.desc, 'x': index }) form.save() codes.append(node.code) create_BaremForm(data) print codes # openfisca_data = DataPool( # series= # [{'options': { # 'source': Barem.objects.all(), # 'categories': ['x']}, # 'terms': [ # 'val', # 'code', # 'desc','x']} # ]) # cht = Chart( # datasource = openfisca_data, # series_options = # [{'options':{ # 'type': 'area', # 'stacking': 'normal', # }, # # 'terms':{ # 'x': [ {'val': {}, # } # ] # }}], # chart_options = # {'title' : { # 'text': 'Openfisca'}, # 'xAxis' : {'categories': codes} # } # ) def sortx(x): y = x[0][0] print y return int(round(float(y) * 1e6)) openfisca_data = PivotDataPool(series=[{ 'options': { 'source': Barem.objects.all(), 'categories': ['x'], 'legend_by': 'code' }, 'terms': { 'val': Sum('val') }, }], sortf_mapf_mts=(sortx, lambda x: x, True)) #Step 2: Create the Chart object print openfisca_data.series cht = PivotChart(datasource=openfisca_data, series_options=[{ 'options': { 'type': 'area', 'stacking': 'normal', }, 'terms': [ { 'val': {} }, ] }], chart_options={ 'title': { 'text': 'Openfisca' }, 'xAxis': { 'categories': codes } }) #Step 3: Send the chart object to the template. return render_to_response('mahdi/chartit_graph.html', {'chart': cht})
def graph(request): ## TODO use low as in http://stackoverflow.com/questions/7969300/highcharts-column-chart ## http://fiddle.jshell.net/delfino4747/M8npu/10/ #data = request.session['data'] scenario = Scenario() simu = Simu(scenario=scenario, nmen=1) simu.build() data = simu.data_courant codes = [] data.setLeavesVisible() Node.objects.all().delete() def create_waterfall_NodeForm(node, prv): ''' Creates waterfall node Forms ''' if node.code == 'nivvie': return prev = prv + 0 val = node.vals[0] bot = prev for child in node.children: create_waterfall_NodeForm(child, prev) prev += child.vals[0] if (val != 0) and (node.visible) and (node.code != 'root'): # r,g,b = node.color print node.code form = NodeForm(data={ 'code': node.code, 'val': val, 'desc': node.desc, 'low': bot }) form.save() codes.append(node.code) prv = 0 create_waterfall_NodeForm(data, prv) print codes openfisca_data = DataPool(series=[{ 'options': { 'source': Node.objects.all() }, 'terms': ['low', 'val', 'code', 'desc'] }]) #Step 2: Create the Chart object cht = Chart( datasource=openfisca_data, series_options=[{ 'options': { 'type': 'column', 'allowPointSelect': 'true' }, 'terms': { 'code': ['low', 'val'] } # {}} , # {'start': {'showInLegend': False, # 'color' : 'transparent', # 'shadow' : False, # 'borderColor' : 'transparent', # 'borderWidth' : 0, # #'visible' : False, # }} }], chart_options={ 'title': { 'text': 'Openfisca' }, }) #Step 3: Send the chart object to the template. return render_to_response('mahdi/chartit_graph.html', {'chart': cht})
def menage(request): compo = request.session.get('compo', default=None) if compo == None: compo = Compo() if compo.scenario.nbIndiv() == 0: compo = Compo() if request.method == 'POST': if 'reset' in request.POST: if 'compo' in request.session: del request.session['compo'] compo = Compo() formset = compo.gen_formset() request.session['compo'] = compo else: ScenarioFormSet = formset_factory(IndividualForm, formset=BaseScenarioFormSet) formset = ScenarioFormSet(request.POST) if formset.is_valid(): compo.scenario = formset.get_scenario() if 'add' in request.POST: compo.addPerson() elif 'remove' in request.POST: compo.scenario.rmvIndiv(compo.scenario.nbIndiv() - 1) elif 'validate' in request.POST: print compo.scenario formset = compo.gen_formset() request.session['compo'] = compo if 'submit' in request.POST: compo.scenario.genNbEnf() simu = Simu(compo.scenario) simu.build() # for child in simu.data_courant.children: # for child2 in child.children: # print child2.code # print child2._vals # request.session['data'] = simu.data_courant return render(request, 'mahdi/output.html') else: print 'fromset is not vali in menage' else: formset = compo.gen_formset() request.session['compo'] = compo units = { 'foy': range(1, len(compo.scenario.declar) + 1), 'fam': range(1, len(compo.scenario.famille) + 1), 'ind': range(1, compo.scenario.nbIndiv() + 1) } c = {'formset': formset, 'units': units} c.update(csrf(request)) return render(request, 'mahdi/menage.html', c)