Прежде всего, вам нужно создать среду для вашей информационной системы. В любом случае вам нужен веб-сервер Apache или Nginx и сервер баз данных PostgreSQL.
Самый простой способ получить их на вашем компьютере это использовать Docker. Мы рекомендуем контейнер docker с предустановленным Apache+PHP+PostgreSQL+Abris, который мы создали специально для быстрого запуска. Для этого откройте командную строку и введите:
docker pull abrissite/abris-free
docker run --name abris -it -p 80:80 -p 5432:5432 abrissite/abris-free
Если у вас есть собственная установка Apache2 и Postgres (см. инструкции по правильной установке в вашей системе), то необходимо скачать демонстрационный zip-архив платформы Abris и распаковать его в каталог вашего веб-сервера:
wget https://abrisplatform.com/downloads/abris-free.zip
unzip abris-free.zip /var/www/html
Откройте веб-браузер и введите адрес (измените "localhost" на правильное значение, если адрес вашего веб-сервера отличается от стандартного)
Отобразится форма установки.
Все параметры будут заполнены по умолчанию, вы должны изменить их только в том случае, если делали пользовательские настройки во время установки Apache и PostgreSQL.
В этом случае необходимо установить переключатель "Создать новую базу данных" в положение "Да". Кроме того, если вы новичок на платформе Abris, вам лучше установить переключатель "Установить демо-данные" в положение "Да". Установщик платформы Abris создаст демонстрационную версию базы данных, и вам будет легче освоить интерфейс администратора. Вы можете отказаться от демонстрационных таблиц в любой момент.
Введите имя базы данных, имя пользователя и пароль. Переключите "Создать новую базу данных" на "Нет". В этом случае установщик платформы Abris не будет создавать новую базу данных, а подключится к существующей базе данных с помощью заданных вами параметров. Обратите внимание, что платформа Abris должна хранить собственные системные данные в базе данных. Для этого установщик платформы Abris создает новую схему базы данных "meta" с некоторыми таблицами, представлениями, функциями и триггерами. Эта схема должна оставаться в базе данных все время, пока вы используете платформу Abris.
Нажмите кнопку "Установить" и посмотрите ход установки в нижней части формы установщика платформы Abris.
Для демонстрации создания базы данных мы используем простейшую базу данных "Диспетчер задач".
Таблицы task и project связаны стандартным ограничением внешнего ключа в отношении "один ко многим".
Employee и task связаны отношением "многие ко многим", реализованным при помощи task_to_emp таблицы сопряженности.
Откройте корневой адрес вашего сайта
Таблица "project"
Перейдите в Configuration и выберите пункт Schemas.
Здесь вы можете создать больше схем, но для первой простой базы данных мы будем использовать схему public. Нажмите на строку таблицы, откройте панель Entities и нажтиме Add.
Форма сущности будет открыта. Вы должны заполнить поле Table name значением "project" (это будет внутреннее имя таблицы) и поле Title значением "Projects" (это будет отображаемое имя таблицы). Затем нажмите кнопку Save.
Когда сущность будет сохранена, откройте панель Properties. Одно свойство создается автоматически. Это поле первичный ключ, у него тип uuid и имя сгрупированное из имени таблицы и суффикса _key.
Затем нажмите Add и заполните данные для первого столбца пользовательской таблицы. Заполните Column name значением "name" (это будет внутреннее имя столбца) и поле Title значением "Name" (это будет отображаемое имя поля в таблицах и формах). Также установите флажок Data type in database в значение "text" и флажок Display type в значение "caption".
Затем нажмите кнопку Save.
Аналогично добавьте все остальные свойства сущности (столбцы таблицы).
Для свойства info укажите название "Information", тип данных "text" и тип отображения "plain". Этот тип отображения позволяет редактировать поле в виде многострочного текста.
Для свойства cost укажите название "Total cost", тип данных "numeric" и тип отображения "money". Этот тип отображения позволяет просматривать значения в виде тысячных чисел.
Для свойства deadline укажите название “Deadline”, тип данных "date" и тип отображения "date". Этот тип отображения позволяет редактировать поле с помощью специального инструмента выбора даты.
Теперь следует добавить пункт меню для созданной вами таблицы. Перейдите в Configuration и нажмите пункт Menu. Затем нажмите Add, установите Entity в значение "project" и нажмите Save.
Обновите окно браузера, чтобы перезагрузить конфигурацию базы данных и увидеть новый пункт меню Projects. Вы можете нажать на него и заполнить несколько строк данных в таблице.
Вернитесь в пункт Configuration→Schemas и добавьте entity с именем таблицы "employee" и заголовком "Employees".
Добавьте property с названием столбца "name" и заголовком "Name".Обратите внимание, что вы можете игнорировать поля Display type и Data type. В этом случае платформа Abris создает текстовый столбец со строковым типом отображения.
Добавьте property "work_from" ("From") и "work_to" ("To") с data type "time with time zone" и display type "time".
Вы также можете добавить пункт меню для этой таблицы. Перейдите в пункт Configuration и нажмите пункт Menu. Затем нажмите Add, установите Entity в значение "employee" и нажмите Save.
Добавьте новую entity с названием таблицы "task" и заголовком "Tasks".
Затем добавьте все свойства сущности.
Column name |
Display type |
Data type |
Title |
|
title |
caption |
text |
Title |
Это свойство будет выделено жирным шрифтом в таблице и форме |
due_time |
datetime |
timestamp with time zone |
Due time |
Это свойство будет редактироваться в форме с выбором даты и времени |
progress |
progress |
integer |
Progress |
Это свойство будет отображаться в виде индикатора выполнения в таблицах и в редакторе целых чисел. |
description |
text |
text |
Description |
Это свойство будет отображаться в виде HTML таблиц и редактироваться в формах как форматированный текст |
Чтобы создать ссылку между task и project вам просто нужно добавить новое свойство и выбрать таблицу project в поле Reference entity.
Эта таблица реализует отношение "многие ко многим" и фактически не содержит собственных данных, а только внешние ключи к связанным таблицам.
Итак, добавьте сущность task_to_emp и два свойства. Для них вам нужно только установить поле Reference entity. Выберите сущность "task" для первого свойства и "employee" для второго.
Обновите окно браузера и выберите пункт меню Projects. Нажмите на строку таблицы. Вы можете увидеть не только свойства проекта, но и панель “Tasks” в нижней части формы. Она была создана автоматически при добавлении свойства в таблицу task и связана с таблицей project. Таким образом, теперь вы можете добавлять задачи, и они будут связаны с выбранным в данный момент проектом.
Если вы добавите задачи в проект, а затем нажмете на любую задачу, то увидите, что участники панели добавления были добавлены в форму задачи. Таким образом, для любой задачи вы можете добавить участника, которого можно выбрать из списка сотрудников. Помните, что мы только что создали таблицу employee а сейчас она абсолютно пуста. Конечно, мы можем перейти в пункт Employees и добавить всех сотрудников, которые нам нужны. Но мы можем добавить сотрудников в форму участников! Просто нажмите кнопку + справа от поля Employee , заполните информацию о новом сотруднике и нажмите кнопку Save . Также есть кнопка → , которая позволяет просматривать информацию о сотруднике, на которого ссылается.
Но что делать, если мы хотим создать специальную панель отношений для формы, но не имеем соответствующей таблицы, содержащей необходимые нам данные с внешним ключом? Мы можем создать виртуальное отношение с помощью представлений базы данных.
Перейдите в пункт Configuration→Schemas и добавьте entity с названием таблицы "project_to_emp" и заголовком "Project participants", также заполните поле View definition следующим запросом:
SELECT DISTINCT task_to_emp.task_to_emp_key as project_to_emp_key,
task.project_key,
task_to_emp.employee_key
FROM (task_to_emp
JOIN task USING (task_key));
Этот запрос объединяет таблицы task_to_emp и task и возвращает набор записей, включающих project_key и employee_key. Таким образом, этот запрос можно использовать, если мы хотим найти всех участников выбранного проекта.
Нажмите кнопку Save. Сущность будет добавлена, и вы можете заметить, что она имеет тип "View".
После этого вы должны отредактировать свойства. Для свойства employee_key установите Reference entity как "employee" и Reference entity key как "employee_key". Для свойства project_key установите Reference entity как "project" и Reference entity key как "project_key".
Последний шаг: создание виртуального отношения. "Виртуальный", потому что представления не могут иметь ограничения внешнего ключа, но могут ссылаться только на данные.
Перейдите в Configuration→Schemas, найдите сущность project и откройте в ней панель Relations. Затем добавьте отношение со следующими значениями: