Перейти до вмісту

Класи та команди K2 ERP Python

Матеріал з K2 ERP Wiki
Версія від 21:13, 28 квітня 2026, створена R (обговорення | внесок) (Створена сторінка: {{Картка документації K2 | назва = K2 Cloud ERP Python для розробників | система = K2 Cloud ERP | мова = Python | тип = Документація для розробників }} '''K2 Cloud ERP Python для розробників''' — документація з вимогами до створення компонентів, структури пакетів, системних класів, API, ко...)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)

dict: Словник з результатами запитів або помилкою.; Параметри (doc_id) передаються через send_params.; dashboard_settings=k2report_embed)

Шаблон:Error

Атрибути класу

Клас k2data

search_comp_names()

This method searches for a yml file with a specified name in the caller directories of all subclasses of K2Obj.; Вимикаються кнопки add, edit, delete, printReport на панелі інструментів.; dict: A dictionary containing formatted log messages, the count of 'error' messages, and the count of 'warning' messages.;== K2 Cloud ERP Javascript ==

  • A sequence of text lines detailing the stacks of running

'new' – нові залишки, отримані в поточному оновленні.;==== viewer() ====

create_contact() - Цей метод створює контакт на основі даних існуючого ліда.;==== _insert_new_pub_sub_nomenclature(session, nomenclature_data) ====

get_user_permissions()

Властивості інстансу

reports_id = ['b452a5ae84f9e92e75eb0467c196fd71', '1673a4fab757fb6c5df970fdc6ee680c',

'stable' – залишки, які підтвердились та доступні користувачам.; Додаткові класи від яких залежить функціональні можливості компоненти.; Результати запитів конвертуються у словники (row_asdict) для зручного JSON-формату.; session (Session) – об'єкт сесії бази даних.; Ім'я YML: 'k2doc_move'.; ==== create_names_yml(self, name_yml: str = , name_yml_tree: str = , ====

self._name_yml_tree #назва конфігураційного файлу з деревом

show_grid(self)

Цей клас гарантує генерацію та друк звітів за допомогою API Stimulsoft.; str: HTML-шаблон сторінки редагування.; Перевіряє наявність записів у таблиці k2tm_fields з parentid != '0'

Формує URL для сторінки затвердження

If no permissions are found for the user, an empty dictionary is returned.; (файл models.py)

K2.get_platform()

Домен, на якому функціонує CRM, отримується з глобального об'єкта K2.domain.; Перевіряє чи було надано lead_id.; ==== __init__(sql=[]) ==== create_report(sql=None, data_source=None) ==== get_report(file_name) ==== execute_query(query, params=None) ==== get_report_designer(file_name, design_type_id) ==== add_reports_type(name, data) ==== Клас K2ReportEmbed ===

надає можливість отримувати та відображати звіти з бази даних на основі їх ідентифікаторів.; K2ReportEmbed - Компонент для вбудовування звітів у веб-додаток.

Атрибути класу

__init__(reports_id: List [str]) ==== get_report_data() -> Optional [List [Dict [str, Any]]] ==== Бекенд (Flask)

Parameters: У разі помилки повертає повідомлення з помилкою.; Лід і контакт взаємодіють через базу даних, де інформаційні дані ліда переносяться в таблицю контактів.; Визначення поточної мови

dashboard_viewer()

datasource_value (list): Список SQL-запитів.; Відсутні.; domain: Отримання інформації про тип обладнання:

K2Lead.; __file__ - стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.; {% endif %}

K2 Cloud ERP Python

log_entry(error_id, status, message, name)

k2contacts.; json_data = k2_designer.json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from, date_to)

K2.logging_message(K2.log_error, 'Operation completed with error.')

актуалізація залишків на основі даних Pub/Sub.; self._new_buttons #назва кнопки

Фронтенд (Jinja-шаблон)

Метод очікує вхідний JSON, що містить ідентифікатор ліда (lead_id)

Виклик K2.get_path_abs(__file__)

Вставляє нові записи у таблицю k2remainder_by_parties зі статусом 'new'.;

version #реліз компоненти

Вимикаються кнопки: add, delete, printReport.; Usage: Абсолютний шлях до файлу, в якому виконується код.; Якщо знайдено, оновлює інформаційні дані ліда (ім'я, прізвище, email) у переданому об'єкті.; Передає список затверджувачів, ідентифікатор об'єкта, URL та характеристика змін

name (str): Name of the object (page) to load messages for.;== Див.; додатково ==

Хуки.; datasource_is_storage_id (list): Список флагів, що вказують на наявність storage_id.;


""" Index page """

У разі успіху: JSON з повідомленням про успішну відправку (код 200)
__file__ -стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.;==== Атрибути класу ====

id = K2.generate_id()

== Класи компонент ==

==== Пошук властивостей для розширення класу ====

Ініціалізація класу.;==== Властивості класу ====

Масово оновлює статуси залишків:

dict: The logging message if found, None otherwise.;===

==== Атрибути ====

path_class: 'components/k2production/k2production/k2equipment'

file_class: 'k2equipment'

==== Методи ====

==== init(self) ==== Параметри ==== Логіка роботи ====

message (str): The content of the message to be saved.;

self._send_params #параметри для конфігураційного файлу

Ім'я YML: 'k2doc_rows_detail'.; Визначення операційної системи

{% include dashboard_settings.template %}


=== Клас для актуалізація залишків на основі даних з отриманих від клієнтів. ===

У разі помилки скасовує транзакцію і повертає характеристика помилки.; Якщо контакт знайдено то відбувається актуалізація даних у options [‘dataField’] (name, surname, email, lead_id)

=== Клас k2trans ===

Зберігає ідентифікатор та конфігурація звіту в JSON-файл.;

name_yml_master: str = )

Призначення: застосовують, коли потрібно для зберігання та обробки даних, пов'язаних з CRM.; name_yml: The name of the yml file to search for (without the '.yml' extension).; date_from = "2023-01-01" Передаються параметри: doc_id.; self._data_source #датасети

Отримує список pub_sub_list_id з логів k2pubsub_logs.; У разі помилки застосовується лог помилки і повертається повідомлення з помилкою.; datasource_is_counterpart_id (list): Список флагів, що вказують на наявність counterpart_id.; crm_data(route, data) - Цей метод отримує інформаційні дані із відповідних таблиць з бази даних на основі переданих параметрів для подальшого оформлення друкованої форми документів у компоненті k2CRM

Логіка роботи:

Витягує equipment_type_name та equipment_type_code з таблиці k2equipment_type

check_lead() - Цей метод перевіряє, чи існує контакт із заданим номером телефону у базі даних (k2contacts).;==== Класk2notifications ====

У разі помилки виконує відкат (rollback).; Rerurn: list of components identificators


self._report_id #id звіту

==== __init__(self) ====

=== Клас K2Site ===

створення звітів за допомогою конструктора звітів

Успішний результат повертається у форматі JSON із ключем data.; Args:

__TOC__

==== Використовує клас K2Notifications для відправки повідомлень ====

=== Клас K2ReportDesigner ===

Save a logging message to the stack.; Якщо lead_id не надано то повертається помилка.; date_to (str, опціонально): Кінцева дата періоду.;=== Клас K2admin_menus ===
==== get_current_user_role_name() ====
==== Методи ====
Додаткові об’єкти компоненти.; Створюється об'єкт K2Grid з іменем yml 'k2doc_move'.; Якщо запису немає – створює його.;<pre>
==== load_logging_messages(page_url: str) ====

def test_dashboard():

nomenclature_data (dict) – інформаційні дані про номенклатуру:

__init__()

Обробка k2doc_move:

Перевіряється значення ключа name у вхідних даних: Створює JSON-дані на основі джерел даних та періоду.; 'old' – застарілі інформаційні дані, що підлягають видаленню.;==== Приклад використання ====

dump_stacks()

Цей клас представляє CRM компонент, який гарантує роботу з різними розділами CRM системи такими як:

'49952f397efff44d7ce0e5cb9aa625fb']

Залежності

update_pub_sub_remainder()

приклад:

self._name_yml_master #назва конфігураційного файлу

Request information about the running threads of the current process.;


Додавання нової номенклатури.;==== Основні функціональні можливості модуля ====

У разі помилки: JSON з описом помилки (код 404 або 500)

Add identificators to url page

Якщо лід знайдено то створюється новий запис у таблиці k2contacts на основі даних ліда.;==== search_class_prop(path_objs) ====

Якщо тип обладнання не знайдено, повертає помилку 404

Команда для автоматичної генерації html файлу з документацією по док стрінгах:

Send a logging message to the client via Socket.IO.; Search for a yml file in the caller directories of subclasses.; (файл requirements-components.txt)

k2report_embed = K2ReportEmbed(reports_id)

K2.search_yml('users')

Методи інстансу

Виділяється doc_id із вхідних даних.; Він містить методи для обробки запитів на затвердження змін у технічній документації обладнання.; itemName (str) – назва товару.; self._row_selection #вибір з рядка


self._name_yml #назва конфігураційного файлу

==== mrt_report_create(report_id, design_type_id=None) ==== table_report_data(datasource_value, datasource_keys) ==== save_info_report_designer() ==== data_source_lists_creating(group_reports_id) ==== Клас K2Production ===

==== Методи класу ====

Схема вибору обслуговування терміналу

=== Клас K2LogbookTMDoc ===

=== Клас для керування логбуком технічного обслуговування (ТО).; The caller directory where the yml file was found, or None if the file was not found.;==== designer() ====

Відносний шлях до рута.; (каталог objects/)
str: HTML-шаблон сторінки редагування дашборду.;=== Він надає доступ до ключових глобальних налаштувань та ресурсів, необхідних для роботи з документами або іншими функціями CRM.; Клас K2DocsCRM є собою частиною системи K2CRM і наслідується від K2Obj. ===

* The number of greenlets.; datasource_is_counterpart_id = [True, False]

usr_perm = K2().get_user_permissions()

=== Він взаємодіє з базою даних.; створення забезпечується через Клас K2ReportDesigner надає функціональність; додатково реалізовано редагування та перегляду звітів і дашбордів.; Окремо варто відзначити управляє файлами звітів і генерує JSON-дані для подальшого використання. ===

==== Атрибути ====

==== load_babel_translation_directories() ====

<gallery mode="packed" heights="180">

date_to = "2023-12-31"

return render_template('k2dashboard_production/k2dashboard_production.html',

==== get_path_abs(caller_file) ====

date_from (str, опціонально): Початкова дата періоду.; The search is performed in the 'yml' subdirectory of each caller directory.; Переводить стабільні ('stable') в старі ('old').;<pre>
page_url(str): url of page with Errors.; See help(type(self)) for accurate signature.; Raises:

==== Властивості ====

Витягує нові залишки з логів, додає їх у таблицю k2remainder_by_parties, оновлює статуси існуючих записів та видаляє застарілі залишки.; Повертає:

<pre>

Відповідає за обробку даних з логів.; Вимикаються кнопки: add, edit, delete, printReport.; ==== createImageSliderModal(images, containerId = null) ==== showBootstrapLoader(containerId) ==== removeBootstrapLoader(containerId) ==== showUserAlert(message, type = 'light') ==== Стилі (Назва) ==

Подзаголовок

Заголовок 1

Заголовок 2

Заголовок 3

Заголовок 4

Заголовок 5

Заголовок 6

Звичвйний текст

== Ілюстрації з документа ==

status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').;=== K2UpdateRemainder ===

Отрмання roleid користувача

Використовує K2Notifications.send_approval_request() для відправки повідомлення

<pre>

<pre>

функціонує з конфігурацією домену через K2.domain

Відображає сторінку редагування друкованої форми.; (One greenlet will duplicate one thread,
Структури, які потрібні для даної компоненти.;<pre>
Retrieve user permissions based on the URL.; Повертає:

Пошук файлів з перекладами

у всіх шляхах пошуку

=== Клас K2WMS ===

Якщо контакт не знайдено то для полів name, surname, email встановлюється значення None.;<pre>

Шукає ліда в таблиці k2lead за наданим параметром.; To search for a yml file named 'users.yml', call this method as follows:

=== Клас K2Grid ===

=== Клас k2upd ===

self._off_buttons #вимкнути кнопки

Об'єкт класу K2UpdateRemainder.;==== Методи ====

[[Категорія:Документація K2]]

==== get_locale() ====

==== Повертає ====

</gallery>

datasource_keys = ["table1_data", "table2_data"]

==== взаємодія з API Stimulsoft для візуалізації та експорту звітів ====

Логіка роботи:

=== Клас k2path ===

==== Класk2mail ====

Parameters:
документація з вимогами до створення компонентів, структури пакетів, системних класів, API, компонентних класів і допоміжних JavaScript-функцій системи [[K2 Cloud ERP]] виступає ключовою рисою '''K2 Cloud ERP Python для розробників'''.; Clear all logging message by user
Parameters:
==== ins_search_comp() ====

Формує SQL-запити для витягування даних із таблиць бази даних (Товари, Організація, Контрагент, складський облік, Договір, Відповідальна особа, замовник).; Алгоритм роботи:

==== get_active_lang_list() ====
Логує помилку у разі невдалої вставки даних.; Приклад використання:

itemId (str) – ідентифікатор номенклатури.;

Клас K2CRM

dict: A dictionary containing the user permissions, including 'roleid' and various permission flags

Повертає:

Генерація ID

Основні операції:

Клас k2secur

Шаблон:Картка документації K2

Повертає:

Методи

Відображає сторінку редагування дашборду.;==== save_report_id() ==== Exception: If an error occurs during database query execution.;==== namemenu(url) ====

Даний клас формує список пунктів меню для конкретного користувача

This method emits a message to the client with a given status and message content.; Таблиця, в яку додається новий контакт на основі даних ліда.; Винятки: period = 1

API

API

Load a logging message by its error_id from the error log file.;

Повертає:

Вивід списку ідентифікаторів компонент

Моделі які використовуються

Логіка роботи:

current_user_permissions = K2().get_user_permissions()

Отримає вхідний JSON, що містить options із даними для перевірки.; Повертає:

create_system_settings()

Визначення id поточної мови message (str): The content of the message to be sent.; status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').; ==== logging_message(status, message, page_url=None, show_message=True) ====

Returns:

str: HTML-шаблон сторінки перегляду.;


yml_path = K2.search_yml('users')

=== Клас K2Report ===

Пошук затверджувачів:

Returns:

=== Клас K2Obj ===
==== compare_versions(version1, version2) ====

* рахунки

* звіти

* конфігурація системи CRM

==== clear_logging_messages() ====

process_options - Метод обробляє різні параметри, передані через JSON-запит, і налаштовує об'єкти типу K2Grid для роботи з даними в залежності від значення ключа name у вхідних даних.; Повертає:

Returns:

==== Методи класу ====

== Вимоги до створення компонент ==

З цього класу створюються всі об’єкти системи К2.;==== Методи класу ====

<pre>

==== load_logging_message_by_id(error_id: str) ====

database:

period (int): Період вибірки даних.; unitId (str) – одиниця виміру (конвертується за фіксованим списком).;<pre>

<pre>

Викликає конструктор батьківського класу K2Docs.;=== Клас k2logging ===

- замовлення

Нові ('new') переводить у стабільні ('stable').; З options [‘dataField’] отримує номер телефону (phone)
@k2production.route('/test_dashboard', methods=['GET'])

Returns:
Параметри:

Зележності від інших компонент.; Приклад використання функції:

==== get_path_to_root(caller_file) ====

==== search_babel_translation_directories() ====

керування лідами
Створює характеристика змін у форматі "поле: старе_значення → нове_значення"
Якщо записів немає, повертає помилку 404

==== get_user_role(user_id) ====

Виконує SQL-запит до таблиці k2contacts для пошуку контакту за номером телефону.;==== dashboard_designer() ====

datasource_is_storage_id = [False, True]

Відображає сторінку перегляду дашборду.; Логіка статусів:

datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]

Потребує доступу до бази даних через self.db

==== save_logging_message(error_id, status, message, name) ====
==== generate_id() ====
=== Клас K2CRM наслідується від K2Obj, всі властивості та методи отримуються від батьківського класу. ===

datasource_keys (list): Список ключів для джерел даних.; Окремо варто відзначити створення/актуалізація записів про залишки товарів і керування їх статусами (новий, стабільний, старий).;[[Категорія:Python]]

==== content(self) ====

Load logging messages for the curren page from the error log file.; The message is sent to a room identified by the current user's ID.; Нічого.;===

==== Методи класу ====

==== k2logbook_tm() ==== take_logbook_tm(task_id) ==== edit_logbook_tm(logbook_fields_tm_id) ==== select_current_step(connection, logbook_fields_tm_id) ==== planned_tm(data, connection) ==== unplanned_tm(data, connection) ==== write_logbook_params(data) ==== read_logbook_params() ==== fill_logbook_tm_rows(data) ==== pull_spare_parts_data() ==== send_params_to_k2logbook_spare_parts(data) ==== instruments_and_equipment_parts_params() ==== task_step_form() ==== is_unplanned_step_form(step_data) ==== save_step(data) ==== end_step(data, session_id, connection, post_request) ==== step_image_check(connection, data) ==== step_data_check(connection, data) ==== decline_task() ==== write_user_comment() ==== end_step_manager(data) ==== detail_check(connection, data) ==== send_params_to_k2mount_point_form() ==== change_scheme_equipment() ==== pass_familiarisation() ==== create_write_off_act_logbook(connection, data) ==== create_doc_rows_for_write_of_act(connection, data) ==== write_off_part_logbook(connection, data) ==== end_logbook() ==== spare_parts_check() ==== equipment_qr_confirmation() ==== add_new_equipment_parts(connection, data) ==== material_quantity() ==== create_unplanned_task(data) ==== take_material_by_qr() ==== return_material_by_qr() ==== requires_partner() ==== join_task() ==== e_report_logbook(logbook_fields_tm_id) ==== get_all_employee_image() ==== get_employee_image() ==== get_image_logbook(image_data) ==== confirm_task() ==== send_on_revision_task() ==== send_to_the_task_list_revision() ==== change_task_employee(connection, data) ==== change_step_status_revision(connection, data) ==== change_task_status_revision(connection, data, status) ==== Клас K2EquipmentFunction ===

=== Клас K2EquipmentFunction є собою підкласом K2Obj і призначений для роботи з функціональністю, пов'язаною з обладнанням у системі K2.;<pre>

K2.logging_message(K2.log_success, 'Operation completed successfully.'1)

Призначення: застосовується для побудови URL-адрес або інших задач, пов'язаних з доменним середовищем.; Таблиця яка містить інформаційні дані про лідів.; threads and greenlets.;=== Клас k2settings ===

Створює порожній словник result_dict, який буде наповнюватись даними та парсить вхідні інформаційні дані data у форматі JSON і зберігає їх у result_dict [‘Header’].;[[Категорія:K2 ERP]]

Приклад використання:

===

=== Клас k2datasync ===

Для кожного запиту виконується SQL-запит та результат додається до result_dict.; Виклик K2.get_path_to_root(__file__).; гарантує функціональність для створення, перегляду, редагування записів логбука ТО, роботи з параметрами завдань та обладнання, а додатково підготовки даних про запчастини.;[[Категорія:K2 Cloud ERP]]

коректну обробку часу в межах системи реалізується засобами Призначення:.; {% block content %}
генерація друкованих документів
Вивід списку компонент з файлу components.yml у всіх шляхах пошуку

порівняння версій

Видаляє застарілі ('old').; Initialize self.; Формування повідомлення:
Обробка k2doc_rows_detail:

==== центральний клас компоненти, роути та api (файл views.py) ====

Usage:

 pydoc -w k2/k2obj.py, де k2/k2obj.py - шлях до файлу з корня

==== search_yml(name_yml) ====

Визначення id поточної мови

Параметри:

name (str): Name of object where the message originated.; Фіксує зміни у базі (commit).;==== get_platform() ====

керування друкованими формами

self._send_group_params #параметри групи

Відображає сторінку перегляду друкованої форми.;

Завантаження перекладів

Response: JSON-відповідь про результат збереження.; such as 'r' (read), 'w' (write), 'i' (insert), 'd' (delete), 'c' (create), 'exp' (export), 'imp' (import), 'del_' (undelete), 'settable' (set table), 'cutpast' (cut and paste), 'enable' (enable), and 'active' (active).; If the user is a superadmin, a default set of permissions is returned.; {% extends template_name + '/base.html' %} Відправка запиту на затвердження: K2.logging_message(status=K2.log_success, message='Operation completed successfully.', page_url='/kadm/users', show_message=False)

Example:

Отрмання rolename поточного користувача

Повернення результату у форматі JSON

time_zone:


the current thread and greenlet.)

Часовий пояс системи, визначений глобальним об'єктом K2.timezone.; Витягує інформаційні дані про залишки (inventSumLines).;==== Властивості ====

{% if error %}

This method fetches permissions for the current user based on the URL they are accessing.; Логіка роботи:
Якщо затверджувачів не знайдено, повертає помилку 404

База даних, доступна через глобальний об'єкт K2.db.;

{% else %}

Компоненти, які публікуються в K2 Cloud ERP повинні мати щонайменше такі атрибути

Параметри:

Перевіряє наявність номенклатури у таблиці k2nomenclature.; Він має основну базову функціональність, що розширюється та розвивається та яка є собою у всіх класів системи

K2DocsCRM

{% endblock %

Перевірка наявності записів з parentid:

str: HTML-шаблон сторінки перегляду дашборду.; ORM структури.;

Повертає:

Якщо name == 'k2doc_rows_detail': Виділяється row_id із переданих даних. Створюється об’єкт K2Grid з іменем yml “'k2doc_rows_detail”. Вимикаються кнопки add, delete, printReport на панелі інструментів. Отримується storage_id через метод self.get_storage_id(). Параметри row_id та storage_id передаються через send_params. Якщо name == 'k2doc_move':

Метод очікує вхідні інформаційні дані у форматі JSON і доступ до них здійснюється через request.json.; k2form==2.0.1.27

Python залежності, якщо є. (файл requirements.txt)

Readme.md. Файл в якому написана ціль компоненти, як її використовувати. Та різні моменти, які потрібно знати програмістам, адмінам та користувачам

Історія змін. Документ, в якому описуються зміни текстом, зрозумілим для користувачів. (файл history.txt)

Структура бази даних. На даний час, в форматі SQL power Architech. (каталог doc/schema)

Бізнес-процеси, схеми роботи, які були втілені в проудкті. В форматі Draw.io. (каталог doc/business_processes)

Інструкція користувача. Де розписано, як користуватись продуктом. Інструкція користувача повинна автоматично підтягуватись системою документації K2 Cloud ERP, додаючи розділ документації для цього продукту і надаючи можливість пошуку інформації в документації. Зберігається в каталозі: doc/user_manual)

Документацію для розробників, що генерується автоматично з коментарів. Зберігається в каталозі: doc/developer_documentation )

(потрібно завершити автоматичне збирання із компонент)

Документація для розробників (не обов’язково, але желательно). Додатково, якщо потрібно, щось додатково відмітити. Каталог doc/additional_developer_docs)

Приклади програмного коду з використанням компонент. Які автоматично з’являються в Examples при встановленні компоненти. І по яким можна протестувати функціонал. /examples (потрібно вирішити як додавати)

Віджети. Дашборди та інші візуальні елементи для вставки на головну сторінку та інші сторінки, які можна додавати автоматично. (потрібно вирішити як додавати) /widgets

Юніт тести. Написати де і яка структура. Юніт тести повинні автоматично знаходитись системою і використовуватись для загального тестування системи. Каталог /tests (потрібно завершити автоматичне збирання із компонент)

Локалізації. В К2 використовуються щонайменше: українська та англійська мова. Ядро повинно вміти робити переклади і давати можливість працювати з перекладами стороннім користувачам, покращуючи якість перекладу. Зберігається в каталозі:

/languages/en/LC_MESSAGES/messages.po
/languages/en/LC_MESSAGES/messages.mo

Демо-дані. Це дані, які розгортаються на демо-базі даних для демонстрації роботи з продуктом. (потрібно вирішити як додавати)

Файли ресурсів (зображення, тексти): Каталог /static

YML, якщо є. Каталог /yml

Іконки, які будуть використовуватись для представлення компоненти. Каталог /static/img

Авторство. Якщо К2, то в форматі, як прийнято в цілому для К2, якщо сторонній розробник - інформація про стороннього розробника. Copyright © 2000-2025 К2®, Rudiuk Serhii. All rights reserved.

Шаблони, якщо є. Вказуємо каталог. Звертаю увагу, що К2 Cloud ERP повинна мати змогу використовувати не обмежену кількість шаблонів. Шаблони повинні бути так розроблені, щоб не конфліктувати з глобальними шаблонами системи. Каталог /templates

Приклад дерева структури компоненти

components/
└── k2adm/
├── k2adm/
│ ├── data/
│ ├── languages/
│ ├── static/
│ ├── templates/
│ ├── yml/
│ ├── tests/
│ ├── examples/
│ ├── widgets/
│ ├── __init__.py
│ ├── objects/
│ ├── users/users.py
│ ├── roles/roles.py
│ ├── forms.py
│ ├── history.txt
│ ├── hooks.py
│ ├── models.py
│ ├── views.py│
├── __init__.py
├── doc/
├── schema/
├── business_processes/
├── user_manual/
├── developer_documentation/
├── additional_developer_docs/
├── history.txt
├── requirements-components.txt
├── requirements.txt
├── setup.py

Системні класи

Клас K2

Ядро системи K2CloudERP.

Властивості

Властивості класу ==== Властивості інстансу

self.secur #властивість що підключає до ядра клас безпеки

self.path #властивість що підключає до ядра клас пошуку шляхів по ієрархії self.data #властивість що підключає до ядра клас синхронізації даних

self.settings #властивість що підключає до ядра клас збереження та пошуку налаштувань

self.notifications #властивість що підключає до ядра клас створення та відправки сповіщень ==== K2().domain

Методи

Методи інстансу ==== K2().get_user_counterparts_id() ==== K2().component_list() ==== K2().get_user_project_name() ==== K2().get_current_user() ==== K2().create_db_role(user_name, password)

__init__(self, *args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

add_authorized_users(self, user_id, login)

Додати користувача до списку авторизованих

check_authorized_users(self, user_id)

Перевірити чи користувач системи активний

check_logout_users(self, user_id)

Авторизовані користувачі

component_list()

Пошук встановлених компонент

create_db_file_config_user(self)

Створення файлу з параметрами підключенням до БД для користувача

create_db_role(self, user_name, password)

Створення користувача на рівні БД

current_template(self)

Search current template

db_custom_engine(self, db)

Зміна custom параметрів підключення

db_user_engine(self, db)

Зміна параметрів підключення для поточного користувача

dell_authorized_users(self, user_id)

Видалити користувача зі списку авторизованих

drop_db_role(self, user_name)

Видалення користувача на рівні БД

get_all_subclasses(cls)

Пошук підкласів

get_authorized_users(self)

Отримати список авторизованих користувачів

get_current_user(self)

Повертає об’єкт поточного користувача

K2().get_current_user()

get_menu_url(self)

Повертає список url активних пунктів меню

get_project_setting(self)

Форма зміни проекту

get_user_counterparts_id(self)

Пошук id поточного контрагента

K2().get_user_counterparts_id()

get_user_counterparts_name(self)

Пошук назви поточного контрагента

K2().get_user_counterparts_name()

get_user_project_id(self)

Пошук id поточного проекту користувача

K2().get_user_project_id()

get_user_project_name(self)

Пошук назви поточного проекту користувача

K2().get_user_project_name()

get_user_stoages_name(self)

Пошук назви поточного складу

K2().get_user_stoages_name()

get_user_storage_id(self)

Пошук id поточного складу

K2().get_user_storage_id()

get_user_structural_division_id(self)

Пошук id поточного підрозділу

K2().get_user_structural_division_id()

get_user_structural_division_id_tree(self)

Пошук всіх підрозділів за ієрархією від поточного підрозділу користувача у форматі tuple ('id1', 'id2', 'id3')

init_db(self)

Підключення db_uri для вибраної бази даних

init_db_custom(self, key)

Підключення custom db_uri за ключем.

init_db_uri(self)

Пошук і ініціалізація файлу з підключення до бази даних

init_db_uri_custom(self)

Зчитує всі підключення до бази даних з файлу db_custom.yml і зберігає їх у словник.

init_db_uri_user(self)

Пошук і ініціалізація файлу з підключення до бази даних для поточного користуача

init_db_user(self)

Підключення db_uri для користувача

init_lm(self, app)

Ініціалізація логін-менеджера

kill_user_sessions(self, target_username)

Завершення сесії підключення користувача на рівні БД

search_class_dict(self, parent_class=None)

Рекурсивний пошук властивостей нащадків базового класу

search_class_prop(path_objs) ==== search_menu_items(self)

Search menu items

search_menu_items_category(self)

Search menu items category

search_static_files(self)

url_map(self)

Методи класу

Parameters:

name #Назва компоненти.; Передаються параметри: row_id та storage_id.;==== get_locale_id() ====

show_message (bool): True - save log and show windows, False - only save_log

return: A tuple containing:

select_grid(self)

Отримує список активних користувачів для затвердження з таблиці k2users_for_approval

K2_Cloud_ERP_Python_01.png|Ілюстрація K2 Cloud ERP Python

k2log==2.0.0.2 k2grid==2.0.4.1

error_id (str): The ID of the error to load.; Використовуються для розширення або зміни поведінки стандартних методів системи (файл hooks.py) json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from=None, date_to=None)