odex25_standard/odex25_ensan/odex_benefit/models/family_complaints.py

53 lines
2.3 KiB
Python

from odoo import fields, models, api, _
from odoo.exceptions import UserError
class FamilyComplaints(models.Model):
_name = 'family.complaints'
_rec_name = 'complaints_reason'
_inherit = ['mail.thread', 'mail.activity.mixin']
complaints_date = fields.Datetime(string="Complaints Date",default=fields.Datetime.now)
family_id = fields.Many2one('grant.benefit',string='Family',domain="['|',('state','=','second_approve'),'&',('state','in',['waiting_approve','first_approve']),('action_type','=','suspended')]")
researcher_id = fields.Many2one("committees.line", string="Researcher",related="family_id.researcher_id")
branch_custom_id = fields.Many2one('branch.settings', string="Branch",related='family_id.branch_custom_id')
complaints_reason = fields.Char(string="Complaints Reason")
message = fields.Text(string="Message")
complaints_category_ids = fields.Many2many('complaints.category',relation="family_complaints_category_rel",
column1="family_complaints",
column2="category",
string="Complaints Categories")
priority = fields.Selection( [ ('0', 'Normal'),('1', 'Low'),('2', 'High'),('3', 'Very High'),('4', 'Very Very High'),('5', 'Danger')], string='Priority')
state = fields.Selection([('draft', 'Draft'),('receiving_complaint', 'Receiving the complaint'),('review_complaint', 'Review Complaint'),
('work_in_complaint', 'Work in complaint'),('complaint_done', 'Complaint Done'),('refuse', 'Refuse')],
default='draft',tracking=True)
def unlink(self):
for order in self:
if order.state not in ['draft']:
raise UserError(_('You cannot delete this record'))
return super(FamilyComplaints, self).unlink()
def action_receiving_complaint(self):
for rec in self:
rec.state = 'receiving_complaint'
def action_review_complaint(self):
for rec in self:
rec.state = 'review_complaint'
def action_work_in_complaint(self):
for rec in self:
rec.state = 'work_in_complaint'
def action_done(self):
for rec in self:
rec.state = 'complaint_done'
def action_refuse(self):
for rec in self:
rec.state = 'refuse'