Когато едно лозе се разделя — например защото едната половина се дава под аренда или се засажда с нов сорт — досега трябваше да се изтрие съществуващото лозе и да се създадат две нови. При това всички свързани данни се губеха: задачи, сигнали, отчитане на времето.
От сега нататък това става директно на картата: тегли линия през лозето и площта се разрязва автоматично на две части. И двете нови лозя запазват връзката си с оригинала — задачите, сигналите и отчитанията на времето остават запазени.
Това звучи просто, но беше технически доста предизвикателно. Логиката за разделяне на полигони трябва да може да се справя с всички възможни форми: вдлъбнати площи, площи с дупки и гранични случаи, при които линията минава точно през ъглова точка. За целта използваме библиотеката Turf.js на клиента и валидираме резултата още веднъж от страна на сървъра.
В хода на функцията за разделяне преработихме целия редактор на площи. Точките се местят по-интуитивно, манипулаторите са по-големи и по-добре видими, а работата на сензорни устройства функционира значително по-добре.
Най-важните подобрения накратко:
Вместо да започват от нулата, новите стопанства вече стартират с обичайните лозарски задачи: рязане, привързване, обезлистване, разреждане, растителна защита, косене на насипите и много други. Типовете могат по всяко време да се адаптират, допълват или изтриват.
Съставихме 47-те типа заедно с винари от Вахау, Бургенланд и Южна Щирия. Те обхващат целия годишен цикъл и са наименувани така, както е обичайно в немскоезичното лозарство.
Във фонов режим имаше голяма техническа актуализация: Spring Boot 4 с Hibernate 7 на сървъра, Angular 21 в таблото и Riverpod 3 в мобилното приложение. Тези актуализации носят по-добра производителност и ни позволяват да разработваме нови функции по-бързо.
Миграцията към Spring Boot 4 беше най-голямата техническа промяна от нашия старт насам — но тя вече се изплаща. Времето за стартиране на сървъра се намали наполовина.
За вас като потребители при това не се променя нищо видимо — но по-бързата основа ни позволява да доставяме следващите функции значително по-бързо.