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))
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)
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)
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])
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()
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()
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)
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