def get_by_tag_querier(self, tagInstance, querier, page=1, query_id=None): if querier is None: raise TypeError() from geotags.models import Tag if not isinstance(tagInstance, Tag): raise TypeError events = self._klass.all().filter('_tags_list =', tagInstance.key()) p = PagedQuery(events, id=query_id) events_lists = [] from georemindme.funcs import prefetch_refprops events = p.fetch_page(page) for event in events: if event.__class__.user.get_value_for_datastore( event) == querier.key(): events_lists.append(event) elif hasattr(event, '_vis'): if event._is_public(): events_lists.append(event) elif event._is_shared() and event.user_invited(querier): events_lists.append(event) if len(events_lists) != 0: events_lists = prefetch_refprops(events_lists, self._klass.user, self._klass.poi) return [p.id, events_lists], p.page_count() return None, 0
def get_by_user(self, user, page=1, query_id=None): ''' Obtiene una lista con todos los Eventos de un usuario ''' if not isinstance(user, User): raise TypeError() q = self._klass.gql('WHERE user = :1 ORDER BY modified DESC', user) p = PagedQuery(q, id=query_id) from georemindme.funcs import prefetch_refprops events = p.fetch_page(page) events = prefetch_refprops(events, self._klass.user, self._klass.poi) return [p.id, events, p.page_count()]
def get_by_user(self, user, querier, page=1, query_id=None): """ Obtiene una lista con todos los Eventos de un usuario """ if not isinstance(user, User) or not isinstance(querier, User): raise TypeError() if user.id == querier.id: q = self._klass.gql('WHERE user = :1 ORDER BY modified DESC', user) else: q = self._klass.gql( 'WHERE user = :1 AND _vis = :2 ORDER BY modified DESC', user, 'public') p = PagedQuery(q, id=query_id) suggestions = p.fetch_page(page) from georemindme.funcs import prefetch_refprops suggestions = prefetch_refprops(suggestions, self._klass.user, self._klass.poi) from geolist.models import ListSuggestion for s in suggestions: lists = ListSuggestion.objects.get_by_suggestion(s, querier) setattr(s, 'lists', lists) return [p.id, suggestions, p.page_count()]