---
# System prepended metadata

title: Untitled

---

### Follow-up aka Pre-TA

> принимаются любые комментарии и изменения. Все имена вымышлены, любые совпадения случайны ;)

**content-service**

Создаем новую модельку `CliPlaceholderContainer` очень простую, которая хранит свой description

Модели будут жить только на рутовом уровне `parent = section_item`


Далее добавляем новые команды для вставки, удаления модели и для реплейса плейсхолжера выбранной (или выбранными??) клишками @product

```python
* move_cli_placeholder_at_index
* create_cli_placeholder_at_index
* delete_cli_placeholder_at_index
* replace_cli_placeholder_with_cli
```



Также необходимо поправить команды, которые вставляют блоки справа или слева от других блоков

```python
* block_create_relatively
* block_move_relatively
```

Нужно поправить команды, которые клонируют контент, чтобы при создании CLI из контента плейсхолдеры удалялись

![](https://i.imgur.com/WWwnLtU.png)

 чтобы не возможно было вставлять блоки справа и слева от плейсхолдера. 
 
**core**

Создать новую ручку для замены плейсхолдера выбранной cli. Повторяем текущую логику ручку для вставки cli + добавляем логику на удаление модели `PlaceholderContainer` из структуры

> ? надо определиться будет ли в будущем у нас такая сущность как простой плейсхолдер (0-1 версия) с учетом того, что мы собираемся выставить его также и через апи @product
> решить используем мы текущие ~~команды для создания cli или создаем новую команду cli_placeholder_insert~~ ивенты для создания cli или добавляем новый ивент который атомарно удаляет плейсхолдер и добавляет cli
> решение: используем текущие ивенты кли, чтобы в будущем  можно было не нужно было депрекейтить новый ивент

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

Расширить Ендпоинт send_document (pandadoc/apps/documents/shortcuts.py)
Cоздать ивент в content-service (по примеру content_service_client.get_fileds )
content_service_client.get_placeholders - которая возвращает все незаполненные плейсхолдеры


SEND for Approval?

**kolas-editor**

Реализовать Undo/Redo для замены плейсхолдера выбранной cli. Создать новые ивенты соответствующие бекэнду в `EventLog`.

> как пример посмотреть вставку многостраничного cli

На фронте при вставке плейсхолдера подсвечивание должно работать как для  блока PageBreak (только в section item)

Также убрать подсвечивание возможности вставки блоков справа и слева относительно блока плейсхолдера 


*ps: в TA описать структуру документа с моделью плейсхолдера*

![](https://i.imgur.com/fLT5phr.png)


Как минимум на фронте сделать сплит/отображение плейсхолдера для админа в темплейтах только для платных подписок. Вопрос: нужно ли контролировать это на беке/в апи? Есть такая штука как Add-ons (gwpy-store) - должны ли мы ее юзать?


Толя спросить 
массив клишек
как работает аппрувал воркфлоу