Browse Source

Sep 20 [FIX] : Bug Fixed 'website_seo_kit'

pull/278/head
AjmalCybro 2 years ago
parent
commit
eb88335cf8
  1. 8
      website_seo_kit/__manifest__.py
  2. 6
      website_seo_kit/doc/RELEASE_NOTES.md
  3. 30
      website_seo_kit/models/website_seo.py
  4. 4
      website_seo_kit/security/ir.model.access.csv
  5. 2
      website_seo_kit/security/ir_rule.xml
  6. 8
      website_seo_kit/views/seo_categ_view.xml
  7. 7
      website_seo_kit/views/seo_generator_view.xml

8
website_seo_kit/__manifest__.py

@ -21,8 +21,8 @@
############################################################################ ############################################################################
{ {
'name': "Website SEO Kit", 'name': "Website SEO Kit",
'version': '16.0.1.0.0', 'version': '16.0.1.1.0',
'summary': """website seo kit used for 'summary': """Website seo kit used for
automatically generate meta titles, descriptions, automatically generate meta titles, descriptions,
and keywords for each product and product category""", and keywords for each product and product category""",
'description': """This module help to generate seo content""", 'description': """This module help to generate seo content""",
@ -34,7 +34,7 @@
'images': ['static/description/banner.png'], 'images': ['static/description/banner.png'],
'depends': ['base', 'website', 'website_sale'], 'depends': ['base', 'website', 'website_sale'],
'data': [ 'data': [
'security/security_rule.xml', 'security/ir_rule.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'views/seo_categ_view.xml', 'views/seo_categ_view.xml',
'views/seo_generator_view.xml', 'views/seo_generator_view.xml',
@ -44,4 +44,4 @@
'installable': True, 'installable': True,
'auto_install': False, 'auto_install': False,
'application': False, 'application': False,
} }

6
website_seo_kit/doc/RELEASE_NOTES.md

@ -3,5 +3,9 @@
#### 17.02.2023 #### 17.02.2023
#### Version 16.0.1.0.0 #### Version 16.0.1.0.0
#### ADD #### ADD
- Initial commit for Website SEO Kit - Initial commit for Website SEO Kit
#### 18.09.2023
#### Version 16.0.1.1.0
##### FIX
- Bug Fixed

30
website_seo_kit/models/website_seo.py

@ -23,7 +23,7 @@ from odoo import api, exceptions, fields, models
class WebsiteSeoAttribute(models.Model): class WebsiteSeoAttribute(models.Model):
"""this module allows to user to give attributes""" """This module allows to user to give attributes"""
_name = 'website.seo.attributes' _name = 'website.seo.attributes'
_description = 'Website SEO' _description = 'Website SEO'
@ -33,19 +33,21 @@ class WebsiteSeoAttribute(models.Model):
('description_sale', 'Product Description'), ('description_sale', 'Product Description'),
('default_code', 'Internal Reference'), ('default_code', 'Internal Reference'),
('company_id', 'Company Name')], ('company_id', 'Company Name')],
help='Select Product') help='Select Product', string="Product")
models = fields.Selection([('product', 'Product'), models = fields.Selection([('product', 'Product'),
('product_category', 'Product Category')], ('product_category', 'Product Category')],
string='Model', help='Choose your model') string='Model', help='Choose your model')
tech_name = fields.Char(string='Technical name') tech_name = fields.Char(string='Technical name', help="Technical Name")
category = fields.Selection([('name', 'Category Name'), category = fields.Selection([('name', 'Category Name'),
('parent_id', 'Category Parent Name'), ('parent_id', 'Category Parent Name'),
('category_description', ('category_description',
'Category Description')], 'Category Description')],
help='Select Product Category') help='Select Product Category',
string="Select Product Category")
@api.constrains('name') @api.constrains('name')
def _check_unique_name(self): def _check_unique_name(self):
"""Check for unique name"""
for rec in self: for rec in self:
domain = [('name', '=', rec.name.lower())] domain = [('name', '=', rec.name.lower())]
if self.search_count(domain) > 1: if self.search_count(domain) > 1:
@ -63,22 +65,18 @@ class GenerateSeo(models.Model):
('product_category', 'Product Category')], ('product_category', 'Product Category')],
string='SEO Meta Configuration For', string='SEO Meta Configuration For',
help='Select any these model', required=True) help='Select any these model', required=True)
meta_title_ids = fields.Many2many('website.seo.attributes', meta_title_ids = fields.Many2many('website.seo.attributes',
'title', 'title_id', string='Meta Title', 'title', 'title_id', string='Meta Title',
help='Choose meta tittle', required=True) help='Choose meta tittle', required=True)
meta_description_ids = fields.Many2many('website.seo.attributes', meta_description_ids = fields.Many2many('website.seo.attributes',
'description', 'description_id', 'description', 'description_id',
string='Meta Description', string='Meta Description',
help='Choose meta description', help='Choose meta description',
required=True) required=True)
attribute_separator = fields.Char(string="Multi Attribute Separator", attribute_separator = fields.Char(string="Multi Attribute Separator",
default="|", required=True) default="|", required=True)
company_id = fields.Many2one('res.company', string='Company', company_id = fields.Many2one('res.company', string='Company',
default=lambda self: self.env.company) default=lambda self: self.env.company)
meta_ids = fields.Many2many('website.seo.attributes', 'meta', 'meta_id', meta_ids = fields.Many2many('website.seo.attributes', 'meta', 'meta_id',
string='Title !') string='Title !')
state = fields.Selection([ state = fields.Selection([
@ -100,7 +98,7 @@ class GenerateSeo(models.Model):
[('models', '=', 'product_category')])] [('models', '=', 'product_category')])]
def action_save_seo_info(self): def action_save_seo_info(self):
"""save the seo content""" """Save the seo content"""
for rec in self.search([]): for rec in self.search([]):
if rec.id == self.id: if rec.id == self.id:
self.write({'state': 'activated'}) self.write({'state': 'activated'})
@ -127,7 +125,6 @@ class GenerateSeo(models.Model):
'website_meta_keywords': pro.name 'website_meta_keywords': pro.name
}) })
meta_title.append(values) meta_title.append(values)
if self.meta_description_ids: if self.meta_description_ids:
products = self.env['product.template'].search_read( products = self.env['product.template'].search_read(
[], fields=self.meta_description_ids.mapped('product')) [], fields=self.meta_description_ids.mapped('product'))
@ -158,7 +155,6 @@ class GenerateSeo(models.Model):
'sticky': False, 'sticky': False,
} }
} }
elif self.model_name == 'product_category': elif self.model_name == 'product_category':
if self.meta_title_ids: if self.meta_title_ids:
products = self.env['product.public.category'].search_read( products = self.env['product.public.category'].search_read(
@ -183,11 +179,10 @@ class GenerateSeo(models.Model):
'website_meta_keywords': pro.name 'website_meta_keywords': pro.name
}) })
meta_categ_title.append(values) meta_categ_title.append(values)
if self.meta_description_ids: if self.meta_description_ids:
products = self.env['product.public.category'].search_read( products = self.env['product.public.category'].search_read(
[('is_auto_seo', '=', True)], [('is_auto_seo', '=', True)],
fields= self.meta_description_ids.mapped('category')) fields=self.meta_description_ids.mapped('category'))
meta_categ_description = [] meta_categ_description = []
for product in products: for product in products:
sep = self.attribute_separator sep = self.attribute_separator
@ -199,12 +194,12 @@ class GenerateSeo(models.Model):
'string': string, 'string': string,
'id': product['id'] 'id': product['id']
} }
pro = self.env['product.public.category'].browse(values['id']) pro = self.env[
'product.public.category'].browse(values['id'])
pro.write({ pro.write({
'website_meta_description': values['string'], 'website_meta_description': values['string'],
}) })
meta_categ_description.append(values) meta_categ_description.append(values)
return { return {
'type': 'ir.actions.client', 'type': 'ir.actions.client',
'tag': 'display_notification', 'tag': 'display_notification',
@ -220,12 +215,11 @@ class GenerateSeo(models.Model):
class SeoPublicCategory(models.Model): class SeoPublicCategory(models.Model):
"""here user can include category by enabling is_auto_seo field""" """Here user can include category by enabling is_auto_seo field"""
_inherit = 'product.public.category' _inherit = 'product.public.category'
is_auto_seo = fields.Boolean(string="Auto Update SEO", is_auto_seo = fields.Boolean(string="Auto Update SEO",
help='enable for generate seo content ' help='enable for generate seo content '
'automatically for this category') 'automatically for this category')
category_description = fields.Text(string='Description For This Category', category_description = fields.Text(string='Description For This Category',
help='Description For This Category', help='Description For This Category')
required=True)

4
website_seo_kit/security/ir.model.access.csv

@ -1,3 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_website_seo_attributes,model_website_seo_attributes,model_website_seo_attributes,website.group_website_designer,1,1,1,1 access_website_seo_attributes,model.website.seo.attributes,model_website_seo_attributes,website.group_website_designer,1,1,1,1
access_seo_generate,model_seo_generate,model_seo_generate,website.group_website_designer,1,1,1,1 access_seo_generate,model.seo.generate,model_seo_generate,website.group_website_designer,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_website_seo_attributes model_website_seo_attributes model.website.seo.attributes model_website_seo_attributes website.group_website_designer 1 1 1 1
3 access_seo_generate model_seo_generate model.seo.generate model_seo_generate website.group_website_designer 1 1 1 1

2
website_seo_kit/security/security_rule.xml → website_seo_kit/security/ir_rule.xml

@ -5,4 +5,4 @@
<field name="model_id" ref="model_seo_generate"/> <field name="model_id" ref="model_seo_generate"/>
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> <field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
</record> </record>
</odoo> </odoo>

8
website_seo_kit/views/seo_categ_view.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<!-- inherited form iew of product.public.category--> <!--Inherited form iew of product.public.category-->
<record id="product_public_category_view_form" model="ir.ui.view"> <record id="product_public_category_form_view" model="ir.ui.view">
<field name="name">product.public.category.view.form.inherit.website.seo.kit</field> <field name="name">product.public.category.view.form.inherit.website.seo.kit</field>
<field name="model">product.public.category</field> <field name="model">product.public.category</field>
<field name="inherit_id" <field name="inherit_id"
@ -23,10 +23,10 @@
</page> </page>
<page string="Category Description" attrs="{'invisible': [('is_auto_seo','!=',True)]}"> <page string="Category Description" attrs="{'invisible': [('is_auto_seo','!=',True)]}">
<field name="category_description" <field name="category_description"
placeholder="Enter Category Description"/> placeholder="Enter Category Description" required="True"/>
</page> </page>
</notebook> </notebook>
</xpath> </xpath>
</field> </field>
</record> </record>
</odoo> </odoo>

7
website_seo_kit/views/seo_generator_view.xml

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<!-- View of generate seo menu --> <!--View of generate seo menu -->
<record id="generate_seo_form_view" model="ir.ui.view"> <record id="generate_seo_form_view" model="ir.ui.view">
<field name="name">seo.generate.view.form</field> <field name="name">seo.generate.view.form</field>
<field name="model">seo.generate</field> <field name="model">seo.generate</field>
@ -41,7 +41,7 @@
</form> </form>
</field> </field>
</record> </record>
<!-- tree view of seo.generate model--> <!-- Tree view of seo.generate model-->
<record id="generate_seo_tree_view" model="ir.ui.view"> <record id="generate_seo_tree_view" model="ir.ui.view">
<field name="name">seo.generate.view.tree</field> <field name="name">seo.generate.view.tree</field>
<field name="model">seo.generate</field> <field name="model">seo.generate</field>
@ -56,7 +56,6 @@
</tree> </tree>
</field> </field>
</record> </record>
<!-- Action of generate seo menu --> <!-- Action of generate seo menu -->
<record id="action_website_generate_seo" model="ir.actions.act_window"> <record id="action_website_generate_seo" model="ir.actions.act_window">
<field name="name">Website SEO</field> <field name="name">Website SEO</field>
@ -69,4 +68,4 @@
parent="website.menu_site" parent="website.menu_site"
action="action_website_generate_seo" action="action_website_generate_seo"
groups="website.group_website_designer"/> groups="website.group_website_designer"/>
</odoo> </odoo>

Loading…
Cancel
Save