예제 #1
0
def ajax():
    if check_passwd(request.get_cookie("mdp")) == False:
        return template('authentification', get_url=app.get_url)
    reader = codecs.getreader("utf-8")
    query = json.load(reader(request.body))

    if query['type'] == "question":
        if query['method'] == 'PE':
            return methods.PE(float(query['min_interval']),
                              float(query['max_interval']),
                              float(query['proba']), int(query['choice']),
                              str(query['mode']))
        elif query['method'] == 'LE':
            return methods.LE(float(query['min_interval']),
                              float(query['max_interval']),
                              float(query['proba']), int(query['choice']),
                              str(query['mode']))
        elif query['method'] == 'CE_Constant_Prob':
            return methods.CE(float(query['min_interval']),
                              float(query['max_interval']),
                              float(query['gain']), int(query['choice']),
                              str(query['mode']))
        else:
            return query['method']

    elif query['type'] == "calc_util":
        return fit.regressions(query['points'])

    elif query['type'] == "calc_util_multi":
        return fit.multipoints(query['points'])

    elif query['type'] == "k_calculus":
        if query['number'] == 2:
            return kcalc.calculk2(query['k']['k1'], query['k']['k2'])
        elif query['number'] == 3:
            return kcalc.calculk3(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'])
        elif query['number'] == 4:
            return kcalc.calculk4(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'], query['k']['k4'])
        elif query['number'] == 5:
            return kcalc.calculk5(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'], query['k']['k4'],
                                  query['k']['k5'])
        elif query['number'] == 6:
            return kcalc.calculk6(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'], query['k']['k4'],
                                  query['k']['k5'], query['k']['k6'])

    elif query['type'] == "utility_calculus_multiplicative":
        return kcalc.calculUtilityMultiplicative(query['k'], query['utility'])
    elif query['type'] == "utility_calculus_multilinear":
        return kcalc.calculUtilityMultilinear(query['k'], query['utility'])

    elif query['type'] == "svg":
        dictionary = query['data']
        min = float(query['min'])
        max = float(query['max'])
        liste_cord = query['liste_cord']
        width = query['width']
        return plot.generate_svg_plot(dictionary, min, max, liste_cord, width)

    elif query['type'] == "svgg":
        dictionary = query['data']
        min = float(query['min'])
        max = float(query['max'])
        liste_cord = query['liste_cord']
        width = query['width']
        choice = query['choice']
        return plot.generate_svg_plot2(dictionary, min, max, liste_cord, width,
                                       choice)

    elif query['type'] == "svg_QUALI":
        dictionary = query['data']
        list_names = query['list_names']
        width = query['width']
        return plot.generate_svg_plot_QUALI(dictionary, list_names, width)

    elif query['type'] == "pie_chart":
        names = query['names']
        probas = query['probas']
        return plot.pie_chart(names, probas)

    elif query['type'] == "export_xlsx":
        return export_xlsx.generate_fichier(query['data'])

    elif query['type'] == "export_xlsx_option":
        return export_xlsx.generate_fichier_with_specification(query['data'])

    elif query['type'] == "latex_render":
        return latex_render.render(query['formula'])

    elif query['type'] == "tree":
        return draw_tree.draw(query['gain'], query['upper_label'],
                              query['bottom_label'], query['upper_proba'],
                              query['bottom_proba'], query['assess_type'])
예제 #2
0
def ajax():
    if check_passwd(request.get_cookie("mdp")) == False:
        return template('authentification', get_url=app.get_url)
    reader = codecs.getreader("utf-8")
    query = json.load(reader(request.body))
    """
    query = {'type': 'export_xlsx', 
             'data': 
                 {'attributes': 
                  [{'type': 'Quantitative', 'name': 'pieniche', 'unit': 'euros', 'val_min': 20, 'val_med': ['40', '60', '80'], 'val_max': 100, 'method': 'PE', 'mode': 'Normal', 'completed': 'False', 'checked': True, 'questionnaire': {'number': 3, 'points': {'40': 0.43, '60': 0.86, '80': 0.82}, 'utility': {}}, 'fonction': 'exponential', 'numero': 0, 'pts': {'points': [1, 2, 3], 'coord': [[40, 0.43], [60, 0.86], [80, 0.82], [20, 0], [100, 1]], 'exp': {'a': -1.963679476149352, 'b': 0.028213793872664365, 'c': 1.116885624561104, 'r2': 0.9669098127318985}, 'quad': {'a': -0.5720588230939125, 'b': 0.00016102941154695627, 'c': 0.03182352938563475, 'r2': 0.9609977126945451}, 'pow': {'a': 2.2107646754127557, 'b': 1.3371874567609472, 'c': -4.168783582605269, 'r2': 0.9633217332780892}, 'lin': {'a': 0.0125, 'b': -0.25, 'r2': 0.7480678661997344}, 'expo-power': {'a': -1825.2176950884375, 'b': -7.508435131653395, 'c': 4.5317707067475485e-05, 'r2': 0.9498855834689701}}}, 
                   {'type': 'Quantitative', 'name': 'ccxw', 'unit': 'cxw', 'val_min': 10, 'val_med': ['32.5', '55', '77.5'], 'val_max': 100, 'method': 'PE', 'mode': 'Normal', 'completed': 'False', 'checked': True, 'questionnaire': {'number': 3, 'points': {'55': 0.76, '32.5': 0.32, '77.5': 0.96}, 'utility': {}}, 'fonction': '', 'numero': 0}], 
                  'k_calculus': 
                  [{'method': 'multiplicative', 'active': True, 'k': [], 'GK': None, 'GU': None}, 
                   {'method': 'multilinear', 'active': False, 'k': [], 'GK': None, 'GU': None}], 
                  'settings': 
                   {'decimals_equations': '2', 'decimals_dpl': '8', 'proba_ce': '0.3', 'proba_le': '0.3', 'language': 'french', 'display': 'trees'}
                 }
            }
    """

    if query['type'] == "question":
        if query['method'] == 'PE':
            return methods.PE(float(query['min_interval']),
                              float(query['max_interval']),
                              float(query['proba']), int(query['choice']),
                              str(query['mode']))
        elif query['method'] == 'LE':
            return methods.LE(float(query['min_interval']),
                              float(query['max_interval']),
                              float(query['proba']), int(query['choice']),
                              str(query['mode']))
        elif query['method'] == 'CE_Constant_Prob':
            return methods.CE(float(query['min_interval']),
                              float(query['max_interval']),
                              float(query['gain']), int(query['choice']),
                              str(query['mode']))
        else:
            return query['method']

    elif query['type'] == "calc_util":
        return fit.regressions(query['points'])

    elif query['type'] == "calc_util_multi":
        return fit.multipoints(query['points'])

    elif query['type'] == "k_calculus":
        if query['number'] == 2:
            return kcalc.calculk2(query['k']['k1'], query['k']['k2'])
        elif query['number'] == 3:
            return kcalc.calculk3(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'])
        elif query['number'] == 4:
            return kcalc.calculk4(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'], query['k']['k4'])
        elif query['number'] == 5:
            return kcalc.calculk5(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'], query['k']['k4'],
                                  query['k']['k5'])
        elif query['number'] == 6:
            return kcalc.calculk6(query['k']['k1'], query['k']['k2'],
                                  query['k']['k3'], query['k']['k4'],
                                  query['k']['k5'], query['k']['k6'])

    elif query['type'] == "utility_calculus_multiplicative":
        return kcalc.calculUtilityMultiplicative(query['k'], query['utility'],
                                                 query['virgule'])
    elif query['type'] == "utility_calculus_multilinear":
        return kcalc.calculUtilityMultilinear(query['k'], query['utility'],
                                              query['virgule'])

    elif query['type'] == "svg":
        dictionary = query['data']
        min_ = float(query['min'])
        max_ = float(query['max'])
        liste_cord = query['liste_cord']
        width = query['width']
        liste = query['liste']
        return plot.generate_svg_plot(dictionary, min_, max_, liste_cord,
                                      width, liste)

    elif query['type'] == "svgg":
        dictionary = query['data']
        min = float(query['min'])
        max = float(query['max'])
        liste_cord = query['liste_cord']
        width = query['width']
        choice = query['choice']
        return plot.generate_svg_plot2(dictionary, min, max, liste_cord, width,
                                       choice)

    elif query['type'] == "svg_QUALI":
        dictionary = query['data']
        list_names = query['list_names']
        width = query['width']
        return plot.generate_svg_plot_QUALI(dictionary, list_names, width)

    elif query['type'] == "pie_chart":
        names = query['names']
        probas = query['probas']
        return plot.pie_chart(names, probas)

    elif query['type'] == "demande_de_transformation":
        return selecteur.selecteur1(query['data'], query['numero'])

    elif query['type'] == "export_xlsx":
        return export_xlsx.generate_fichier(query['data'])

    elif query['type'] == "export_xlsx_option":
        return export_xlsx.generate_fichier_with_specification(query['data'])

    elif query['type'] == "latex_render":
        return latex_render.render(query['formula'])

    elif query['type'] == "tree":
        return draw_tree.draw(query['gain'], query['upper_label'],
                              query['bottom_label'], query['upper_proba'],
                              query['bottom_proba'], query['assess_type'])