Un registru de cabinet trebuie să se poată completa fără grija că ceva dispare. În octombrie 2026 am reparat o greșeală în registre care ducea exact la contrariu: o modificare corectă se pierdea fără niciun semn.
De unde a pornit
Registrele PsySign (contracte, general, acte profesionale, inventar, jurnal de plăți și fiscal) verifică fiecare celulă când utilizatorul iese din ea. O celulă cu „...” sau „?!”, fără nicio literă sau cifră, devine roșie și arată un mesaj.
Mesajul era doar atât: o culoare și un text. Salvarea automată nu știa nimic despre el. La registrele de contracte și general, valoarea respinsă se salva oricum, rămânea după reîncărcare și ajungea în exportul Word, în timp ce ecranul spunea că a fost refuzată.
Prima reparație și ce a scos la iveală
Am făcut salvarea să se oprească cât timp o celulă este marcată. Un test într-un browser real, pe un cabinet de probă, a arătat apoi ce nu prevăzusem:
- marchezi o celulă cu „...” în coloana Observații și o lași așa;
- ștergi rândul respectiv;
- modifici alt rând;
- reîncarci pagina. Modificarea a dispărut.
Marcajul rândului șters rămânea în pagină, iar fiecare cale de salvare începea cu „dacă există vreun marcaj, ieși”. Un test de control fără marcaj, în aceeași suită, salva normal.
Ce am schimbat
Cele șase registre aveau fiecare o copie a aceleiași logici. Am pus-o într-un singur loc, cu patru comportamente clare:
- ștergerea unui rând îi șterge și marcajele;
- întoarcerea la listă sau trecerea la alt document șterge toate marcajele;
- doar rândul cu celulă marcată este oprit din salvare, iar antetul și celelalte rânduri se salvează în continuare;
- linia de stare nu mai spune „Salvat” când unele rânduri nu s-au salvat, ci „Unele rânduri nu sunt salvate: corectați celulele marcate.”
Un rând oprit nu se șterge. Un rând deja salvat, cu o celulă marcată, rămâne în baza de date, iar o reîncărcare nu îi suprascrie textul. Browserul avertizează dacă ieși din pagină cât timp un rând e oprit.
Defecte în propria reparație
Verificarea a găsit probleme în reparația noastră, în mai multe runde.
Salvarea citea starea marcajelor de două ori, cu o scriere în baza de date între cele două citiri. Un rând marcat exact în acel interval nu era în nicio listă, iar pasul care șterge rândurile care nu mai sunt în document îl ștergea. Acum starea se citește o singură dată, înainte de prima așteptare, iar pagina este marcată curată doar după o scriere reușită.
Altă problemă: ștergerea singurului rând salvat făcea ca reîncărcarea să întoarcă o listă goală, iar acea ramură ocolea îmbinarea cu rândurile oprite. Textul tastat dispărea, deși marcajul rămânea. Ramura exista în patru pagini, iar acum toate folosesc aceeași funcție.
Ce am hotărât despre caractere
Pe 16 octombrie 2026 am hotărât că „-”, liniuța lungă, liniuța scurtă și „/” sunt acceptate în coloanele de observații și de note. Șiruri ca „...” sau „?!” rămân respinse.
Ce nu avem
Testul din browser nu rulează în integrarea continuă. Am rulat suita de 7 teste de două ori cu succes, iar rulările ulterioare au dat timeout când mașina era supraîncărcată. Celelalte patru registre (inventar, jurnal de plăți, acte profesionale și fiscal) folosesc aceeași poartă de verificare, dar nu le-am parcurs manual într-un browser.
Lista completă a registrelor este pe pagina principală.
PsySign este construit de BetterQA, companie de testare software din Cluj-Napoca, certificată ISO 27001 și ISO 13485.