Open Dasc3er opened 2 years ago
Aggiornamento per migliorare l'informazione riguardo la possibile versione 2.5, che prevede l'utilizzo di Laravel come base per il progetto.
Lo sviluppo è al momento fermo in 2 branch a circa 2000 commit da master: laravel, e legacy.
La branch laravel è un progetto standard Laravel v9, con alcune feature di OpenSTAManager che sono state introdotte e completamente aggiornate. La branch legacy è un semplice clone di master, con un numero minimo di commit finalizzato a correggere problemi con percorsi relativi di path e URL con l'introduzione di Laravel. Inoltre, presenta alcuni file aggiuntivi (in particolare https://github.com/devcode-it/openstamanager/blob/legacy/routes.php) che permettono l'installazione della branch come package Laravel completo, con routes di retrocompatibilità.
Il porting con Laravel contiene al momento le seguenti feature:
La configurazione di base per Laravel si effettua con un semplice clone della branch in una cartella (./laravel/) e nella stessa cartella un clone della branch legacy (./legacy). Questo è fisso in composer.json sotto "url": "../legacy", ma pronto per modifiche future per operazioni più automatiche.
La ripresa dello sviluppo dovrebbe essere semplice da effettuare: installare le dipendenze della cartella legacy/ come OpenSTAManager standard (npm run develop-OSM), e in modo simile nella cartella laravel/ (npm run develop-OSM).
Includo plan originale al riguardo, originalmente indicato in (https://github.com/devcode-it/openstamanager/issues/710): Questa issue descrive le scelte effettuate per la versione futura del gestionale OpenSTAManager (ipoteticamente versione 2.5), finalizzata a migliorare la struttura del gestionale secondo standard più recenti.
Framework di base Come framework di base per l'aggiornamento del gestionale è stato scelto Laravel (8.x): https://laravel.com/docs/8.x Per la gestione indipendente dei moduli, si prevede l'utilizzo di un pacchetto dedicato Laravel-Modules: https://nwidart.com/laravel-modules/
Lo sviluppo della nuova versione avviene in due branch distinte:
La branch legacy viene utilizzata per simulare il gestionale in versione 2.4.x (con tutti i comportamenti relativi) all'accesso secondo i link storicamente utilizzati (controller.php, editor.php, ...).
Lo sviluppo di un modulo deve seguire le istruzioni dei pacchetti Laravel e lo standard previsto da Laravel-Modules, iniziando attraverso il seguente comando: php artisan module:make
Per semplificare la creazione dei contenuti, sono disponibili i template di default nella cartella resources/views/ liberamente utilizzabili per creare grafiche personalizzate.
Modifiche di accesso Per l'introduzione di Laravel, deve essere reso disponibile il solo accesso alla cartella public/.
La roadmap qui indicata non è definitiva e può essere soggetta a cambiamenti anche considerevoli.
Predispongo una descrizione rapida delle branch principali attualmente disponibili nel progetto.
Branch 3.x
Rescrittura del progetto con tecnologie JS più recenti, proposta e portata avanti da @maicol07. Include istruzioni per compilazione e funzionamento.
Branch summernote
Sostituisce CKEditor con Summernote come editor di testo, tramite il campo personalizzato "editor" (diverso da "ckeditor").
Branch revisione-scadenze
Revisione del sistema delle scadenze, per permettere il raggruppamento delle stesse in modo più controllato e distinto dai documenti. Nello specifico, prevede l'introduzione delle tabelle co_gruppi_scadenze e co_scadenze, con la trasformazione già completa per la retrocompatibilità.
Branch revisione-sedi-utenti
Separazione della sede legale da an_anagrafiche a an_sedi, con relativa catena di modifiche a id_sede nei vari moduli.
Branch revisione-ritenute-rivalse
Tentativo di generalizzare la gestione di ritenute e rivalse a livello di documento, per meglio rappresentare a specchio la gestione prevista da Fatture Elettronica.
Branch separazione-segmenti
Separazione dei segmenti (filtri manuali selezionabili dall'utente) dai sezionali (componenti fiscali per i documenti), effettuata a livello di database per maggiore integrità.
Branch legacy
Porting della versione master con alcune modifiche per il funzionamento come modulo Laravel.
Branch laravel
Versione di Laravel con alcune correzioni per permettere l'installazione di moduli. Richiede la presenza della branch legacy in una cartella legacy allo stesso livello per funzionare correttamente (modificabile attraverso il file composer.json una volta completati gli sviluppi).