Example #1
0
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
Example #2
0
    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)
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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