예제 #1
0
    def getListData(self):
        """Returns the list data as requested by the current request.

    If the lists as requested is not supported by this component None is
    returned.
    """
        idx = lists.getListIndex(self.data.request)
        if idx == 0:
            list_query = project_logic.getAcceptedProjectsQuery(
                program=self.data.program, org=self.data.organization)

            starter = lists.keyStarter
            prefetcher = lists.ListModelPrefetcher(GSoCProject, ['org'],
                                                   ['mentors'],
                                                   parent=True)

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request,
                self._list_config,
                list_query,
                starter,
                prefetcher=prefetcher)
            return response_builder.build()
        else:
            return None
예제 #2
0
    def getListData(self):
        """Returns the list data as requested by the current request.

    If the lists as requested is not supported by this component None is
    returned.
    """
        idx = lists.getListIndex(self.data.request)
        if idx == 0:
            list_query = project_logic.getProjectsQuery(
                program=self.data.program)

            starter = lists.keyStarter
            # TODO(daniel): support prefetching of NDB organizations
            #prefetcher = lists.ModelPrefetcher(
            #    project_model.GSoCProject, ['org'], parent=True)
            prefetcher = None

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request,
                self._list_config,
                list_query,
                starter,
                prefetcher=prefetcher)
            return response_builder.build()
        else:
            return None
예제 #3
0
    def getListData(self):
        """Returns the list data as requested by the current request.

    If the lists as requested is not supported by this component None is
    returned.
    """
        if lists.getListIndex(self.data.request) != 1:
            return None

        q = GCITask.all()
        q.filter('program', self.data.program)
        q.filter(
            'org IN',
            map(lambda org_key: org_key.to_old_key(),
                self.data.ndb_profile.mentor_for))

        starter = lists.keyStarter
        # TODO(daniel): enable prefetching
        #prefetcher = lists.ListModelPrefetcher(
        #    GCITask, ['org', 'student', 'created_by', 'modified_by'], ['mentors'])

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request, self._list_config, q, starter, prefetcher=None)

        return response_builder.build()
예제 #4
0
    def getListData(self):
        """Returns the list data as requested by the current request.

    If the lists as requested is not supported by this component None is
    returned.
    """
        idx = lists.getListIndex(self.data.request)
        if idx == 0:
            list_query = proposal_logic.getProposalsQuery(
                program=self.data.program)

            starter = lists.keyStarter

            # TODO(daniel): support prefetching of NDB organizations
            #prefetcher = lists.ModelPrefetcher(
            #    proposal_model.GSoCProposal, ['org'], parent=True)
            # Since ModelPrefetcher doesn't work with NDB, pass an empty list
            # for the field parameter to prevent __init__() exception.
            prefetcher = lists.ModelPrefetcher(proposal_model.GSoCProposal, [],
                                               parent=True)

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request,
                self._list_config,
                list_query,
                starter,
                prefetcher=prefetcher)
            return response_builder.build()
        else:
            return None
예제 #5
0
  def getListData(self):
    """Returns data for the list."""
    query = org_logic.getApplicationResponsesQuery(self.data.org_app.key())

    response_builder = lists.RawQueryContentResponseBuilder(
        self.data.request, self.list_config, query, lists.keyStarter,
        prefetcher=None)
    return response_builder.buildNDB()
예제 #6
0
    def getListData(self):
        if lists.getListIndex(self.data.request) != 1:
            return None
        q = GCITask.all()
        q.filter('org', self.data.organization)
        q.filter('status', 'Closed')
        starter = lists.keyStarter

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request, self.list_config, q, starter)
        return response_builder.build()
예제 #7
0
    def getListData(self):
        idx = lists.getListIndex(self.request)
        if idx != 0:
            return None

        q = shipment_tracking.ShipmentInfo.query(
            ancestor=ndb.Key.from_old_key(self.data.program.key()))
        starter = lists.keyStarter
        response_builder = lists.RawQueryContentResponseBuilder(
            self.request, self._list_config, q, starter)

        return response_builder.build()
예제 #8
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)
        if idx == 0:
            q = document_model.Document.all()
            q.filter('scope', self.data.program)

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request, self._list_config, q, lists.keyStarter)

            return response_builder.build()
        else:
            return None
예제 #9
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)

        if idx != self.IDX:
            return None

        visibilities = gsoc_document_logic.getVisibilities(self.data)
        q = document_logic.getDocumentQueryForRoles(self.data, visibilities)

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request, self._list_config, q, lists.keyStarter)
        return response_builder.build()
예제 #10
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)
        if idx == 0:
            q = GCITask.all()
            q.filter('program', self.data.program)
            q.filter('status', 'Closed')

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request, self._list_config, q, lists.keyStarter)

            return response_builder.build()
        else:
            return None
예제 #11
0
  def getListData(self):
    idx = lists.getListIndex(self.data.request)

    if idx != self.idx:
      return None

    query = profile_logic.queryAllStudentsForProgram(self.data.program.key())

    starter = lists.keyStarter

    response_builder = lists.RawQueryContentResponseBuilder(
        self.data.request, self._list_config, query, starter)

    return response_builder.buildNDB()
예제 #12
0
  def getListData(self):
    # TODO(daniel): add missing doc string
    idx = lists.getListIndex(self.data.request)
    if idx != 0:
      return None

    query = self._getQuery()
    prefetcher = self._getPrefetcher()

    response_builder = lists.RawQueryContentResponseBuilder(
        self.data.request, self._list_config, query,
        lists.keyStarter, prefetcher=prefetcher)

    return response_builder.buildNDB()
예제 #13
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)
        if idx != 0:
            return None

        q = GSoCSlotTransfer.all().filter('program', self.data.program)

        starter = lists.keyStarter
        # TODO(daniel): enable prefetching ['parent']
        # prefetcher = lists.ModelPrefetcher(GSoCSlotTransfer, [], parent=True)

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request, self._list_config, q, starter, prefetcher=None)

        return response_builder.build()
예제 #14
0
    def getListData(self):
        if lists.getListIndex(self.data.request) != self.idx:
            return None

        q = GCIOrganization.all()
        q.filter(
            '__key__ IN',
            map(lambda org_key: org_key.to_old_key(),
                self.data.ndb_profile.admin_for))
        q.filter('status IN', ['new', 'active'])

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request, self._list_config, q, lists.keyStarter)

        return response_builder.build()
예제 #15
0
    def listContent(self):
        """Returns the ListContentResponse object that is constructed from the data.
    """
        q = GSoCGradingRecord.all()
        q.filter('grading_survey_group', self.data.survey_group)

        starter = lists.keyStarter
        prefetcher = GradingRecordsList.ListPrefetcher()

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request,
            self._list_config,
            q,
            starter,
            prefetcher=prefetcher)
        return response_builder.build()
예제 #16
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)
        if idx == 0:
            query = self._getQuery()

            starter = lists.keyStarter
            prefetcher = self._getPrefetcher()

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request,
                self._list_config,
                query,
                starter,
                prefetcher=prefetcher)
            return response_builder.build()
        else:
            return None
예제 #17
0
    def getListData(self):
        """Returns the list data as requested by the current request.

    If the lists as requested is not supported by this component None is
    returned.
    """
        idx = lists.getListIndex(self.data.request)
        if idx == self.IDX:
            starter = lists.keyStarter
            query = static_content.StaticContent.all()
            query.ancestor(self.data.program)

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request, self._list_config, query, starter)
            return response_builder.build()
        else:
            return None
예제 #18
0
  def getListData(self):
    """Makes a soc.views.helper.lists.ListContentResponse for the request.

    Returns:
      If the requested list index is 0, the ListContentResponse for the query,
      otherwise None.
    """
    idx = lists.getListIndex(self.data.request)
    if idx == 0:
      query = self._getQuery()

      starter = lists.keyStarter

      response_builder = lists.RawQueryContentResponseBuilder(
          self.data.request, self._list_config, query, starter)
      return response_builder.build()
    else:
      return None
예제 #19
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)
        if idx == self.ORG_SCORE_LIST_IDX:
            q = GCIOrgScore.all()
            q.filter('org', self.data.organization)

            skipper = lambda entity, start: entity.numberOfTasks() <= 0

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request,
                self._list_config,
                q,
                lists.keyStarter,
                skipper=skipper)

            return response_builder.build()
        else:
            return None
예제 #20
0
    def getListData(self):
        """Returns the list data as requested by the current request.

    If the lists as requested is not supported by this component None is
    returned.
    """
        if lists.getListIndex(self.data.request) != 6:
            return None

        q = GCIProfile.all()
        q.filter('mentor_for IN', self.data.org_admin_for)

        starter = lists.keyStarter

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request, self._list_config, q, starter)

        return response_builder.build()
예제 #21
0
    def listContentResponse(self, request, prefetch=None):
        """Returns the ListContentResponse object that is constructed from the data.

    Args:
      request: The Django request object.
      prefetch: List of fields to prefetch for increased performance.
    """
        q = self.record_model.all()
        q.filter('survey', self.survey)

        starter = lists.keyStarter

        if prefetch:
            prefetcher = lists.ModelPrefetcher(self.record_model, prefetch)
        else:
            prefetcher = None

        response_builder = lists.RawQueryContentResponseBuilder(
            request, self.list_config, q, starter, prefetcher=prefetcher)
        return response_builder.build()
예제 #22
0
    def getListData(self):
        if lists.getListIndex(self.data.request) != 0:
            return None

        query = profile_logic.queryAllMentorsForProgram(
            self.data.program.key())

        starter = lists.keyStarter
        # TODO(daniel): enable prefetching from ndb models
        # ('mentor_for', 'org_admin_for')
        prefetcher = None

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request,
            self._list_config,
            query,
            starter,
            prefetcher=prefetcher)

        return response_builder.buildNDB()
예제 #23
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)
        if idx == self.LEADERBOARD_LIST_IDX:
            q = GCIScore.all()
            q.filter('program', self.data.program)

            skipper = lambda entity, start: entity.points <= 0
            prefetcher = lists.ModelPrefetcher(GCIScore, [], True)

            response_builder = lists.RawQueryContentResponseBuilder(
                self.data.request,
                self._list_config,
                q,
                lists.keyStarter,
                skipper=skipper,
                prefetcher=prefetcher)

            return response_builder.build()
        else:
            return None
예제 #24
0
    def getListData(self):
        if lists.getListIndex(self.data.request) != 0:
            return None

        query = profile_logic.queryAllMentorsForProgram(
            self.data.program.key())
        import logging
        logging.error(query.fetch(1000))

        starter = lists.keyStarter

        # TODO(daniel): enable prefetching for the list (mentor_for, admin_for)
        prefetcher = None

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request,
            self._list_config,
            query,
            starter,
            prefetcher=prefetcher)

        return response_builder.build()
예제 #25
0
    def getListData(self):
        idx = lists.getListIndex(self.data.request)
        if idx != 0:
            return None

        program = self.data.program

        # Hold all the accepted projects for orgs where this user is a member of
        accepted = []
        # Hold all duplicates for either the entire program or the orgs of the user.
        duplicates = []
        dupQ = GSoCProposalDuplicate.all()
        dupQ.filter('is_duplicate', True)
        dupQ.filter('org', self.data.url_ndb_org.key.to_old_key())
        dupQ.filter('program', program)

        accepted.extend(
            p.key()
            for p in getProposalsToBeAcceptedForOrg(self.data.url_ndb_org))

        duplicate_entities = dupQ.fetch(1000)
        for dup in duplicate_entities:
            duplicates.extend(dup.duplicates)

        q = GSoCProposal.all()
        q.filter('org', self.data.url_ndb_org.key.to_old_key())
        q.filter('program', program)

        starter = lists.keyStarter

        # TODO(daniel): enable prefetching from ndb models ('org', 'parent')
        # prefetcher = lists.ModelPrefetcher(GSoCProposal, [], parent=True)

        response_builder = lists.RawQueryContentResponseBuilder(
            self.data.request, self._list_config, q, starter, prefetcher=None)
        return response_builder.build(accepted, duplicates)