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.
45 lines
1.8 KiB
45 lines
1.8 KiB
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, models, fields
|
|
|
|
|
|
class ProjectTemplate(models.Model):
|
|
_name = 'support.package.template'
|
|
_description = 'Support Package Template'
|
|
_rec_name = 'name'
|
|
|
|
name = fields.Char(string="Name of Package")
|
|
count = fields.Char(string='Number of Tickets', readonly=False)
|
|
duration = fields.Float(
|
|
string='Ticket Duration', readonly=False,
|
|
help="Maximum allowed duration for a single ticket in hours")
|
|
validity_number = fields.Char(string='Support Package Validity',
|
|
readonly=False)
|
|
validity_rule = fields.Selection([
|
|
('days', 'Day(s)'),
|
|
('months', 'Month(s)'),
|
|
('years', 'Year(s)')], readonly=False, default='months')
|
|
package_validity = fields.Integer(string='Package Validity', store=True,
|
|
readonly=False,
|
|
compute='_compute_package_validity')
|
|
|
|
@api.depends('validity_number', 'validity_rule')
|
|
def _compute_package_validity(self):
|
|
"""Find package validity in days"""
|
|
for rec in self:
|
|
if rec.validity_rule == 'days':
|
|
rec.package_validity = int(rec.validity_number)
|
|
elif rec.validity_rule == 'months':
|
|
rec.package_validity = int(rec.validity_number) * 30
|
|
elif rec.validity_rule == 'years':
|
|
rec.package_validity = int(rec.validity_number) * 365
|
|
|
|
def button_create_package(self):
|
|
"""Button to convert template to project"""
|
|
return {
|
|
'type': 'ir.actions.act_window',
|
|
'name': 'Project Support Package',
|
|
'view_mode': 'form',
|
|
'res_model': 'project.project'
|
|
}
|
|
|