Esempio n. 1
0
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_value: List) -> SQLInsertClause:
     python_value = self.python_value_to_indexed_field_value(
         python_value)  # type: Set[str]
     db_value = ', '.join(sorted(python_value)) if python_value else None
     return SQLInsertClause('"{column}"'.format(column=self.column), [],
                            '%s', [db_value])
Esempio n. 2
0
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_value: List) -> SQLInsertClause:
     address = self.python_value_to_indexed_field_value(
         python_value)  # type: Dict[str, Any]
     db_value = str(address.get('address') or '') if address else None
     return SQLInsertClause('"{column}"'.format(column=self.column), [],
                            '%s', [db_value])
Esempio n. 3
0
 def get_pg_sql_insert_clause(
         self, document_language: str,
         python_values: Dict[str, Any]) -> SQLInsertClause:
     python_value = python_values.get(self.field_code)
     return SQLInsertClause(
         '"{column}"'.format(column=self.column), [], '%s',
         [self.python_value_to_indexed_field_value(python_value)])
Esempio n. 4
0
    def get_pg_sql_insert_clause(self, document_language: str,
                                 document_ids: List) -> SQLInsertClause:
        document_ids = self.python_value_to_indexed_field_value(
            document_ids)  # type: Set[int]

        links = list()  # List[Tuple[str, str]]

        if document_ids:
            for document_id, document_name, document_type_code, project_id \
                    in Document.all_objects \
                    .filter(pk__in=document_ids) \
                    .values_list('id', 'name', 'document_type__code', 'project_id') \
                    .order_by('id'):
                links.append((document_name,
                              doc_editor_url(document_type_code, project_id,
                                             document_id)))

            links = [
                '<a href="{1}">{0}</a>'.format(doc_name, doc_id)
                for doc_name, doc_id in links
            ]
            document_ids = [str(doc_id) for doc_id in document_ids]

        return SQLInsertClause(
            '"{ids_column}", '
            '"{links_column}"'.format(ids_column=self.document_ids_column,
                                      links_column=self.document_links_column),
            [], '%s, %s', [
                ', '.join(document_ids) if document_ids else None,
                '\n'.join(links) if links else None
            ])
Esempio n. 5
0
 def get_pg_sql_insert_clause(
         self, document_language: str,
         python_values: Dict[str, Any]) -> SQLInsertClause:
     python_value = python_values.get(self.field_code)
     values = [i for i in python_value if i] if python_value else None
     db_value = '\n{}\n'.format('_' * 20).join(values) if values else None
     return SQLInsertClause('"{column}"'.format(column=self.column), [],
                            '%s', [db_value])
 def get_pg_sql_insert_clause(self, document_language: str, python_values: Dict[str, Any]) -> SQLInsertClause:
     python_value = python_values.get(self.field_code)
     money = self.python_value_to_indexed_field_value(python_value)  # Dict
     currency = money.get('currency') if money else None
     amount = money.get('amount') if money else None
     return SQLInsertClause('"{currency_column}", '
                            '"{amount_column}"'.format(currency_column=self.currency_column,
                                                       amount_column=self.amount_column), [],
                            '%s, %s', [currency, amount])
 def get_pg_sql_insert_clause(self, document_language: str, python_values: Dict[str, Any]) -> SQLInsertClause:
     python_value = python_values.get(self.field_code)
     db_value_for_search = self.python_value_to_single_db_value_for_text_search(python_value)
     db_value_for_output = self.python_value_to_indexed_field_value(python_value)
     return SQLInsertClause('"{output_column}", "{text_search_column}"'
                            .format(output_column=self.output_column, text_search_column=self.text_search_column),
                            [],
                            '%s, to_tsvector(%s, %s)',
                            [db_value_for_output, PG_DEFAULT_LANGUAGE, db_value_for_search])
Esempio n. 8
0
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_value) -> SQLInsertClause:
     yes_no = self.python_value_to_indexed_field_value(python_value)
     related_info_text = '\n'.join([str(v) for v in python_value
                                    if v]) if python_value else None
     return SQLInsertClause(
         '"{column}", "{text_column}"'.format(column=self.column,
                                              text_column=self.text_column),
         [], '%s, %s', [yes_no, related_info_text])
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_values: List) -> SQLInsertClause:
     yes_no = bool(python_values or self.default_value)
     related_info_text = '\n'.join([str(v) for v in python_values
                                    if v]) if python_values else None
     return SQLInsertClause(
         '"{column}", "{text_column}"'.format(column=self.column,
                                              text_column=self.text_column),
         [], '%s, %s', [yes_no, related_info_text])
 def get_pg_sql_insert_clause(self, document_language: str, python_values: Dict[str, Any]) -> SQLInsertClause:
     python_value = python_values.get(self.field_code)
     res = self.python_value_to_indexed_field_value(python_value)  # Dict
     numerator = res.get('numerator') if res else None
     denominator = res.get('denominator') if res else None
     return SQLInsertClause('"{numerator_column}", '
                            '"{denominator_column}"'.format(numerator_column=self.numerator,
                                                            denominator_column=self.denominator), [],
                            '%s, %s', [numerator, denominator])
Esempio n. 11
0
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_value: List) -> SQLInsertClause:
     res = self.python_value_to_indexed_field_value(python_value)  # Dict
     numerator = res.get('numerator') if res else None
     consequent = res.get('consequent') if res else None
     return SQLInsertClause(
         '"{numerator_column}", '
         '"{consequent_column}"'.format(numerator_column=self.numerator,
                                        consequent_column=self.consequent),
         [], '%s, %s', [numerator, consequent])
Esempio n. 12
0
 def get_pg_sql_insert_clause(
         self, document_language: str,
         python_values: Dict[str, Any]) -> SQLInsertClause:
     ref_id = python_values.get(self.select_text_ref_id_field_code)
     return SQLInsertClause(
         columns_sql=f'"{self.output_column}", "{self.text_search_column}"',
         columns_params=[],
         values_sql=
         f'({self.select_text_sql}), to_tsvector(%s, ({self.select_text_sql}))',
         values_params=[ref_id, PG_DEFAULT_LANGUAGE, ref_id])
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_values: List) -> SQLInsertClause:
     money = first_or_none(python_values) or self.default_value  # Dict
     currency = money.get('currency') if money else None
     amount = money.get('amount') if money else None
     return SQLInsertClause(
         '"{currency_column}", '
         '"{amount_column}"'.format(currency_column=self.currency_column,
                                    amount_column=self.amount_column), [],
         '%s, %s', [currency, amount])
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_values: List) -> SQLInsertClause:
     db_value_for_search = self.python_values_to_single_db_value_for_text_search(
         python_values)
     db_value_for_output = self.python_values_to_single_db_value_for_output(
         python_values)
     return SQLInsertClause(
         '"{output_column}", "{text_search_column}"'.format(
             output_column=self.output_column,
             text_search_column=self.text_search_column), [],
         '%s, to_tsvector(%s, %s)',
         [db_value_for_output, PG_DEFAULT_LANGUAGE, db_value_for_search])
    def get_pg_sql_insert_clause(self, document_language: str, python_values: Dict[str, Any]) -> SQLInsertClause:
        python_value = python_values.get(self.field_code)
        yes_no = self.python_value_to_indexed_field_value(python_value)

        related_info_text = None
        if python_value:
            if hasattr(python_value, '__iter__'):
                related_info_text = '\n'.join([str(v) for v in python_value if v]) if python_value else None
            else:
                related_info_text = str(python_value)

        return SQLInsertClause('"{column}", "{text_column}"'.format(column=self.column, text_column=self.text_column),
                               [],
                               '%s, %s', [yes_no, related_info_text])
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_values: List) -> SQLInsertClause:
     return SQLInsertClause(
         '"{column}"'.format(column=self.column), [], '%s',
         [self.python_values_to_single_db_value(python_values)])
Esempio n. 17
0
 def get_pg_sql_insert_clause(self, document_language: str,
                              python_value: List) -> SQLInsertClause:
     return SQLInsertClause(
         '"{column}"'.format(column=self.column), [], '%s',
         [self.python_value_to_indexed_field_value(python_value)])