Mourad
7 years ago
committed by
Iván Todorovich
7 changed files with 128 additions and 87 deletions
-
1base_exception/__manifest__.py
-
69base_exception/models/base_exception.py
-
2base_exception/security/ir.model.access.csv
-
8base_exception/security/tmp_test_model_access_rule.xml
-
120base_exception/tests/test_tmp_model.py
-
13base_exception/wizard/base_exception_confirm.py
-
2base_exception/wizard/base_exception_confirm_view.xml
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<function |
|||
model="base.exception" |
|||
name="_import_acl_for_tmp_test_model"/> |
|||
</data> |
|||
</odoo> |
@ -1,71 +1,77 @@ |
|||
# Copyright 2017 Akretion (http://www.akretion.com) |
|||
# Mourad EL HADJ MIMOUNE <mourad.elhadj.mimoune@akretion.com> |
|||
import os |
|||
from odoo import api, fields, models, tools |
|||
import logging |
|||
|
|||
from odoo import fields, models, api |
|||
_logger = logging.getLogger(__name__) |
|||
|
|||
testing = tools.config.get('test_enable') or os.environ.get('ODOO_TEST_ENABLE') |
|||
if testing: |
|||
class PurchaseTest(models.Model): |
|||
_inherit = 'base.exception' |
|||
_name = "base.exception.test.purchase" |
|||
_description = "Base Ecxeption Test Model" |
|||
|
|||
class PurchaseTest(models.Model): |
|||
_inherit = 'base.exception' |
|||
_name = "base.exception.test.purchase" |
|||
_description = "Base Ecxeption Test Model" |
|||
rule_group = fields.Selection( |
|||
selection_add=[('test_base', 'test')], |
|||
default='test_base', |
|||
) |
|||
name = fields.Char(required=True) |
|||
user_id = fields.Many2one('res.users', string='Responsible') |
|||
state = fields.Selection( |
|||
[('draft', 'New'), ('cancel', 'Cancelled'), |
|||
('purchase', 'Purchase'), |
|||
('to approve', 'To approve'), ('done', 'Done')], |
|||
string="Status", readonly=True, default='draft') |
|||
active = fields.Boolean(default=True) |
|||
partner_id = fields.Many2one('res.partner', string='Partner') |
|||
line_ids = fields.One2many( |
|||
'base.exception.test.purchase.line', 'lead_id') |
|||
amount_total = fields.Float( |
|||
compute='_compute_amount_total', store=True) |
|||
|
|||
rule_group = fields.Selection( |
|||
selection_add=[('test_base', 'test')], |
|||
default='test_base', |
|||
) |
|||
name = fields.Char(required=True) |
|||
user_id = fields.Many2one('res.users', string='Responsible') |
|||
state = fields.Selection( |
|||
[('draft', 'New'), ('cancel', 'Cancelled'), |
|||
('purchase', 'Purchase'), |
|||
('to approve', 'To approve'), ('done', 'Done')], |
|||
string="Status", readonly=True, default='draft') |
|||
active = fields.Boolean(default=True) |
|||
partner_id = fields.Many2one('res.partner', string='Partner') |
|||
line_ids = fields.One2many('base.exception.test.model.line', 'lead_id') |
|||
amount_total = fields.Float(compute='_compute_amount_total', store=True) |
|||
@api.depends('line_ids') |
|||
def _compute_amount_total(self): |
|||
for record in self: |
|||
for line in record.line_ids: |
|||
record.amount_total += line.amount * line.qty |
|||
|
|||
@api.depends('line_ids') |
|||
def _compute_amount_total(self): |
|||
for record in self: |
|||
for line in record.line_ids: |
|||
record.amount_total += line.amount * line.qty |
|||
@api.constrains('ignore_exception', 'line_ids', 'state') |
|||
def test_purchase_check_exception(self): |
|||
orders = self.filtered(lambda s: s.state == 'purchase') |
|||
if orders: |
|||
orders._check_exception() |
|||
|
|||
@api.constrains('ignore_exception', 'line_ids', 'state') |
|||
def test_purchase_check_exception(self): |
|||
orders = self.filtered(lambda s: s.state == 'purchase') |
|||
if orders: |
|||
orders._check_exception() |
|||
@api.multi |
|||
def button_approve(self, force=False): |
|||
self.write({'state': 'to approve'}) |
|||
return {} |
|||
|
|||
@api.multi |
|||
def button_approve(self, force=False): |
|||
self.write({'state': 'to approve'}) |
|||
return {} |
|||
@api.multi |
|||
def button_draft(self): |
|||
self.write({'state': 'draft'}) |
|||
return {} |
|||
|
|||
@api.multi |
|||
def button_draft(self): |
|||
self.write({'state': 'draft'}) |
|||
return {} |
|||
@api.multi |
|||
def button_confirm(self): |
|||
self.write({'state': 'purchase'}) |
|||
return True |
|||
|
|||
@api.multi |
|||
def button_confirm(self): |
|||
self.write({'state': 'purchase'}) |
|||
return True |
|||
@api.multi |
|||
def button_cancel(self): |
|||
self.write({'state': 'cancel'}) |
|||
|
|||
@api.multi |
|||
def button_cancel(self): |
|||
self.write({'state': 'cancel'}) |
|||
def test_base_get_lines(self): |
|||
self.ensure_one() |
|||
return self.line_ids |
|||
|
|||
def test_base_get_lines(self): |
|||
self.ensure_one() |
|||
return self.line_ids |
|||
class LineTest(models.Model): |
|||
_name = "base.exception.test.purchase.line" |
|||
_description = "Base Ecxeption Test Model Line" |
|||
|
|||
|
|||
class LineTest(models.Model): |
|||
_name = "base.exception.test.model.line" |
|||
_description = "Base Ecxeption Test Model Line" |
|||
|
|||
name = fields.Char() |
|||
lead_id = fields.Many2one('base.exception.test.model', ondelete='cascade') |
|||
qty = fields.Float() |
|||
amount = fields.Float() |
|||
name = fields.Char() |
|||
lead_id = fields.Many2one('base.exception.test.purchase', |
|||
ondelete='cascade') |
|||
qty = fields.Float() |
|||
amount = fields.Float() |
Write
Preview
Loading…
Cancel
Save
Reference in new issue