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
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
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
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
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
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')
def test_invalid_code(self): """Test the language name with invalid language code.""" tower.activate('fr') name = langcode_to_name('foobar') eq_(name, 'foobar')