Класи та команди K2 ERP Python: відмінності між версіями
R (обговорення | внесок) Створена сторінка: {{Картка документації K2 | назва = K2 Cloud ERP Python для розробників | система = K2 Cloud ERP | мова = Python | тип = Документація для розробників }} '''K2 Cloud ERP Python для розробників''' — документація з вимогами до створення компонентів, структури пакетів, системних класів, API, ко... |
R (обговорення | внесок) Прибрав шаблон |
||
| Рядок 1: | Рядок 1: | ||
Виділяється doc_id із вхідних даних.; Вимикаються кнопки: add, delete, printReport.; ==== createImageSliderModal(images, containerId = null) ==== showBootstrapLoader(containerId) ==== removeBootstrapLoader(containerId) ==== showUserAlert(message, type = 'light') ==== Стилі (Назва) == | |||
Подзаголовок | |||
Заголовок 1 | |||
Заголовок 2 | |||
Заголовок 3 | |||
Заголовок 4 | |||
Заголовок 5 | |||
Заголовок 6 | |||
Звичвйний текст | |||
== | == Ілюстрації з документа == | ||
dashboard_settings=k2report_embed) | |||
Вставляє нові записи у таблицю k2remainder_by_parties зі статусом 'new'.;=== Клас k2datasync === | |||
=== K2UpdateRemainder === | |||
page_url(str): url of page with Errors.;==== clear_logging_messages() ==== | |||
Clear all logging message by user | |||
pydoc -w k2/k2obj.py, де k2/k2obj.py - шлях до файлу з корня | |||
Параметри: | |||
{{ error }} | |||
[[index.php?title=Категорія:Документація для розробників]] | |||
==== log_entry(error_id, status, message, name) ==== | |||
Хуки.;==== Атрибути класу ==== | |||
==== | ==== Властивості класу ==== | ||
Метод очікує вхідні інформаційні дані у форматі JSON і доступ до них здійснюється через request.json.; * [[K2 Cloud ERP]] | |||
* [[K2 ERP]] | |||
* [[Python]] | |||
* [[API]] | |||
* [[Документація для розробників]] | |||
* [[K2 Cloud ERP Javascript]] | |||
==== Класk2mail ==== | |||
Вивід списку ідентифікаторів компонент | |||
status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').; See help(type(self)) for accurate signature.; Вимикаються кнопки add, edit, delete, printReport на панелі інструментів.; Він має основну базову функціональність, що розширюється та розвивається та яка є собою у всіх класів системи | |||
= | [[index.php?title=Категорія:Документація K2]] | ||
Ім'я YML: 'k2doc_rows_detail'.; __TOC__ | |||
Об'єкт класу K2UpdateRemainder.;==== get_active_lang_list() ==== | |||
Алгоритм роботи: | |||
генерація друкованих документів | |||
=== Клас K2admin_menus === | |||
== | ==== Даний клас формує список пунктів меню для конкретного користувача ==== | ||
==== | ==== Властивості ==== | ||
Витягує equipment_type_name та equipment_type_code з таблиці k2equipment_type | |||
<pre> | |||
==== load_logging_message_by_id(error_id: str) ==== | |||
Повертає: | |||
:return: A tuple containing: | |||
=== Він взаємодіє з базою даних.; створення забезпечується через Клас K2ReportDesigner надає функціональність; додатково реалізовано редагування та перегляду звітів і дашбордів.; Окремо варто відзначити управляє файлами звітів і генерує JSON-дані для подальшого використання. === | |||
==== Метод очікує вхідний JSON, що містить ідентифікатор ліда (lead_id) ==== | |||
Request information about the running threads of the current process.; коректну обробку часу в межах системи реалізується засобами Призначення:.; Parameters: | |||
Пошук файлів з перекладами | |||
Отримання інформації про тип обладнання: | |||
=== Клас k2secur === | |||
error_id (str): The ID of the error to load.;=== | |||
==== Атрибути ==== | |||
path_class: 'components/k2production/k2production/k2equipment' | |||
file_class: 'k2equipment' | |||
==== Методи ==== | |||
==== init(self) ==== Параметри ==== Логіка роботи ==== | |||
==== get_path_to_root(caller_file) ==== | |||
str: HTML-шаблон сторінки перегляду дашборду.; dict: The logging message if found, None otherwise.; str: HTML-шаблон сторінки редагування.; Повернення результату у форматі JSON | |||
==== | Приклад використання: | ||
K2Lead.; Витягує нові залишки з логів, додає їх у таблицю k2remainder_by_parties, оновлює статуси існуючих записів та видаляє застарілі залишки.; Витягує інформаційні дані про залишки (inventSumLines).;==== get_locale_id() ==== | |||
Ініціалізація класу.;= | Ініціалізація класу.; session (Session) – об'єкт сесії бази даних.; У разі помилки повертає повідомлення з помилкою.; date_from = "2023-01-01" | ||
process_options - Метод обробляє різні параметри, передані через JSON-запит, і налаштовує об'єкти типу K2Grid для роботи з даними в залежності від значення ключа name у вхідних даних.; Таблиця яка містить інформаційні дані про лідів.; {% endblock % | |||
Викликає конструктор батьківського класу K2Docs.;<pre> | |||
Призначення: застосовують, коли потрібно для зберігання та обробки даних, пов'язаних з CRM.; dict: A dictionary containing the user permissions, including 'roleid' and various permission flags | |||
name #Назва компоненти.; current_user_permissions = K2().get_user_permissions() | |||
Потребує доступу до бази даних через self.db | |||
Якщо контакт не знайдено то для полів name, surname, email встановлюється значення None.; Використовуються для розширення або зміни поведінки стандартних методів системи (файл hooks.py) | |||
==== | ==== search_comp_names() ==== | ||
==== create_system_settings() ==== | |||
reports_id = ['b452a5ae84f9e92e75eb0467c196fd71', '1673a4fab757fb6c5df970fdc6ee680c', | |||
self._name_yml_master #назва конфігураційного файлу | |||
Вимикаються кнопки: add, edit, delete, printReport.;</pre> | |||
Передає список затверджувачів, ідентифікатор об'єкта, URL та характеристика змін | |||
=== K2DocsCRM === | |||
{% else %} | |||
</pre> | |||
==== get_user_role(user_id) ==== | |||
== | k2log==2.0.0.2 | ||
k2grid==2.0.4.1 | |||
Логіка роботи: | |||
=== Клас k2path === | |||
Отримує список активних користувачів для затвердження з таблиці k2users_for_approval | |||
Фіксує зміни у базі (commit).; Таблиця, в яку додається новий контакт на основі даних ліда.; k2form==2.0.1.27 | |||
</pre> | |||
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 використовуються щонайменше: українська та англійська мова. Ядро повинно вміти робити переклади і давати можливість працювати з перекладами стороннім користувачам, покращуючи якість перекладу. Зберігається в каталозі: | |||
<pre> | |||
/languages/en/LC_MESSAGES/messages.po | |||
/languages/en/LC_MESSAGES/messages.mo | |||
</pre> | |||
Демо-дані. Це дані, які розгортаються на демо-базі даних для демонстрації роботи з продуктом. (потрібно вирішити як додавати) | |||
Файли ресурсів (зображення, тексти): Каталог /static | |||
YML, якщо є. Каталог /yml | |||
Іконки, які будуть використовуватись для представлення компоненти. Каталог /static/img | |||
Авторство. Якщо К2, то в форматі, як прийнято в цілому для К2, якщо сторонній розробник - інформація про стороннього розробника. Copyright © 2000-2025 К2®, Rudiuk Serhii. All rights reserved. | |||
Шаблони, якщо є. Вказуємо каталог. Звертаю увагу, що К2 Cloud ERP повинна мати змогу використовувати не обмежену кількість шаблонів. Шаблони повинні бути так розроблені, щоб не конфліктувати з глобальними шаблонами системи. Каталог /templates | |||
==== | ==== Приклад дерева структури компоненти ==== | ||
<pre> | |||
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 | |||
</pre> | |||
== Системні класи == | |||
=== | === Клас 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) ==== | |||
==== | ==== Методи класу ==== | ||
=== Окремо варто відзначити всі властивості і методи отримуються від батьківського класу.; Клас K2CRM наслідується від K2Obj. === | |||
==== search_babel_translation_directories() ==== | |||
Exception: If an error occurs during database query execution.;==== Залежності ==== | |||
Для кожного запиту виконується SQL-запит та результат додається до result_dict.; Лід і контакт взаємодіють через базу даних, де інформаційні дані ліда переносяться в таблицю контактів.;=== Він надає доступ до ключових глобальних налаштувань та ресурсів, необхідних для роботи з документами або іншими функціями CRM.; Клас K2DocsCRM є собою частиною системи K2CRM і наслідується від K2Obj. === | |||
date_to = "2023-12-31" | |||
self._data_source #датасети | |||
Видаляє застарілі ('old').; Формує SQL-запити для витягування даних із таблиць бази даних (Товари, Організація, Контрагент, складський облік, Договір, Відповідальна особа, замовник).; Параметри: | |||
</pre> | |||
Виклик K2.get_path_abs(__file__) | |||
Завантаження перекладів | |||
==== Компоненти, які публікуються в K2 Cloud ERP повинні мати щонайменше такі атрибути ==== | |||
K2_Cloud_ERP_Python_01.png|Ілюстрація K2 Cloud ERP Python|посилання=Файл:K2_Cloud_ERP_Python_01.png | |||
== | <gallery mode="packed" heights="180"> | ||
Перевіряє наявність записів у таблиці k2tm_fields з parentid != '0' | |||
Обробка k2doc_rows_detail: | |||
Команда для автоматичної генерації html файлу з документацією по док стрінгах: | |||
<pre> | |||
Основні операції: | |||
To search for a yml file named 'users.yml', call this method as follows: | |||
</pre> | |||
Якщо затверджувачів не знайдено, повертає помилку 404 | |||
==== Основні функціональні можливості модуля ==== | |||
<pre> | </pre> | ||
The caller directory where the yml file was found, or None if the file was not found.; Якщо записів немає, повертає помилку 404 | |||
name_yml_master: str = '') | |||
dict: A dictionary containing formatted log messages, the count of 'error' messages, and the count of 'warning' messages.;=== Клас для актуалізація залишків на основі даних з отриманих від клієнтів. === | |||
itemName (str) – назва товару.;=== Клас K2Report === | |||
'49952f397efff44d7ce0e5cb9aa625fb'] | |||
- | Створює JSON-дані на основі джерел даних та періоду.;=== Клас k2trans === | ||
Успішний результат повертається у форматі JSON із ключем data.; (One greenlet will duplicate one thread, | |||
create_contact() - Цей метод створює контакт на основі даних існуючого ліда.; порівняння версій | |||
У разі помилки виконує відкат (rollback).; Винятки: | |||
Відповідає за обробку даних з логів.;==== compare_versions(version1, version2) ==== | |||
name (str): Name of the object (page) to load messages for.; керування лідами | |||
==== | ==== Властивості ==== | ||
def test_dashboard(): | |||
self._off_buttons #вимкнути кнопки | |||
Обробка k2doc_move: | |||
==== | </pre> | ||
datasource_is_storage_id = [False, True] | |||
<pre> | |||
=== Клас k2upd === | |||
== K2 Cloud ERP Javascript == | |||
</pre> | |||
'old' – застарілі інформаційні дані, що підлягають видаленню.; date_to (str, опціонально): Кінцева дата періоду.; Повертає: | |||
crm_data(route, data) - Цей метод отримує інформаційні дані із відповідних таблиць з бази даних на основі переданих параметрів для подальшого оформлення друкованої форми документів у компоненті k2CRM | |||
документація з вимогами до створення компонентів забезпечується через '''K2 Cloud ERP Python; додатково реалізовано структури пакетів, системних класів, API, компонентних класів і допоміжних JavaScript-функцій системи [[K2 Cloud ERP]] виступає ключовою рисою розробників'''.; ==== 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 === | |||
=== Клас | |||
=== Клас для керування логбуком технічного обслуговування (ТО).; return render_template('k2dashboard_production/k2dashboard_production.html', | |||
period (int): Період вибірки даних.; (каталог objects/) | |||
Параметри: | |||
Повертає: | |||
= | [[index.php?title=Категорія:K2 Cloud ERP]] | ||
<pre> | |||
Відображає сторінку перегляду дашборду.;== API == | |||
* The number of greenlets.;==== Пошук властивостей для розширення класу ==== | |||
Додаткові об’єкти компоненти.; (файл requirements-components.txt) | |||
==== __init__(self) ==== | |||
Retrieve user permissions based on the URL.; Response: JSON-відповідь про результат збереження.; Зберігає ідентифікатор та конфігурація звіту в JSON-файл.; Параметри (doc_id) передаються через send_params.; Повертає: | |||
=== | check_lead() - Цей метод перевіряє, чи існує контакт із заданим номером телефону у базі даних (k2contacts).; Окремо варто відзначити створення/актуалізація записів про залишки товарів і керування їх статусами (новий, стабільний, старий).;==== generate_id() ==== | ||
= | [[index.php?title=Категорія:Python]] | ||
<pre> | |||
==== save_logging_message(error_id, status, message, name) ==== | |||
==== dump_stacks() ==== | |||
==== update_pub_sub_remainder() ==== | |||
Ім'я YML: 'k2doc_move'.; Він містить методи для обробки запитів на затвердження змін у технічній документації обладнання.; This method searches for a yml file with a specified name in the caller directories of all subclasses of K2Obj.; Вивід списку компонент з файлу components.yml у всіх шляхах пошуку | |||
__file__ - стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.; Отримує список pub_sub_list_id з логів k2pubsub_logs.; функціонує з конфігурацією домену через K2.domain | |||
Send a logging message to the client via Socket.IO.; (файл models.py) | |||
==== Приклад використання ==== | |||
Повертає: | |||
Search for a yml file in the caller directories of subclasses.;<pre> | |||
==== Атрибути класу ==== | |||
ORM структури.; If the user is a superadmin, a default set of permissions is returned.;==== select_grid(self) ==== | |||
керування друкованими формами | керування друкованими формами | ||
self. | self._name_yml #назва конфігураційного файлу | ||
Логіка статусів: | |||
Передаються параметри: doc_id.;<pre> | |||
Визначення операційної системи | |||
* рахунки | |||
* звіти | |||
* конфігурація системи CRM | |||
K2.logging_message(K2.log_error, 'Operation completed with error.') | |||
str: HTML-шаблон сторінки перегляду.; Якщо lead_id не надано то повертається помилка.;== K2 Cloud ERP Python == | |||
<pre> | </pre> | ||
Часовий пояс системи, визначений глобальним об'єктом K2.timezone.; domain: | |||
Якщо тип обладнання не знайдено, повертає помилку 404 | |||
Визначення поточної мови | |||
database: | |||
Приклад використання функції: | |||
==== designer() ==== | |||
Цей клас гарантує генерацію та друк звітів за допомогою API Stimulsoft.; Призначення: застосовується для побудови URL-адрес або інших задач, пов'язаних з доменним середовищем.; datasource_is_counterpart_id = [True, False] | |||
'stable' – залишки, які підтвердились та доступні користувачам.; Raises: | |||
==== show_grid(self) ==== | |||
Parameters: | |||
unitId (str) – одиниця виміру (конвертується за фіксованим списком).;<pre> | |||
message (str): The content of the message to be saved.; У разі успіху: JSON з повідомленням про успішну відправку (код 200) | |||
Визначення id поточної мови | |||
self._report_id #id звіту | |||
==== взаємодія з API Stimulsoft для візуалізації та експорту звітів ==== | |||
show_message (bool): True - save log and show windows, False - only save_log | |||
==== Методи інстансу ==== | |||
Отрмання roleid користувача | |||
Відображає сторінку редагування дашборду.;==== dashboard_designer() ==== | |||
==== load_logging_messages(page_url: str) ==== | |||
{% extends template_name + '/base.html' %} | |||
==== load_babel_translation_directories() ==== | |||
База даних, доступна через глобальний об'єкт K2.db.;==== search_yml(name_yml) ==== | |||
==== Методи ==== | |||
=== Клас K2WMS === | |||
==== get_current_user_role_name() ==== | |||
Якщо контакт знайдено то відбувається актуалізація даних у options [‘dataField’] (name, surname, email, lead_id) | |||
( | ==== _insert_new_pub_sub_nomenclature(session, nomenclature_data) ==== | ||
=== Клас K2CRM === | |||
Якщо лід знайдено то створюється новий запис у таблиці k2contacts на основі даних ліда.; Якщо знайдено, оновлює інформаційні дані ліда (ім'я, прізвище, email) у переданому об'єкті.; Створюється об'єкт K2Grid з іменем yml 'k2doc_move'.;==== Фронтенд (Jinja-шаблон) ==== | |||
Returns: | |||
Повертає: | |||
Нові ('new') переводить у стабільні ('stable').;==== Методи класу ==== | |||
<pre> | <pre> | ||
K2.logging_message(status=K2.log_success, message='Operation completed successfully.', page_url='/kadm/users', show_message=False) | |||
Відносний шлях до рута.; message (str): The content of the message to be sent.; З options [‘dataField’] отримує номер телефону (phone) | |||
Нічого.;<pre> | |||
Відображає сторінку перегляду друкованої форми.;=== Клас K2Site === | |||
Initialize self.; Переводить стабільні ('stable') в старі ('old').; Шукає ліда в таблиці k2lead за наданим параметром.;==== Методи ==== | |||
==== content(self) ==== | |||
Генерація ID | |||
__file__ -стандартна змінна в Python, яка містить абсолютний шлях до поточного файлу, в якому вона застосовується.;=== Клас K2Grid === | |||
Створює порожній словник result_dict, який буде наповнюватись даними та парсить вхідні інформаційні дані data у форматі JSON і зберігає їх у result_dict [‘Header’].; гарантує функціональність для створення, перегляду, редагування записів логбука ТО, роботи з параметрами завдань та обладнання, а додатково підготовки даних про запчастини.; Структури, які потрібні для даної компоненти.; json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from=None, date_to=None) | |||
version #реліз компоненти | |||
Використовує K2Notifications.send_approval_request() для відправки повідомлення | |||
Add identificators to url page | |||
= | This method fetches permissions for the current user based on the URL they are accessing.; id = K2.generate_id() | ||
Load logging messages for the curren page from the error log file.; {% block content %} | |||
nomenclature_data (dict) – інформаційні дані про номенклатуру: | |||
datasource_is_counterpart_id (list): Список флагів, що вказують на наявність counterpart_id.;<pre> | |||
Логіка роботи: | |||
== | == Див.; додатково == | ||
Пошук затверджувачів: | |||
Приклад використання: | |||
==== | ==== viewer() ==== | ||
==== Методи ==== | ==== Методи класу ==== | ||
If no permissions are found for the user, an empty dictionary is returned.; у всіх шляхах пошуку | |||
Перевіряє наявність номенклатури у таблиці k2nomenclature.; Usage: | |||
period = 1 | |||
=== | This method emits a message to the client with a given status and message content.; itemId (str) – ідентифікатор номенклатури.;=== Клас k2settings === | ||
Usage: | |||
<pre> | |||
[[index.php?title=Категорія:K2 ERP]] | |||
Логіка роботи: | |||
==== namemenu(url) ==== | |||
self._row_selection #вибір з рядка | |||
Логує помилку у разі невдалої вставки даних.; Відправка запиту на затвердження: | |||
Передаються параметри: row_id та storage_id.; {% endif %} | |||
==== save_report_id() ==== | |||
=== | === Клас K2ReportDesigner === | ||
Перевіряє чи було надано lead_id.; Якщо запису немає – створює його.; yml_path = K2.search_yml('users') | |||
= | datasource_keys = ["table1_data", "table2_data"] | ||
self._name_yml_tree #назва конфігураційного файлу з деревом | |||
Parameters: | |||
==== __init__() ==== | |||
status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').; Rerurn: list of components identificators | |||
Масово оновлює статуси залишків: | |||
Визначення id поточної мови | |||
</pre> | |||
Зележності від інших компонент.; Отримає вхідний JSON, що містить options із даними для перевірки.; створення звітів за допомогою конструктора звітів | |||
Перевіряється значення ключа name у вхідних даних: | |||
The search is performed in the 'yml' subdirectory of each caller directory.; Returns: | |||
==== get_path_abs(caller_file) ==== | |||
</pre> | |||
==== | Save a logging message to the stack.;==== search_class_prop(path_objs) ==== | ||
==== Використовує клас K2Notifications для відправки повідомлень ==== | |||
""" Index page """ | |||
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).;==== Окремо варто відзначити роути і api (файл views.; центральний клас компоненти.py) ==== | |||
- замовлення | |||
str: HTML-шаблон сторінки редагування дашборду.; Якщо 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': | |||
Повертає: | |||
Додавання нової номенклатури.;<pre> | |||
==== | ==== __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) ==== | ||
@k2production.route('/test_dashboard', methods=['GET']) | |||
==== Методи ==== | |||
=== Клас k2data === | |||
Формує URL для сторінки затвердження | |||
K2.search_yml('users') | |||
name (str): Name of object where the message originated.; У разі помилки застосовується лог помилки і повертається повідомлення з помилкою.; The message is sent to a room identified by the current user's ID.;</pre> | |||
</gallery> | |||
Домен, на якому функціонує CRM, отримується з глобального об'єкта K2.domain.; Повертає: | |||
time_zone: | |||
== | == Вимоги до створення компонент == | ||
Виклик K2.get_path_to_root(__file__).; self._send_group_params #параметри групи | |||
</pre> | |||
threads and greenlets.; K2.get_platform() | |||
Args: | |||
=== | === Клас K2Obj === | ||
{% include dashboard_settings.template %} | |||
</pre> | |||
==== | ==== Атрибути ==== | ||
==== dashboard_viewer() ==== | |||
=== | |||
k2contacts.; Parameters: | |||
<pre> | |||
self._new_buttons #назва кнопки | |||
the current thread and greenlet.) | |||
==== create_names_yml(self, name_yml: str = '', name_yml_tree: str = '', ==== | |||
datasource_is_storage_id (list): Список флагів, що вказують на наявність storage_id.; Цей клас представляє CRM компонент, який гарантує роботу з різними розділами CRM системи такими як: | |||
== | == API == | ||
usr_perm = K2().get_user_permissions() | |||
Returns: | |||
актуалізація залишків на основі даних Pub/Sub.; Відображає сторінку редагування друкованої форми.;==== get_platform() ==== | |||
* A sequence of text lines detailing the stacks of running | |||
У разі помилки скасовує транзакцію і повертає характеристика помилки.; Load a logging message by its error_id from the error log file.; Перевірка наявності записів з parentid: | |||
==== | ==== Класk2notifications ==== | ||
Відсутні.;==== get_locale() ==== | |||
'new' – нові залишки, отримані в поточному оновленні.; Створює характеристика змін у форматі "поле: старе_значення → нове_значення" | |||
==== logging_message(status, message, page_url=None, show_message=True) ==== | |||
=== | === Клас k2logging === | ||
<pre> | |||
</pre> | |||
==== Повертає ==== | |||
= | k2report_embed = K2ReportEmbed(reports_id) | ||
З цього класу створюються всі об’єкти системи К2.; Returns: | |||
==== | dict: Словник з результатами запитів або помилкою.;==== Моделі які використовуються ==== | ||
Логіка роботи: | |||
= | json_data = k2_designer.json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from, date_to) | ||
== | == Класи компонент == | ||
date_from (str, опціонально): Початкова дата періоду.; Абсолютний шлях до файлу, в якому виконується код.;=== | |||
==== Методи класу ==== | |||
==== | ==== 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.; K2.logging_message(K2.log_success, 'Operation completed successfully.'1) | |||
==== | ==== Властивості інстансу ==== | ||
</pre> | |||
<pre> | |||
self._send_params #параметри для конфігураційного файлу | |||
Виконує SQL-запит до таблиці k2contacts для пошуку контакту за номером телефону.; приклад: | |||
</pre> | </pre> | ||
{% if error %} | |||
Отрмання rolename поточного користувача | |||
Формування повідомлення: | |||
</pre> | |||
= | datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"] | ||
==== get_user_permissions() ==== | |||
datasource_keys (list): Список ключів для джерел даних.;==== ins_search_comp() ==== | |||
У разі помилки: JSON з описом помилки (код 404 або 500) | |||
datasource_value (list): Список SQL-запитів.; Example: | |||
Результати запитів конвертуються у словники (row_asdict) для зручного JSON-формату.; Додаткові класи від яких залежить функціональні можливості компоненти.;<pre> | |||
name_yml: The name of the yml file to search for (without the '.yml' extension). | |||
Версія за 21:14, 28 квітня 2026
Виділяється doc_id із вхідних даних.; Вимикаються кнопки: add, delete, printReport.; ==== createImageSliderModal(images, containerId = null) ==== showBootstrapLoader(containerId) ==== removeBootstrapLoader(containerId) ==== showUserAlert(message, type = 'light') ==== Стилі (Назва) ==
Подзаголовок
Заголовок 1
Заголовок 2
Заголовок 3
Заголовок 4
Заголовок 5
Заголовок 6
Звичвйний текст
Ілюстрації з документа
dashboard_settings=k2report_embed) Вставляє нові записи у таблицю k2remainder_by_parties зі статусом 'new'.;=== Клас k2datasync ===
K2UpdateRemainder
page_url(str): url of page with Errors.;==== clear_logging_messages() ====
Clear all logging message by user
pydoc -w k2/k2obj.py, де k2/k2obj.py - шлях до файлу з корня
Параметри:
index.php?title=Категорія:Документація для розробників
log_entry(error_id, status, message, name)
Хуки.;==== Атрибути класу ====
Властивості класу
Метод очікує вхідні інформаційні дані у форматі JSON і доступ до них здійснюється через request.json.; * K2 Cloud ERP
Класk2mail
Вивід списку ідентифікаторів компонент status (str): The status of the message (e.g., cls.log_error - 'ERROR', cls.log_warning - 'WARNING', cls.log_success - 'SUCCESS').; See help(type(self)) for accurate signature.; Вимикаються кнопки add, edit, delete, printReport на панелі інструментів.; Він має основну базову функціональність, що розширюється та розвивається та яка є собою у всіх класів системи
index.php?title=Категорія:Документація K2
Ім'я YML: 'k2doc_rows_detail'.;
Об'єкт класу K2UpdateRemainder.;==== get_active_lang_list() ==== Алгоритм роботи: генерація друкованих документів
Клас K2admin_menus
Даний клас формує список пунктів меню для конкретного користувача
Властивості
Витягує equipment_type_name та equipment_type_code з таблиці k2equipment_type
==== load_logging_message_by_id(error_id: str) ====
Повертає:
:return: A tuple containing:
=== Він взаємодіє з базою даних.; створення забезпечується через Клас K2ReportDesigner надає функціональність; додатково реалізовано редагування та перегляду звітів і дашбордів.; Окремо варто відзначити управляє файлами звітів і генерує JSON-дані для подальшого використання. ===
==== Метод очікує вхідний JSON, що містить ідентифікатор ліда (lead_id) ====
Request information about the running threads of the current process.; коректну обробку часу в межах системи реалізується засобами Призначення:.; Parameters:
Пошук файлів з перекладами
Отримання інформації про тип обладнання:
=== Клас k2secur ===
error_id (str): The ID of the error to load.;===
==== Атрибути ====
path_class: 'components/k2production/k2production/k2equipment'
file_class: 'k2equipment'
==== Методи ====
==== init(self) ==== Параметри ==== Логіка роботи ====
==== get_path_to_root(caller_file) ====
str: HTML-шаблон сторінки перегляду дашборду.; dict: The logging message if found, None otherwise.; str: HTML-шаблон сторінки редагування.; Повернення результату у форматі JSON
Приклад використання:
K2Lead.; Витягує нові залишки з логів, додає їх у таблицю k2remainder_by_parties, оновлює статуси існуючих записів та видаляє застарілі залишки.; Витягує інформаційні дані про залишки (inventSumLines).;==== get_locale_id() ====
Ініціалізація класу.; session (Session) – об'єкт сесії бази даних.; У разі помилки повертає повідомлення з помилкою.; date_from = "2023-01-01"
process_options - Метод обробляє різні параметри, передані через JSON-запит, і налаштовує об'єкти типу K2Grid для роботи з даними в залежності від значення ключа name у вхідних даних.; Таблиця яка містить інформаційні дані про лідів.; {% endblock %
Викликає конструктор батьківського класу K2Docs.;<pre>
Призначення: застосовують, коли потрібно для зберігання та обробки даних, пов'язаних з CRM.; dict: A dictionary containing the user permissions, including 'roleid' and various permission flags
name #Назва компоненти.; current_user_permissions = K2().get_user_permissions()
Потребує доступу до бази даних через self.db
Якщо контакт не знайдено то для полів name, surname, email встановлюється значення None.; Використовуються для розширення або зміни поведінки стандартних методів системи (файл hooks.py)
==== search_comp_names() ====
==== create_system_settings() ====
reports_id = ['b452a5ae84f9e92e75eb0467c196fd71', '1673a4fab757fb6c5df970fdc6ee680c',
self._name_yml_master #назва конфігураційного файлу
Вимикаються кнопки: add, edit, delete, printReport.;
Передає список затверджувачів, ідентифікатор об'єкта, URL та характеристика змін
K2DocsCRM
{% else %}
get_user_role(user_id)
k2log==2.0.0.2 k2grid==2.0.4.1
Логіка роботи:
Клас k2path
Отримує список активних користувачів для затвердження з таблиці k2users_for_approval Фіксує зміни у базі (commit).; Таблиця, в яку додається новий контакт на основі даних ліда.; 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)
Методи класу
Окремо варто відзначити всі властивості і методи отримуються від батьківського класу.; Клас K2CRM наслідується від K2Obj.
search_babel_translation_directories()
Exception: If an error occurs during database query execution.;==== Залежності ====
Для кожного запиту виконується SQL-запит та результат додається до result_dict.; Лід і контакт взаємодіють через базу даних, де інформаційні дані ліда переносяться в таблицю контактів.;=== Він надає доступ до ключових глобальних налаштувань та ресурсів, необхідних для роботи з документами або іншими функціями CRM.; Клас K2DocsCRM є собою частиною системи K2CRM і наслідується від K2Obj. ===
date_to = "2023-12-31"
self._data_source #датасети
Видаляє застарілі ('old').; Формує SQL-запити для витягування даних із таблиць бази даних (Товари, Організація, Контрагент, складський облік, Договір, Відповідальна особа, замовник).; Параметри:
Виклик K2.get_path_abs(__file__) Завантаження перекладів
Компоненти, які публікуються в K2 Cloud ERP повинні мати щонайменше такі атрибути
K2_Cloud_ERP_Python_01.png|Ілюстрація K2 Cloud ERP Python|посилання=Файл:K2_Cloud_ERP_Python_01.png
Домен, на якому функціонує CRM, отримується з глобального об'єкта K2.domain.; Повертає:
time_zone:
Вимоги до створення компонент
Виклик K2.get_path_to_root(__file__).; self._send_group_params #параметри групи
threads and greenlets.; K2.get_platform() Args:
Клас K2Obj
{% include dashboard_settings.template %}
Атрибути
dashboard_viewer()
=
k2contacts.; Parameters:
self._new_buttons #назва кнопки the current thread and greenlet.) ==== create_names_yml(self, name_yml: str = '', name_yml_tree: str = '', ==== datasource_is_storage_id (list): Список флагів, що вказують на наявність storage_id.; Цей клас представляє CRM компонент, який гарантує роботу з різними розділами CRM системи такими як: == API == usr_perm = K2().get_user_permissions() Returns: актуалізація залишків на основі даних Pub/Sub.; Відображає сторінку редагування друкованої форми.;==== get_platform() ==== * A sequence of text lines detailing the stacks of running У разі помилки скасовує транзакцію і повертає характеристика помилки.; Load a logging message by its error_id from the error log file.; Перевірка наявності записів з parentid: ==== Класk2notifications ==== Відсутні.;==== get_locale() ==== 'new' – нові залишки, отримані в поточному оновленні.; Створює характеристика змін у форматі "поле: старе_значення → нове_значення" ==== logging_message(status, message, page_url=None, show_message=True) ==== === Клас k2logging === <pre>
Повертає
k2report_embed = K2ReportEmbed(reports_id)
З цього класу створюються всі об’єкти системи К2.; Returns:
dict: Словник з результатами запитів або помилкою.;==== Моделі які використовуються ====
Логіка роботи:
json_data = k2_designer.json_data_create(datasource_value, datasource_keys, datasource_is_counterpart_id, datasource_is_storage_id, period, date_from, date_to)
Класи компонент
date_from (str, опціонально): Початкова дата періоду.; Абсолютний шлях до файлу, в якому виконується код.;===
Методи класу
= 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.; K2.logging_message(K2.log_success, 'Operation completed successfully.'1)
Властивості інстансу
self._send_params #параметри для конфігураційного файлу Виконує SQL-запит до таблиці k2contacts для пошуку контакту за номером телефону.; приклад:
{% if error %}
Отрмання rolename поточного користувача
Формування повідомлення:
datasource_value = ["SELECT * FROM table1", "SELECT * FROM table2"]
get_user_permissions()
datasource_keys (list): Список ключів для джерел даних.;==== ins_search_comp() ====
У разі помилки: JSON з описом помилки (код 404 або 500)
datasource_value (list): Список SQL-запитів.; Example:
Результати запитів конвертуються у словники (row_asdict) для зручного JSON-формату.; Додаткові класи від яких залежить функціональні можливості компоненти.;
name_yml: The name of the yml file to search for (without the '.yml' extension).