def get_declination_namespace(self, declination_name): namespace = [] shop = get_shop(self) declination = self.get_resource(declination_name) dynamic_schema = declination.get_dynamic_schema() enumerates_folder = shop.get_resource('enumerates') for name in self.get_purchase_options_names(): value = declination.get_dynamic_property(name, dynamic_schema) if not value: continue enumerate_table = enumerates_folder.get_resource(name) datatype = EnumerateTable_to_Enumerate(enumerate_name=name) namespace.append({'title': enumerate_table.get_title(), 'value': datatype.get_value(value)}) return namespace
def get_declination_namespace(self, declination_name): namespace = [] shop = get_shop(self) declination = self.get_resource(declination_name) dynamic_schema = declination.get_dynamic_schema() enumerates_folder = shop.get_resource('enumerates') for name in self.get_purchase_options_names(): value = declination.get_dynamic_property(name, dynamic_schema) if not value: continue enumerate_table = enumerates_folder.get_resource(name) datatype = EnumerateTable_to_Enumerate(enumerate_name=name) namespace.append({ 'title': enumerate_table.get_title(), 'value': datatype.get_value(value) }) return namespace
def get_items(self, context): options = [] uri = deepcopy(context.uri) criterium = self.get_property("criterium") criterium_name = "DFT-%s" % criterium enum = EnumerateTable_to_Enumerate(enumerate_name=criterium) options = [] for option in [{"name": None, "value": MSG(u"All")}] + enum.get_options(): selected = context.query.get(criterium_name) == option["name"] option["criterium"] = criterium kw = {criterium_name: option["name"], "batch_start": 0} option["uri"] = uri.replace(**kw) option["query"] = None if option["name"]: option["query"] = PhraseQuery(criterium_name, option["name"]) option["selected"] = selected option["title"] = option["value"] option["css"] = "selected" if selected else None options.append(option) return options
def get_items(self, context): options = [] uri = deepcopy(context.uri) criterium = self.get_property('criterium') criterium_name = 'DFT-%s' % criterium enum = EnumerateTable_to_Enumerate(enumerate_name=criterium) options = [] for option in [{ 'name': None, 'value': MSG(u'All') }] + enum.get_options(): selected = context.query.get(criterium_name) == option['name'] option['criterium'] = criterium kw = {criterium_name: option['name'], 'batch_start': 0} option['uri'] = uri.replace(**kw) option['query'] = None if option['name']: option['query'] = PhraseQuery(criterium_name, option['name']) option['selected'] = selected option['title'] = option['value'] option['css'] = 'selected' if selected else None options.append(option) return options
def get_real_datatype(schema_handler, record): # If name not in real_datatypes dict ... # It's an enumerate table from enumerates library # that we transform in Enumerate get_value = schema_handler.get_record_value datatype = get_value(record, 'datatype') # Get properties kw = {} for key in ['mandatory', 'multiple', 'multilingual']: kw[key] = get_value(record, key) # Get real datatype from real_datatypes dict if real_datatypes.has_key(datatype): return real_datatypes[datatype](**kw) # Is a registered datatype ? for name, title, cls_datatype in shop_datatypes: if name == datatype: return cls_datatype(**kw) # It's an TableEnumerate kw['enumerate_name'] = get_value(record, 'datatype') return EnumerateTable_to_Enumerate(**kw)
def get_dynamic_schema(self): schema = {} for name in self.parent.get_purchase_options_names(): schema[name] = EnumerateTable_to_Enumerate(enumerate_name=name) return schema
def get_schema(self, resource, context): schema = {} for name in resource.get_purchase_options_names(): schema[name] = EnumerateTable_to_Enumerate(enumerate_name=name) return merge_dicts(declination_schema, schema)