from kivy.logger import Logger
from kivy.utils import platform
import sqlite3
import time
import os
import socket
conn=None
#####################################################################
def dbInitConnection():
global conn
if socket.gethostname()=="portatilU":
DB="/home/julian/tmp/sqlite/nevera.sqlite3"
else:
DB="nevera.sqlite3"
if os.path.exists(os.path.normpath(DB)):
conn=sqlite3.connect(DB)
else:
conn=sqlite3.connect(DB)
c=conn.cursor()
c.execute("""
CREATE TABLE "nevera" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`contenido` TEXT,
`caduca` TEXT NOT NULL,
`precio` REAL,
`super` TEXT,
`peso` REAL,
`fcompra` NUMERIC NOT NULL,
`consumido` TEXT,
`tipo` TEXT NOT NULL,
`image` TEXT,
`thumbnail` TEXT
)
""")
conn.commit()
Logger.error("DB: database created")
#####################################################################
def dbGetItems(sel=None,consumido=False):
"""
"select * from nevera where consumido='' and tipo='ave' order by fcompra"
"""
global conn
conn.row_factory = sqlite3.Row
c=conn.cursor()
query="select * from nevera "
if not consumido :
query += "where consumido is NULL "
else :
query += "where consumido is NOT NULL"
if sel:
query +=" and tipo=? order by fcompra"
#print("query {} sel {} ".format(query,sel))
retval=c.execute(query,(sel,)).fetchall()
else:
query +=" order by fcompra"
#print("query {} sel {} ".format(query,sel))
retval=c.execute(query).fetchall()
retval=[{y: x[y] for y in x.keys()} for x in retval]
return retval
#####################################################################
def dbUpdateConsumido(id):
global conn
c=conn.cursor()
query="update nevera set consumido=? where id==?"
c.execute(query,(time.strftime("%Y-%m-%d"),int(id),))
conn.commit()
return None
#####################################################################
def dbRestore(id):
global conn
c=conn.cursor()
query="update nevera set consumido=? where id==?"
c.execute(query,(None,int(id),))
conn.commit()
return None
#####################################################################
def dbInsert(data):
global conn
keys=["contenido","caduca","precio","super","peso","fcompra","tipo","image","thumbnail"]
c=conn.cursor()
query="""insert into nevera
(contenido,caduca,precio,super,peso,fcompra,tipo,image,thumbnail)
values (?,?,?,?,?,?,?,?,?)"""
c.execute(query,[data[x] for x in keys])
conn.commit()
return None
with buildozer deps requirements = python2, kivy==1.10, sqlite3,plyer