Files
2026-05-31 10:17:09 +07:00

34 lines
1.2 KiB
Python

from odoo import fields, models
class IfcDocumentRevision(models.Model):
_name = 'grt.ifc.document.revision'
_description = 'IFC Document Revision'
_order = 'revision_number desc, id desc'
project_id = fields.Many2one(
'grt.ifc.project',
string='IFC Document',
required=True,
ondelete='cascade',
index=True,
)
revision_number = fields.Integer(string='Revision', required=True, default=1, index=True)
revision_label = fields.Char(string='Revision Label', compute='_compute_revision_label', store=True)
revision_date = fields.Datetime(string='Revision Date', default=fields.Datetime.now, required=True)
revised_by_id = fields.Many2one(
'res.users',
string='Revised By',
default=lambda self: self.env.user,
required=True,
index=True,
)
revision_note = fields.Text(string='Revision Notes')
file_data = fields.Binary(string='IFC File Snapshot', attachment=True)
file_name = fields.Char(string='File Name')
is_current = fields.Boolean(string='Current Revision', default=False, index=True)
def _compute_revision_label(self):
for record in self:
record.revision_label = 'R%02d' % (record.revision_number or 0)