diff options
| author | Mqdd <ahmadmiqdad27@gmail.com> | 2025-12-30 16:19:05 +0700 |
|---|---|---|
| committer | Mqdd <ahmadmiqdad27@gmail.com> | 2025-12-30 16:19:05 +0700 |
| commit | ea309ccb34ed588e91198cde98074c77ed1b2bef (patch) | |
| tree | d1eb8e19af746cdf6f076d35953c284b188307a6 | |
| parent | b0c16534780cc69320f16e7d3bbec29a811a6215 (diff) | |
<Miqdad> add brands
| -rw-r--r-- | indoteknik_custom/models/keywords.py | 26 | ||||
| -rw-r--r-- | indoteknik_custom/views/keywords.xml | 140 |
2 files changed, 87 insertions, 79 deletions
diff --git a/indoteknik_custom/models/keywords.py b/indoteknik_custom/models/keywords.py index 47546c1f..ef3715c9 100644 --- a/indoteknik_custom/models/keywords.py +++ b/indoteknik_custom/models/keywords.py @@ -20,6 +20,10 @@ class Keywords(models.Model): category_id = fields.Many2one('product.public.category', string='Category', required=True, help="Category to filter products when generating products for this keyword and to throw to solr") keywords = fields.Char('Keywords', required=True) + brand_id = fields.Many2one( + comodel_name="x_manufactures", + string="Brand" + ) product_ids = fields.Many2many( 'product.product', 'keywords_product_rel', @@ -53,15 +57,15 @@ class Keywords(models.Model): if not record.name: record.name = record.keywords - def check_already_exist(self): - model = self.env['keywords'] - for record in self: - match = model.search([ - ('keywords', '=', record.keywords), - ('category_id.id', '=', record.category_id.id) - ]) - if match: - raise UserError("Tidak bisa create karena keywords sudah dipakai") + # def check_already_exist(self): + # model = self.env['keywords'] + # for record in self: + # match = model.search([ + # ('keywords', '=', record.keywords), + # ('category_id.id', '=', record.category_id.id) + # ]) + # if match: + # raise UserError("Tidak bisa create karena keywords sudah dipakai") def copy(self): raise UserError("Duplicate Record not allowed") @@ -158,13 +162,13 @@ class Keywords(models.Model): @api.model def create(self, vals): record = super().create(vals) - self.check_already_exist() + # self.check_already_exist() # record.generate_products() return record def write(self, vals): result = super().write(vals) - self.check_already_exist() + # self.check_already_exist() # if not self.env.context.get("skip_generate") and not self.skip: # self.generate_products() return result diff --git a/indoteknik_custom/views/keywords.xml b/indoteknik_custom/views/keywords.xml index 6f1a675f..febd6d39 100644 --- a/indoteknik_custom/views/keywords.xml +++ b/indoteknik_custom/views/keywords.xml @@ -1,77 +1,81 @@ <?xml version="1.0" encoding="UTF-8" ?> <odoo> -<record id="keywords_tree" model="ir.ui.view"> - <field name="name">keywords.tree</field> - <field name="model">keywords</field> - <field name="arch" type="xml"> - <tree > - <field name="category_id" /> - <field name="keywords" /> - <field name="url" /> - <field name="sum" /> - <field name="product_ids" widget="many2many_tags" /> - </tree> - </field> -</record> + <record id="keywords_tree" model="ir.ui.view"> + <field name="name">keywords.tree</field> + <field name="model">keywords</field> + <field name="arch" type="xml"> + <tree > + <field name="category_id" /> + <field name="brand_id" /> + <field name="keywords" /> + <field name="url" /> + <field name="sum" /> + <field name="product_ids" widget="many2many_tags" /> + </tree> + </field> + </record> -<record id="keywords_form" model="ir.ui.view"> + <record id="keywords_form" model="ir.ui.view"> <field name="name">keywords.form</field> <field name="model">keywords</field> <field name="arch" type="xml"> - <form> - <header> - <button name="generate_products" string="Generate Product Manual" type="object" class="oe_highlight"/> - <button name="clear_products" string="Clear Generated Products" type="object" /> - </header> - <sheet> - <div class="oe_title"> - <h1> - <field name="name" readonly="1" class="oe_inline"/> - </h1> - </div> - <group> - <field name="category_id" /> - <field name="keywords" /> - <field name="url" /> - <field name="sum" /> - <field name="product_ids" widget="many2many_tags" /> - <field name="skip" /> - </group> - </sheet> - </form> - </field> -</record> + <form> + <header> + <button name="generate_products" string="Generate Product Manual" type="object" class="oe_highlight"/> + <button name="clear_products" string="Clear Generated Products" type="object" /> + </header> + <sheet> + <div class="oe_title"> + <h1> + <field name="name" readonly="1" class="oe_inline"/> + </h1> + </div> + <group> + <field name="category_id" /> + <field name="brand_id" /> + <field name="keywords" /> + <field name="url" /> + <field name="sum" /> + <field name="product_ids" widget="many2many_tags" /> + <field name="skip" /> + </group> + </sheet> + </form> + </field> + </record> -<record id="view_keywords_filter" model="ir.ui.view"> - <field name="name">keywords.list.select</field> - <field name="model">keywords</field> - <field name="priority" eval="15"/> - <field name="arch" type="xml"> - <search string="Search Keywords"> - <field name="category_id"/> - <field name="keywords"/> - <field name="product_ids" widget="many2many_tags"/> - </search> - </field> -</record> - <record id="action_keywords" model="ir.actions.act_window"> - <field name="name">Keywords</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">keywords</field> - <field name="search_view_id" ref="view_keywords_filter"/> - <field name="view_mode">tree,form</field> - </record> + <record id="view_keywords_filter" model="ir.ui.view"> + <field name="name">keywords.list.select</field> + <field name="model">keywords</field> + <field name="priority" eval="15"/> + <field name="arch" type="xml"> + <search string="Search Keywords"> + <field name="category_id"/> + <field name="brand_id" /> + <field name="keywords"/> + <field name="sum"/> + <field name="product_ids" widget="many2many_tags"/> + </search> + </field> + </record> + <record id="action_keywords" model="ir.actions.act_window"> + <field name="name">Keywords</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">keywords</field> + <field name="search_view_id" ref="view_keywords_filter"/> + <field name="view_mode">tree,form</field> + </record> - <record id="ir_actions_server_keywords_sync_to_solr" model="ir.actions.server"> - <field name="name">Sync to solr</field> - <field name="model_id" ref="indoteknik_custom.model_keywords"/> - <field name="binding_model_id" ref="indoteknik_custom.model_keywords"/> - <field name="state">code</field> - <field name="code">model.sync_solr()</field> - </record> -<menuitem id="menu_keywords" - name="Keywords" - parent="website_sale.menu_orders" - action="action_keywords" - sequence="100"/> + <record id="ir_actions_server_keywords_sync_to_solr" model="ir.actions.server"> + <field name="name">Sync to solr</field> + <field name="model_id" ref="indoteknik_custom.model_keywords"/> + <field name="binding_model_id" ref="indoteknik_custom.model_keywords"/> + <field name="state">code</field> + <field name="code">model.sync_solr()</field> + </record> + <menuitem id="menu_keywords" + name="Keywords" + parent="website_sale.menu_orders" + action="action_keywords" + sequence="100"/> </odoo> |
