From abc36cc9553948dbc04c69f4d6c2efffccfd4dcd Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 13 Nov 2016 10:16:07 +0100 Subject: [PATCH] Migrato l'elenco profili professionali a GdaExGrid (refs #833). --- data/organigramma/gui/organigramma.gui | 2257 ++++++++++++------------ src/profiliprofessionali.c | 71 +- 2 files changed, 1156 insertions(+), 1172 deletions(-) diff --git a/data/organigramma/gui/organigramma.gui b/data/organigramma/gui/organigramma.gui index 68457da..02dc7ff 100644 --- a/data/organigramma/gui/organigramma.gui +++ b/data/organigramma/gui/organigramma.gui @@ -2009,69 +2009,94 @@ - + + + - + + + + + - + + + + + + + + + + + + + + + + + + + False - Incarico - Gestione organigramma + Struttura - Gestione organigramma True center-on-parent + 450 True - + True False 5 vertical 5 - + True False 5 5 - + True False start - Matricola + Nome 0 - 0 + 1 - + True True True - 20 + 100 ● False False 1 - 0 + 1 - + True True True True etched-in - + True True @@ -2079,112 +2104,46 @@ 1 - 8 + 2 - + True - True + False + start True - 10 - ● - False - False + lbl_id 1 - 5 + 0 - + True True - True - 10 + False + 20 ● False False - - 1 - 6 - - - - - False - lbl_id_persone - - - 1 - 9 - - - - - True - False - True - - - - 1 - - - - - 1 - 1 - - - - - True - False - True - - - - 1 - - - - - 1 - 2 - - - - - True - False - True - - - - 1 - - - 1 3 - + True - False + True True - lstore_profili_professionali - - - - 1 - - + 10 + ● + False + False 1 @@ -2192,588 +2151,106 @@ - + True True - True - True - etched-in - + True - True - - - - - 1 - 7 - - - - - True - False - start - Tipo rapporto di lavoro - - - 0 - 1 - - - - - True - False - start - Posizione economica - - - 0 - 2 - - - - - True - False - start - Tipo prestazione - - - 0 - 3 - - - - - True - False - start - Profilo professionale - - - 0 - 4 - - - - - True - False - start - Da data - - - 0 - 5 - - - - - True - False - start - A data - - - 0 - 6 - - - - - True - False - start - start - Descrizione - - - 0 - 7 - - - - - True - False - start - start - Note - - - 0 - 8 - - - - - False - lbl_id - - - 0 - 9 - - - - - True - True - 0 - - - - - True - False - 5 - end - - - gtk-cancel - True - True - True - True - - - False - False - 0 - - - - - gtk-save - True - True - True - True - - - False - False - 1 - - - - - Salva e _chiudi - True - True - True - True - - - False - False - 2 - - - - - False - True - 1 - - - - - - - False - Profili professionali - Gestione organigramma - True - center-on-parent - 500 - 400 - True - - - True - False - 5 - vertical - 5 - - - True - False - <b>Profili professionali</b> - True - - - False - True - 0 - - - - - True - True - etched-in - - - True - True - lstore_profili_professionali - False - 0 - - - - - - Nome - - - - 1 - - - - - - - - - True - True - 1 - - - - - True - False - 5 - end - - - gtk-new - True - True - True - True - - - False - False - 0 - - - - - gtk-edit - True - True - True - True - - - False - False - 1 - - - - - gtk-delete - True - True - True - True - - - False - False - 2 - - - - - gtk-cancel - True - True - True - True - - - False - False - 3 - - - - - gtk-ok - True - True - True - True - - - False - False - 4 - - - - - False - True - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - Struttura - Gestione organigramma - True - center-on-parent - 450 - True - - - True - False - 5 - vertical - 5 - - - True - False - 5 - 5 - - - True - False - start - Nome - - - 0 - 1 - - - - - True - True - True - 100 - ● - False - False - - - 1 - 1 - - - - - True - True - True - True - etched-in - - - True - True - - - - - 1 - 2 - - - - - True - False - start - True - lbl_id - - - 1 - 0 - - - - - True - True - False - 20 - ● - False - False - - - 1 - 3 - - - - - True - True - True - 10 - ● - False - False - - - 1 - 4 - - - - - True - True - - - True - False - 5 - 5 - - - True - True - etched-in - - - True - True - lstore_struttura_indirizzi - False - 0 - - - - - - Indirizzo - - - - 1 - - - - - - - - - True - True - 0 - - - - - True - False - vertical - 5 - start - - - gtk-new - True - True - True - True - - - False - False - 0 - - - - - gtk-edit - True - True - True - True - - - False - False - 1 - - - - - gtk-delete - True - True - True - True - - - False - False - 2 - - - - - False - True - 1 - - + False + 5 + 5 + + + True + True + etched-in + + + True + True + lstore_struttura_indirizzi + False + 0 + + + + + + Indirizzo + + + + 1 + + + + + + + + + True + True + 0 + + + + + True + False + vertical + 5 + start + + + gtk-new + True + True + True + True + + + False + False + 0 + + + + + gtk-edit + True + True + True + True + + + False + False + 1 + + + + + gtk-delete + True + True + True + True + + + False + False + 2 + + + + + False + True + 1 + + @@ -4813,88 +4290,410 @@ - - True - False - 5 + + True + False + 5 + + + + + + 5 + + + + + True + False + Immagine + + + 5 + False + + + + + 0 + 7 + 2 + + + + + True + False + start + ID + + + 0 + 0 + + + + + True + False + start + Struttura + + + 0 + 3 + + + + + True + False + start + Ufficio + + + 0 + 2 + + + + + True + True + 0 + + + + + True + False + 5 + end + + + gtk-cancel + True + True + True + True + + + False + False + 0 + + + + + gtk-save + True + True + True + True + + + False + False + 1 + + + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + + + + False + True + 1 + + + + + + + + + + + + + + + + + + + + + + + False + True + center-on-parent + 600 + 400 + True + + + True + False + 5 + vertical + 5 + + + True + False + <b>Nodi</b> + True + + + False + True + 0 + + + + + True + True + etched-in + + + True + True + tstore_nodi + False + 0 + + + + + + Nome - + + + 1 + - - 5 - - - - - True - False - Immagine - - - 5 - False - + + + + True + True + 1 + + + + + True + False + 5 + end + + + gtk-new + True + True + True + True + - 0 - 7 - 2 + False + False + 0 - + + gtk-edit True - False - start - ID + True + True + True - 0 - 0 + False + False + 1 - + + gtk-delete True - False - start - Struttura + True + True + True - 0 - 3 + False + False + 2 - + + gtk-cancel True - False - start - Ufficio + True + True + True - 0 - 2 + False + False + 3 + + + + + gtk-ok + True + True + True + True + + + False + False + 4 - True + False + True + 2 + + + + + + + + + + + + + + + False + Uffici - Gestione organigramma + True + center-on-parent + 500 + 400 + True + + + True + False + 5 + vertical + 5 + + + True + False + <b>Uffici</b> + True + + + False True 0 - + + True + True + etched-in + + + True + True + tstore_uffici + False + True + 1 + + + + + + Nome + + + + 1 + + + + + + + + + True + True + 1 + + + + True False 5 end - - gtk-cancel + + gtk-new + True + True + True + True + + + False + False + 0 + + + + + gtk-edit + True + True + True + True + + + False + False + 1 + + + + + gtk-delete True True True @@ -4903,12 +4702,12 @@ False False - 0 + 2 - - gtk-save + + gtk-cancel True True True @@ -4917,105 +4716,248 @@ False False - 1 + 3 - - Salva e _chiudi + + gtk-ok True True True - True + True False False - 2 + 4 False True - 1 + 2 - - - - - - - - - - - - - - - - - + False - True - center-on-parent + Gestione organigramma + center 600 400 - True + - + True False - 5 vertical - 5 - + True False - <b>Nodi</b> - True - - - False - True - 0 - - - - - True - True - etched-in - + True - True - tstore_nodi - False - 0 - - + False + _File + True + + + True + False + + + gtk-quit + True + False + True + True + + + + - - - Nome + + + + + True + False + _Visualizza + True + + + True + False - - - 1 - + + True + False + _Organigramma + True + + + + + + True + False + _Strutture + True + + + + + + True + False + _Uffici + True + + + + + + True + False + _Persone + True + + + + + + + + + + True + False + _Tabelle + True + + + True + False + + + True + False + Tipi _nodo + True + + + + + + True + False + Tipi _recapito + True + + + + + + True + False + _Titoli + True + + + + + + True + False + Ru_oli + True + + + + + + True + False + Tipi rapporto di _lavoro + True + + + + + + True + False + _Posizioni economiche + True + + + + + + True + False + Tipi pr_estazione + True + + + + + + True + False + Pro_fili professionali + True + + + + + + + + + + True + False + A_iuto + True + + + True + False + + + gtk-about + True + False + True + True + + + + False + True + 0 + + + + + True + False + + + + True True @@ -5023,480 +4965,380 @@ - + True False - 5 - end + 2 + + + False + True + 2 + + + + + + + False + Incarico - Gestione organigramma + True + center-on-parent + True + + + True + False + 5 + vertical + 5 + + + True + False + 5 + 5 - - gtk-new + True - True - True - True + False + start + Matricola - False - False - 0 + 0 + 0 - - gtk-edit + True True - True - True + True + 20 + ● + False + False - False - False - 1 + 1 + 0 - - gtk-delete + True True - True - True + True + True + etched-in + + + True + True + + - False - False - 2 + 1 + 8 - - gtk-cancel + True True - True - True + True + 10 + ● + False + False - False - False - 3 + 1 + 5 - - gtk-ok + True True - True - True + True + 10 + ● + False + False - False - False - 4 + 1 + 6 - - - False - True - 2 - - - - - - - - - - - - - - - False - Uffici - Gestione organigramma - True - center-on-parent - 500 - 400 - True - - - True - False - 5 - vertical - 5 - - - True - False - <b>Uffici</b> - True - - - False - True - 0 - - - - - True - True - etched-in - + + False + lbl_id_persone + + + 1 + 9 + + + + True - True - tstore_uffici - False - True - 1 - - + False + True + + + + 1 + + + + 1 + 1 + + + + + True + False + True - - Nome - - - - 1 - - - + + + 1 + + + 1 + 2 + - - - True - True - 1 - - - - - True - False - 5 - end - - gtk-new + True - True - True - True + False + True + + + + 1 + + - False - False - 0 + 1 + 3 - - gtk-edit + True - True - True - True + False + True + + + + 1 + + - False - False - 1 + 1 + 4 - - gtk-delete + True True - True - True + True + True + etched-in + + + True + True + + - False - False - 2 + 1 + 7 - - gtk-cancel + True - True - True - True + False + start + Tipo rapporto di lavoro - False - False - 3 + 0 + 1 - - gtk-ok + True - True - True - True + False + start + Posizione economica - False - False - 4 + 0 + 2 - - - False - True - 2 - - - - - - - False - Gestione organigramma - center - 600 - 400 - - - - True - False - vertical - - - True - False - + True False - _File - True - - - True - False - - - gtk-quit - True - False - True - True - - - - - + start + Tipo prestazione + + 0 + 3 + - + True False - _Visualizza - True - - - True - False - - - True - False - _Organigramma - True - - - - - - True - False - _Strutture - True - - - - - - True - False - _Uffici - True - - - - - - True - False - _Persone - True - - - - - + start + Profilo professionale + + 0 + 4 + - + True False - _Tabelle - True - - - True - False - - - True - False - Tipi _nodo - True - - - - - - True - False - Tipi _recapito - True - - - - - - True - False - _Titoli - True - - - - - - True - False - Ru_oli - True - - - - - - True - False - Tipi rapporto di _lavoro - True - - - - - - True - False - _Posizioni economiche - True - - - - - - True - False - Tipi pr_estazione - True - - - - - - True - False - Pro_fili professionali - True - - - - - + start + Da data + + 0 + 5 + - + True False - A_iuto - True - - - True - False - - - gtk-about - True - False - True - True - - - - - + start + A data + + 0 + 6 + - - - False - True - 0 - - - - - True - False - + + True + False + start + start + Descrizione + + + 0 + 7 + + + + + True + False + start + start + Note + + + 0 + 8 + + + + + False + lbl_id + + + 0 + 9 + True True - 1 + 0 - + True False - 2 + 5 + end + + + gtk-cancel + True + True + True + True + + + False + False + 0 + + + + + gtk-save + True + True + True + True + + + False + False + 1 + + + + + Salva e _chiudi + True + True + True + True + + + False + False + 2 + + False True - 2 + 1 @@ -7158,6 +7000,135 @@ + + False + Profili professionali - Gestione organigramma + True + center-on-parent + 500 + 400 + True + + + True + False + 5 + vertical + 5 + + + True + False + <b>Profili professionali</b> + True + + + False + True + 0 + + + + + True + True + etched-in + + + + + + True + True + 1 + + + + + True + False + 5 + end + + + gtk-new + True + True + True + True + + + False + False + 0 + + + + + gtk-edit + True + True + True + True + + + False + False + 1 + + + + + gtk-delete + True + True + True + True + + + False + False + 2 + + + + + gtk-cancel + True + True + True + True + + + False + False + 3 + + + + + gtk-ok + True + True + True + True + + + False + False + 4 + + + + + False + True + 2 + + + + + False Profilo professionale - Gestione organigramma diff --git a/src/profiliprofessionali.c b/src/profiliprofessionali.c index 0b3bad1..98673fd 100644 --- a/src/profiliprofessionali.c +++ b/src/profiliprofessionali.c @@ -17,6 +17,11 @@ * */ +#ifdef HAVE_CONFIG_H + #include +#endif + +#include #include #include @@ -74,8 +79,10 @@ struct _OrganigrammaProfiliProfessionaliPrivate OrganigrammaCommons *commons; GtkWidget *widget; + GdaExGrid *grid; + GtkWidget *wgrid; GtkTreeSelection *selection; - GtkListStore *lstore_profili_professionali; + GtkTreeStore *tstore_profili_professionali; gboolean selezione; }; @@ -127,6 +134,8 @@ OrganigrammaProfiliProfessionali GError *error; ZakAuthoIResource *ires1; + GdaExGridColumn *gcol; + OrganigrammaProfiliProfessionali *a = ORGANIGRAMMA_PROFILI_PROFESSIONALI (g_object_new (organigramma_profili_professionali_get_type (), NULL)); OrganigrammaProfiliProfessionaliPrivate *priv = ORGANIGRAMMA_PROFILI_PROFESSIONALI_GET_PRIVATE (a); @@ -136,9 +145,8 @@ OrganigrammaProfiliProfessionali error = NULL; gtk_builder_add_objects_from_file (priv->commons->gtkbuilder, priv->commons->guifile, - g_strsplit (g_strconcat ("lstore_profili_professionali|", - (selezione ? "w_profili_professionali" : "vbx_profili_professionali"), - NULL), "|", -1), + g_strsplit ((selezione ? "w_profili_professionali" : "vbx_profili_professionali"), + "|", -1), &error); if (error != NULL) { @@ -147,8 +155,26 @@ OrganigrammaProfiliProfessionali } priv->widget = GTK_WIDGET (gtk_builder_get_object (priv->commons->gtkbuilder, (selezione ? "w_profili_professionali" : "vbx_profili_professionali"))); - priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (gtk_builder_get_object (priv->commons->gtkbuilder, "treeview22"))); - priv->lstore_profili_professionali = GTK_LIST_STORE (gtk_builder_get_object (priv->commons->gtkbuilder, "lstore_profili_professionali")); + + /* creo la gdaexgrid */ + priv->grid = gdaex_grid_new (); + gdaex_grid_set_solipa (priv->grid, priv->commons->solipa); + gdaex_grid_set_title (priv->grid, gtk_label_get_text (GTK_LABEL (gtk_builder_get_object (priv->commons->gtkbuilder, "label156")))); + + gcol = gdaex_grid_column_new ("ID", "id", G_TYPE_INT, TRUE, TRUE, TRUE, FALSE, -1); + gdaex_grid_add_column (priv->grid, gcol); + + gcol = gdaex_grid_column_new_defaults ("Nome", "nome", G_TYPE_STRING); + gdaex_grid_add_column (priv->grid, gcol); + + priv->wgrid = gdaex_grid_get_widget (priv->grid); + + gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->wgrid), 1); + gtk_container_add (GTK_CONTAINER (gtk_builder_get_object (priv->commons->gtkbuilder, "scrolledwindow37")), priv->wgrid); + gtk_widget_show (priv->wgrid); + + priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->wgrid)); + priv->tstore_profili_professionali = GTK_TREE_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (priv->wgrid))); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button130"), "clicked", G_CALLBACK (organigramma_profili_professionali_on_btn_nuovo_clicked), (gpointer)a); @@ -156,7 +182,7 @@ OrganigrammaProfiliProfessionali "clicked", G_CALLBACK (organigramma_profili_professionali_on_btn_modifica_clicked), (gpointer)a); g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "button132"), "clicked", G_CALLBACK (organigramma_profili_professionali_on_btn_elimina_clicked), (gpointer)a); - g_signal_connect (gtk_builder_get_object (priv->commons->gtkbuilder, "treeview22"), + g_signal_connect (priv->wgrid, "row-activated", G_CALLBACK (organigramma_profili_professionali_on_trv_organigramma_profili_professionali_row_activated), (gpointer)a); if (priv->selezione) @@ -216,7 +242,7 @@ organigramma_profili_professionali_carica (OrganigrammaProfiliProfessionali *pro OrganigrammaProfiliProfessionaliPrivate *priv = ORGANIGRAMMA_PROFILI_PROFESSIONALI_GET_PRIVATE (profili_professionali); - gtk_list_store_clear (priv->lstore_profili_professionali); + gtk_tree_store_clear (priv->tstore_profili_professionali); sql_where = g_strdup (""); @@ -261,28 +287,15 @@ organigramma_profili_professionali_carica (OrganigrammaProfiliProfessionali *pro "%s" " ORDER BY c.nome", sql_where); dm = gdaex_query (priv->commons->gdaex, sql); + gdaex_fill_treemodel_from_sql (priv->commons->gdaex, GTK_TREE_MODEL (priv->tstore_profili_professionali), sql, NULL, NULL); g_free (sql); - if (dm != NULL) - { - rows = gda_data_model_get_n_rows (dm); - for (row = 0; row < rows; row++) - { - gtk_list_store_append (priv->lstore_profili_professionali, &iter); - gtk_list_store_set (priv->lstore_profili_professionali, &iter, - COL_ID, gdaex_data_model_get_field_value_stringify_at (dm, row, "id"), - COL_NOME, gdaex_data_model_get_field_value_stringify_at (dm, row, "nome"), - -1); - } - - g_object_unref (dm); - } } static void organigramma_profili_professionali_modifica (OrganigrammaProfiliProfessionali *profili_professionali) { GtkTreeIter iter; - gchar *id; + guint id; OrganigrammaProfiliProfessionaliPrivate *priv = ORGANIGRAMMA_PROFILI_PROFESSIONALI_GET_PRIVATE (profili_professionali); @@ -290,11 +303,11 @@ organigramma_profili_professionali_modifica (OrganigrammaProfiliProfessionali *p { GtkWidget *w; - gtk_tree_model_get (GTK_TREE_MODEL (priv->lstore_profili_professionali), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (priv->tstore_profili_professionali), &iter, COL_ID, &id, -1); - OrganigrammaProfiloProfessionale *c = organigramma_profilo_professionale_new (priv->commons, strtol (id, NULL, 10)); + OrganigrammaProfiloProfessionale *c = organigramma_profilo_professionale_new (priv->commons, id); g_signal_connect (G_OBJECT (c), "aggiornato", G_CALLBACK (organigramma_profili_professionali_on_profilo_aggiornato), (gpointer)profili_professionali); @@ -330,7 +343,7 @@ organigramma_profili_professionali_selezionato (OrganigrammaProfiliProfessionali if (gtk_tree_selection_get_selected (priv->selection, NULL, &iter)) { - gtk_tree_model_get (GTK_TREE_MODEL (priv->lstore_profili_professionali), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (priv->tstore_profili_professionali), &iter, COL_ID, &id, -1); @@ -421,7 +434,7 @@ organigramma_profili_professionali_on_btn_elimina_clicked (GtkButton *button, gpointer user_data) { GtkTreeIter iter; - gchar *id; + guint id; OrganigrammaProfiliProfessionali *profili_professionali = (OrganigrammaProfiliProfessionali *)user_data; OrganigrammaProfiliProfessionaliPrivate *priv = ORGANIGRAMMA_PROFILI_PROFESSIONALI_GET_PRIVATE (profili_professionali); @@ -433,12 +446,12 @@ organigramma_profili_professionali_on_btn_elimina_clicked (GtkButton *button, GTK_BUTTONS_YES_NO, "Sicuro di voler eliminare il profilo professionale selezionato?") == GTK_RESPONSE_YES) { - gtk_tree_model_get (GTK_TREE_MODEL (priv->lstore_profili_professionali), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (priv->tstore_profili_professionali), &iter, COL_ID, &id, -1); gdaex_execute (priv->commons->gdaex, - g_strdup_printf ("UPDATE profili_professionali SET status = 'E' WHERE id = %d", strtol (id, NULL, 10))); + g_strdup_printf ("UPDATE profili_professionali SET status = 'E' WHERE id = %d", id)); organigramma_profili_professionali_carica (profili_professionali); } -- 2.49.0