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

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

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

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

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

    sudo vi /etc/ffsecurity/config.py
    
  3. В секцию FFSECURITY вставьте новую секцию CUSTOM_FIELDS со следующим содержимым:

    • 'items': список полей в досье. Опишите каждое поле следующими параметрами:
      • 'name': внутреннее имя поля, string.
      • 'label': название поля в веб-интерфейсе, string.
      • 'display': формат отображения (form или list), string или array.
      • 'tab': вкладка, на которой располагается поле. Если не задана, поле появится на главной странице досье (той, что с фотографией).
      • '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': связанное поле в формате meta__[имя поля] (с двойным подчеркиванием).
    • 'tabs': список вкладок в досье. Первая вкладка в списке соответствует главной странице досье.
    FFSECURITY = {
    
    ...
    
        'CUSTOM_FIELDS': {
            'dossier_meta': {
                'items': [
                    {'name': 'recid','label':"",'display':['form','list']},
                    {'name': 'name','label':"",'display':'form'},
                    {'name': 'address','label':"",'display':'form'},
                    {'name': 'notation','label':"",'display':'form'},
                    {'name': 'nullcolumn','label':"",'display':'form'},
                    {'name': 'photo','label':"",'display':'form'},
                    {'name': 'age', 'label':"",'display':'form', 'tab': 'look'},
                    {'name': 'growth', 'label':"",'display':'form', 'tab': 'look'},
                ],
                'filters': [
                    {
                        'name': 'recid',
                        'label': 'meta Field',
                        'field': 'meta__recid',
                   },
                ],
                'tabs': [
                    {'name': 'main'},
                    {'name': 'look'},
                    {'name': 'crime'},
                ],
    
             }
         }
     }
    
  4. Вы увидите, что новая форма досье появилась в веб-интерфейсе: