Esempio n. 1
0
 def buildFeaturesFields(self):
     from odoo.addons.splashsync.helpers import TransHelper
     # ====================================================================#
     # Set default System Language
     FieldFactory.setDefaultLanguage(TransHelper.get_default_iso())
     # ====================================================================#
     # Walk on Available Attributes
     for attribute in ProductsFeatures.find_all():
         # ====================================================================#
         # Walk on Available Languages
         for iso_code, lang_name in TransHelper.get_all().items():
             # ==================================================================== #
             # Product Feature Field
             FieldFactory.create(const.__SPL_T_VARCHAR__, self.encode(attribute), attribute.display_name)
             FieldFactory.group("Features")
             FieldFactory.microData("http://schema.org/Product", attribute.name)
             # ==================================================================== #
             # Add Language Params
             FieldFactory.description("["+lang_name+"] "+attribute.display_name)
             FieldFactory.setMultilang(iso_code)
             # ==================================================================== #
             # Filter Variants Attributes During Tests
             if Framework.isDebugMode() and attribute.name in AttributesHelper.attr_test:
                 FieldFactory.isNotTested()
             if iso_code != TransHelper.get_default_iso():
                 FieldFactory.association(self.encode(attribute))
Esempio n. 2
0
 def __setFeatureTranslatedFields(self, field_id, attr_value):
     from odoo.addons.splashsync.helpers import TransHelper
     for iso_code in TransHelper.get_extra_iso():
         iso_field_id = field_id+"_"+iso_code
         if iso_field_id not in self._in.keys():
             continue
         TransHelper.set(attr_value, 'name', iso_code, self._in[iso_field_id])
         self._in.__delitem__(iso_field_id)
Esempio n. 3
0
 def __getFeatureTranslatedFields(self, field_id, attr_value):
     from odoo.addons.splashsync.helpers import TransHelper
     for iso_code in TransHelper.get_extra_iso():
         iso_field_id = field_id+"_"+iso_code
         for key, val in self._in.copy().items():
             if iso_field_id != val:
                 continue
             self._out[iso_field_id] = TransHelper.get(attr_value, 'name', iso_code, attr_value.name)
             self._in.__delitem__(key)
Esempio n. 4
0
 def _set_attribute_value_langs(attr_value, field_values):
     """
     Update a Product Attribute Value Translations
     :param attr_value: product.attribute.value
     :param field_values: dict
     """
     for iso_code in TransHelper.get_extra_iso():
         iso_field_id = "value_" + iso_code
         if iso_field_id in field_values.keys():
             TransHelper.set(attr_value, 'name', iso_code,
                             field_values[iso_field_id])
Esempio n. 5
0
 def buildBasicFields(self):
     from odoo.addons.splashsync.helpers import TransHelper
     # ====================================================================#
     # Set default System Language
     FieldFactory.setDefaultLanguage(TransHelper.get_default_iso())
     # ====================================================================#
     # Walk on Model Basic Fields Definitions
     for fieldId, field in self.get_basic_fields_list().items():
         # ====================================================================#
         # Walk on Available Languages
         for iso_code, lang_name in TransHelper.for_factory(field).items():
             # Build Splash Field Definition
             FieldFactory.create(self.__BasicTypes__[field["type"]],
                                 fieldId, field["string"])
             FieldFactory.group("Others")
             FieldFactory.microData("http://schema.org/Product",
                                    field["string"])
             if field["required"] or fieldId in self.get_required_fields():
                 FieldFactory.isRequired(
                     iso_code == TransHelper.get_default_iso())
             if field["readonly"]:
                 FieldFactory.isReadOnly()
             if 'help' in field:
                 FieldFactory.description(field["help"])
             if iso_code == TransHelper.get_default_iso(
             ) and fieldId in self.get_listed_fields():
                 FieldFactory.isListed()
             if "translate" in field and field["translate"] is True:
                 FieldFactory.description(field["string"] + " [" +
                                          lang_name + "]")
                 FieldFactory.setMultilang(iso_code)
                 if iso_code != TransHelper.get_default_iso():
                     FieldFactory.association(fieldId)
             # Selection >> Add Choices
             if field["type"] == "selection":
                 for key, value in field["selection"]:
                     FieldFactory.addChoice(key, value)
             # Force Urls generator options
             if field["type"] == "char":
                 FieldFactory.addOption("Url_Prefix", "http://")
             # Force Monetary as ReadOnly
             if field["type"] == "monetary":
                 FieldFactory.isReadOnly()
Esempio n. 6
0
 def buildAttributesFields():
     # ====================================================================#
     # Set default System Language
     FieldFactory.setDefaultLanguage(TransHelper.get_default_iso())
     # ==================================================================== #
     # Product Variation Attribute Code
     FieldFactory.create(const.__SPL_T_VARCHAR__, "code", "Attr Code")
     FieldFactory.inlist("attributes")
     FieldFactory.microData(
         "http://schema.org/Product", "VariantAttributeCode"
         if Framework.isDebugMode() else "VariantAttributeName")
     FieldFactory.isNotTested()
     # ==================================================================== #
     # Product Variation Attribute Name
     FieldFactory.create(const.__SPL_T_VARCHAR__, "name", "Attr Name")
     FieldFactory.inlist("attributes")
     FieldFactory.isReadOnly()
     FieldFactory.isNotTested()
     if Framework.isDebugMode():
         FieldFactory.microData("http://schema.org/Product",
                                "VariantAttributeName")
     # ====================================================================#
     # Walk on Available Languages
     for iso_code, lang_name in TransHelper.get_all().items():
         # ==================================================================== #
         # Product Variation Attribute Code
         FieldFactory.create(const.__SPL_T_VARCHAR__, "value", "Attr Value")
         FieldFactory.description("[" + lang_name + "] Attr Value")
         FieldFactory.microData("http://schema.org/Product",
                                "VariantAttributeValue")
         FieldFactory.setMultilang(iso_code)
         FieldFactory.inlist("attributes")
         FieldFactory.isNotTested()
     # ==================================================================== #
     # Product Variation Attribute Extra Price
     if not SettingsManager.is_prd_simple_prices():
         FieldFactory.create(const.__SPL_T_DOUBLE__, "price_extra",
                             "Extra Price")
         FieldFactory.inlist("attributes")
         FieldFactory.microData(
             "http://schema.org/Product", "VariantAttributeCode"
             if Framework.isDebugMode() else "VariantExtraPrice")
         FieldFactory.isNotTested()
Esempio n. 7
0
 def __isEmptyFeatureTranslatedFields(self, field_id):
     from odoo.addons.splashsync.helpers import TransHelper
     for iso_code in TransHelper.get_extra_iso():
         iso_field_id = field_id+"_"+iso_code
         # Read Mode
         for key, val in self._in.copy().items():
             if iso_field_id != val:
                 continue
             self._out[iso_field_id] = ""
             self._in.__delitem__(key)
         # Write Mode
         if iso_field_id in self._in.keys():
             self._in.__delitem__(iso_field_id)
Esempio n. 8
0
    def _get_attributes_values(self, value_id):
        """
        Get List of Attributes Values for given Field
        :param value_id: str
        :return: dict
        """
        values = []
        # ====================================================================#
        # Walk on Product Attributes Values
        for attr_value in self.object.attribute_value_ids:
            # Filter Attributes that are NOT Variants Attributes
            if AttributesHelper.is_wnva(attr_value.attribute_id):
                continue
            # Collect Values
            if value_id == "value":
                values += [attr_value.name]
            elif value_id == "code":
                values += [attr_value.attribute_id[0].name]
            elif value_id == "name":
                values += [attr_value.attribute_id[0].display_name]
            # Attribute Extra Price
            elif value_id == "price_extra":
                values += [
                    self._get_attribute_extra_price(
                        attr_value.attribute_id[0].id)
                ]
            # Walk on Extra Languages
            for iso_code in TransHelper.get_extra_iso():
                if value_id != "value_" + iso_code:
                    continue
                values += [
                    TransHelper.get(attr_value, 'name', iso_code,
                                    attr_value.name)
                ]

        return values