예제 #1
0
 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
예제 #2
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()]
예제 #3
0
 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()]