Beispiel #1
0
    def get_property_and_language(self, name, language=None):
        value, language = ShopFolder.get_property_and_language(self, name, language)
        # Default properties first (we need "product_model")
        if name in self.get_metadata_schema():
            return value, language

        # Fallback on dynamic property if defined
        dynamic_schema = self.get_dynamic_schema()
        if name in dynamic_schema:
            return self.get_dynamic_property_and_language(name, dynamic_schema, language)

        # Just to detect errors
        raise ValueError, name
Beispiel #2
0
    def get_property_and_language(self, name, language=None):
        value, language = ShopFolder.get_property_and_language(
            self, name, language)
        # Default properties first (we need "product_model")
        if name in self.get_metadata_schema():
            return value, language

        # Fallback on dynamic property if defined
        dynamic_schema = self.get_dynamic_schema()
        if name in dynamic_schema:
            return self.get_dynamic_property_and_language(
                name, dynamic_schema, language)

        # Just to detect errors
        raise ValueError, name
Beispiel #3
0
 def get_dynamic_property_and_language(self, name, dynamic_schema, language=None):
     value, language = ShopFolder.get_property_and_language(self, name, language)
     datatype = dynamic_schema[name]
     # Default value
     if value is None:
         value = datatype.get_default()
     elif getattr(datatype, "multiple", False):
         if not isinstance(value, list):
             # Decode the property
             # Only support list of strings
             value = list(Tokens.decode(value))
         # Else a list was already set by "set_property"
     else:
         value = datatype.decode(value)
     return value, language
Beispiel #4
0
 def get_dynamic_property_and_language(self,
                                       name,
                                       dynamic_schema,
                                       language=None):
     value, language = ShopFolder.get_property_and_language(
         self, name, language)
     datatype = dynamic_schema[name]
     # Default value
     if value is None:
         value = datatype.get_default()
     elif getattr(datatype, 'multiple', False):
         if not isinstance(value, list):
             # Decode the property
             # Only support list of strings
             value = list(Tokens.decode(value))
         # Else a list was already set by "set_property"
     else:
         value = datatype.decode(value)
     return value, language