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

    У цій частині розглядається структура іменування методів, робота з користувачами і групами, установка додаткових модулів.
 
 Частина 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 вбудованими модулями:
 
     
  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.  
  3. 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
      
      
  4.   
  5. 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.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.