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
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
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
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