Exemplo n.º 1
0
        def build_result_element(field_info, result):

            content = ''
            name = field_info[0]
            if not hasattr(result, name) and len(field_info) > 1:
                name = field_info[1]

            if hasattr(result, name):
                try:
                    content = str(getattr(result, name, ''))
                except UnicodeEncodeError:
                    content = getattr(result, name,
                                      '').encode('ascii', 'ignore')

            if name == "enddate":
                if custom_date_format(content) == 'Present':
                    content = ''
            elif name == "description":
                if result_set.args.get('fulldesc', '') != '1':
                    content = content[:300]
            elif name in ["eventrangestart", "eventrangeend"]:
                content = content.replace('T', ' ').strip('Z')

            return (name, content, None)
Exemplo n.º 2
0
    def build_result_element(field_info, result):

      content = ''
      name = field_info[0]
      if not hasattr(result, name) and len(field_info) > 1:
        name = field_info[1]

      if hasattr(result, name):
        try:
          content = str(getattr(result, name, ''))
        except UnicodeEncodeError:
          content = getattr(result, name, '').encode('ascii', 'ignore')

      if name == "enddate": 
        if custom_date_format(content) == 'Present':
          content = ''
      elif name == "description":
        if result_set.args.get('fulldesc', '') != '1':
          content = content[:300]
      elif name in ["eventrangestart", "eventrangeend"]:
        content = content.replace('T', ' ').strip('Z')

    
      return (name, content, None)
Exemplo n.º 3
0
    def add_result(self, result, result_set={}):
        """Add an item dict to the items array."""
        #result is instance of SearchResult

        f1 = 1
        first_zip = 1
        item = {}
        for field_info in self.item_fields:
            name = field_info[0]

            if (result_set.is_hoc or result_set.is_rss) and name.lower(
            ) not in utils.unique_list(STANDARD_FIELDS + HOC_FIELDS):
                continue

            if result_set.is_exelis and name.lower() not in utils.unique_list(
                    STANDARD_FIELDS + EXELIS_FIELDS):
                continue

            if result_set.is_cal and name.lower() not in CALENDAR_FIELDS:
                continue

            if (len(name) < 2) and result_set.is_hoc and result_set.is_cal:
                continue

            if (not result_set.is_hoc) and (not result_set.is_rss) and (
                    not result_set.is_cal
            ) and (
                    not result_set.is_exelis
            ) and (API_FIELD_NAMES_MAP.get(name, name) == "appropriateFors"
                   or API_FIELD_NAMES_MAP.get(name, name) == "activityTypes"
                   or API_FIELD_NAMES_MAP.get(name, name) == "categoryTags"
                   or API_FIELD_NAMES_MAP.get(name, name) == "Distance"
                   or API_FIELD_NAMES_MAP.get(name, name)
                   == "sponsoringOrganizationUrl" or API_FIELD_NAMES_MAP.get(
                       name, name) == "affiliateOrganizationName"
                   or API_FIELD_NAMES_MAP.get(
                       name, name) == "affiliateOrganizationUrl"
                   or API_FIELD_NAMES_MAP.get(name, name) == "opportunityId"
                   or API_FIELD_NAMES_MAP.get(name, name) == "opportunityType"
                   or API_FIELD_NAMES_MAP.get(name, name) == "registerType"
                   or API_FIELD_NAMES_MAP.get(name, name) == "occurrenceId" or
                   API_FIELD_NAMES_MAP.get(name, name) == "occurrenceDuration"
                   or API_FIELD_NAMES_MAP.get(name, name) == "eventId"
                   or API_FIELD_NAMES_MAP.get(name, name) == "eventName"
                   or API_FIELD_NAMES_MAP.get(name, name) == "frequencyURL"
                   or API_FIELD_NAMES_MAP.get(name, name) == "frequency"
                   or API_FIELD_NAMES_MAP.get(name, name) == "availabilityDays"
                   or API_FIELD_NAMES_MAP.get(name, name) == "audienceTags"
                   or API_FIELD_NAMES_MAP.get(name, name)
                   == "volunteerHubOrganizationUrl" or API_FIELD_NAMES_MAP.get(
                       name, name) == "volunteerHubOrganizationName"
                   or API_FIELD_NAMES_MAP.get(name, name) == "volunteersNeeded"
                   or API_FIELD_NAMES_MAP.get(
                       name, name) == "affiliateOrganizationID"
                   or API_FIELD_NAMES_MAP.get(name, name) == "rsvpCount"
                   or API_FIELD_NAMES_MAP.get(name, name) == "sexrestrictedto"
                   or API_FIELD_NAMES_MAP.get(name, name) == "eventName"
                   or API_FIELD_NAMES_MAP.get(name, name) == "eventId"
                   or API_FIELD_NAMES_MAP.get(name, name) == "scheduleType"):
                continue

            if (result_set.is_hoc or result_set.is_cal or result_set.is_exelis
                    or result_set.is_rss) and (API_FIELD_NAMES_MAP.get(
                        name, name) == "addrname1" or API_FIELD_NAMES_MAP.get(
                            name, name) == "contactNoneNeeded"):
                continue

            if not hasattr(result, name):
                name = name.lower()
                if not hasattr(result, name) and len(field_info) > 1:
                    name = field_info[1]
                    if not hasattr(result, name):
                        name = name.lower()

            content = getattr(result, name, '')
            #print name, '=', content, '<br>'

            if name.lower() == "enddate":
                if custom_date_format(content) == 'Present':
                    content = ''
            elif name == "description":
                if result_set.args.get('fulldesc', '') != '1':
                    content = content[:300]
            elif name in ["eventrangestart", "eventrangeend"]:
                content = content.replace('T', ' ').strip('Z')

            if isinstance(content, basestring):
                content = content.strip()

            # handle lists
            if isinstance(content, basestring) and content.find('\t') > 0:
                item[API_FIELD_NAMES_MAP.get(name, name)] = content.split('\t')
            elif API_FIELD_NAMES_MAP.get(
                    name,
                    name) in ARRAY_FIELDS and not isinstance(content, list):
                if content:
                    item[API_FIELD_NAMES_MAP.get(name, name)] = [content]
                else:
                    item[API_FIELD_NAMES_MAP.get(name, name)] = []
            else:
                item[API_FIELD_NAMES_MAP.get(name, name)] = content

        self.items.append(item)
Exemplo n.º 4
0
  def add_result(self, result, result_set = {}):
    """Add an item dict to the items array."""
    #result is instance of SearchResult
    
    f1 = 1
    first_zip = 1 
    item = {}
    for field_info in self.item_fields:
      name = field_info[0]
      
      if (result_set.is_hoc or result_set.is_rss) and name.lower() not in utils.unique_list(STANDARD_FIELDS + HOC_FIELDS):
        continue

      if result_set.is_exelis and name.lower() not in utils.unique_list(STANDARD_FIELDS + EXELIS_FIELDS):
        continue
    
      if result_set.is_cal and name.lower() not in CALENDAR_FIELDS:
        continue

      if (len(name) < 2) and result_set.is_hoc and result_set.is_cal:
        continue
      
   
      
      if (not result_set.is_hoc) and (not result_set.is_rss) and (not result_set.is_cal) and (not result_set.is_exelis) and (API_FIELD_NAMES_MAP.get(name, name) == "appropriateFors" or API_FIELD_NAMES_MAP.get(name, name) == "activityTypes" or API_FIELD_NAMES_MAP.get(name, name) == "categoryTags" or API_FIELD_NAMES_MAP.get(name, name) == "Distance" or API_FIELD_NAMES_MAP.get(name, name) == "sponsoringOrganizationUrl" or API_FIELD_NAMES_MAP.get(name, name) == "affiliateOrganizationName" or API_FIELD_NAMES_MAP.get(name, name) == "affiliateOrganizationUrl" or API_FIELD_NAMES_MAP.get(name, name) == "opportunityId" or API_FIELD_NAMES_MAP.get(name, name) == "opportunityType" or API_FIELD_NAMES_MAP.get(name, name) == "registerType" or API_FIELD_NAMES_MAP.get(name, name) == "occurrenceId" or API_FIELD_NAMES_MAP.get(name, name) == "occurrenceDuration" or API_FIELD_NAMES_MAP.get(name, name) == "eventId" or API_FIELD_NAMES_MAP.get(name, name) == "eventName" or API_FIELD_NAMES_MAP.get(name, name) == "frequencyURL" or API_FIELD_NAMES_MAP.get(name, name) == "frequency" or API_FIELD_NAMES_MAP.get(name, name) == "availabilityDays" or API_FIELD_NAMES_MAP.get(name, name) == "audienceTags" or API_FIELD_NAMES_MAP.get(name, name) == "volunteerHubOrganizationUrl" or API_FIELD_NAMES_MAP.get(name, name) == "volunteerHubOrganizationName" or API_FIELD_NAMES_MAP.get(name, name) == "volunteersNeeded" or API_FIELD_NAMES_MAP.get(name, name) == "affiliateOrganizationID" or API_FIELD_NAMES_MAP.get(name, name) == "rsvpCount" or API_FIELD_NAMES_MAP.get(name, name) == "sexrestrictedto" or API_FIELD_NAMES_MAP.get(name, name) == "eventName" or API_FIELD_NAMES_MAP.get(name, name) == "eventId" or API_FIELD_NAMES_MAP.get(name, name) == "scheduleType"):
          continue
      
      if (result_set.is_hoc or result_set.is_cal or result_set.is_exelis or result_set.is_rss) and (API_FIELD_NAMES_MAP.get(name, name) == "addrname1" or API_FIELD_NAMES_MAP.get(name, name) == "contactNoneNeeded"):
          continue
      
      if not hasattr(result, name):
        name = name.lower()
        if not hasattr(result, name) and len(field_info) > 1:
          name = field_info[1]
          if not hasattr(result, name):
            name = name.lower()

      content = getattr(result, name, '')
      #print name, '=', content, '<br>'
        
      if name.lower() == "enddate":
        if custom_date_format(content) == 'Present':
          content = ''
      elif name == "description":
        if result_set.args.get('fulldesc', '') != '1':
          content = content[:300]
      elif name in ["eventrangestart", "eventrangeend"]:
        content = content.replace('T', ' ').strip('Z')
   
      if isinstance(content, basestring):
         content = content.strip()
    
      
      # handle lists
      if isinstance(content, basestring) and content.find('\t') > 0: 
        item[API_FIELD_NAMES_MAP.get(name, name)] = content.split('\t')
      elif API_FIELD_NAMES_MAP.get(name, name) in ARRAY_FIELDS and not isinstance(content, list):
        if content:
          item[API_FIELD_NAMES_MAP.get(name, name)] = [content]
        else:   
          item[API_FIELD_NAMES_MAP.get(name, name)] = []
      else: 
          item[API_FIELD_NAMES_MAP.get(name,name)] = content

    self.items.append(item)