Часть 1: Установка tryotnd, структура запросов, работа с БД
Часть 2: Структура методов, работа с пользователями и группами, установка модулей
Часть 3: Работа с модулями компании(company) и контрагентами(party)
Часть 4: Работа с модулями товаров(product) и склада(stock)
0. Структура названия методов
Список методов сервера мы получили, теперь разберемся как они строятся и за что отвечают.
Названия методов строятся достаточно просто и имеют такой вид:
%имя_основного_класса%.%имя_класса%.%имя_метода%.
Вот только разрабочики tryton переопределяют имена класов, в основном так — %имя_модуля%.%имя_класса%, реже %имя_модуля%.%имя_класса%.%логический_подкласс%. К примеру: model.res.user.create и model.stock.shipment.in.create.
Итого, названия методов имеют такой вид:
%имя_основного_класса%.%имя_модуля%.%имя_класса%.%логический_подкласс%.%имя_метода%.
1. Основные классы
У tryton есть 5 основных классов:
- model — ORM класс для связи с БД.
- report — класс для генерирования отчетов в разных форматах, к примеру odt или pdf.
- wizard — класс, реализующий конечный автомат, который описывает серию шагов и состояний.
- common — класс для работы с БД и анонимными методами.
- system — класс для работы с системными серверными вызовами.
Методы common и system были рассмотрены в предыдущей части. Про методы report и wizard будут отдельные статьи, в этой части рассмотрим model.
2. Класс model
trytond поставляется с 3 встроенными модулями:
- res — управление пользователями и группами.
Методы модуля resmodel.res.group.copy
model.res.group.create
model.res.group.default_get
model.res.group.delete
model.res.group.export_data
model.res.group.fields_get
model.res.group.fields_view_get
model.res.group.history_revisions
model.res.group.import_data
model.res.group.on_change_with
model.res.group.pre_validate
model.res.group.read
model.res.group.search
model.res.group.search_count
model.res.group.search_read
model.res.group.view_toolbar_get
model.res.group.write
model.res.user-company.employee.default_get
model.res.user-company.employee.fields_get
model.res.user-company.employee.on_change_with
model.res.user-company.employee.pre_validate
model.res.user-ir.action.default_get
model.res.user-ir.action.fields_get
model.res.user-ir.action.on_change_with
model.res.user-ir.action.pre_validate
model.res.user-res.group.default_get
model.res.user-res.group.fields_get
model.res.user-res.group.on_change_with
model.res.user-res.group.pre_validate
model.res.user.config.start.default_get
model.res.user.config.start.fields_get
model.res.user.config.start.fields_view_get
model.res.user.config.start.on_change_with
model.res.user.config.start.pre_validate
model.res.user.config.start.view_toolbar_get
model.res.user.copy
model.res.user.create
model.res.user.default_get
model.res.user.delete
model.res.user.export_data
model.res.user.fields_get
model.res.user.fields_view_get
model.res.user.get_preferences
model.res.user.get_preferences_fields_view
model.res.user.history_revisions
model.res.user.import_data
model.res.user.login.attempt.default_get
model.res.user.login.attempt.fields_get
model.res.user.login.attempt.on_change_with
model.res.user.login.attempt.pre_validate
model.res.user.on_change_company
model.res.user.on_change_main_company
model.res.user.on_change_with
model.res.user.pre_validate
model.res.user.read
model.res.user.search
model.res.user.search_count
model.res.user.search_read
model.res.user.set_preferences
model.res.user.view_toolbar_get
model.res.user.warning.copy
model.res.user.warning.create
model.res.user.warning.default_get
model.res.user.warning.delete
model.res.user.warning.export_data
model.res.user.warning.fields_get
model.res.user.warning.fields_view_get
model.res.user.warning.history_revisions
model.res.user.warning.import_data
model.res.user.warning.on_change_with
model.res.user.warning.pre_validate
model.res.user.warning.read
model.res.user.warning.search
model.res.user.warning.search_count
model.res.user.warning.search_read
model.res.user.warning.view_toolbar_get
model.res.user.warning.write
model.res.user.write - ir — основной функционал — работа с gui-клиентом tryton, так же разработчики сюда запихнули установку модулей, управление правами пользователя и много другого.
Методы модуля ir(более 800 методов)model.ir.action-res.group.default_get
model.ir.action-res.group.fields_get
model.ir.action-res.group.on_change_with
model.ir.action-res.group.pre_validate
model.ir.action.act_window.copy
model.ir.action.act_window.create
model.ir.action.act_window.default_get
model.ir.action.act_window.delete
model.ir.action.act_window.domain.copy
model.ir.action.act_window.domain.create
model.ir.action.act_window.domain.default_get
model.ir.action.act_window.domain.delete
model.ir.action.act_window.domain.export_data
model.ir.action.act_window.domain.fields_get
model.ir.action.act_window.domain.fields_view_get
model.ir.action.act_window.domain.history_revisions
model.ir.action.act_window.domain.import_data
model.ir.action.act_window.domain.on_change_with
model.ir.action.act_window.domain.pre_validate
model.ir.action.act_window.domain.read
model.ir.action.act_window.domain.search
model.ir.action.act_window.domain.search_count
model.ir.action.act_window.domain.search_read
model.ir.action.act_window.domain.view_toolbar_get
model.ir.action.act_window.domain.write
model.ir.action.act_window.export_data
model.ir.action.act_window.fields_get
model.ir.action.act_window.fields_view_get
model.ir.action.act_window.get
model.ir.action.act_window.history_revisions
model.ir.action.act_window.import_data
model.ir.action.act_window.on_change_with
model.ir.action.act_window.pre_validate
model.ir.action.act_window.read
model.ir.action.act_window.search
model.ir.action.act_window.search_count
model.ir.action.act_window.search_read
model.ir.action.act_window.view.copy
model.ir.action.act_window.view.create
model.ir.action.act_window.view.default_get
model.ir.action.act_window.view.delete
model.ir.action.act_window.view.export_data
model.ir.action.act_window.view.fields_get
model.ir.action.act_window.view.fields_view_get
model.ir.action.act_window.view.history_revisions
model.ir.action.act_window.view.import_data
model.ir.action.act_window.view.on_change_with
model.ir.action.act_window.view.pre_validate
model.ir.action.act_window.view.read
model.ir.action.act_window.view.search
model.ir.action.act_window.view.search_count
model.ir.action.act_window.view.search_read
model.ir.action.act_window.view.view_toolbar_get
model.ir.action.act_window.view.write
model.ir.action.act_window.view_toolbar_get
model.ir.action.act_window.write
model.ir.action.copy
model.ir.action.create
model.ir.action.default_get
model.ir.action.delete
model.ir.action.export_data
model.ir.action.fields_get
model.ir.action.fields_view_get
model.ir.action.get_action_id
model.ir.action.history_revisions
model.ir.action.import_data
model.ir.action.keyword.copy
model.ir.action.keyword.create
model.ir.action.keyword.default_get
model.ir.action.keyword.delete
model.ir.action.keyword.export_data
model.ir.action.keyword.fields_get
model.ir.action.keyword.fields_view_get
model.ir.action.keyword.get_keyword
model.ir.action.keyword.history_revisions
model.ir.action.keyword.import_data
model.ir.action.keyword.models_get
model.ir.action.keyword.on_change_with
model.ir.action.keyword.pre_validate
model.ir.action.keyword.read
model.ir.action.keyword.search
model.ir.action.keyword.search_count
model.ir.action.keyword.search_read
model.ir.action.keyword.view_toolbar_get
model.ir.action.keyword.write
model.ir.action.on_change_with
model.ir.action.pre_validate
model.ir.action.read
model.ir.action.report.copy
model.ir.action.report.create
model.ir.action.report.default_get
model.ir.action.report.delete
model.ir.action.report.export_data
model.ir.action.report.fields_get
model.ir.action.report.fields_view_get
model.ir.action.report.history_revisions
model.ir.action.report.import_data
model.ir.action.report.on_change_with
model.ir.action.report.on_change_with_report_content_name
model.ir.action.report.pre_validate
model.ir.action.report.read
model.ir.action.report.search
model.ir.action.report.search_count
model.ir.action.report.search_read
model.ir.action.report.view_toolbar_get
model.ir.action.report.write
model.ir.action.search
model.ir.action.search_count
model.ir.action.search_read
model.ir.action.url.copy
model.ir.action.url.create
model.ir.action.url.default_get
model.ir.action.url.delete
model.ir.action.url.export_data
model.ir.action.url.fields_get
model.ir.action.url.fields_view_get
model.ir.action.url.history_revisions
model.ir.action.url.import_data
model.ir.action.url.on_change_with
model.ir.action.url.pre_validate
model.ir.action.url.read
model.ir.action.url.search
model.ir.action.url.search_count
model.ir.action.url.search_read
model.ir.action.url.view_toolbar_get
model.ir.action.url.write
model.ir.action.view_toolbar_get
model.ir.action.wizard.copy
model.ir.action.wizard.create
model.ir.action.wizard.default_get
model.ir.action.wizard.delete
model.ir.action.wizard.export_data
model.ir.action.wizard.fields_get
model.ir.action.wizard.fields_view_get
model.ir.action.wizard.history_revisions
model.ir.action.wizard.import_data
model.ir.action.wizard.on_change_with
model.ir.action.wizard.pre_validate
model.ir.action.wizard.read
model.ir.action.wizard.search
model.ir.action.wizard.search_count
model.ir.action.wizard.search_read
model.ir.action.wizard.view_toolbar_get
model.ir.action.wizard.write
model.ir.action.write
model.ir.attachment.copy
model.ir.attachment.create
model.ir.attachment.default_get
model.ir.attachment.delete
model.ir.attachment.export_data
model.ir.attachment.fields_get
model.ir.attachment.fields_view_get
model.ir.attachment.history_revisions
model.ir.attachment.import_data
model.ir.attachment.models_get
model.ir.attachment.on_change_with
model.ir.attachment.on_change_with_summary
model.ir.attachment.pre_validate
model.ir.attachment.read
model.ir.attachment.search
model.ir.attachment.search_count
model.ir.attachment.search_read
model.ir.attachment.view_toolbar_get
model.ir.attachment.write
model.ir.cache.default_get
model.ir.cache.fields_get
model.ir.cache.on_change_with
model.ir.cache.pre_validate
model.ir.configuration.default_get
model.ir.configuration.fields_get
model.ir.configuration.on_change_with
model.ir.configuration.pre_validate
model.ir.cron-company.company.default_get
model.ir.cron-company.company.fields_get
model.ir.cron-company.company.on_change_with
model.ir.cron-company.company.pre_validate
model.ir.cron.copy
model.ir.cron.create
model.ir.cron.default_get
model.ir.cron.delete
model.ir.cron.export_data
model.ir.cron.fields_get
model.ir.cron.fields_view_get
model.ir.cron.history_revisions
model.ir.cron.import_data
model.ir.cron.on_change_with
model.ir.cron.pre_validate
model.ir.cron.read
model.ir.cron.search
model.ir.cron.search_count
model.ir.cron.search_read
model.ir.cron.view_toolbar_get
model.ir.cron.write
model.ir.date.default_get
model.ir.date.fields_get
model.ir.date.on_change_with
model.ir.date.pre_validate
model.ir.date.today
model.ir.export.copy
model.ir.export.create
model.ir.export.default_get
model.ir.export.delete
model.ir.export.export_data
model.ir.export.fields_get
model.ir.export.fields_view_get
model.ir.export.history_revisions
model.ir.export.import_data
model.ir.export.line.copy
model.ir.export.line.create
model.ir.export.line.default_get
model.ir.export.line.delete
model.ir.export.line.export_data
model.ir.export.line.fields_get
model.ir.export.line.fields_view_get
model.ir.export.line.history_revisions
model.ir.export.line.import_data
model.ir.export.line.on_change_with
model.ir.export.line.pre_validate
model.ir.export.line.read
model.ir.export.line.search
model.ir.export.line.search_count
model.ir.export.line.search_read
model.ir.export.line.view_toolbar_get
model.ir.export.line.write
model.ir.export.on_change_with
model.ir.export.pre_validate
model.ir.export.read
model.ir.export.search
model.ir.export.search_count
model.ir.export.search_read
model.ir.export.view_toolbar_get
model.ir.export.write
model.ir.lang.copy
model.ir.lang.create
model.ir.lang.default_get
model.ir.lang.delete
model.ir.lang.export_data
model.ir.lang.fields_get
model.ir.lang.fields_view_get
model.ir.lang.history_revisions
model.ir.lang.import_data
model.ir.lang.on_change_with
model.ir.lang.pre_validate
model.ir.lang.read
model.ir.lang.search
model.ir.lang.search_count
model.ir.lang.search_read
model.ir.lang.view_toolbar_get
model.ir.lang.write
model.ir.model.access.copy
model.ir.model.access.create
model.ir.model.access.default_get
model.ir.model.access.delete
model.ir.model.access.export_data
model.ir.model.access.fields_get
model.ir.model.access.fields_view_get
model.ir.model.access.get_access
model.ir.model.access.history_revisions
model.ir.model.access.import_data
model.ir.model.access.on_change_with
model.ir.model.access.pre_validate
model.ir.model.access.read
model.ir.model.access.search
model.ir.model.access.search_count
model.ir.model.access.search_read
model.ir.model.access.view_toolbar_get
model.ir.model.access.write
model.ir.model.button-res.group.default_get
model.ir.model.button-res.group.fields_get
model.ir.model.button-res.group.on_change_with
model.ir.model.button-res.group.pre_validate
model.ir.model.button.copy
model.ir.model.button.create
model.ir.model.button.default_get
model.ir.model.button.delete
model.ir.model.button.export_data
model.ir.model.button.fields_get
model.ir.model.button.fields_view_get
model.ir.model.button.history_revisions
model.ir.model.button.import_data
model.ir.model.button.on_change_with
model.ir.model.button.pre_validate
model.ir.model.button.read
model.ir.model.button.search
model.ir.model.button.search_count
model.ir.model.button.search_read
model.ir.model.button.view_toolbar_get
model.ir.model.button.write
model.ir.model.copy
model.ir.model.create
model.ir.model.data.copy
model.ir.model.data.create
model.ir.model.data.default_get
model.ir.model.data.delete
model.ir.model.data.export_data
model.ir.model.data.fields_get
model.ir.model.data.fields_view_get
model.ir.model.data.history_revisions
model.ir.model.data.import_data
model.ir.model.data.on_change_with
model.ir.model.data.pre_validate
model.ir.model.data.read
model.ir.model.data.search
model.ir.model.data.search_count
model.ir.model.data.search_read
model.ir.model.data.view_toolbar_get
model.ir.model.data.write
model.ir.model.default_get
model.ir.model.delete
model.ir.model.export_data
model.ir.model.field-res.group.default_get
model.ir.model.field-res.group.fields_get
model.ir.model.field-res.group.on_change_with
model.ir.model.field-res.group.pre_validate
model.ir.model.field.access.copy
model.ir.model.field.access.create
model.ir.model.field.access.default_get
model.ir.model.field.access.delete
model.ir.model.field.access.export_data
model.ir.model.field.access.fields_get
model.ir.model.field.access.fields_view_get
model.ir.model.field.access.history_revisions
model.ir.model.field.access.import_data
model.ir.model.field.access.on_change_with
model.ir.model.field.access.pre_validate
model.ir.model.field.access.read
model.ir.model.field.access.search
model.ir.model.field.access.search_count
model.ir.model.field.access.search_read
model.ir.model.field.access.view_toolbar_get
model.ir.model.field.access.write
model.ir.model.field.copy
model.ir.model.field.create
model.ir.model.field.default_get
model.ir.model.field.delete
model.ir.model.field.export_data
model.ir.model.field.fields_get
model.ir.model.field.fields_view_get
model.ir.model.field.history_revisions
model.ir.model.field.import_data
model.ir.model.field.on_change_with
model.ir.model.field.pre_validate
model.ir.model.field.read
model.ir.model.field.search
model.ir.model.field.search_count
model.ir.model.field.search_read
model.ir.model.field.view_toolbar_get
model.ir.model.field.write
model.ir.model.fields_get
model.ir.model.fields_view_get
model.ir.model.global_search
model.ir.model.history_revisions
model.ir.model.import_data
model.ir.model.list_history
model.ir.model.list_models
model.ir.model.on_change_with
model.ir.model.pre_validate
model.ir.model.print_model_graph.start.default_get
model.ir.model.print_model_graph.start.fields_get
model.ir.model.print_model_graph.start.fields_view_get
model.ir.model.print_model_graph.start.on_change_with
model.ir.model.print_model_graph.start.pre_validate
model.ir.model.print_model_graph.start.view_toolbar_get
model.ir.model.read
model.ir.model.search
model.ir.model.search_count
model.ir.model.search_read
model.ir.model.view_toolbar_get
model.ir.model.write
model.ir.module.module.config_wizard.done.default_get
model.ir.module.module.config_wizard.done.fields_get
model.ir.module.module.config_wizard.done.fields_view_get
model.ir.module.module.config_wizard.done.on_change_with
model.ir.module.module.config_wizard.done.pre_validate
model.ir.module.module.config_wizard.done.view_toolbar_get
model.ir.module.module.config_wizard.first.default_get
model.ir.module.module.config_wizard.first.fields_get
model.ir.module.module.config_wizard.first.fields_view_get
model.ir.module.module.config_wizard.first.on_change_with
model.ir.module.module.config_wizard.first.pre_validate
model.ir.module.module.config_wizard.first.view_toolbar_get
model.ir.module.module.config_wizard.item.copy
model.ir.module.module.config_wizard.item.create
model.ir.module.module.config_wizard.item.default_get
model.ir.module.module.config_wizard.item.delete
model.ir.module.module.config_wizard.item.export_data
model.ir.module.module.config_wizard.item.fields_get
model.ir.module.module.config_wizard.item.fields_view_get
model.ir.module.module.config_wizard.item.history_revisions
model.ir.module.module.config_wizard.item.import_data
model.ir.module.module.config_wizard.item.on_change_with
model.ir.module.module.config_wizard.item.pre_validate
model.ir.module.module.config_wizard.item.read
model.ir.module.module.config_wizard.item.search
model.ir.module.module.config_wizard.item.search_count
model.ir.module.module.config_wizard.item.search_read
model.ir.module.module.config_wizard.item.view_toolbar_get
model.ir.module.module.config_wizard.item.write
model.ir.module.module.config_wizard.other.default_get
model.ir.module.module.config_wizard.other.fields_get
model.ir.module.module.config_wizard.other.fields_view_get
model.ir.module.module.config_wizard.other.on_change_with
model.ir.module.module.config_wizard.other.pre_validate
model.ir.module.module.config_wizard.other.view_toolbar_get
model.ir.module.module.copy
model.ir.module.module.create
model.ir.module.module.default_get
model.ir.module.module.delete
model.ir.module.module.dependency.copy
model.ir.module.module.dependency.create
model.ir.module.module.dependency.default_get
model.ir.module.module.dependency.delete
model.ir.module.module.dependency.export_data
model.ir.module.module.dependency.fields_get
model.ir.module.module.dependency.fields_view_get
model.ir.module.module.dependency.history_revisions
model.ir.module.module.dependency.import_data
model.ir.module.module.dependency.on_change_with
model.ir.module.module.dependency.pre_validate
model.ir.module.module.dependency.read
model.ir.module.module.dependency.search
model.ir.module.module.dependency.search_count
model.ir.module.module.dependency.search_read
model.ir.module.module.dependency.view_toolbar_get
model.ir.module.module.dependency.write
model.ir.module.module.export_data
model.ir.module.module.fields_get
model.ir.module.module.fields_view_get
model.ir.module.module.history_revisions
model.ir.module.module.import_data
model.ir.module.module.install
model.ir.module.module.install_cancel
model.ir.module.module.install_upgrade.done.default_get
model.ir.module.module.install_upgrade.done.fields_get
model.ir.module.module.install_upgrade.done.fields_view_get
model.ir.module.module.install_upgrade.done.on_change_with
model.ir.module.module.install_upgrade.done.pre_validate
model.ir.module.module.install_upgrade.done.view_toolbar_get
model.ir.module.module.install_upgrade.start.default_get
model.ir.module.module.install_upgrade.start.fields_get
model.ir.module.module.install_upgrade.start.fields_view_get
model.ir.module.module.install_upgrade.start.on_change_with
model.ir.module.module.install_upgrade.start.pre_validate
model.ir.module.module.install_upgrade.start.view_toolbar_get
model.ir.module.module.on_change_with
model.ir.module.module.on_write
model.ir.module.module.pre_validate
model.ir.module.module.read
model.ir.module.module.search
model.ir.module.module.search_count
model.ir.module.module.search_read
model.ir.module.module.uninstall
model.ir.module.module.uninstall_cancel
model.ir.module.module.upgrade
model.ir.module.module.upgrade_cancel
model.ir.module.module.view_toolbar_get
model.ir.module.module.write
model.ir.property.copy
model.ir.property.create
model.ir.property.default_get
model.ir.property.delete
model.ir.property.export_data
model.ir.property.fields_get
model.ir.property.fields_view_get
model.ir.property.history_revisions
model.ir.property.import_data
model.ir.property.models_get
model.ir.property.on_change_with
model.ir.property.pre_validate
model.ir.property.read
model.ir.property.search
model.ir.property.search_count
model.ir.property.search_read
model.ir.property.view_toolbar_get
model.ir.property.write
model.ir.rule.copy
model.ir.rule.create
model.ir.rule.default_get
model.ir.rule.delete
model.ir.rule.export_data
model.ir.rule.fields_get
model.ir.rule.fields_view_get
model.ir.rule.group-res.group.default_get
model.ir.rule.group-res.group.fields_get
model.ir.rule.group-res.group.on_change_with
model.ir.rule.group-res.group.pre_validate
model.ir.rule.group-res.user.default_get
model.ir.rule.group-res.user.fields_get
model.ir.rule.group-res.user.on_change_with
model.ir.rule.group-res.user.pre_validate
model.ir.rule.group.copy
model.ir.rule.group.create
model.ir.rule.group.default_get
model.ir.rule.group.delete
model.ir.rule.group.export_data
model.ir.rule.group.fields_get
model.ir.rule.group.fields_view_get
model.ir.rule.group.history_revisions
model.ir.rule.group.import_data
model.ir.rule.group.on_change_with
model.ir.rule.group.pre_validate
model.ir.rule.group.read
model.ir.rule.group.search
model.ir.rule.group.search_count
model.ir.rule.group.search_read
model.ir.rule.group.view_toolbar_get
model.ir.rule.group.write
model.ir.rule.history_revisions
model.ir.rule.import_data
model.ir.rule.on_change_with
model.ir.rule.pre_validate
model.ir.rule.read
model.ir.rule.search
model.ir.rule.search_count
model.ir.rule.search_read
model.ir.rule.view_toolbar_get
model.ir.rule.write
model.ir.sequence.code_get
model.ir.sequence.copy
model.ir.sequence.create
model.ir.sequence.default_get
model.ir.sequence.delete
model.ir.sequence.export_data
model.ir.sequence.fields_get
model.ir.sequence.fields_view_get
model.ir.sequence.history_revisions
model.ir.sequence.import_data
model.ir.sequence.on_change_with
model.ir.sequence.pre_validate
model.ir.sequence.read
model.ir.sequence.search
model.ir.sequence.search_count
model.ir.sequence.search_read
model.ir.sequence.strict.code_get
model.ir.sequence.strict.copy
model.ir.sequence.strict.create
model.ir.sequence.strict.default_get
model.ir.sequence.strict.delete
model.ir.sequence.strict.export_data
model.ir.sequence.strict.fields_get
model.ir.sequence.strict.fields_view_get
model.ir.sequence.strict.history_revisions
model.ir.sequence.strict.import_data
model.ir.sequence.strict.on_change_with
model.ir.sequence.strict.pre_validate
model.ir.sequence.strict.read
model.ir.sequence.strict.search
model.ir.sequence.strict.search_count
model.ir.sequence.strict.search_read
model.ir.sequence.strict.view_toolbar_get
model.ir.sequence.strict.write
model.ir.sequence.type-res.group.default_get
model.ir.sequence.type-res.group.fields_get
model.ir.sequence.type-res.group.on_change_with
model.ir.sequence.type-res.group.pre_validate
model.ir.sequence.type.copy
model.ir.sequence.type.create
model.ir.sequence.type.default_get
model.ir.sequence.type.delete
model.ir.sequence.type.export_data
model.ir.sequence.type.fields_get
model.ir.sequence.type.fields_view_get
model.ir.sequence.type.history_revisions
model.ir.sequence.type.import_data
model.ir.sequence.type.on_change_with
model.ir.sequence.type.pre_validate
model.ir.sequence.type.read
model.ir.sequence.type.search
model.ir.sequence.type.search_count
model.ir.sequence.type.search_read
model.ir.sequence.type.view_toolbar_get
model.ir.sequence.type.write
model.ir.sequence.view_toolbar_get
model.ir.sequence.write
model.ir.translation.clean.start.default_get
model.ir.translation.clean.start.fields_get
model.ir.translation.clean.start.fields_view_get
model.ir.translation.clean.start.on_change_with
model.ir.translation.clean.start.pre_validate
model.ir.translation.clean.start.view_toolbar_get
model.ir.translation.clean.succeed.default_get
model.ir.translation.clean.succeed.fields_get
model.ir.translation.clean.succeed.fields_view_get
model.ir.translation.clean.succeed.on_change_with
model.ir.translation.clean.succeed.pre_validate
model.ir.translation.clean.succeed.view_toolbar_get
model.ir.translation.copy
model.ir.translation.create
model.ir.translation.default_get
model.ir.translation.delete
model.ir.translation.export.result.default_get
model.ir.translation.export.result.fields_get
model.ir.translation.export.result.fields_view_get
model.ir.translation.export.result.on_change_with
model.ir.translation.export.result.pre_validate
model.ir.translation.export.result.view_toolbar_get
model.ir.translation.export.start.default_get
model.ir.translation.export.start.fields_get
model.ir.translation.export.start.fields_view_get
model.ir.translation.export.start.on_change_with
model.ir.translation.export.start.pre_validate
model.ir.translation.export.start.view_toolbar_get
model.ir.translation.export_data
model.ir.translation.fields_get
model.ir.translation.fields_view_get
model.ir.translation.get_language
model.ir.translation.history_revisions
model.ir.translation.import_data
model.ir.translation.on_change_with
model.ir.translation.pre_validate
model.ir.translation.read
model.ir.translation.search
model.ir.translation.search_count
model.ir.translation.search_read
model.ir.translation.set.start.default_get
model.ir.translation.set.start.fields_get
model.ir.translation.set.start.fields_view_get
model.ir.translation.set.start.on_change_with
model.ir.translation.set.start.pre_validate
model.ir.translation.set.start.view_toolbar_get
model.ir.translation.set.succeed.default_get
model.ir.translation.set.succeed.fields_get
model.ir.translation.set.succeed.fields_view_get
model.ir.translation.set.succeed.on_change_with
model.ir.translation.set.succeed.pre_validate
model.ir.translation.set.succeed.view_toolbar_get
model.ir.translation.update.start.default_get
model.ir.translation.update.start.fields_get
model.ir.translation.update.start.fields_view_get
model.ir.translation.update.start.on_change_with
model.ir.translation.update.start.pre_validate
model.ir.translation.update.start.view_toolbar_get
model.ir.translation.view_toolbar_get
model.ir.translation.write
model.ir.trigger.copy
model.ir.trigger.create
model.ir.trigger.default_get
model.ir.trigger.delete
model.ir.trigger.export_data
model.ir.trigger.fields_get
model.ir.trigger.fields_view_get
model.ir.trigger.history_revisions
model.ir.trigger.import_data
model.ir.trigger.log.default_get
model.ir.trigger.log.fields_get
model.ir.trigger.log.on_change_with
model.ir.trigger.log.pre_validate
model.ir.trigger.on_change_on_create
model.ir.trigger.on_change_on_delete
model.ir.trigger.on_change_on_time
model.ir.trigger.on_change_on_write
model.ir.trigger.on_change_with
model.ir.trigger.pre_validate
model.ir.trigger.read
model.ir.trigger.search
model.ir.trigger.search_count
model.ir.trigger.search_read
model.ir.trigger.view_toolbar_get
model.ir.trigger.write
model.ir.ui.icon.copy
model.ir.ui.icon.create
model.ir.ui.icon.default_get
model.ir.ui.icon.delete
model.ir.ui.icon.export_data
model.ir.ui.icon.fields_get
model.ir.ui.icon.fields_view_get
model.ir.ui.icon.history_revisions
model.ir.ui.icon.import_data
model.ir.ui.icon.list_icons
model.ir.ui.icon.on_change_with
model.ir.ui.icon.pre_validate
model.ir.ui.icon.read
model.ir.ui.icon.search
model.ir.ui.icon.search_count
model.ir.ui.icon.search_read
model.ir.ui.icon.view_toolbar_get
model.ir.ui.icon.write
model.ir.ui.menu-res.group.default_get
model.ir.ui.menu-res.group.fields_get
model.ir.ui.menu-res.group.on_change_with
model.ir.ui.menu-res.group.pre_validate
model.ir.ui.menu.copy
model.ir.ui.menu.create
model.ir.ui.menu.default_get
model.ir.ui.menu.delete
model.ir.ui.menu.export_data
model.ir.ui.menu.favorite.copy
model.ir.ui.menu.favorite.create
model.ir.ui.menu.favorite.default_get
model.ir.ui.menu.favorite.delete
model.ir.ui.menu.favorite.export_data
model.ir.ui.menu.favorite.fields_get
model.ir.ui.menu.favorite.fields_view_get
model.ir.ui.menu.favorite.get
model.ir.ui.menu.favorite.history_revisions
model.ir.ui.menu.favorite.import_data
model.ir.ui.menu.favorite.on_change_with
model.ir.ui.menu.favorite.pre_validate
model.ir.ui.menu.favorite.read
model.ir.ui.menu.favorite.search
model.ir.ui.menu.favorite.search_count
model.ir.ui.menu.favorite.search_read
model.ir.ui.menu.favorite.set
model.ir.ui.menu.favorite.unset
model.ir.ui.menu.favorite.view_toolbar_get
model.ir.ui.menu.favorite.write
model.ir.ui.menu.fields_get
model.ir.ui.menu.fields_view_get
model.ir.ui.menu.history_revisions
model.ir.ui.menu.import_data
model.ir.ui.menu.list_icons
model.ir.ui.menu.on_change_with
model.ir.ui.menu.pre_validate
model.ir.ui.menu.read
model.ir.ui.menu.search
model.ir.ui.menu.search_count
model.ir.ui.menu.search_read
model.ir.ui.menu.view_toolbar_get
model.ir.ui.menu.write
model.ir.ui.view.copy
model.ir.ui.view.create
model.ir.ui.view.default_get
model.ir.ui.view.delete
model.ir.ui.view.export_data
model.ir.ui.view.fields_get
model.ir.ui.view.fields_view_get
model.ir.ui.view.history_revisions
model.ir.ui.view.import_data
model.ir.ui.view.on_change_with
model.ir.ui.view.pre_validate
model.ir.ui.view.read
model.ir.ui.view.search
model.ir.ui.view.search_count
model.ir.ui.view.search_read
model.ir.ui.view.show
model.ir.ui.view.show.start.default_get
model.ir.ui.view.show.start.fields_get
model.ir.ui.view.show.start.fields_view_get
model.ir.ui.view.show.start.on_change_with
model.ir.ui.view.show.start.pre_validate
model.ir.ui.view.show.start.view_toolbar_get
model.ir.ui.view.view_toolbar_get
model.ir.ui.view.write
model.ir.ui.view_search.copy
model.ir.ui.view_search.create
model.ir.ui.view_search.default_get
model.ir.ui.view_search.delete
model.ir.ui.view_search.export_data
model.ir.ui.view_search.fields_get
model.ir.ui.view_search.fields_view_get
model.ir.ui.view_search.get_search
model.ir.ui.view_search.history_revisions
model.ir.ui.view_search.import_data
model.ir.ui.view_search.on_change_with
model.ir.ui.view_search.pre_validate
model.ir.ui.view_search.read
model.ir.ui.view_search.search
model.ir.ui.view_search.search_count
model.ir.ui.view_search.search_read
model.ir.ui.view_search.view_toolbar_get
model.ir.ui.view_search.write
model.ir.ui.view_tree_state.copy
model.ir.ui.view_tree_state.create
model.ir.ui.view_tree_state.default_get
model.ir.ui.view_tree_state.delete
model.ir.ui.view_tree_state.export_data
model.ir.ui.view_tree_state.fields_get
model.ir.ui.view_tree_state.fields_view_get
model.ir.ui.view_tree_state.get
model.ir.ui.view_tree_state.history_revisions
model.ir.ui.view_tree_state.import_data
model.ir.ui.view_tree_state.on_change_with
model.ir.ui.view_tree_state.pre_validate
model.ir.ui.view_tree_state.read
model.ir.ui.view_tree_state.search
model.ir.ui.view_tree_state.search_count
model.ir.ui.view_tree_state.search_read
model.ir.ui.view_tree_state.set
model.ir.ui.view_tree_state.view_toolbar_get
model.ir.ui.view_tree_state.write
model.ir.ui.view_tree_width.copy
model.ir.ui.view_tree_width.create
model.ir.ui.view_tree_width.default_get
model.ir.ui.view_tree_width.delete
model.ir.ui.view_tree_width.export_data
model.ir.ui.view_tree_width.fields_get
model.ir.ui.view_tree_width.fields_view_get
model.ir.ui.view_tree_width.history_revisions
model.ir.ui.view_tree_width.import_data
model.ir.ui.view_tree_width.on_change_with
model.ir.ui.view_tree_width.pre_validate
model.ir.ui.view_tree_width.read
model.ir.ui.view_tree_width.search
model.ir.ui.view_tree_width.search_count
model.ir.ui.view_tree_width.search_read
model.ir.ui.view_tree_width.set_width
model.ir.ui.view_tree_width.view_toolbar_get
model.ir.ui.view_tree_width.write - webdav — подключает возможность работы с сответсвующим протоколом.
Вот картинка для наглядности имеющихся классов у этих модулей:
2.1. Модуль res. Работа с пользователями и группами.
Модуль res позволяет работать с пользователями и группами. Ниже представлено API для работы c пользователями. Для работы с группами достаточно в названиях методов заменить user на group. Что бы добавить пользователя в группу надо при создании или редактировании пользователя в поле groups задать id необходимых групп.
Название метода | Параметры | Описание |
---|---|---|
model.res.user.search | [user_id, cookie, [], start, end, null, {}] | Возвращает срез списка id существующих пользователей(id[start:end]). |
model.res.user.fields_get | [user_id, cookie, [], {}] | Возвращает список имеющихся у пользователя полей(e-mail, отдел, адресс и т.д.). |
model.res.user.read | [user_id, cookie, list_of_user_ids, list_of_field_names, {}] | Возвращает значения заданных полей заданных юзеров. |
model.res.user.create | [user_id, cookie, [{field_name: field_data, field_name: field_data, …}], {}] | Создать пользователя, минимум необходимо задать поля name, login, pass. |
model.res.user.delete | [user_id, cookie, list_delete_user_ids, {}] | Удаляет пользователей по id. |
model.res.user.write | [user_id, cookie, list_update_user_ids, [{field_name: field_data, field_name: field_data, …}], {}] | Изменяет значения полей пользователей по id. |
import json import requests url = 'http://localhost:8000/try' id = 1 methodname = 'common.server.login' params = ('test', 'test') request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) user_id, cookie = r.json()['result'] print user_id, cookie id = 2 methodname = 'model.res.user.search' params = [user_id, cookie, [], 0, 1000, None, {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json() id = 3 methodname = 'model.res.user.fields_get' params = [user_id, cookie, [], {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json() id = 4 methodname = 'model.res.user.read' params = (user_id, cookie, [1, 3], ['active', 'login', 'name', 'sessions', 'rec_name', '_timestamp'], {}) request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json() id = 6 methodname = 'model.res.user.create' params = [user_id, cookie, [{"name": "fullName1", "language": None, "menu": 2, "company": None, "actions": [], "active": True, "rule_groups": [], "main_company": None, "groups": [], "signature": "", "employee": None, "employees": [], "login": "login2", "password": "pass"}], {}] params_min = [user_id, cookie, [{"name": "fullName2", "login": "login3", "password": "pass"}], {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params_min, }) r = requests.post(url, data=request) print request print r.json() id = 7 methodname = 'model.res.user.delete' params = [user_id, cookie, [8, 10], {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json() id = 8 methodname = 'model.res.user.write' params = [user_id, cookie, [8], {"email": "i2@mail.ru"}, {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json()
2.2. Модуль ir. Установка дополнительных модулей
У модуля ir функционала выше крыше, в данной части мы рассмотрим только функционал касающийся установки дополнительных модулей.
Для установки доп. модуля необходимо его скачать, распаковать в trytond/modules и переименовать распакованную папку в название модуля. На официальном сайте предлагают скачивать с PyPi, после распаковки мы получим папку trytond_%module_name%-%module_version% переименовуем её оставляя только %module_name%. Изучяя исходники, я в одном из setup.py наткнулся на ссылку репозитория модулей tryton, тут гараздо удобнее скачивать. При распаковке получаем папку %module_name%-%module_revision%, опять же оставляем только %module_name%.
Ниже API для работы с модулями. Хотя я бы порекомендовал делать устанвку модулей через gtk-клиент. Так же в API нашелся метод для удаления модулей, но через gtk-клиент удалить модуль нельзя, а на irc-канале разработчиков написано, что удалние модулей очень сложная и нетривиальная процедура. Так что пользуйтесь удалением модулей с большой осторожностью.
Название метода | Параметры | Описание |
---|---|---|
model.ir.module.module.search | [user_id, cookie, [], start, end, null, {}] | Возвращает срез списка id существующих модулей(id[start:end]). |
model.ir.module.module.fields_get | [user_id, cookie, [], {}] | Возвращает список имеющихся у модулей полей. |
model.ir.module.module.read | [user_id, cookie, list_of_module_ids, list_of_field_names, {}] | Возвращает значения заданных полей заданных модулей. |
model.ir.module.module.install | [user_id, cookie, list_module_ids, {}] | Устанавливает модуль по id. |
model.ir.module.module.upgrade | [user_id, cookie, list_module_ids, {}] | Обновляет модуль по id. |
model.ir.module.module.uninstall | [user_id, cookie, list_module_ids, {}] | Удаляет модуль по id. |
import json import requests url = 'http://localhost:8000/try' id = 1 methodname = 'common.server.login' params = ('test', 'test') request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) user_id, cookie = r.json()['result'] id = 2 methodname = 'model.ir.module.module.search' params = [user_id, cookie, [], 0, 1000, None, {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json() id = 3 methodname = 'model.ir.module.module.fields_get' params = [user_id, cookie, [], {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json() id = 4 methodname = 'model.ir.module.module.read' params = (user_id, cookie, [8, 10], ['name', 'rec_name'], {}) request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json() id = 5 methodname = 'model.ir.module.module.upgrade' params = [user_id, cookie, [8, 10], {}] request = json.dumps({ 'id': id, 'method': methodname, 'params': params, }) r = requests.post(url, data=request) print request print r.json()
P.S. До конца недели опубликую часть 3 и 4.
ссылка на оригинал статьи http://habrahabr.ru/post/221887/
Добавить комментарий