from odoo import models, fields PERMISSION_TOPICS = [ ("exam", "Exam Management"), ("user", "User Management"), ("entity", "Entity Management"), ("group", "Group Management"), ("assignment", "Assignment Management"), ("code", "Code Management"), ("invite", "Invite Management"), ("payment", "Payment Management"), ("ticket", "Ticket Management"), ("approval", "Approval Workflow"), ("stats", "Statistics"), ("training", "Training"), ] PERMISSION_TYPES = [ ("create", "Create"), ("read", "Read"), ("update", "Update"), ("delete", "Delete"), ] class EncoachPermission(models.Model): _name = "encoach.permission" _description = "EnCoach Permission" topic = fields.Selection(PERMISSION_TOPICS, required=True) perm_type = fields.Selection(PERMISSION_TYPES, required=True) legacy_id = fields.Char(index=True) _topic_type_unique = models.Constraint( "UNIQUE(topic, perm_type)", "Permission topic/type combination must be unique.", ) def to_encoach_dict(self): self.ensure_one() return { "id": self.id, "topic": self.topic, "type": self.perm_type, }