예제 #1
0
 def getRelatedProjects(self):
     ideaId = self.request('idea_id')
     limit = int(self.request('n_limit')) if self.request('n_limit') else 5
     relatedProjects = []
     citywideProjects = []
     kw = []
     isLocationOnlyMatch = False
     
     if (not ideaId):
         log.error("No idea id")
     else: 
         idea = mIdea.Idea(self.db, ideaId)
     
         if (idea):
             kw = mKeywords.getKeywords(self.db, idea.description)
             
             if (idea.locationId != -1):
                 relatedProjects = mProject.searchProjects(self.db, kw, idea.locationId, limit)
                 
                 if (len(relatedProjects) == 0):
                     isLocationOnlyMatch = True
                     relatedProjects = mProject.searchProjects(self.db, [], idea.locationId, limit)
                 
             citywideProjects = mProject.searchProjects(self.db, kw, -1, limit)
         else:
             log.error("No idea found for id = %s" % ideaId)
         
     obj = dict(is_location_only_match = isLocationOnlyMatch, related = relatedProjects, citywide = citywideProjects, search_terms = ','.join(kw))
         
     return self.json(obj)
예제 #2
0
    def showSearch(self):            
        if (self.request('main_text')): return False
    
        terms = self.request('terms').split(',') if self.request('terms') else []
        limit = int(self.request('n')) if self.request('n') else 6
        offset = int(self.request('offset')) if self.request('offset') else 0
        locationId = self.request('location_id')
        
        self.template_data['search_terms'] = self.request('terms')
        self.template_data['search_location_id'] = locationId
        
        projects = mProject.searchProjects(self.db, terms, locationId, limit, offset)
        resources = mProjectResource.searchProjectResources(self.db, terms, locationId, limit, offset)
        ideas = mIdea.searchIdeas(self.db, terms, locationId, limit, offset)
        
        results = dict(projects = projects, resources = resources, ideas = ideas)
        
        self.template_data['results'] = dict(json = json.dumps(results), data = results)

        total_count = dict(projects = mProject.searchProjectsCount(self.db, terms, locationId), 
                          resources = mProjectResource.searchProjectResourcesCount(self.db, terms, locationId), 
                          ideas = mIdea.searchIdeasCount(self.db, terms, locationId))

        self.template_data['total_count'] = dict(json = json.dumps(total_count), data = total_count)
        
        locations_list = mLocation.getSimpleLocationDictionary(self.db)
        self.template_data['locations'] = dict(json = json.dumps(locations_list), data = locations_list)
        
        locationData = self.getLocationData()
        
        self.template_data['locations_scored'] = json.dumps(locationData)
        self.template_data['max_score'] = locationData[0]['score']
        
        return self.render('search')
예제 #3
0
 def searchProjectsJSON(self):
     terms = self.request('terms').split(',') if self.request('terms') else []
     limit = int(self.request('n')) if self.request('n') else 6
     offset = int(self.request('offset')) if self.request('offset') else 0
     locationId = self.request('location_id')
 
     return self.json({'results':mProject.searchProjects(self.db, terms, locationId, limit, offset),
                       'total_count':100})
예제 #4
0
    def getSimilarProjectsJSON(self):
        locationId = self.request('location_id')
        keywords = self.request('keywords').split(',') if self.request('keywords') else []

        projects = mProject.searchProjects(self.db, keywords, locationId)

        obj = dict(projects = projects)

        return self.json(obj)
예제 #5
0
    def getRelatedProjects(self):
        ideaId = self.request('idea_id')
        limit = int(self.request('n_limit')) if self.request('n_limit') else 5
        relatedProjects = []
        citywideProjects = []
        kw = []
        isLocationOnlyMatch = False

        if (not ideaId):
            log.error("No idea id")
        else:
            idea = mIdea.Idea(self.db, ideaId)

            if (idea):
                kw = mKeywords.getKeywords(self.db, idea.description)

                if (idea.locationId != -1):
                    relatedProjects = mProject.searchProjects(
                        self.db, kw, idea.locationId, limit)

                    if (len(relatedProjects) == 0):
                        isLocationOnlyMatch = True
                        relatedProjects = mProject.searchProjects(
                            self.db, [], idea.locationId, limit)

                citywideProjects = mProject.searchProjects(
                    self.db, kw, -1, limit)
            else:
                log.error("No idea found for id = %s" % ideaId)

        obj = dict(is_location_only_match=isLocationOnlyMatch,
                   related=relatedProjects,
                   citywide=citywideProjects,
                   search_terms=','.join(kw))

        return self.json(obj)