Buongiorno a tutti.
Sto facendo delle prove è ho creato una webpage da dove prendo dei dati
da alcune tabelle per inserirli successivamente alla presione di un
bottone in un altra tabella, avrei delle domande da porre:
* Come abilitare un bottone solo se le dbselect o i texbox contengono
valori validi?
* Come azzerare il valore di una dbselect o di un textbox dopo la
pressione di un bottone (sto usando un dataRpc con delay ma no so se
è la soluzione più corretta)?
* Come riaggiornare un plainTableHandler dopo aver premuto il bottone
per l'inserimento di un nuovo record?
* Il plainTableHandler mettendo una viewResource non mi funziona più
con la condizione, mentre funziona non mettendo la viewResource?
* Come mettere in ordine il plainTableHandle, non mi ha funzionato
l'opzione order (vorrei mettere in ordine di un campo data discendente)?
Grazie
Luigi
P.s. aggiungo la webpage incriminata
# -*- coding: UTF-8 -*-
import datetime
from gnr.core.gnrdecorator import public_method
from gnr.app.gnrapp import GnrApp
app = GnrApp('prova')
db = app.db
class GnrCustomWebPage(object):
py_requires = "th/th:TableHandler,"
def pageAuthTags(self, method=None, **kwargs):
return 'user'
def main(self, root, **kwargs):
bc = root.borderContainer(datapath='main', height='100%')
bc.contentPane(region='top', height='150px')
box = bc.div(border='1px solid silver', rounded=10, margin='5px')
box.div('Gestione presenze', color='white',
text_align='center', background='silver',
rounded_top=10, font_size='14px')
fb = box.formbuilder(cols=2, border_spacing='10px',
colswidth='auto', fld_width='100%',
width='600px')
fb.dbselect(value='^.assemblea', dbtable='test.assemblea',
lbl='Assemblea',
hasDownArrow=True,
rowcaption='$descrizione,$dataprimaconv',
selected_id='.codice_ass',
auxColumns='$descrizione,$dataprimaconv',
colspan=2, width='100%')
fb.dbselect(value='^.socio', dbtable='test.soci',
lbl='Socio', rowcaption='$denominazione',
selected_id='.codice_socio',
auxColumns='$denominazione,$codsocio', colspan=2,
width='100%')
fb.br()
fb.Button('Aggiungi', fire=".aggiungi")
fb.dataRpc('.aggiunto', self.Aggiungi, pkassemblea='=.assemblea',
pksocio='=.socio', _fired="^.aggiungi")
fb.dataController("SET .socio=''", _fired='^.aggiungi', _delay=500)
bc.contentPane(region='center', margin='5px',
rounded=10).plainTableHandler(table='test.presenze',
condition='$idassemblea=:st',
condition_st='^.assemblea',
viewResource='ViewFromInserimento')
@public_method
def Aggiungi(self, pkassemblea=None, pksocio=None):
if len(pkassemblea) < 22:
return
if len(pksocio) < 22:
return
self.tbl_presenze = db.table('test.presenze')
data = dict(
idassemblea=pkassemblea,
idsocio=pksocio,
datacarico=datetime.datetime.utcnow()
)
self.tbl_presenze.insert(data)
db.commit()
return