[genropy] Problemi in webpages

  • From: Luigi Renna <luigi@xxxxxxxxxxxxx>
  • To: genropy@xxxxxxxxxxxxx
  • Date: Thu, 29 Sep 2016 12:34:42 +0200

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


Other related posts: