예제 #1
0
 def get_namespace(self, resource, context):
     prices = []
     prices_resource = resource.get_resource('prices-range')
     get_record_value = prices_resource.handler.get_record_value
     for record in prices_resource.handler.get_records():
         min_price = get_record_value(record, 'min')
         max_price = get_record_value(record, 'max')
         min_price_q = int(min_price * 100) if min_price else None
         max_price_q = int(max_price * 100) if max_price else None
         value = min_price_q, max_price_q
         min_price = format_price(min_price) if min_price else None
         max_price = format_price(max_price) if max_price else None
         checked = context.query.get('stored_price') == value
         prices.append({
             'value': IntegerRange.encode(value),
             'checked': checked,
             'css': 'selected' if checked else None,
             'min': min_price,
             'max': max_price
         })
     no_range_price_checked = context.query.get('stored_price') == None
     namespace = {
         'title': resource.get_title(),
         'no_range_price_checked': no_range_price_checked,
         'prices': prices
     }
     return namespace
예제 #2
0
 def get_items(self, context):
     unit = self.get_property('unit')
     criterium = self.get_property('criterium')
     uri = context.uri
     options = []
     get_record_value = self.handler.get_record_value
     # Get values
     values = [(None, None)]
     for record in self.handler.get_records():
         min_value = get_record_value(record, 'min')
         max_value = get_record_value(record, 'max')
         values.append((min_value, max_value))
     for value in values:
         min_value, max_value = value
         min_value_q = int(min_value * 100) if min_value else None
         max_value_q = int(max_value * 100) if max_value else None
         value = (min_value_q, max_value_q)
         name = IntegerRange.encode(value)
         if min_value is None and max_value:
             title = MSG(u'Less than {max_value} {unit}')
         elif min_value and max_value:
             title = MSG(u'From {min_value} to {max_value} {unit}')
         elif max_value is None and min_value:
             title = MSG(u'More than {min_value} {unit}')
         else:
             title = MSG(u'All')
             name = None
             value = None
         selected = context.query.get(criterium) == value
         kw = {criterium: name, 'batch_start': 0}
         uri = uri.replace(**kw)
         title = title.gettext(min_value=min_value,
                               max_value=max_value,
                               unit=unit)
         options.append({
             'name':
             name,
             'criterium':
             criterium,
             'query':
             RangeQuery(criterium, min_value_q, max_value_q),
             'selected':
             selected,
             'uri':
             uri,
             'css':
             'selected' if selected else None,
             'title':
             title
         })
     return options
예제 #3
0
 def get_items(self, context):
     unit = self.get_property("unit")
     criterium = self.get_property("criterium")
     uri = context.uri
     options = []
     get_record_value = self.handler.get_record_value
     # Get values
     values = [(None, None)]
     for record in self.handler.get_records():
         min_value = get_record_value(record, "min")
         max_value = get_record_value(record, "max")
         values.append((min_value, max_value))
     for value in values:
         min_value, max_value = value
         min_value_q = int(min_value * 100) if min_value else None
         max_value_q = int(max_value * 100) if max_value else None
         value = (min_value_q, max_value_q)
         name = IntegerRange.encode(value)
         if min_value is None and max_value:
             title = MSG(u"Less than {max_value} {unit}")
         elif min_value and max_value:
             title = MSG(u"From {min_value} to {max_value} {unit}")
         elif max_value is None and min_value:
             title = MSG(u"More than {min_value} {unit}")
         else:
             title = MSG(u"All")
             name = None
             value = None
         selected = context.query.get(criterium) == value
         kw = {criterium: name, "batch_start": 0}
         uri = uri.replace(**kw)
         title = title.gettext(min_value=min_value, max_value=max_value, unit=unit)
         options.append(
             {
                 "name": name,
                 "criterium": criterium,
                 "query": RangeQuery(criterium, min_value_q, max_value_q),
                 "selected": selected,
                 "uri": uri,
                 "css": "selected" if selected else None,
                 "title": title,
             }
         )
     return options
예제 #4
0
파일: search_box.py 프로젝트: hforge/shop
 def get_namespace(self, resource, context):
     prices = []
     prices_resource = resource.get_resource('prices-range')
     get_record_value = prices_resource.handler.get_record_value
     for record in prices_resource.handler.get_records():
         min_price = get_record_value(record, 'min')
         max_price = get_record_value(record, 'max')
         min_price_q = int(min_price * 100) if min_price else None
         max_price_q = int(max_price * 100) if max_price else None
         value = min_price_q, max_price_q
         min_price = format_price(min_price) if min_price else None
         max_price = format_price(max_price) if max_price else None
         checked = context.query.get('stored_price') == value
         prices.append({'value': IntegerRange.encode(value),
                        'checked': checked,
                        'css': 'selected' if checked else None,
                        'min': min_price,
                        'max': max_price})
     no_range_price_checked = context.query.get('stored_price') == None
     namespace = {'title': resource.get_title(),
                  'no_range_price_checked': no_range_price_checked,
                  'prices': prices}
     return namespace