Minimo!

Minimo è un semplice gestionale per chi ha la partiva IVA (anche dei minimi), che ho sviluppato per esigenza personale e che ho deciso di rilasciare con licenza GPLV2.

Minimo attualmente ha le seguenti funzioni:

  • anagrafica clienti
  • elenco fatture
  • stampa delle fatture su modello .odt
  • gestione di imposte e ritenute

I sorgenti sono distribuiti tramite gitHub e raggiungibili al seguente indirizzo: https://github.com/luk156/minimo

Demo online:

è disponibile una demo all’ indirizzo minimo.luccalug.it

user: luccalug

password: luccalug

Screenshot:

 

 

get 1.9.2

Un’altro importante aggiornamento per il software di gestione dei turni GeT.

La nuova versione oltre a diversi bug risolti offre le seguenti novità:

  • Gerarchia tra le mansioni
  • Gestione di più calendari
  • Possibilità di aggiungere un commento ad una disponibilità
  • Filtro per la visualizzazione dei giorni del calendario
  • Promemoria via E-mail ai volontari che devono effettuare un turno
  • Esportazione in .csv della tabella Persone

Gerarchia tra le mansioni

D’ora in avanti sarà possibile definire un rapporto gerarchico tra le mansioni, questo permette di creare anche dei requisiti più completi. Supponendo di definire il seguente schema:

  • Milite
    • Milite Base
      • Milite Avanzato

Imponendo su un turno il  requisito Milite Base maggiore di 2 questo sarà soddisfatto anche se sono presenti due Militi di livello Avanzato.

Gestione di più calendari

Il numero di calendari gestiti da GeT è adesso personabilizzabile e permette alle associazioni che gestiscono diversi ambiti come il servizio sanitario, antincendio, protezione civile ecc… di gestire tutti i turni con un unico software.

Get 1.9

Continua lo sviluppo di Get ed oggi è stata rilasciata la versione 1.9 scaricabile da github.

La nuova versione introduce diverse novità in particolare:

  • Completo restyling grafico
  • Introduzione delle mansioni che ogni singola persona può svolgere
  • Introduzione di requisiti multipli basati sulle mansioni per i turni

Ecco alcuni screenshot:

La versione è ancora in fase test ma entro la fine del mese è prevista la release definitiva.

GET 0.3.2

Ho piacere di annunciare un nuovo agiornamento del software di gestione dei turni Get.

La versione 0.3.2 è un ulteriore affinamento della versione 0.3.1, sono stati corretti alcuni bug e  migliorate funzioni preesistenti. Di seguito un elenco più dettagliato delle novità:

  • Introdotto un tasto seleziona/deseleziona tutto nella pagina delle notifiche
  • Introdotte notifiche a scomparsa in diverse sezioni del programma
  • Impossibilità per un volontario di cancellarsi o segnarsi ad un turno passato
  • Possibilità di creare turni che si ripetono nel tempo
  • Requisiti minimi per un turno configurabili al momento della creazione
  • Possibilità di definire tipologie di turno con requisiti pre-configurati

Alcuni screenshot delle novità introdotte:

Nella pagina del progetto sono disponibili i sorgenti del programma.

 

Get 0.3.1

Ho appena apportato un aggiornamento a Get per quanto riguarda la gestione degli utenti. Nella versione precedente la gestione di quest’ultimi era affidata al pannello di amministrazione di Django, adesso è disponibile all’ interno del programma e offre la possibilità di eseguire in maniera rapida tutti i task necessari all’amministratore. In particolare è possibile:

  • creare/modificare/eliminare un utente
  • fornire i privilegi di staff ad un utente (solo il  superuser)
  • assegnare un utente ad un volontario

Inoltre è stata aggiunta la funzionalità per gli utenti di recuperare la password o di modificarla.

Di seguito alcuni screenshoot:

Python-Xbee

Python-xbee è  una libreria in python che permette di lavorare in modalità API sui moduli di comunicazione xbee ( vedi articolo: Digimesh ).

Digimesh

La libreria non implementa correttamente le api dei moduli Digimesh, per questo ho deciso di contribuire al progetto implementando i tipi di pacchetti mancanti.

Ho deciso di utilizzarla per sviluppare un progetto in cui dovrò mettere in comunicazione più arduino con un pc che funga da coordinatore.

Anche se alcune questioni sintattiche non mi aggradano troppo, trovo il python un ottimo linguaggio per la velocità con cui riesco a svilupparvi applicazioni funzionali, inoltre la libreria è molto semplice e anch’essa veloce da utilizzare.

Ecco un esempio:

In questo esempio ho voluto testare la funzione “ND” Network Discovery dei moduli Xbee. Al pc è connesso un Xbee Explorer e nell’area circostante sono attivi 2 Arduino Fio con anch’essi muniti di modulo Xbee DigiMesh.

Lo script non fa altro che un discovery dei nodi attivi, dopodiche invia un comando “RS” ciascuno per valutare la qualità del link.

In uscita viene restituita una tabella con identificativo,indirizzo e qualità della trasmissione.

#! /usr/bin/python

#importo Digimesh
from xbee import DigiMesh
import serial, time

#definisco una funzione di callback a cui saranno passati ipacchetti ricevuti
frame=[]
def print_data(data):
frame.append(data)

#inizializzo la seriale e vi associo la classe
ser = serial.Serial('/dev/ttyUSB0', 9600)
xbee = DigiMesh(ser, escaped=True, callback=print_data)

#invio il comando di scansione
print "eseguo la scansione dei nodi"
xbee.send('at', frame_id="S", command="ND")

#attendo 5 secondi che tutti i nodi abbiano risposto
time.sleep(5)
xbee.halt()
d=1
#per ogni pacchetto ricevuto eseguo il ciclo
for f in frame:
i=10
ID=''
while f['parameter'][i]!='x00':
ID+=f['parameter'][i]
i+=1
xbee = DigiMesh(ser, escaped=True)
#invio ad ogni modulo la richiesta della qualità di comunicazione
xbee.send('remote_at', frame_id='B', dest_addr_long=f['parameter'][2:10], command='DB')
indirizzo=' '.join( [ "%02X " % ord( x ) for x in f['parameter'][2:10] ] )
potenza=xbee.wait_read_frame()['parameter']
#stampa i dati ottenuti
print "nodo %d t| ID: %s t| Indirizzo: %s t|Potenza Segnale: -%d Db " % (d,ID,indirizzo,ord(potenza))
d+=1

xbee.halt()
ser.close()

Questo è quello che viene restituito nel mio caso:

 nodo 1 | ID: lulu3 | Indirizzo: 0013A200406914A4 |Potenza Segnale: -59 Db
 nodo 2 | ID: lulu2 | Indirizzo: 0013A20040691491 |Potenza Segnale: -48 Db

Digimesh.py

In allegato la nuova classe Digimesh in attesa che sia inclusa nel repository ufficiale:

digimesh.py