Skip to content

Commit

Permalink
[IMP] *: pre-commit automatic fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
cav-adhoc committed Jan 27, 2025
1 parent c055d3c commit c1768e6
Show file tree
Hide file tree
Showing 13 changed files with 147 additions and 184 deletions.
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

exclude: |
(?x)
# We don't want to mess with tool-generated files
.svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$|^.github/|^eslint.config.cjs|^prettier.config.cjs|
# Library files can have extraneous formatting (even minimized)
Expand Down
29 changes: 14 additions & 15 deletions partner_internal_code/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,22 @@

{
"name": "Partner Internal Code",
'version': "18.0.1.0.0",
'category': 'Tools',
'sequence': 14,
'author': 'ADHOC SA',
'website': 'www.adhoc.com.ar',
'license': 'AGPL-3',
'summary': '',
"version": "18.0.1.0.0",
"category": "Tools",
"sequence": 14,
"author": "ADHOC SA",
"website": "www.adhoc.com.ar",
"license": "AGPL-3",
"summary": "",
"depends": [
"base",
],
'external_dependencies': {
},
'data': [
'data/ir_sequence_data.xml',
'views/partner_view.xml',
"external_dependencies": {},
"data": [
"data/ir_sequence_data.xml",
"views/partner_view.xml",
],
'installable': True,
'auto_install': False,
'application': False,
"installable": True,
"auto_install": False,
"application": False,
}
16 changes: 6 additions & 10 deletions partner_internal_code/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,22 @@
# For copyright and license notices, see __manifest__.py file in module root
# directory
##############################################################################
from odoo import fields, models, api
from odoo import api, fields, models


class Partner(models.Model):

_inherit = 'res.partner'
_inherit = "res.partner"

internal_code = fields.Char(
copy=False,
index='btree_not_null',
index="btree_not_null",
)

@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
if not vals.get('internal_code'):
vals['internal_code'] = self.env['ir.sequence'].next_by_code('partner.internal.code')
if not vals.get("internal_code"):
vals["internal_code"] = self.env["ir.sequence"].next_by_code("partner.internal.code")
return super().create(vals_list)

_sql_constraints = {
('internal_code_uniq', 'unique(internal_code)',
'Internal Code must be unique!')
}
_sql_constraints = {("internal_code_uniq", "unique(internal_code)", "Internal Code must be unique!")}
28 changes: 14 additions & 14 deletions partner_sales_abc/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,20 @@
#
##############################################################################
{
'name': 'Partner Sales ABC',
'version': "16.0.1.0.0",
'website': 'www.adhoc.com.ar',
'author': 'ADHOC SA',
'license': 'AGPL-3',
'category': 'Tools',
'depends': [
'contacts',
"name": "Partner Sales ABC",
"version": "16.0.1.0.0",
"website": "www.adhoc.com.ar",
"author": "ADHOC SA",
"license": "AGPL-3",
"category": "Tools",
"depends": [
"contacts",
],
'data': [
'views/partner_view.xml',
"data": [
"views/partner_view.xml",
],
'test': [],
'installable': False,
'auto_install': False,
'application': False,
"test": [],
"installable": False,
"auto_install": False,
"application": False,
}
5 changes: 2 additions & 3 deletions partner_sales_abc/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@


class partner(models.Model):

_inherit = 'res.partner'
abc_sales_amount = fields.Char('ABC Sales amount')
_inherit = "res.partner"
abc_sales_amount = fields.Char("ABC Sales amount")
40 changes: 19 additions & 21 deletions partner_state/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,25 @@
#
##############################################################################
{
'name': 'Partner State',
'version': "18.0.1.0.0",
'category': 'Base',
'author': 'ADHOC SA, Odoo Community Association (OCA)',
'website': 'www.adhoc.com.ar',
'license': 'AGPL-3',
'depends': [
'contacts',
"name": "Partner State",
"version": "18.0.1.0.0",
"category": "Base",
"author": "ADHOC SA, Odoo Community Association (OCA)",
"website": "www.adhoc.com.ar",
"license": "AGPL-3",
"depends": [
"contacts",
],
'data': [
'security/partner_state_security.xml',
'security/ir.model.access.csv',
'data/res_company_data.xml',
'data/partner_state_server_data.xml',
'data/res_users_data.xml',
'views/res_partner_state_field_views.xml',
'views/partner_views.xml',
'views/res_company_views.xml',
"data": [
"security/partner_state_security.xml",
"security/ir.model.access.csv",
"data/res_company_data.xml",
"data/partner_state_server_data.xml",
"data/res_users_data.xml",
"views/res_partner_state_field_views.xml",
"views/partner_views.xml",
"views/res_company_views.xml",
],
'demo': [
'demo/res.partner.state_field.csv'
],
'installable': True,
"demo": ["demo/res.partner.state_field.csv"],
"installable": True,
}
6 changes: 3 additions & 3 deletions partner_state/models/res_company.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
# directory
##############################################################################

from odoo import models, fields
from odoo import fields, models


class ResCompany(models.Model):
_inherit = 'res.company'
_inherit = "res.company"

partner_state_enable = fields.Boolean(
'Use partner state?',
"Use partner state?",
default=True,
)
82 changes: 35 additions & 47 deletions partner_state/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,45 @@
# directory
##############################################################################

from odoo import models, fields, tools, _
from odoo import _, fields, models, tools
from odoo.exceptions import UserError


class ResPartner(models.Model):
_inherit = 'res.partner'
_inherit = "res.partner"

partner_state_enable = fields.Boolean(
compute='_compute_partner_state_enable',
compute="_compute_partner_state_enable",
)

partner_state = fields.Selection(
[('potential', 'Potential'), ('pending', 'Pending pproval'), ('approved', 'Approved')],
[("potential", "Potential"), ("pending", "Pending pproval"), ("approved", "Approved")],
readonly=True,
required=True,
default='potential',
default="potential",
copy=False,
)

def _compute_partner_state_enable(self):
self.partner_state_enable = False
if self.env.company.partner_state_enable:
partners = self.filtered(lambda r:
r.commercial_partner_id == r)
partners = self.filtered(lambda r: r.commercial_partner_id == r)
partners.partner_state_enable = True

def write(self, vals):
ResPartnerStateField = self.env['res.partner.state_field']
for partner in self.filtered(lambda r:
r.partner_state in
['approved', 'pending']):
partner_block_fields = ResPartnerStateField.search(
[('block_edition', '=', True)]).mapped('field_id.name')
ResPartnerStateField = self.env["res.partner.state_field"]
for partner in self.filtered(lambda r: r.partner_state in ["approved", "pending"]):
partner_block_fields = ResPartnerStateField.search([("block_edition", "=", True)]).mapped("field_id.name")
modified_fields = vals.keys()
# if it's a contact we only check the none commercial fields to
# allow them to be synchronized from parent
if partner.commercial_partner_id != partner:
modified_fields = list(
set(modified_fields) - set(self._commercial_fields()))
modified_fields = list(set(modified_fields) - set(self._commercial_fields()))

for key in modified_fields:
if key in partner_block_fields:
raise UserError(
_('You can not modify this field "%s"', (key)))
fields = partner.check_fields('track')
raise UserError(_('You can not modify this field "%s"', (key)))
fields = partner.check_fields("track")
if fields:
fields_set = set(fields)
vals_set = set(modified_fields)
Expand All @@ -56,56 +50,52 @@ def write(self, vals):
return super().write(vals)

def partner_state_potential(self):
self.write({'partner_state': 'potential'})
self.write({"partner_state": "potential"})

def partner_state_pending(self):
for rec in self:
fields = rec.check_fields('approval')
fields = rec.check_fields("approval")
if not fields:
rec.partner_state = 'pending'
rec.partner_state = "pending"
continue
partner_data = rec.read(fields)[0]
if all(partner_data.values()):
rec.partner_state = 'pending'
rec.partner_state = "pending"
continue
for partner_field, value in partner_data.items():
if not value:
raise UserError(_(
'Partner "%s" can not request approval, '
'required field %s', (
rec.display_name, partner_field)))
raise UserError(
_(
'Partner "%s" can not request approval, ' "required field %s",
(rec.display_name, partner_field),
)
)

def partner_state_approved(self):
self.check_partner_approve()
self.write({'partner_state': 'approved'})
self.write({"partner_state": "approved"})

def check_partner_approve(self):
user_can_approve_partners = self.env.user.has_group('partner_state.approve_partners')
user_can_approve_partners = self.env.user.has_group("partner_state.approve_partners")
if not user_can_approve_partners:
raise UserError(
_("User can't approve partners, "
"please check user permissions!"))
raise UserError(_("User can't approve partners, " "please check user permissions!"))
return True

def check_fields(self, field_type):
ret = False
for rec in self.filtered(lambda x: x.partner_state_enable):
partner_field_ids = rec.env['res.partner.state_field'].search([])
if field_type == 'approval':
ret = [
field.field_id.name for field in partner_field_ids if
field.approval]
elif field_type == 'track':
ret = [
field.field_id.name for field in partner_field_ids if
field.track]
partner_field_ids = rec.env["res.partner.state_field"].search([])
if field_type == "approval":
ret = [field.field_id.name for field in partner_field_ids if field.approval]
elif field_type == "track":
ret = [field.field_id.name for field in partner_field_ids if field.track]
return ret

@tools.ormcache('self.env.uid', 'self.env.su')
@tools.ormcache("self.env.uid", "self.env.su")
def _track_get_fields(self):
tracked_fields = []
# TODO we should use company of modified partner
for line in self.env['res.partner.state_field'].search([]):
for line in self.env["res.partner.state_field"].search([]):
if line.track:
tracked_fields.append(line.field_id.name)
if tracked_fields:
Expand All @@ -118,9 +108,7 @@ def _message_track(self, tracked_fields, initial_values):
from field properties to make message
"""
# TODO we should use company of modified partner
for line in self.env['res.partner.state_field'].search([(
'changes', '=', True)]):
for line in self.env["res.partner.state_field"].search([("changes", "=", True)]):
field = self._fields[line.field_id.name]
setattr(field, 'track_visibility', 'always')
return super()._message_track(
tracked_fields, initial_values)
setattr(field, "track_visibility", "always")
return super()._message_track(tracked_fields, initial_values)
34 changes: 11 additions & 23 deletions partner_state/models/res_partner_state_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,41 +3,29 @@
# directory
##############################################################################

from odoo import models, fields, api
from odoo import api, fields, models


class ResPartnerStateField(models.Model):
_name = 'res.partner.state_field'
_description = 'Partner State Fields'
_name = "res.partner.state_field"
_description = "Partner State Fields"

field_id = fields.Many2one(
'ir.model.fields',
string='Field',
"ir.model.fields",
string="Field",
required=True,
domain=[('model_id.model', '=', 'res.partner')],
ondelete='cascade'
)
approval = fields.Boolean(
'Approval?',
help="Required for Approval",
default=True
)
changes = fields.Boolean(
'Changes?',
help="Track changes of the partner in the chatter box",
default=True
)
track = fields.Boolean(
'Track?',
help="Track and, if change, go back to Potencial",
default=True
domain=[("model_id.model", "=", "res.partner")],
ondelete="cascade",
)
approval = fields.Boolean("Approval?", help="Required for Approval", default=True)
changes = fields.Boolean("Changes?", help="Track changes of the partner in the chatter box", default=True)
track = fields.Boolean("Track?", help="Track and, if change, go back to Potencial", default=True)
block_edition = fields.Boolean(
help="Do not allow to edit this field if the partner is approved",
default=True,
)

@api.onchange('track')
@api.onchange("track")
def _compute_changes(self):
if self.track:
self.changes = True
Loading

0 comments on commit c1768e6

Please sign in to comment.