コード例 #1
0
ファイル: package_editor.py プロジェクト: bopopescu/genropy
 def actionOnInstance(self,instance=None,action=None,package=None,selectedTables=None,**kwargs):
     app = GnrApp(instance) #it does not work in uwsgi fix it
     if action=='make_menu':
         ThPackageResourceMaker(app,package=package,tables=selectedTables).makeMenu()
     if action.startswith('make_resources'):
         ThPackageResourceMaker(app,package=package,tables=selectedTables,
                                 force=action=='make_resources_force').makeResources()
     if action in ('dbsetup','import_legacy'):
         destdb = app.db
         if destdb.model.check():
             self.log('applyModelChanges')
             destdb.model.applyModelChanges()
         if action =='import_legacy':
             app.importFromLegacyDb(thermo_wrapper=self.utils.quickThermo,
                                     thermo_wrapper_kwargs=dict(labelcb=lambda table: table))
コード例 #2
0
ファイル: testing.py プロジェクト: unbit/genropy
 def loadApp(self):
     if not self.instance:
         raise TestError("Please specify an instance name")
     self.app = GnrApp(self.instance, forTesting=True)
     base_dir = os.path.dirname(sys.modules[self.__class__.__module__].__file__)
     # Load preferences
     if self.load_preferences:
         fullname = os.path.join(base_dir, self.load_preferences)
         if not os.path.isfile(fullname):
             raise TestError("Missing preferences file: %s" % fullname)
         self.loadPreferences(fullname)
     # Load data files
     for datafile in self.load_data:
         fullname = os.path.join(base_dir, datafile)
         if not os.path.isfile(fullname):
             raise TestError("Missing data file: %s" % fullname)
         basename, ext = os.path.splitext(fullname)
         if ext == '.yaml':
             self.loadYamlDataFile(fullname)
         elif ext == '.xml':
             self.loadXmlDataFile(fullname)
         elif ext == '.sql':
             self.loadSqlDataFile(fullname)
         else:
             raise TestError("Unknown data file format: %s" % fullname)
コード例 #3
0
 def extdb_importFromExtDb(self,connection_params=None,instance=None,package=None):
     app = GnrApp(instance)
     destdb = app.db
     if destdb.model.check():
         destdb.model.applyModelChanges()
     if connection_params and (connection_params['dbname'] or connection_params['filename']):
         sourcedb = self.extdb_getSourceDb(connection_params)
         sourcedb.model.build()
         for table in destdb.tablesMasterIndex()[package].keys():
             self.extdb_importTable(sourcedb,destdb,package,table)
             destdb.commit()
         sourcedb.closeConnection()
         destdb.closeConnection()
コード例 #4
0
    def db_setup(self, instance_name, storename=None):
        if self.instance_exists(instance_name):
            app = GnrApp(self.instance_folder(instance_name))
            if storename == '*':
                stores = [None] + app.db.dbstores.keys()
            else:
                stores = [storename]
            for storename in stores:
                app.db.use_store(storename)
                changes = app.db.model.check()
                if changes:
                    app.db.model.applyModelChanges()
        else:
            raise Exception('Instance %s does not exists' % instance_name)

            for storename in stores:
                app.db.use_store(storename)
コード例 #5
0
ファイル: main.py プロジェクト: poppogbr/genropy
 def db_synced(self, instance_name, storename=None, verbose=False):
     if self.instance_exists(instance_name):
         changes_dict = dict()
         app = GnrApp(os.path.join(self.instance_folder(instance_name), 'instanceconfig.xml'))
         if storename == '*':
             stores = [None] + app.db.dbstores.keys()
         else:
             stores = [storename]
         for storename in stores:
             app.db.use_store(storename)
             changes = app.db.model.check()
             if not verbose and changes:
                 return False
             else:
                 changes_dict[storename or 'Main'] = changes
         if not verbose:
             return True
         else:
             return changes
     else:
         raise Exception('Instance %s does not exists' % instance_name)
コード例 #6
0
ファイル: print_examples.py プロジェクト: pfurini/sandbox
def example_6(body):

    sandbox_app = GnrApp('sandbox')
    glbl_table = sandbox_app.db.table('glbl.provincia')
    province = glbl_table.query().fetch()

    l = body.layout(width=200,
                    top=5,
                    left=5,
                    border_width=0.3,
                    border_color='grey',
                    border_style='solid')

    headers_row = l.row(height=10)
    headers_row.cell('Sigla',
                     width=20,
                     style='text-align:center; font-weight:bold;')
    headers_row.cell('Nome', style='text-indent:10mm; font-weight:bold;')

    for pr in province:
        r = l.row(height=10)
        r.cell(pr['sigla'], width=20, style='text-align:center;')
        r.cell(pr['nome'], style='text-indent:10mm;')
コード例 #7
0
ファイル: package_editor.py プロジェクト: bopopescu/genropy
 def dbSetupOnInstance(self,instance=None):
     app = GnrApp(instance)
     destdb = app.db
     if destdb.model.check():
         destdb.model.applyModelChanges()
コード例 #8
0
from gnr.app.gnrapp import GnrApp
from gnr.core.gnrbag import Bag

app = GnrApp('moscati')
db = app.db
qin = db.table('glbl.provincia').query(columns='$sigla,$nome',
                                       where='( $sigla IN :s )',
                                       s=['AL', 'MI', 'CO', 'BG', 'BS', 'RM'],
                                       order_by='$sigla')

#qany = db.table('glbl.provincia').query(columns='$sigla,$nome',where='NOT ( $sigla = ANY(:s) )',s=['AL','MI','CO','BG','BS','RM'],order_by='$sigla')

#event = db.table('base.event')
#qevt = event.query(columns='$id,$inpatient,@estimate_id.inv_total,@estimate_id.inv_total_test')
#print qevt.sqltext
#res = estimate.query(columns='$id,$inv_total_test,$inv_total',limit=1).selection().output('grid')
#q = estimate.query(columns='$id,@service_id.@patient_id.name_full')

print qin.fetch()
コード例 #9
0
ファイル: batch_runner.py プロジェクト: sporcari/faterpg
# encoding: utf-8

from gnr.app.gnrapp import GnrApp
db = GnrApp('faterpg').db

stunt_tbl = db.table('fate.stunt').setStandardSet()
db.commit()
print 'fatto'

コード例 #10
0
ファイル: import_comuni.py プロジェクト: unbit/genropy
from gnr.core.gnrlist import XlsReader
from gnr.app.gnrapp import GnrApp


def importXlsComuni(db, docname):
    reader = XlsReader(docname)
    comune = db.table('glbl.comune')
    province_dict = db.table('glbl.provincia').query().fetchAsDict(
        'codice_istat')
    print 'province', province_dict
    for row in reader():
        row = dict(row)
        row['litoraneo'] = True if row['litoraneo'] is 1 else False
        row['capoluogo'] = True if row['capoluogo'] is 1 else False
        row['sigla_provincia'] = province_dict[
            row['codice_provincia']]['sigla']
        comune.insert(row)


if __name__ == '__main__':
    db = GnrApp('autosped').db
    importXlsComuni(db, '../../../data/comuni.xls')
    db.commit()
    print 'OK'
コード例 #11
0
ファイル: nuts.py プロジェクト: unbit/genropy
                if r["code"].startswith(parent_rec["code"]):
                    oldrecord = dict(r)
                    r["parent_id"] = parent_rec["id"]
                    self.update(r, oldrecord)
                    hasparent = True
                    break
            if hasparent:
                prev_list = [r] + prev_list
            else:
                prev_list = [r]


if __name__ == "__main__":
    from gnr.app.gnrapp import GnrApp

    db = GnrApp("autosped").db
    nuts = db.table("glbl.nuts")
    nuts.setParent()
    db.commit()

# f = nuts.query(order_by='code',for_update=True,addPkeyColumn=False).fetch()
# prev_list = []
# for r in f:
#    if prev_listr['code'].startswith(prev_code):
#        oldrecord = dict(r)
#        r['parent_id'] = prev_rec['id']
#        nuts.update(r,oldrecord)
#    elif len(r):
#        prev_rec = r
#        prev_code = r['code']
# db.commit()
コード例 #12
0
        qta = base_qta * randint(0, 5) + randint(0, base_qta) + randint(1, 10)
        record_riga['aliquota_iva'] = prodotto['aliquota_prodotto']
        record_riga['quantita'] = qta
        record_riga['prodotto_id'] = prodotto['id']
        record_riga['prezzo_unitario'] = prodotto['prezzo_unitario']
        record_riga['prezzo_totale'] = prodotto['prezzo_unitario'] * qta
        record_riga['iva'] = record_riga['prezzo_totale'] * record_riga[
            'aliquota_iva'] / Decimal(100)

        self.tbl_fattura_riga.insert(record_riga)

    def crea_fattura(self, cliente, data):
        record_fattura = dict(cliente_id=cliente['id'], data=data)
        base_qta = self.basi_qta[cliente['cliente_tipo_codice']]
        self.tbl_fattura.insert(record_fattura)
        for _ in range(randint(1, 8)):
            self.crea_riga(record_fattura['id'], base_qta)

    def popola(self):
        for data in self.dates:
            for _ in range(randint(0, self.max_fatture_giorno)):
                cliente = self.clienti[randint(0, self.len_clienti - 1)]
                self.crea_fattura(cliente, data)
        self.db.commit()


if __name__ == '__main__':
    sb = GnrApp('sandbox')
    pop = Populator(sb)
    pop.popola()
コード例 #13
0
ファイル: package_editor.py プロジェクト: bopopescu/genropy
 def getFakeApplication(self,project,package):
     custom_config = Bag()
     pkgcode='%s:%s' %(project,package)
     custom_config.setItem('packages.%s' %pkgcode,None,pkgcode=pkgcode)
     return GnrApp(custom_config=custom_config)
コード例 #14
0
ファイル: nuts.py プロジェクト: unbit/genropy
            hasparent = False
            for parent_rec in prev_list:
                if r['code'].startswith(parent_rec['code']):
                    oldrecord = dict(r)
                    r['parent_id'] = parent_rec['id']
                    self.update(r, oldrecord)
                    hasparent = True
                    break
            if hasparent:
                prev_list = [r] + prev_list
            else:
                prev_list = [r]

if __name__ == '__main__':
    from gnr.app.gnrapp import GnrApp
    db = GnrApp('autosped').db
    nuts = db.table('glbl.nuts')
    nuts.setParent()
    db.commit()

#f = nuts.query(order_by='code',for_update=True,addPkeyColumn=False).fetch()
#prev_list = []
#for r in f:
#    if prev_listr['code'].startswith(prev_code):
#        oldrecord = dict(r)
#        r['parent_id'] = prev_rec['id']
#        nuts.update(r,oldrecord)
#    elif len(r):
#        prev_rec = r
#        prev_code = r['code']
#db.commit()
コード例 #15
0
    tblObj = db.table('showcase.movie')
    for item in dataBag['movie']:
        record = {}
        record['title'] = item.getAttr('title')
        record['year'] = item.getAttr('year')
        record['nationality'] = item.getAttr('nationality')
        record['number'] = item.getAttr('id')
        record['genre'] = item.getAttr('genre')
        tblObj.insert(record)


def importCast(db, dataBag):
    tblObj = db.table('showcase.cast')
    movies = db.table('showcase.movie').query(columns='$id').fetch()
    people = db.table('showcase.person').query(columns='$id').fetch()
    for item in dataBag['cast']:
        record = {}
        record['person_id'] = people[int(item.getAttr('person_id'))]['id']
        record['movie_id'] = movies[int(item.getAttr('movie_id'))]['id']
        record['role'] = item.getAttr('role')
        record['prizes'] = item.getAttr('prizes')
        tblObj.insert(record)


if __name__ == '__main__':
    db = GnrApp('testgarden').db
    dataBag = Bag('data.xml')
    importPeople(db, dataBag)
    importMovie(db, dataBag)
    importCast(db, dataBag)
    db.commit()
コード例 #16
0
ファイル: import_nazioni.py プロジェクト: OpenCode/genropy
            record['sigla'] = r[1].strip()
            record['nome'] = r[0].strip()
            tbl.insert(record)
            d[record['nome']] = record['sigla']
    return d


def importCodici(db, filepath, d):
    tbl = db.table('glbl.nazione')
    f = file(filepath)
    t = f.read()
    lines = t.split('\n')
    for l in lines:
        if l:
            r = l.split(';')
            record = {}
            nome = r[0].strip()
            if nome in d.keys():
                record['sigla'] = d[nome].strip()
                record['codice_istat'] = r[1].strip()
                tbl.update(record)


if __name__ == '__main__':
    db = GnrApp('/usr/local/genro/data/instances/condox').db
    d = importSigleNaz(db, '/Users/saverioporcari/Desktop/sigle_naz.txt')
    importCodici(db, '/Users/saverioporcari/Desktop/codice_naz.txt', d)
    db.commit()

    print 'update done'
コード例 #17
0
ファイル: gnrtestutils.py プロジェクト: poppogbr/genropy
 def app(self):
     if not self._app:
         self._app = GnrApp(self.instance_name,
                            forTesting=self.testing_data or True)
     return self._app
コード例 #18
0
            if isinstance(tmp_result, Bag):
                result = tmp_result
            elif isinstance(tmp_result, dict):
                result = Bag(tmp_result)
            else:
                result = Bag(result=tmp_result)
        except Exception, e:
            self.db.table('sys.error').writeException(
                description='Error in task %s %s :%s' %
                (task['table_name'], task['command'], str(e)))
            raise
            result = Bag(error=unicode(e))
            log_result = True
        if log_result:
            with self.db.tempEnv(connectionName='system'):
                self.db.table('sys.task_result').insert(
                    dict(task_id=task['id'],
                         result=result,
                         result_time=timestamp))
                self.db.commit()

    def runScheduled(self, page=None):
        tasks = self.findTasks()
        for task in tasks:
            self.runTask(task, page=page)


if __name__ == '__main__':
    from gnr.app.gnrapp import GnrApp
    a = GnrApp('testgarden')
    a.db.table('sys.task').findTasks()
コード例 #19
0
ファイル: test_pivot.py プロジェクト: pfurini/sandbox
 def setup_class(cls):
     cls.app = GnrApp(INSTANCE_NAME)
     cls.db = cls.app.db
コード例 #20
0
ファイル: nuts.py プロジェクト: exedre/genropy-test
            hasparent = False
            for parent_rec in prev_list:
                if r['code'].startswith(parent_rec['code']):
                    oldrecord = dict(r)
                    r['parent_id'] = parent_rec['id']
                    self.update(r,oldrecord)
                    hasparent = True
                    break
            if hasparent:
                prev_list = [r]+prev_list
            else:
                prev_list = [r]

if __name__ == '__main__':
    from gnr.app.gnrapp import GnrApp
    db = GnrApp('autosped').db
    nuts = db.table('glbl.nuts')
    nuts.setParent()
    db.commit()
    
   #f = nuts.query(order_by='code',for_update=True,addPkeyColumn=False).fetch()
   #prev_list = []
   #for r in f:
   #    if prev_listr['code'].startswith(prev_code):
   #        oldrecord = dict(r)
   #        r['parent_id'] = prev_rec['id']
   #        nuts.update(r,oldrecord)
   #    elif len(r):
   #        prev_rec = r
   #        prev_code = r['code']
   #db.commit()
コード例 #21
0
            record['sigla'] = r[1].strip()
            record['nome'] = r[0].strip()
            tbl.insert(record)
            d[record['nome']] = record['sigla']
    return d


def importCodici(db, filepath, d):
    tbl = db.table('glbl.nazione')
    f = file(filepath)
    t = f.read()
    lines = t.split('\n')
    for l in lines:
        if l:
            r = l.split(';')
            record = {}
            nome = r[0].strip()
            if nome in d.keys():
                record['sigla'] = d[nome].strip()
                record['codice_istat'] = r[1].strip()
                tbl.update(record)


if __name__ == '__main__':
    db = GnrApp('/usr/local/genro/data/instances/condox').db
    d = importSigleNaz(db, '/Users/saverioporcari/Desktop/sigle_naz.txt')
    importCodici(db, '/Users/saverioporcari/Desktop/codice_naz.txt', d)
    db.commit()

    print 'update done'
コード例 #22
0
        inq_no_paga = True
        tipo_prop = 'Inquilino'
        tipo_gest = u['tipogest']
        if ((tipo_gest == 'Ordinaria' and u['spese_ord']) or (tipo_gest != 'Ordinaria' and u['spese_str'])):
            if u['tipo'] == 'Inquilino':
                if u['xflag4']:
                    opz = 'I'
                    fraz = 1
                    inq_no_paga = False
                else:
                    fraz = 0

            if u['xflag1']:
                fraz = float(pp['quota']) / u['xsumquote']
                opz = 'D'
        else:
            fraz = 0
        result['quota'] = '%s %i/%i' % (opz, u['quota'], u['xsumquote'])
        result['fraz'] = fraz
        result['scaduto'] = 0
        result['versato'] = 0
        result['saldo_prec'] = 0
        result['saldo'] = 0
        return result


if __name__ == "__main__":
    app = GnrApp('/usr/local/genro/data/instances/idea')
    db = app.db
    sit = ManagerSituazioni(db)
    sit.situazioniPerPersona(299)