예제 #1
0
def client_orders(request, client_id):
    row_names, data = list_request(request, 'client_orders', [int(client_id)])
    is_ready_index = row_names.index('Is ready')
    data = convert_to_type(data, bool, is_ready_index)

    return render(request, 'django_app/client_orders_list.html',
                  {"headers": row_names, "data": data})
예제 #2
0
def get_order_info(request, order_id):
    row_names, data = list_request(request, 'get_order_info', [int(order_id)])
    is_ready_index = row_names.index('Is ready')

    data = convert_to_type(data, bool, is_ready_index)
    return render(request, 'django_app/order_status.html',
                  {"headers": row_names, "data": data})
예제 #3
0
def client_info(request, client_id):
    row_names, data = list_request(request, 'client_info', [int(client_id)])
    is_ready_index = row_names.index('Best client')
    data = convert_to_type(data, bool, is_ready_index)

    return render(request, 'django_app/client_info.html',
                  {"headers": row_names, "data": data,
                   'extra_thing': {'url': 'django_app:update_client', 'text': 'Update client'}
                   })
예제 #4
0
def client_orders_ready_not_returned(request, client_id):
    row_names, data = list_request(request, 'ready_not_returned', [int(client_id)])
    is_ready_index = row_names.index('Is ready')
    data = convert_to_type(data, bool, is_ready_index)

    extra_thing = None
    if 'connection' in request.COOKIES and request.COOKIES['connection'] == 'worker':
        extra_thing = {'url': 'django_app:return_order', 'text': 'Return'}
    return render(request, 'django_app/orders_ready_not_returned_list.html',
                  {"headers": row_names, "data": data, 'extra_thing': extra_thing})
예제 #5
0
 def parse_xml(self, data_file_name):
     xml = ET.parse(data_file_name)
     root = xml.getroot()
     string = "\{(.*?)\}"
     prefix = re.search(string, root.tag)[0]
     data_dict = {}
     for tname in root.findall('.//' + prefix + 'ClinicalVariables'):
         attribute = tname.find(prefix + 'TypeName').text
         if attribute not in data_dict.keys():
             data_dict[attribute] = []
         data_dict[attribute].append(
             convert_to_type(tname.find(prefix + 'Value').text))
     data = pd.DataFrame.from_dict(data_dict)
     del data_dict
     return data
예제 #6
0
 def f_validate(numpy_type, value):
     try:
         utils.convert_to_type(numpy_type, value)
     except ValueError:
         return "'{0}' is not convertible to '{1}' type.".format(
             value, utils.numpy_type_to_string(numpy_type))
예제 #7
0
    def run(self, app, table):
        assistant = settingswindow.BasicSettingAssistant(3,
                                                         "Filter setting",
                                                         app.window)
        assistant.set_size_request(600, 400)

        def create_page_1(setting):
            items = [(label, idx, False)
                     for idx, label in enumerate(table.header)]
            s_widget = settingswindow.SettingWidget()
            s_widget.add_checkbuttons_list(
                "selected_cols", "Columns", items, ["Column", "Select?"])
            return s_widget

        def create_page_2(setting):
            items = [(label, idx, False)
                     for idx, label in enumerate(table.header)]
            s_widget = settingswindow.SettingWidget()
            s_widget.add_checkbuttons_list(
                "filter_by", "Filter by columns", items, ["Column", "Select?"])
            return s_widget

        def create_page_3(setting):
            filter_by_columns = setting.get_value("filter_by")
            filter_by_columns.sort()
            s_widget = settingswindow.SettingWidget()

            def f_validate(numpy_type, value):
                try:
                    utils.convert_to_type(numpy_type, value)
                except ValueError:
                    return "'{0}' is not convertible to '{1}' type.".format(
                        value, utils.numpy_type_to_string(numpy_type))

            for idx, col_idx in enumerate(filter_by_columns):
                if idx > 0:
                    s_widget.add_separator()
                s_widget.add_entry("filter_value{0}".format(col_idx),
                                   table.header[col_idx],
                                   "",
                                   validator=partial(f_validate,
                                                     table.types[col_idx]))
                s_widget.add_radiobuttons("cmp_fn{0}".format(col_idx),
                                          "Compare",
                                          [("Equal", lambda x, y: x == y),
                                           ("Not equal", lambda x, y: x != y),
                                           ("Less than", lambda x, y: x < y),
                                           ("Greater than", lambda x, y: x > y)],
                                          ncols=2)
            return s_widget

        assistant.append_setting_widget("Select columns", create_page_1)
        assistant.append_setting_widget("Filter rows", create_page_2)
        assistant.append_setting_widget("Set filters", create_page_3)

        if assistant.run() != RESPONSE_APPLY:
            return

        selected_columns = assistant.get_setting("selected_cols")
        filter_by_columns = assistant.get_setting("filter_by")

        filters = []
        for col_idx in filter_by_columns:
            cmp_function = assistant.get_setting("cmp_fn{0}".format(col_idx))
            value = assistant.get_setting("filter_value{0}".format(col_idx))
            value = utils.convert_to_type(table.types[col_idx], value)
            filters.append((table.header[col_idx], cmp_function, value))

        filtered = table.select(selected_columns, filters)
        t = Table.create_from_data(filtered)
        return Source("Filtered table", t_table, t)