Files
project_v19/odoo_subscription/models/selected_apps.py
T
2026-07-01 14:41:49 +07:00

31 lines
1.3 KiB
Python

from odoo import models, fields, api
from odoo.exceptions import UserError
class SelectedApps(models.Model):
_name = 'selected.apps'
_description = 'Selected Applications'
subscription_id = fields.Many2one('user.subscription', string='Subscription',
required=True, ondelete='cascade')
app_name = fields.Char(string='App Name', required=True)
app_technical_name = fields.Char(string='Technical Name')
app_icon = fields.Char(string='App Icon')
app_category = fields.Selection([
('sales', 'Sales'),
('finance', 'Finance'),
('services', 'Services'),
('marketing', 'Marketing'),
('other', 'Other'),
], string='Category', default='other')
is_installed = fields.Boolean(string='Installed', default=False)
@api.constrains('subscription_id')
def _check_max_apps(self):
for record in self:
subscription = record.subscription_id
if subscription.max_apps_allowed:
app_count = self.search_count([('subscription_id', '=', subscription.id)])
if app_count > subscription.max_apps_allowed:
raise UserError(
f'You can select at most {subscription.max_apps_allowed} apps'
)