コード例 #1
0
ファイル: views.py プロジェクト: allysonbarros/openeasier
    def post(self, request, table_name):
        db_config = DBConfig.objects.get(id=request.POST['database_id'])
        table_schema = request.POST['table_schema']

        table_extractor = TableExtractor(db_config, table_name, table_schema)
        table_columns = table_extractor.get_columns(special_columns=False,
                                                    limit=3)

        data = table_extractor.get_data(table_columns, 5)

        if len(table_extractor.get_special_columns()) > 1:
            has_secondary = True
        else:
            has_secondary = False

        columns = list()
        for item in data[0]:
            column = {'name': item, 'verbose_name': util.verbose_name(item)}
            columns.append(column)

        PARAMETERS = {
            'database': db_config,
            'table_name': table_name,
            'verbose_table_name': util.verbose_name(table_name),
            'table_schema': table_schema,
            'primary_key': table_extractor.get_primary_key_name(),
            'columns': columns,
            'data': data,
            'has_secondary': has_secondary,
        }

        return render(request, self.template_name, PARAMETERS)
コード例 #2
0
ファイル: views.py プロジェクト: allysonbarros/openeasier
    def post(self, request, table_name):
        db_config = DBConfig.objects.get(id=request.POST['database_id'])
        table_schema = request.POST['table_schema']

        table_extractor = TableExtractor(db_config, table_name, table_schema)

        fk_tables = table_extractor.get_special_columns(only_fk=True)

        tables = list()

        for fk_table in fk_tables:

            temp_table_extractor = TableExtractor(db_config,
                                                  fk_table.get('table_name'),
                                                  fk_table.get('table_schema'))
            table_columns = temp_table_extractor.get_columns(
                special_columns=False)
            data = temp_table_extractor.get_data(table_columns, 5)

            columns = list()

            for table_column in table_columns:
                column = {
                    'name':
                    table_column.get('column_name'),
                    'verbose_name':
                    util.verbose_name(table_column.get('column_name'))
                }
                columns.append(column)

            table = {
                'table_name': fk_table.get('table_name'),
                'table_name_verbose':
                util.verbose_name(fk_table.get('table_name')),
                'table_schema': fk_table.get('table_schema'),
                'table_primary_key':
                temp_table_extractor.get_primary_key_name(),
                'table_fk_column': fk_table.get('column_name'),
                'columns': columns,
                'data': data,
            }
            tables.append(table)

        PARAMETERS = {
            'database': db_config,
            'table_name': table_name,
            'table_schema': table_schema,
            'tables': tables,
            'primary_key': request.POST['primary_key'],
            'columns': util.get_items_post(request.POST, 'column_'),
        }

        return render(request, self.template_name, PARAMETERS)
コード例 #3
0
ファイル: views.py プロジェクト: allysonbarros/openeasier
    def get(self, request, resource_id):
        resource = Resource.objects.get(id=resource_id)

        try:
            data_dictionary = ResourceDataDictionary.objects.get(
                resource=resource)
        except Exception:
            data_dictionary = None

        data = DBColumn.objects.filter(db_table=resource.table)

        columns = list()

        for item in data:
            column = {
                'id': item.id,
                'name': item.name,
                'dd_description': item.dd_description,
                'verbose_name': util.verbose_name(item.name)
            }
            columns.append(column)

        for temp_table in DBTable.objects.filter(db_table=resource.table):
            data_fk = DBColumn.objects.filter(db_table=temp_table)

            for item in data_fk:
                column = {
                    'id':
                    item.id,
                    'name':
                    item.name,
                    'dd_description':
                    item.dd_description,
                    'verbose_name':
                    util.verbose_name(temp_table.name) + " - " +
                    util.verbose_name(item.name)
                }
                columns.append(column)

        PARAMETERS = {
            'resource': resource,
            'data_dictionary': data_dictionary,
            'columns': columns,
        }

        return render(request, self.template_name, PARAMETERS)
コード例 #4
0
ファイル: views.py プロジェクト: allysonbarros/openeasier
    def post(self, request):
        search = util_search.create_search_list(request.POST['search'])
        db_config = DBConfig.objects.get(id=request.POST['database_id'])

        user_databases = self.get_user_databases(request.user)
        user_schemas = DBSchema.objects.filter(
            userschema__user_id=request.user.id)

        extractor = DatabaseExtractor(db_config)
        tables = extractor.get_tables_by_words(search, user_schemas)

        for table in tables:
            table_extractor = TableExtractor(db_config,
                                             table.get('table_name'),
                                             table.get('table_schema'))

            table['verbose_name'] = util.verbose_name(table.get('table_name'))

            table_columns = table_extractor.get_columns(special_columns=False,
                                                        limit=3)

            verbose_columns = []
            for column in table_columns:
                verbose_columns.append(
                    util.verbose_name(column.get('column_name')))

            table['columns'] = verbose_columns

            table_data_sample = table_extractor.get_data(table_columns, 2)
            table['sample'] = table_data_sample

        PARAMETERS = {
            'search_word': request.POST['search'],
            'search': search,
            'user_databases': user_databases,
            'database': db_config,
            'tables': tables,
        }

        return render(
            request,
            self.template_name,
            PARAMETERS,
        )