def get_top_users(self, limit=5): from geouser.models_acc import UserCounter top_users = UserCounter.all(keys_only=True).order("-suggested").fetch(limit) top_users = model_plus.fetch_parentsKeys(top_users) top_users = filter(None, top_users) return top_users
def get_top_users(self, limit=5): from geouser.models_acc import UserCounter top_users = UserCounter.all( keys_only=True).order('-suggested').fetch(limit) top_users = model_plus.fetch_parentsKeys(top_users) top_users = filter(None, top_users) return top_users
def load_list_user_following_by_async(self, lists_async, to_dict=True, resolve=False): lists = model_plus.fetch_parentsKeys(lists_async) from georemindme.funcs import prefetch_refList if lists is not None and any(lists): if to_dict: if resolve: instances = prefetch_refList(lists) else: instances = None return [list.to_dict(resolve=resolve, instances=instances) for list in lists if list.active] return lists return []
def get_suggestions_dict(querier): from models_indexes import SuggestionFollowersIndex indexes = SuggestionFollowersIndex.all(keys_only=True).filter('keys =', querier.key()).order('-created').run() suggs = model_plus.fetch_parentsKeys([s for s in indexes]) if isinstance(suggs, list) and any(suggs): suggestions = [] for s in suggs: # convertir entidades setattr(s, 'lists', []) suggestions.append(s) suggestions = model_plus.prefetch(suggestions, Suggestion.user, Suggestion.poi) return suggestions return []
def load_list_user_following_by_async(self, lists_async, to_dict=True, resolve=False): lists = model_plus.fetch_parentsKeys(lists_async) from georemindme.funcs import prefetch_refList if lists is not None and any(lists): if to_dict: if resolve: instances = prefetch_refList(lists) else: instances = None return [ list.to_dict(resolve=resolve, instances=instances) for list in lists if list.active ] return lists return []
class ListHelper(object): _klass = List def get_all_public(self, query_id=None, page=1): ''' Devuelve todas las listas publicas ¡PAGINADA! :param page: numero de pagina a mostrar :type param: int :param query_id: identificador de busqueda :type query_id: int ''' q = self._klass.all().filter('_vis =', 'public').filter('active =', True).order('-modified') from georemindme.paging import PagedQuery p = PagedQuery(q, id=query_id) lists = p.fetch_page(page) prefetch_refprops(lists, self._klass.user) return [p.id, lists] def get_by_id(self, id): ''' Devuelve la lista publica con ese ID :param id: identificador de la lista :type id: :class:`Integer` :returns: None o :class:`geolist.models.List` ''' try: id = int(id) except: raise TypeError list = self._klass.get_by_id(id) return list def get_by_name_user(self, name, user): list = self._klass.all().filter('user ='******'name =', name).filter( 'active =', True).get() return list def get_by_id_querier(self, id, querier): ''' Devuelve la lista publica con ese ID :param id: identificador de la lista :type id: :class:`Integer` :returns: None o :class:`geolist.models.List` ''' if not isinstance(querier, User) and not isinstance( querier, AnonymousUser): raise TypeError() list = self.get_by_id(id) if list is None: return None if list.__class__.user.get_value_for_datastore(list) == querier.key(): return list if hasattr(list, '_vis'): if list._is_public(): return list elif list._is_shared() and list.user_invited(querier): return list return None def get_by_id_user(self, id, user): ''' Devuelve la lista con ese ID y el usuario como dueño. :param id: identificador de la lista :type id: :class:`Integer` :param user: usuario :type user: :class:`geouser.models.User` :returns: None o :class:`geolist.models.List` ''' list = self.get_by_id(id) if list is not None: if not list.active: return None if list.__class__.user.get_value_for_datastore(list) == user.key(): return list return None def get_list_user_following(self, user, resolve=False, async=False): ''' Devuelve las listas a las que sigue el usuario :param user: usuario del que buscar las listas :type user: :class:`geouser.models.User` ''' if not user.is_authenticated(): return [] from google.appengine.api import datastore if async: indexes = ListFollowersIndex.all(keys_only=True).filter( 'keys =', user.key()) return indexes.run() q = datastore.Query('ListFollowersIndex', {'keys =': user.key()}, keys_only=True) run = q.Run() indexes = [a for a in run] lists = model_plus.fetch_parentsKeys(indexes) return [list.to_dict(resolve=resolve) for list in lists if list.active]