46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
from odoo import models
|
|
|
|
|
|
class ResUsers(models.Model):
|
|
_inherit = "res.users"
|
|
|
|
def _dance_is_teacher(self):
|
|
"""A teacher is an employee who instructs at least one dance batch."""
|
|
self.ensure_one()
|
|
employee = self.employee_id
|
|
if not employee:
|
|
return False
|
|
return bool(
|
|
self.env["dance.batch"]
|
|
.sudo()
|
|
.search_count([("instructor_id", "=", employee.id)])
|
|
)
|
|
|
|
def _dance_is_parent(self):
|
|
"""A parent is a partner linked as guardian to at least one student."""
|
|
self.ensure_one()
|
|
partner = self.partner_id
|
|
if not partner:
|
|
return False
|
|
return bool(
|
|
self.env["res.partner"]
|
|
.sudo()
|
|
.search_count(
|
|
[
|
|
("is_student", "=", True),
|
|
"|",
|
|
("guardian_id", "=", partner.id),
|
|
("guardian_ids", "in", [partner.id]),
|
|
]
|
|
)
|
|
)
|
|
|
|
def _dance_landing_url(self):
|
|
"""Where this user should land after login (False = default)."""
|
|
self.ensure_one()
|
|
if self._dance_is_teacher():
|
|
return "/teacher"
|
|
if self._dance_is_parent():
|
|
return "/my/home"
|
|
return False
|