def get_product_filters(): schema = {} for key in get_register_fields(): if key.startswith('DFT-'): filter_key = key[4:] schema[filter_key] = fields_registry[key] return schema
def _get_dynamic_catalog_values(self): values = {} dynamic_schema = self.get_dynamic_schema() for key, datatype in get_product_filters().items(): register_key = 'DFT-%s' % key if key in dynamic_schema: value = self.get_dynamic_property(key, dynamic_schema) if value and getattr(datatype, 'is_range', False): value = int(value * 100) if value: values[register_key] = value # Dynamic indexation register_fields = get_register_fields() model = self.get_product_model() if model is None: return {} for key, datatype in self.get_dynamic_schema().items(): # We index dynamic properties that correspond to # an EnumerateTable datatype. # So we are able to know if enumerate value is used or not if issubclass(datatype, EnumerateTable_to_Enumerate) is True: register_key = 'DFT-%s' % datatype.enumerate_name if register_key not in register_fields: register_field(register_key, String(is_indexed=True)) if datatype.multiple is True: values[register_key] = ' '.join(self.get_property(key)) else: values[register_key] = self.get_property(key) return values
def get_quantity(self, resource, context, item): get_value = resource.handler.get_record_value name = get_value(item, 'name') # On products quantity = 0 register_key = 'DFT-%s' % resource.name if register_key not in get_register_fields(): register_field(register_key, String(is_indexed=True)) query = PhraseQuery(register_key, name) quantity += len(context.root.search(query)) # On declination register_key = 'DFT-DECL-%s' % resource.name if register_key not in get_register_fields(): register_field(register_key, String(is_indexed=True)) query = PhraseQuery(register_key, name) quantity += len(context.root.search(query)) return quantity
def get_quantity(self, resource, context, item): get_value = resource.handler.get_record_value name = get_value(item, "name") # On products quantity = 0 register_key = "DFT-%s" % resource.name if register_key not in get_register_fields(): register_field(register_key, String(is_indexed=True)) query = PhraseQuery(register_key, name) quantity += len(context.root.search(query)) # On declination register_key = "DFT-DECL-%s" % resource.name if register_key not in get_register_fields(): register_field(register_key, String(is_indexed=True)) query = PhraseQuery(register_key, name) quantity += len(context.root.search(query)) return quantity
def _get_dynamic_catalog_values(self): values = {} register_fields = get_register_fields() for key, datatype in self.get_dynamic_schema().items(): if issubclass(datatype, EnumerateTable_to_Enumerate) is True: register_key = 'DFT-DECL-%s' % datatype.enumerate_name if register_key not in register_fields: register_field(register_key, String(is_indexed=True)) if datatype.multiple is True: values[register_key] = ' '.join(self.get_property(key)) else: values[register_key] = self.get_property(key) return values
abspath = self.get_canonical_path() query = AndQuery(PhraseQuery('parent_paths', str(abspath)), PhraseQuery('format', 'category')) return len(root.search(query)) @property def nb_products(self): return self.get_nb_products() @property def nb_categories(self): return self.get_nb_categories() ############################# # Export ############################# export = Export(export_resource=Product, access='is_allowed_to_edit', file_columns=[ 'reference', 'state', 'frontoffice_uri', 'cover_uri', 'manufacturer', 'price_with_tax', 'description' ]) register_resource_class(Category) # Add m_title field if it does not already exist if 'm_title' in get_register_fields() is False: register_field('m_title', Unicode(is_stored=True, is_indexed=True)) register_field('m_breadcrumb_title', Unicode(is_stored=True, is_indexed=True))
return len(root.search(query)) @property def nb_products(self): return self.get_nb_products() @property def nb_categories(self): return self.get_nb_categories() ############################# # Export ############################# export = Export(export_resource=Product, access='is_allowed_to_edit', file_columns=['reference', 'state', 'frontoffice_uri', 'cover_uri', 'manufacturer', 'price_with_tax', 'description']) register_resource_class(Category) # Add m_title field if it does not already exist if 'm_title' in get_register_fields() is False: register_field('m_title', Unicode(is_stored=True, is_indexed=True)) register_field('m_breadcrumb_title', Unicode(is_stored=True, is_indexed=True))