<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ORM on Genropy</title><link>https://www.genropy.org/blog/tag/orm/</link><description>Recent content in ORM on Genropy</description><generator>Hugo</generator><language>it</language><lastBuildDate>Thu, 24 Apr 2025 15:53:14 +0000</lastBuildDate><atom:link href="https://www.genropy.org/blog/tag/orm/index.xml" rel="self" type="application/rss+xml"/><item><title>Scopriamo le nuove colonne virtuali: compositeColumn, joinColumn e subQueryColumn</title><link>https://www.genropy.org/blog/scopriamo-le-nuove-colonne-virtuali-compositecolumn-joincolumn-e-subquerycolumn/</link><pubDate>Thu, 24 Apr 2025 15:53:14 +0000</pubDate><guid>https://www.genropy.org/blog/scopriamo-le-nuove-colonne-virtuali-compositecolumn-joincolumn-e-subquerycolumn/</guid><description>&lt;p&gt;Dalla &lt;a href="https://www.genropy.org/blog/ultime-novita-di-genropy-orm-e-colonne-virtuali-widget-per-mobile-deploy-con-docker/"&gt;release 25.04&lt;/a&gt; di Genropy sono stati introdotti importanti aggiornamenti per semplificare e potenziare il lavoro con i database, in particolare con &lt;strong&gt;PostgreSQL&lt;/strong&gt;, l'implementazione che rimane consigliata in ambiente di produzione. Tra le novità più interessanti troviamo delle nuove &lt;a href="https://docs.genropy.org/genropy_orm/virtual_columns.html" target="_blank" rel="noreferrer noopener"&gt;&lt;strong&gt;colonne virtuali&lt;/strong&gt;,&lt;/a&gt; strumenti essenziali per gestire relazioni e &lt;em&gt;query&lt;/em&gt; in modo più efficiente. In questo articolo, esploriamo insieme tre nuovi tipi di colonne: &lt;strong&gt;compositeColumn&lt;/strong&gt;, &lt;strong&gt;joinColumn&lt;/strong&gt; e &lt;strong&gt;subQueryColumn&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="compositecolumn-la-base-per-le-chiavi-composte"&gt;&lt;strong&gt;CompositeColumn: La Base per le Chiavi Composte&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Le &lt;strong&gt;compositeColumn&lt;/strong&gt; permettono di concatenare più colonne reali, diventando perfette per la gestione delle chiavi primarie composte.&lt;/p&gt;</description></item><item><title>Nuova release luglio 2023: le novità</title><link>https://www.genropy.org/blog/nuova-release-luglio-2023-le-novita/</link><pubDate>Tue, 04 Jul 2023 11:00:58 +0000</pubDate><guid>https://www.genropy.org/blog/nuova-release-luglio-2023-le-novita/</guid><description>&lt;p&gt;Oggi, con la &lt;strong&gt;release 2307&lt;/strong&gt; , sono state nuovamente portate sul ramo master le ultime funzionalità sviluppate e testate sul ramo develop. Si consiglia pertanto di effettuare un &lt;code&gt;git pull&lt;/code&gt; del repository di Genropy per usufruire a pieno degli ultimi aggiornamenti.&lt;/p&gt;
&lt;p&gt;Di seguito le principali novità introdotte.&lt;/p&gt;
&lt;blockquote class="wp-block-quote"&gt;
&lt;p&gt;Problemi? Puoi tornare in qualsiasi momento allo stato precedente spostandoti indietro di un commit sul ramo &lt;em&gt;master&lt;/em&gt; oppure facendo il checkout del ramo &lt;code&gt;prev_master&lt;/code&gt;. Ti preghiamo comunque di segnalarci problemi e anomalie su &lt;a href="http://t.me/askongenropy" target="_blank" rel="noreferrer noopener"&gt;AskGenropy&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Come ereditare dei default tra record in relazione: l'attributo defaultFrom</title><link>https://www.genropy.org/blog/come-ereditare-dei-default-tra-record-in-relazione-lattributo-defaultfrom/</link><pubDate>Mon, 28 Nov 2022 16:53:40 +0000</pubDate><guid>https://www.genropy.org/blog/come-ereditare-dei-default-tra-record-in-relazione-lattributo-defaultfrom/</guid><description>&lt;p&gt;In una table &lt;strong&gt;gerarchica&lt;/strong&gt; o in caso di record in &lt;strong&gt;relazione&lt;/strong&gt; , può essere comodo prevedere la possibilità di far &amp;ldquo;ereditare&amp;rdquo; dei valori di record genitore o in relazione, così da offrire all&amp;rsquo;inserimento di un nuovo record un &lt;strong&gt;campo di default pre-compilato con il valore desiderato&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Supponiamo di trovarci nella tabella &lt;code&gt;prodotto_tipo&lt;/code&gt;, una tipica &lt;a href="https://docs.genropy.org/genropy_orm/tabelle_gerarchiche.html" target="_blank" rel="noreferrer noopener"&gt;tabella gerarchica&lt;/a&gt; di Genropy, dove quindi è possibile categorizzare i tipi di prodotto in una gerarchia con dei padri (es: "vernici") e dei figli (es: "vernici antiruggine", "primer", "vernici metalli"). È ragionevole supporre che nel caso di alcuni campi di una tabella di questo tipo, come ad esempio il &lt;code&gt;tipo_iva&lt;/code&gt;, questo sia comune tra i record "genitore" e i record "figlio". Non sarebbe quindi comodo trovarsi il campo &lt;em&gt;tipo_iva&lt;/em&gt; pre-popolato, nel momento in cui andrò a inserire un nuovo &lt;em&gt;tipo_prodotto&lt;/em&gt; della medesima categoria "vernici"?&lt;/p&gt;</description></item><item><title>Come personalizzare le procedure di importazione</title><link>https://www.genropy.org/blog/come-personalizzare-le-procedure-di-importazione/</link><pubDate>Fri, 08 Apr 2022 11:14:44 +0000</pubDate><guid>https://www.genropy.org/blog/come-personalizzare-le-procedure-di-importazione/</guid><description>&lt;p&gt;Il tema dell'importazione da file Excel è ampiamente diffuso in Genropy, si pensi alla possibilità di &lt;a href="https://docs.genropy.org/manuale_utente_genropy/basic_elements/basic_grid.html#altre-operazioni-esportare-e-importare-excel" target="_blank" rel="noreferrer noopener"&gt;importare record di una tabella da file xls&lt;/a&gt; o addirittura alla &lt;a href="https://www.genropy.org/blog/da-file-excel-al-web-app-in-meno-di-3-minuti/" target="_blank" rel="noreferrer noopener"&gt;possibilità di creare completamente da zero un intero applicativo&lt;/a&gt; proprio da una serie di fogli. &lt;/p&gt;
&lt;p&gt;La procedura di importazione consente quindi di popolare le tabelle associando le colonne a quelle di un foglio di calcolo, anche se queste hanno nomi diversi. Supponiamo però di avere bisogno di &lt;strong&gt;personalizzare questa procedura di importazione.&lt;/strong&gt; Potrebbe essere il caso di un&amp;rsquo;importazione in cui abbiamo dei campi in relazione, per esempio, ed è quindi necessario effettuare delle query preventive, oppure i valori devono essere scritti su più tabelle, devono essere effettuate delle operazioni di controllo o modifica, ecc.&lt;/p&gt;</description></item><item><title>Come gestire file in Genropy: le attachmentTable</title><link>https://www.genropy.org/blog/come-gestire-file-in-genropy-le-attachmenttable/</link><pubDate>Mon, 22 Nov 2021 14:42:26 +0000</pubDate><guid>https://www.genropy.org/blog/come-gestire-file-in-genropy-le-attachmenttable/</guid><description>&lt;p&gt;In un software si ha molto spesso a che fare con la &lt;strong&gt;gestione di file su disco&lt;/strong&gt; , di tipologie anche molto diverse a seconda del tipo di applicativo: cataloghi, brochure, curriculum, schede tecniche, bolle di trasporto, contratti, ecc.&lt;/p&gt;
&lt;p&gt;Ciò che li accomuna è il &lt;strong&gt;collegamento con una tabella principale&lt;/strong&gt; , quella dei prodotti, dei candidati, degli ordini, anche questa ovviamente molto diversa a seconda delle funzioni dell&amp;rsquo;applicativo. Come quindi &lt;strong&gt;gestire facilmente file così diversi in ambiti totalmente differenti&lt;/strong&gt;?&lt;/p&gt;</description></item><item><title>"Scopriamo insieme Genropy!" con PythonBiellaGroup</title><link>https://www.genropy.org/blog/scopriamo-insieme-genropy-con-pythonbiellagroup/</link><pubDate>Thu, 21 Oct 2021 08:35:55 +0000</pubDate><guid>https://www.genropy.org/blog/scopriamo-insieme-genropy-con-pythonbiellagroup/</guid><description>&lt;p&gt;Dalla collaborazione con&amp;nbsp;&lt;a href="https://t.me/joinchat/UZJZzGFKWf9JGGx5" target="_blank" rel="noreferrer noopener"&gt;Python Biella Group&lt;/a&gt;&amp;nbsp;nasce "Scopriamo insieme Genropy!", una serie di eventi in cui esploreremo insieme il framework e svilupperemo un'applicazione per le donazioni di sangue da zero.&lt;/p&gt;
&lt;p&gt;Il programma consiste in 4 serate, &lt;strong&gt;ogni lunedì sera alle ore 21 a partire da lunedì 18 ottobre&lt;/strong&gt;. Nella prima serata abbiamo fatto una panoramica sul framework, passato in rassegna qualche caso studio, visto in azione il Package Editor per creare un&amp;rsquo;applicazione partendo da un database legacy, analizzato brevemente come viene costruita una pagina standard di Genropy.&lt;/p&gt;</description></item><item><title>Come utilizzare l'ORM di Genropy da Terminale</title><link>https://www.genropy.org/blog/come-utilizzare-lorm-di-genropy-da-terminale/</link><pubDate>Mon, 05 Jul 2021 11:25:33 +0000</pubDate><guid>https://www.genropy.org/blog/come-utilizzare-lorm-di-genropy-da-terminale/</guid><description>&lt;p&gt;Sia a scopo di debug che per l&amp;rsquo;accesso da applicazioni terze, a volte può servire &lt;strong&gt;utilizzare l&amp;rsquo;ORM di Genropy anche al di fuori dell&amp;rsquo;applicativo&lt;/strong&gt; stesso. Per questo tipo di esigenza, Genropy offre la possibilità di &lt;strong&gt;istanziare&lt;/strong&gt; comodamente &lt;strong&gt;un&amp;rsquo;applicazione&lt;/strong&gt; semplicemente &lt;strong&gt;da un terminale&lt;/strong&gt;. Così facendo sarà possibile &lt;strong&gt;sfruttare tutte le funzionalità dell&amp;rsquo;ORM di Genropy&lt;/strong&gt; , quindi visualizzare la struttura del model, eseguire operazioni di lettura e scrittura, ecc, anche a webserver inattivo e al di fuori dell&amp;rsquo;interfaccia dell&amp;rsquo;applicativo.&lt;/p&gt;</description></item><item><title>GenroTalks: Conosciamo insieme Genropy</title><link>https://www.genropy.org/blog/genrotalks-conosciamo-insieme-genropy/</link><pubDate>Mon, 22 Mar 2021 16:03:08 +0000</pubDate><guid>https://www.genropy.org/blog/genrotalks-conosciamo-insieme-genropy/</guid><description>&lt;h3 id="martedì-20-aprile-ore-1800---live-su-youtube"&gt;Martedì 20 Aprile ore 18.00 - Live su Youtube&lt;/h3&gt;
&lt;div class="wp-block-buttons"&gt;
&lt;div class="wp-block-button"&gt;&lt;a class="wp-block-button__link" href="https://youtu.be/mZ2x0XSIM04" target="_blank" rel="noreferrer noopener"&gt;Segui l'evento su YT&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Dalla collaborazione con &lt;a href="https://www.facebook.com/djangogirlsIT" target="_blank" rel="noreferrer noopener"&gt;Django Girls Italia&lt;/a&gt; e &lt;a href="https://www.fuzzybrains.org/it/" target="_blank" rel="noreferrer noopener"&gt;Fuzzy Brains&lt;/a&gt; nasce GenroTalks, una serie di eventi che sarà un’occasione per conoscere meglio Genropy, per chi ancora non lo conoscesse, o semplicemente rivederci.&lt;/p&gt;
&lt;p&gt;Racconteremo la &lt;strong&gt;storia&lt;/strong&gt; del framework, ne approfondiremo le &lt;strong&gt;potenzialità&lt;/strong&gt; , vedremo insieme alcuni &lt;strong&gt;casi pratici&lt;/strong&gt; di utilizzo, dalle piccole applicazioni amatoriali alla gestione del contenimento dei casi di Covid-19 in Sicilia, fino alla gestione contabile di grandi aziende italiane in un vero e proprio software ERP.&lt;/p&gt;</description></item><item><title>Imparare Genropy: il corso Base di Genropy</title><link>https://www.genropy.org/blog/imparare-genropy-il-corso-base-di-genropy/</link><pubDate>Tue, 16 Mar 2021 14:56:42 +0000</pubDate><guid>https://www.genropy.org/blog/imparare-genropy-il-corso-base-di-genropy/</guid><description>&lt;p&gt;Per sfruttare al massimo tutte le potenzialità offerte da Genropy, come per tutte le cose è necessario approfondire lo studio per comprenderne al meglio i meccanismi e le dinamiche di funzionamento.&lt;/p&gt;
&lt;p&gt;Grazie al nostro &lt;a href="https://docs.genropy.org/tutorial_fatturazione/intro.html" target="_blank" rel="noreferrer noopener"&gt;&lt;strong&gt;Tutorial di Fatturazione&lt;/strong&gt;&lt;/a&gt; è infatti possibile apprendere rapidamente gli &lt;strong&gt;aspetti più pratici&lt;/strong&gt;, dalla creazione di un progetto e di un &lt;a href="https://docs.genropy.org/package/docu/intro.html" target="_blank" rel="noreferrer noopener"&gt;&lt;strong&gt;Package&lt;/strong&gt;&lt;/a&gt; all'utilizzo del component &lt;a href="https://docs.genropy.org/tablehandler/" target="_blank" rel="noreferrer noopener"&gt;&lt;strong&gt;Tablehandler&lt;/strong&gt;&lt;/a&gt;, dall'utilizzo dei principali &lt;a href="https://docs.genropy.org/widgetpedia/index.html" target="_blank" rel="noreferrer noopener"&gt;&lt;strong&gt;Widget&lt;/strong&gt;&lt;/a&gt; a disposizione fino alla &lt;a href="https://docs.genropy.org/stampe/index.html" target="_blank" rel="noreferrer noopener"&gt;creazione di una &lt;strong&gt;stampa&lt;/strong&gt;&lt;/a&gt;. &lt;/p&gt;</description></item><item><title>Come duplicare un record</title><link>https://www.genropy.org/blog/come-duplicare-un-record/</link><pubDate>Thu, 04 Feb 2021 11:57:48 +0000</pubDate><guid>https://www.genropy.org/blog/come-duplicare-un-record/</guid><description>&lt;p&gt;Supponiamo di voler consentire all&amp;rsquo;utente del nostro applicativo di duplicare i record in modo semplice e veloce: potrebbe essere il caso di una tabella prodotto, dove ci sono prodotti simili che differiscono solo per la descrizione, o di una serie replicata di interventi, che vogliamo marcare con un numero di copia.&lt;/p&gt;
&lt;p&gt;È possibile in questi casi utilizzare il parametro duplicate=True all'interno del metodo &lt;strong&gt;&lt;em&gt;th_options &lt;/em&gt;&lt;/strong&gt;della&lt;strong&gt;&lt;em&gt; &lt;/em&gt;&lt;/strong&gt;&lt;em&gt;risorsa&lt;/em&gt; della nostra tabella, al fine di mostrare nella &lt;strong&gt;Form&lt;/strong&gt; del record un'iconcina che consenta la duplicazione del record. &lt;/p&gt;</description></item><item><title>Genropy Day 2019: il racconto della giornata</title><link>https://www.genropy.org/blog/genropy-day-2019-il-racconto-della-giornata/</link><pubDate>Tue, 19 Nov 2019 07:18:55 +0000</pubDate><guid>https://www.genropy.org/blog/genropy-day-2019-il-racconto-della-giornata/</guid><description>&lt;p&gt;Si è da poco conclusa la seconda edizione del Genropy Day, una giornata che ha visto il nostro framework protagonista di molti importanti novità riguardanti il passaggio a Python 3 e alcune nuove funzionalità.&lt;/p&gt;
&lt;p&gt;Ma vediamo insieme queste novità&amp;hellip;&lt;/p&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img src="https://www.genropy.org/blog/genropy-day-2019-il-racconto-della-giornata/Genropy-Day-Programma-della-giornata.png" alt=""/&gt;&lt;figcaption&gt;Genropy Day: Il programma della giornata&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id="genropy-ieri-oggi-e-domani"&gt;Genropy: ieri, oggi e domani&lt;/h3&gt;
&lt;p&gt;Nel discorso introduttivo il founder Giovanni Porcari ha illustrato perché &lt;strong&gt;Genropy&lt;/strong&gt; può essere una scelta strategica per gli sviluppatori gestionali. Infatti infatti &lt;strong&gt;Genropy&lt;/strong&gt; è nato e si è evoluto con lo scopo di rendere possibile e semplice la trasposizione in ambito web di applicativi legacy, realizzati in tecnologie desktop senza perdita di funzionalità. Inoltre Genropy è un &lt;strong&gt;progetto open source&lt;/strong&gt; , basato su tecnologie a loro volta open source: ulteriore elemento di garanzia per sviluppatori e clienti finali. &lt;strong&gt;Genropy&lt;/strong&gt; ha dunque una vocazione gestionale, aperta e &lt;strong&gt;collaborativa&lt;/strong&gt; : infatti ogni pacchetto realizzato da terze parti può essere integrato nel proprio progetto e personalizzato facilmente.&lt;/p&gt;</description></item><item><title>Genropy Day 2019: parliamo di Genropy</title><link>https://www.genropy.org/blog/genropy-day-2019/</link><pubDate>Fri, 25 Oct 2019 11:25:12 +0000</pubDate><guid>https://www.genropy.org/blog/genropy-day-2019/</guid><description>&lt;h4 class="has-text-align-center"&gt;Scopri il &lt;a href="https://www.genropy.org/blog/genropy-day-2019/#programma"&gt;Programma&lt;/a&gt; completo della giornata.&lt;/h4&gt;
&lt;hr&gt;
&lt;p&gt;A meno di un mese da &lt;a href="https://www.genropy.org/blog/dive-into-genropy/" target="_blank" rel="noreferrer noopener"&gt;Dive into Genropy&lt;/a&gt;, una giornata full immersion per chi si approcciava per la prima volta al framework, torniamo a incontrare sviluppatori, appassionati e curiosi in occasione della &lt;strong&gt;seconda edizione del Genropy Day.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Vuoi sapere com'è andata a &lt;a href="https://www.genropy.org/blog/dive-into-genropy/" target="_blank" rel="noreferrer noopener"&gt;Dive into Genropy&lt;/a&gt;? Cliccando sul link trovi un'articolo che raccoglie risorse utili e un'analisi della giornata...&lt;/p&gt;
&lt;div style="height:30px" aria-hidden="true" class="wp-block-spacer"&gt;&lt;/div&gt;
&lt;hr&gt;
&lt;h4 class="has-text-align-center"&gt;Il Genropy Day si terrà a Milano presso &lt;a rel="noreferrer noopener" href="https://www.mikamai.com/" target="_blank"&gt;Mikamai&lt;/a&gt; (via Venini 42, zona Stazione Centrale) &lt;strong&gt;sabato 9 novembre 2019 dalle ore 9.30 alle 16.30&lt;/strong&gt;.&lt;/h4&gt;
&lt;div style="height:30px" aria-hidden="true" class="wp-block-spacer"&gt;&lt;/div&gt;
&lt;p class="has-text-align-center"&gt;📍 &lt;a href="https://www.google.com/maps/search/?api=1&amp;query=Mikamai%2C%20Via%20Venini%2042%2C%20Milano" target="_blank" rel="noreferrer noopener"&gt;Visualizza la sede su Google Maps&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Come fare una query su una table in Genropy</title><link>https://www.genropy.org/blog/come-creare-e-salvare-una-query-in-un-attimo/</link><pubDate>Fri, 07 Jun 2019 12:32:51 +0000</pubDate><guid>https://www.genropy.org/blog/come-creare-e-salvare-una-query-in-un-attimo/</guid><description>&lt;p&gt;A volte capita di dover ricercare dei record da una tabella, utilizzando un criterio particolare che non era stato previsto dagli autori dell&amp;rsquo;applicativo.&lt;/p&gt;
&lt;p&gt;In&lt;strong&gt; Genropy&lt;/strong&gt; si può sempre offrire all'utente finale un modo &lt;strong&gt;semplice&lt;/strong&gt; e &lt;strong&gt;rapidissimo&lt;/strong&gt; per creare qualunque tipo di &lt;strong&gt;query&lt;/strong&gt; si desideri.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Entriamo nel dettaglio&lt;br&gt;&lt;/em&gt;&lt;br&gt;Normalmente le pagine che gestiscono tabelle di database, presentano strumenti di interrogazione piuttosto elementari e poco flessibili. Di solito è possibile porre semplici condizioni sui campi più significativi: ad esempio&lt;em&gt; &lt;/em&gt;la&lt;em&gt; ragione sociale&lt;/em&gt; per una&lt;em&gt; tabella anagrafica&lt;/em&gt;, oppure il campo &lt;em&gt;data&lt;/em&gt; per una&lt;em&gt; tabella di operazione &lt;/em&gt;o un &lt;em&gt;codice progressivo&lt;/em&gt; sulla &lt;em&gt;tabella prodotto&lt;/em&gt;. &lt;/p&gt;</description></item></channel></rss>