Ну что ж, уже 12 часов поработал над новым разделом, а понимаю, что это только самое начало.
- Появился раздел «Договоры»;
- По каждому договору есть всё базовое необходимое: дата, номер, сумма, срок действия;
- Договоры связаны с проектами и контрагентами (стороны);
- У сторон отдельно указываются подписаны и основания для работы (устав, свидетельства о регистрации и т.п.);
- Через контрагентов договоры связаны со счетами. При создании договора формируется «слепок» счёта и сохраняется отдельной сущностью, чтобы потом при редактировании счёта это не затронуло старые договоры;
- Можно указать запланированный срок работы по договору. Система уже умеет показывать, сколько осталось до конца запланированных сроков или подсвечивать размер просрочки;
- Договоры можно связывать с файлами (например, чтобы подгружать оригиналы);
- У договоров много статусов — и появился функционал просмотра истории изменения статусов договоров. Это пригодится в будущем, с повышением уровня автоматизации.

Дальше я буду работать над связями договоров с другими сущностями НормЦРМ — задачами, встречами и т.п. Чтобы можно было видеть, например, сколько часов было отработано по тому или иному договору и какая в итоге получается стоимость часа, если договор был оценён «под ключ».
А после этого — над генерацией производных документов в один клик: выставлением счетов и актов.
В процессе появилась пара новых идей, связанных с фиксацией договорённостей даже без договоров, а также с единой сквозной системой напоминаний.
Также за последнее время поработал над мелкими правками и улучшениями:
- У меня уже не все пункты меню влезают в горизонтальное меню навигации, поэтому я сделал пункт «Ещё», под который скрывается то, что не влезло. Думаю, это временное решение, а потом я перейду на вертикальное меню навигации;
- Мне понравилось, как выглядит менюшка «Ещё» и я таким же образом оформил и все остальные выпадающие менюшки в НормЦРМ;
- Сделал подсветку строк в таблицах при наведении на них курсором на десктопах;
- Нашёл несколько мест, где не срабатывали переводы на английский язык, потому что были спрятаны глубоко в js или py. Поправил их;
- Сделал так, чтобы модальные окна с полями поиска (фильтрации) по спискам при изменении высоты не скакали по экрану, а привязывались к верхней границе.