def make_search_breadcumbs(attrs, values): attrs_values = get_pairs(attrs, values) search_breadcumbs = [] search_url = urlresolvers.reverse('ssearch:frontend:index') attrs_prepare = [] values_prepare = [] for attr, value in attrs_values: attr_url_part = u'attr=' + attr value_url_part = u'q=' + urlquote(value) search_breadcumbs.append({ 'attr': attr, 'title': get_attr_title(attr), 'href': search_url + u'?' + u'&'.join(attrs_prepare) + u'&' + attr_url_part + u'&' + u'&'.join( values_prepare) + u'&' + value_url_part, 'value': get_attr_value_title(attr, value) }) attrs_prepare.append(attr_url_part) values_prepare.append(value_url_part) return search_breadcumbs
def to_human_read(self, parent=None, lang=u'ru'): operators_title = { u'AND': { u'ru': u'И' }, u'OR': { u'ru': u'ИЛИ' }, u'NOT': { u'ru': u'НЕ' }, } query_string_parts = [] if parent: query_string_parts.append(u'(') for i, query_part in enumerate(self.query): if isinstance(query_part, dict): query_string_parts.append(u'%s:"%s"' % ( titles.get_attr_title(query_part['k']), query_part['v'])) elif isinstance(query_part, SearchCriteria): query_string_parts.append(query_part.to_human_read(parent=True, lang=lang)) if i < len(self.query) - 1: try: operator_title = operators_title[self.operator][lang] except KeyError: operator_title = self.operator query_string_parts.append(u' ' + operator_title + u' ') if parent: query_string_parts.append(u')') return u''.join(query_string_parts)
def get_search_attrs(): attrs = search_attrs titled_attrs = [] for attr in attrs: titled_attrs.append((attr[0], get_attr_title(attr[0]))) return titled_attrs
def requests_by_attributes(start_date=None, end_date=None, attributes=list(), catalogs=list()): if not start_date: start_date = datetime.datetime.now() if not end_date: end_date = datetime.datetime.now() start_date = start_date.strftime('%Y-%m-%d 00:00:00') end_date = end_date.strftime('%Y-%m-%d 23:59:59') select = u""" SELECT count(search_searchrequestlog.use) as count, search_searchrequestlog.use as attribute FROM search_searchrequestlog """ params = [] where = ['WHERE date(datetime) BETWEEN %s AND %s '] params.append(start_date) params.append(end_date) if catalogs: # if len(catalogs) == 1: # where.append('AND ' + 'search_searchrequestlog.catalog = "%s" ' % catalogs[0] ) # else: catalogs_where = [] for catalog in catalogs: catalogs_where.append(' search_searchrequestlog.catalog = "%s" ' % catalog) where.append('AND (' + u'OR'.join(catalogs_where) + ')') if attributes: attributes_args = [] for attribute in attributes: attributes_args.append(u'%s') params.append(attribute) attributes_args = u', '.join(attributes_args) where.append(' AND search_searchrequestlog.use in (%s) ' % attributes_args) where = u' '.join(where) results = execute( select + ' ' + where + u""" GROUP BY search_searchrequestlog.use ORDER BY count desc; """, params ) rows = [] for row in results: rows.append((titles.get_attr_title(row['attribute']), row['count'])) return rows
def replace_facet_values(facets, key=None, replacer=None): titled_facets = {} for facet in facets.keys(): titled_facets[facet] = { 'title': get_attr_title(facet) } titled_facets[facet]['values'] = [] titled_valuses = titled_facets[facet]['values'] for fvalue in facets[facet]: titled_valuses.append( (fvalue[0], fvalue[1], get_attr_value_title(facet, fvalue[0])) ) return titled_facets
def get_search_attributes_in_log(): select = """ SELECT search_searchrequestlog.use as attribute FROM search_searchrequestlog GROUP BY search_searchrequestlog.use """ results = execute(select, []) choices = [] for row in results: choices.append( ( row['attribute'], titles.get_attr_title(row['attribute']) ) ) return choices