75 lines
3.2 KiB
Python
75 lines
3.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import api, fields, models, _
|
|
from odoo.exceptions import AccessError
|
|
|
|
|
|
class PremiumService(models.Model):
|
|
_name = "premium.service"
|
|
_description = "Премиум: сервис/продукт"
|
|
_order = "sequence, name"
|
|
|
|
name = fields.Char(string="Название", required=True, translate=True)
|
|
sequence = fields.Integer(default=10)
|
|
|
|
category = fields.Selection(
|
|
selection=[
|
|
("services", "Услуги"),
|
|
("bank", "Банки, кассы, ЭДО"),
|
|
("wms", "WMS, логистика и ЧЗ"),
|
|
("marketplace", "Маркетплейсы"),
|
|
("industry", "Отраслевые"),
|
|
("other", "Другое"),
|
|
],
|
|
string="Категория",
|
|
required=True,
|
|
default="services",
|
|
translate=False,
|
|
)
|
|
|
|
short_description = fields.Text(string="Краткое описание", translate=True)
|
|
description = fields.Html(string="Описание", sanitize=True, translate=True)
|
|
author_url = fields.Char(string="Автор (URL)")
|
|
image = fields.Image(string="Изображение", max_width=1024, max_height=768)
|
|
|
|
def write(self, vals):
|
|
# Проверяем, является ли пользователь администратором
|
|
if not self.env.user.has_group('base.group_system'):
|
|
# Если не администратор, запрещаем запись
|
|
raise AccessError("Только администратор может редактировать карточки сервисов.")
|
|
return super(PremiumService, self).write(vals)
|
|
|
|
@api.model
|
|
def create(self, vals):
|
|
# Проверяем, является ли пользователь администратором
|
|
if not self.env.user.has_group('base.group_system'):
|
|
# Если не администратор, запрещаем создание
|
|
raise AccessError("Только администратор может создавать карточки сервисов.")
|
|
return super(PremiumService, self).create(vals)
|
|
|
|
def unlink(self):
|
|
# Проверяем, является ли пользователь администратором
|
|
if not self.env.user.has_group('base.group_system'):
|
|
# Если не администратор, запрещаем удаление
|
|
raise AccessError("Только администратор может удалять карточки сервисов.")
|
|
return super(PremiumService, self).unlink()
|
|
|
|
def action_open_form(self):
|
|
self.ensure_one()
|
|
return {
|
|
"type": "ir.actions.act_window",
|
|
"res_model": self._name,
|
|
"res_id": self.id,
|
|
"view_mode": "form",
|
|
"target": "current",
|
|
}
|
|
|
|
def action_open_order_wizard(self):
|
|
self.ensure_one()
|
|
return {
|
|
"name": _("Заказ сервиса"),
|
|
"type": "ir.actions.act_window",
|
|
"res_model": "premium.order.wizard",
|
|
"view_mode": "form",
|
|
"target": "new",
|
|
"context": {"default_service_id": self.id},
|
|
} |