Пользовательские вкладки, поля и фильтры в карточке

См.также

Для создания пользовательских полей в базе данных векторов признаков см. Пользовательские метаданные в Tarantool.

Для добавления пользовательских вкладок и полей в карточки людей и автомобилей выполните следующие действия:

  1. Подготовьте список пользовательских вкладок и полей для добавления в карточки.

  2. Откройте файл конфигурации /etc/findface-security/config.py.

    sudo vi /etc/findface-security/config.py
    
  3. Настройте карточки людей. Для этого раскомментируйте секцию FFSECURITY -> CUSTOM_FIELDS -> human_card и измените ее примерное содержимое с учетом следующих правил:

    • 'items': список полей в карточке. Опишите каждое поле следующими параметрами:

      • 'name': внутреннее имя поля, string.

      • default: значение по умолчанию. Если значение по умолчанию больше ‘1e14 – 1’, то его следует записывать в виде строки, т. е. “123123..” вместо 123123...

      • 'label': название поля в карточке, string.

      • 'tab': вкладка, на которой располагается поле. Если не задана, поле появится на главной странице карточки (той, что с фотографией).

      • 'display': формат отображения (form или list), string или array.

      • 'description': описание поля, string.

      • 'editable': редактируемость поля, boolean.

      • 'type': тип данных поля, string. Возможные значения:

        • list: требует задания items, дополнительного параметра для списков (см. ниже), ожидает объекты {id, name} в словарях;

        • valuelist: ожидает элементы примитивных типов.

        • objectlist: позволяет создавать массивы объектов нужного типа.

        • datetime: примитивный тип данных, отображаемый как список datetime.

        • date: примитивный тип данных, отображаемый как выбор даты.

        • boolean: примитивный тип данных, отображаемый как флажок.

        • string: примитивный тип данных string.

      • дополнительные параметры для списков (type=list, type=valuelist):

        • multiple: возможность выбора нескольких элементов в списке, boolean.

        • items: словарь, используемый как источник данных для списка.

        • allow_create: возможность добавления новых элементов в список, boolean.

        • custom_id: пользовательское поле для id (type=list).

      • дополнительные параметры для списков объектов (type=objectlist).

        • object: объекты, используемые как источник данных для списка объектов.

        • simple: указывает, что поле ожидает данные примитивного типа вместо объектов, например, ожидает строки с телефонными номерами.

    • 'filters': список фильтров для поиска по пользовательским полям. Параметры:

      • 'name': внутреннее имя фильтра,

      • 'label': название фильтра в веб-интерфейсе,

      • 'field': связанное поле в формате [имя поля].

    • 'tabs': список вкладок в карточке. Первая вкладка в списке соответствует главной странице карточки.

    FFSECURITY = {
    
    ...
    
    # -- Custom model fields --
    # Edit CUSTOM_FIELDS -> `human_card` section to customize human card fields.
    # Edit CUSTOM_FIELDS -> `car_card` section to customize car card fields.
    ...
      'CUSTOM_FIELDS': {
          'human_card': {
              'items': [
                  {
                      'name': 'personid',
                      'default': '',
                      'label': 'PersonID',
                      'display': ['list', 'form'],
                      'description': 'Sigur person ID',
                      'editable': False
                  },
                  {
                      'name': 'firstname',
                      'default': '',
                      'label': 'First Name',
                      'display': ['list', 'form'],
                      'description': 'Sigur first name',
                      'editable': False
                  },
                  {
                      'name': 'lastname',
                      'default': '',
                      'label': 'Last Name',
                      'display': ['list', 'form'],
                      'description': 'Sigur last name',
                      'editable': False
                  },
                  {
                      'name': 'version',
                      'default': '',
                      'label': 'Version',
                      'display': ['list', 'form'],
                      'description': 'Sigur photo version',
                      'editable': False
                  }
              ],
              'filters': [
                  {
                      'name': 'personid',
                      'label': 'Sigur person ID filter',
                      'field': 'personid'
                  }
              ]
          },
          'car_card': {}, # same fields are available
      },
    }
    
  4. Настройте карточки автомобилей. Для этого продублируйте содержимое секции human_card в секцию car_card и измените его по аналогии.

  5. Перезапустите сервис findface-security.

    sudo systemctl restart findface-security.service
    

    Вы увидите, что в карточках появилось новое содержимое.