Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC
This commit is contained in:
2
premium_client/models/__init__.py
Normal file
2
premium_client/models/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
from . import premium_service
|
||||
from . import res_config_settings
|
||||
75
premium_client/models/premium_service.py
Normal file
75
premium_client/models/premium_service.py
Normal file
@ -0,0 +1,75 @@
|
||||
# -*- 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},
|
||||
}
|
||||
17
premium_client/models/res_config_settings.py
Normal file
17
premium_client/models/res_config_settings.py
Normal file
@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResConfigSettings(models.TransientModel):
|
||||
_inherit = "res.config.settings"
|
||||
|
||||
premium_project_api_url = fields.Char(
|
||||
string="Project API URL",
|
||||
config_parameter="premium.project_api_url",
|
||||
help="Базовый URL инстанса Project, например https://project.example.com/newlead/ или только домен (маршрут добавится автоматически)",
|
||||
)
|
||||
premium_project_api_token = fields.Char(
|
||||
string="Project API token",
|
||||
config_parameter="premium.project_api_token",
|
||||
help="Токен, который проверяет Project (в заголовке X-API-Key)",
|
||||
)
|
||||
Reference in New Issue
Block a user