Example #1
0
    def extract_document(cls, obj_id, obj=None):
        """Method used by elasticutils."""
        if obj is None:
            obj = cls.objects.get(pk=obj_id)
        d = {}

        attrs = ('id', 'is_vouched', 'ircname',
                 'region', 'city', 'allows_mozilla_sites',
                 'allows_community_sites')
        for a in attrs:
            data = getattr(obj, a)
            if isinstance(data, basestring):
                data = data.lower()
            d.update({a: data})
        if obj.geo_country:
            d.update(country=obj.geo_country.name)
        if obj.geo_region:
            d.update(region=obj.geo_region.name)
        if obj.geo_city:
            d.update(city=obj.geo_city.name)

        # user data
        attrs = ('username', 'email', 'last_login', 'date_joined')
        for a in attrs:
            data = getattr(obj.user, a)
            if isinstance(data, basestring):
                data = data.lower()
            d.update({a: data})

        d.update(dict(fullname=obj.full_name.lower()))
        d.update(dict(name=obj.full_name.lower()))
        d.update(dict(bio=obj.bio))
        d.update(dict(has_photo=bool(obj.photo)))

        for attribute in ['groups', 'skills']:
            groups = []
            for g in getattr(obj, attribute).all():
                groups.extend(g.aliases.values_list('name', flat=True))
            d[attribute] = groups
        # Add to search index language code, language name in English
        # native lanugage name.
        languages = []
        for code in obj.languages.values_list('code', flat=True):
            languages.append(code)
            languages.append(langcode_to_name(code, 'en_US').lower())
            languages.append(langcode_to_name(code, code).lower())
        d['languages'] = list(set(languages))
        return d
Example #2
0
    def extract_document(cls, obj_id, obj=None):
        """Extract the following fields from a document."""

        if obj is None:
            obj = cls.get_model().objects.get(pk=obj_id)
        doc = {}

        attrs = ('id', 'is_vouched', 'ircname', 'allows_mozilla_sites',
                 'allows_community_sites')
        for a in attrs:
            data = getattr(obj, a)
            if isinstance(data, basestring):
                data = data.lower()
            doc.update({a: data})

        doc['country'] = ([obj.geo_country.name.lower(), obj.geo_country.code]
                          if obj.geo_country else None)
        doc['region'] = obj.geo_region.name.lower() if obj.geo_region else None
        doc['city'] = obj.geo_city.name.lower() if obj.geo_city else None

        # user data
        attrs = ('username', 'email', 'last_login', 'date_joined')
        for a in attrs:
            data = getattr(obj.user, a)
            if isinstance(data, basestring):
                data = data.lower()
            doc.update({a: data})

        doc.update(dict(fullname=obj.full_name.lower()))
        doc.update(dict(name=obj.full_name.lower()))
        doc.update(dict(bio=obj.bio))
        doc.update(dict(has_photo=bool(obj.photo)))

        for attribute in ['groups', 'skills']:
            groups = []
            for g in getattr(obj, attribute).all():
                groups.extend(g.aliases.values_list('name', flat=True))
            doc[attribute] = groups
        # Add to search index language code, language name in English
        # native lanugage name.
        languages = []
        for code in obj.languages.values_list('code', flat=True):
            languages.append(code)
            languages.append(langcode_to_name(code, 'en_US').lower())
            languages.append(langcode_to_name(code, code).lower())
        doc['languages'] = list(set(languages))
        return doc
Example #3
0
    def extract_document(cls, obj_id, obj=None):
        """Method used by elasticutils."""
        if obj is None:
            obj = cls.objects.get(pk=obj_id)
        d = {}

        attrs = ('id', 'is_vouched', 'ircname',
                 'region', 'city', 'allows_mozilla_sites',
                 'allows_community_sites')
        for a in attrs:
            data = getattr(obj, a)
            if isinstance(data, basestring):
                data = data.lower()
            d.update({a: data})

        if obj.country:
            d.update({'country':
                      [obj.country, COUNTRIES[obj.country].lower()]})

        # user data
        attrs = ('username', 'email', 'last_login', 'date_joined')
        for a in attrs:
            data = getattr(obj.user, a)
            if isinstance(data, basestring):
                data = data.lower()
            d.update({a: data})

        d.update(dict(fullname=obj.full_name.lower()))
        d.update(dict(name=obj.full_name.lower()))
        d.update(dict(bio=obj.bio))
        d.update(dict(has_photo=bool(obj.photo)))

        for attribute in ['groups', 'skills']:
            groups = []
            for g in getattr(obj, attribute).all():
                groups.extend(g.aliases.values_list('name', flat=True))
            d[attribute] = groups
        # Add to search index language code, language name in English
        # native lanugage name.
        languages = []
        for code in obj.languages.values_list('code', flat=True):
            languages.append(code)
            languages.append(langcode_to_name(code, 'en_US').lower())
            languages.append(langcode_to_name(code, code).lower())
        d['languages'] = list(set(languages))
        return d
Example #4
0
    def extract_document(cls, obj_id, obj=None):
        """Extract the following fields from a document."""

        if obj is None:
            obj = cls.get_model().objects.get(pk=obj_id)
        doc = {}

        attrs = ("id", "is_vouched", "ircname", "allows_mozilla_sites", "allows_community_sites")
        for a in attrs:
            data = getattr(obj, a)
            if isinstance(data, basestring):
                data = data.lower()
            doc.update({a: data})

        doc["country"] = [obj.geo_country.name, obj.geo_country.code] if obj.geo_country else None
        doc["region"] = obj.geo_region.name if obj.geo_region else None
        doc["city"] = obj.geo_city.name if obj.geo_city else None

        # user data
        attrs = ("username", "email", "last_login", "date_joined")
        for a in attrs:
            data = getattr(obj.user, a)
            if isinstance(data, basestring):
                data = data.lower()
            doc.update({a: data})

        doc.update(dict(fullname=obj.full_name.lower()))
        doc.update(dict(name=obj.full_name.lower()))
        doc.update(dict(bio=obj.bio))
        doc.update(dict(has_photo=bool(obj.photo)))

        for attribute in ["groups", "skills"]:
            groups = []
            for g in getattr(obj, attribute).all():
                groups.extend(g.aliases.values_list("name", flat=True))
            doc[attribute] = groups
        # Add to search index language code, language name in English
        # native lanugage name.
        languages = []
        for code in obj.languages.values_list("code", flat=True):
            languages.append(code)
            languages.append(langcode_to_name(code, "en_US").lower())
            languages.append(langcode_to_name(code, code).lower())
        doc["languages"] = list(set(languages))
        return doc
Example #5
0
    def extract_document(cls, obj_id, obj=None):
        """Method used by elasticutils."""
        if obj is None:
            obj = cls.objects.get(pk=obj_id)
        d = {}

        attrs = ("id", "is_vouched", "ircname", "region", "city", "allows_mozilla_sites", "allows_community_sites")
        for a in attrs:
            data = getattr(obj, a)
            if isinstance(data, basestring):
                data = data.lower()
            d.update({a: data})

        if obj.country:
            d.update({"country": [obj.country, COUNTRIES[obj.country].lower()]})

        # user data
        attrs = ("username", "email", "last_login", "date_joined")
        for a in attrs:
            data = getattr(obj.user, a)
            if isinstance(data, basestring):
                data = data.lower()
            d.update({a: data})

        d.update(dict(fullname=obj.full_name.lower()))
        d.update(dict(name=obj.full_name.lower()))
        d.update(dict(bio=obj.bio))
        d.update(dict(has_photo=bool(obj.photo)))

        for attribute in ["groups", "skills"]:
            groups = []
            for g in getattr(obj, attribute).all():
                groups.extend(g.aliases.values_list("name", flat=True))
            d[attribute] = groups
        # Add to search index language code, language name in English
        # native lanugage name.
        languages = []
        for code in obj.languages.values_list("code", flat=True):
            languages.append(code)
            languages.append(langcode_to_name(code, "en_US").lower())
            languages.append(langcode_to_name(code, code).lower())
        d["languages"] = list(set(languages))
        return d
Example #6
0
 def test_valid_code(self):
     """Test the name of a language with valid language code."""
     tower.activate('fr')
     name = langcode_to_name('en')
     eq_(name, u'Anglais')
Example #7
0
 def test_invalid_code(self):
     """Test the language name with invalid language code."""
     tower.activate('fr')
     name = langcode_to_name('foobar')
     eq_(name, 'foobar')
Example #8
0
 def test_valid_code(self):
     """Test the name of a language with valid language code."""
     tower.activate('fr')
     name = langcode_to_name('en')
     eq_(name, u'Anglais')
Example #9
0
 def test_invalid_code(self):
     """Test the language name with invalid language code."""
     tower.activate('fr')
     name = langcode_to_name('foobar')
     eq_(name, 'foobar')