Passed
Push — 2.x ( e94308...699219 )
by Jordi
09:28
created

senaite.core.catalog.indexer.label   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 18
dl 0
loc 33
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A listing_searchable_text() 0 16 2
A labels() 0 6 1
1
# -*- coding: utf-8 -*-
2
3
from bika.lims import api
4
from plone.indexer import indexer
5
from senaite.core.api import label as label_api
6
from senaite.core.interfaces import IHaveLabels
7
8
9
@indexer(IHaveLabels)
10
def labels(instance):
11
    """Returns a list of labels for the given instance
12
    """
13
    labels = label_api.get_obj_labels(instance)
14
    return map(api.safe_unicode, labels)
15
16
17
@indexer(IHaveLabels)
18
def listing_searchable_text(instance):
19
    """Retrieves most commonly searched values for fulltext search
20
21
    :returns: string with search terms
22
    """
23
    entries = set()
24
25
    labels = label_api.get_obj_labels(instance)
26
    if labels:
27
        entries.update(set(labels))
28
29
    entries.add(instance.getId())
30
    entries.add(instance.Title())
31
32
    return u" ".join(map(api.safe_unicode, entries))
33