Разработка ERP на tryton: Часть 2

  • Tutorial
В этой части рассматривается структура именования методов, работа с пользователями и группами, установка дополнительных модулей.

Часть 1: Установка tryotnd, структура запросов, работа с БД
Часть 2: Структура методов, работа с пользователями и группами, установка модулей
Часть 3: Работа с модулями компании(company), контрагентами(party), товаров(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 встроенными модулями:
  1. res — управление пользователями и группами.
    Методы модуля res
    model.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

  2. 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

  3. 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()
    

Поделиться публикацией

Похожие публикации

Комментарии 0

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое