You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.7 KiB
41 lines
1.7 KiB
# Copyright (C) 2018 - TODAY, Pavlov Media
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
|
|
from odoo import fields, models, api
|
|
|
|
|
|
class AgreementServiceProfile(models.Model):
|
|
_name = 'agreement.serviceprofile'
|
|
_inherit = 'mail.thread'
|
|
_description = 'Agreement Service Profiles'
|
|
|
|
def _default_stage_id(self):
|
|
return self.env.ref('agreement_serviceprofile.servpro_stage_draft')
|
|
|
|
name = fields.Char(string="Name", required=True)
|
|
stage_id = fields.Many2one('agreement.stage', string="Stage",
|
|
default=_default_stage_id, copy=False,
|
|
group_expand='_read_group_stage_ids',)
|
|
agreement_id = fields.Many2one('agreement', string="Agreement",
|
|
ondelete="cascade")
|
|
active = fields.Boolean(string="Active",
|
|
default=True,
|
|
help="If unchecked, it will allow you " +
|
|
"to hide this service profile"
|
|
" without removing it.")
|
|
|
|
notes = fields.Text(string="Notes")
|
|
product_id = fields.Many2one('product.template', 'Service Product',
|
|
domain="[('is_serviceprofile', '=', True), "
|
|
"('type', '=', 'service')]",
|
|
required=True)
|
|
partner_id = fields.Many2one(related='agreement_id.partner_id',
|
|
string='Partner')
|
|
|
|
# Used for Kanban grouped_by view
|
|
@api.model
|
|
def _read_group_stage_ids(self, stages, domain, order):
|
|
stage_ids = self.env["agreement.stage"].search(
|
|
[('stage_type', '=', 'serviceprofile')])
|
|
return stage_ids
|