Skip to content

Commit 8dbf7c0

Browse files
committed
[IMP] academic: when you choose partner that automatically shows you the children
1 parent d729611 commit 8dbf7c0

File tree

4 files changed

+28
-15
lines changed

4 files changed

+28
-15
lines changed

academic/__manifest__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
##############################################################################
2020
{
2121
'name': 'Academic',
22-
'version': "16.0.1.7.0",
22+
'version': "16.0.1.8.0",
2323
'sequence': 14,
2424
'summary': '',
2525
'author': 'ADHOC SA',
@@ -59,6 +59,7 @@
5959
'data/res_users_data.xml',
6060
'wizards/portal_wizard_views.xml',
6161
'data/res_partner_role_data.xml',
62+
'views/account_move_views.xml',
6263
],
6364
'demo': [
6465
'demo/res_partner_relationship_demo.xml',

academic/models/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@
1717
from . import res_partner_role
1818
from . import res_partner_link
1919
from . import sale_order
20+
from . import account_move

academic/models/account_move.py

+13-14
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
from odoo import _, models, fields, api
2-
from odoo.exceptions import ValidationError
3-
import logging
4-
5-
_logger = logging.getLogger(__name__)
1+
from odoo import models, fields, api
62

73

84
class AccountMove(models.Model):
95
_inherit = 'account.move'
106

11-
student_id = fields.Many2one('res.partner', string='Alumno', domain="[('parent_id', '=', partner_id), ('partner_type', '=', 'student')]")
7+
student_ids = fields.Many2many('res.partner', compute="_compute_student_ids")
8+
partner_shipping_id = fields.Many2one(domain="[('id', 'in', student_ids), ('partner_type', '=', 'student')]")
129

13-
@api.constrains('student_id')
14-
def _check_student(self):
15-
invoices_wo_student = self.filtered(lambda x: x.type in ["out_invoice", "out_refund"] and not x.student_id)
16-
if invoices_wo_student:
17-
msg = _("Las facturas de clientes y notas de debito debe tener asociado siempre un alumno")
18-
if len(invoices_wo_student) > 1:
19-
msg += ".\n" + _("Los siguientes documentos no cumplen esa condición:") + "\n\n - %s" % '\n - '.join(invoices_wo_student.mapped('display_name'))
20-
raise ValidationError(msg)
10+
@api.depends('partner_id')
11+
def _compute_student_ids(self):
12+
for rec in self:
13+
if rec.partner_id:
14+
student_ids = self.env['res.partner.link'].search(
15+
[('partner_id', '=', rec.partner_id.id), ('role_ids', 'in', self.env.ref('academic.paying_role').id)]
16+
).mapped('student_id.id')
17+
rec.student_ids = [(6, 0, student_ids)]
18+
else:
19+
rec.student_ids = [(5, 0, 0)]

academic/views/account_move_views.xml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<odoo>
2+
<record id="academic_view_move_form" model="ir.ui.view">
3+
<field name="name">academic.account.move.form</field>
4+
<field name="model">account.move</field>
5+
<field name="inherit_id" ref="account.view_move_form"/>
6+
<field name="arch" type="xml">
7+
<field name="partner_id" position="after">
8+
<field name="student_ids" invisible="1"/>
9+
</field>
10+
</field>
11+
</record>
12+
</odoo>

0 commit comments

Comments
 (0)